Как создать цифровой ввод и цифровое управление с помощью модуля Bluetooth RN487x от Microchip
Узнайте, как использовать модуль Microchip для создания прототипов цифровых входов и периферийных устройств цифрового управления.
В этой статье, второй в серии из трех частей, посвященных модулям Bluetooth RN487x от Microchip, я покажу вам, как создать цифровой вход (переключатель) и цифровое управление (светодиода).
Вернитесь к моей первой статье, чтобы узнать об истории вопроса и инструкциях по настройке модуля RN487x.
Проект 1:цифровой входной переключатель RN478x
Наш шаблон проектирования состоит из трех компонентов, которые нам необходимо предоставить:
- Оборудование: Специальное оборудование для генерации цифрового сигнала.
- Конфигурация: Команды модуля RN487x для размещения переменной в базе данных и для отображения сигнала на переменную
- Приложение: Скрипт на рабочей станции для принятия значения базы данных
Далее следует разбивка компонентов.
Оборудование цифрового ввода
Роль «цифрового входа» просто обеспечивается переключателем; SW1.
Модуль RN487x имеет внутренние подтяжки на контактах, поэтому нормально разомкнутый переключатель, подключенный к заземлению при замыкании, даст нам необходимое управление с двумя состояниями.
Поскольку мы управляем только одним сигналом и не используем ШИМ, мы выбрали RN4871. Схема может питаться от пары батареек AAA или даже от плоского элемента.
Остальные элементы схемы:
- C1: Шунтирующий конденсатор для стабилизации мощности.
- R1, C2: Задержка перезагрузки процессора при включении.
- J1: Последовательный порт для настройки
Конфигурация цифрового входа
Перед созданием конфигурации для этого примера убедитесь, что модуль находится в известном состоянии. Это описано в приложении, посвященном стандартной инициализации. Не пропускайте этот шаг!
Нам нужна только одна характеристика в базе данных, чтобы представить состояние нашего датчика. Итак, мы создаем одну услугу и одну характеристику в этой услуге. Две соответствующие команды:
PS, 59c88760536411e7b114b2f933d5fe66 ПК, 59c889e0536411e7b114b2f933d5fe66,10,01
Первая команда PS создает службу. Вторая команда, PC, создает характеристику. В обеих командах первым параметром является идентификатор, который позволяет нашему периферийному устройству существовать во вселенной других периферийных устройств Bluetooth и при этом иметь уникальный доступ. Этот параметр должен соответствовать стандарту UUID. Вы можете использовать показанные в качестве примера значения. Также легко создать любое количество стандартных UUID.
В команде ПК второй параметр сообщает уровню Bluetooth, как изменения значения должны поступать к клиенту. В этом случае параметр (10) говорит, что изменение значения может привести к немедленному уведомлению клиентов. Это важная часть нашего намерения для этого примера. Наконец, в команде PC третий параметр определяет размер значения в байтах; в данном случае только один (01).
Часть сценария нашей конфигурации выглядит так:
@PW_ON Ю, 0А, 09 @ PIO1H SHW, 0072,01 @ PIO1L SHW, 0072,00
В этом скрипте есть три метода, каждый из которых имеет префикс «@». Каждый метод запускается при определенном системном событии.
- PW_ON: Работает при включении. Метод настраивает наш интересующий вывод (P1_2) как «запускаемый» цифровой входной сигнал.
- PIO1H: Запускается всякий раз, когда сигнал триггера переходит на высокий уровень. Метод записывает «1» в базу данных.
- PIO1L: Запускается всякий раз, когда сигнал триггера переходит на низкий уровень. Метод записывает в базу данных «0».
Приложение цифрового ввода
Скрипт Python - switch.py, его можно найти здесь. Отредактируйте сценарий и замените образец MAC-адреса на MAC-адрес вашего устройства. Затем, чтобы проверить пример, просто подайте питание на периферийное устройство, а затем запустите сценарий в системе с соответствующими возможностями Bluetooth. См. Приложение для получения справки по этой настройке в Linux. Сценарий будет выдавать сообщения, указывающие на прогресс при подключении к периферийному устройству. После подключения периферийного устройства нажмите и отпустите переключатель несколько раз. Каждое событие открытия / закрытия переключателя будет отмечено сообщением от запущенного скрипта.
Скрипт короткий и включает комментарии ко всем функциональным блокам и вызовам GATT API.
Уникальная функция BLE, которую мы используем в этом примере, - это уведомление.
- Мы используем метод обратного вызова для обработки изменения сигнала от периферийного устройства, когда это происходит. Нам не нужно опрашивать периферийное устройство, чтобы узнать состояние сигнала.
- Мы должны сообщить периферийному устройству, что нам нужны эти уведомления, написав в характеристику системы.
Проект 2:цифровое управление RN487x
Наш шаблон проектирования состоит из трех компонентов, которые нам необходимо предоставить:
- Оборудование: Аппаратное обеспечение для конкретной задачи для отображения цифрового вывода
- Конфигурация: Команды модуля RN487x для выделения переменной в базе данных и сопоставления переменной с сигналом.
- Приложение: Скрипт на рабочей станции для записи значения базы данных
Далее следует разбивка компонентов.
Аппаратное обеспечение цифрового управления
Роль «цифрового выхода» просто обеспечивается светодиодом; D1.
Эталонные схемы модуля RN487x предполагают использование GPIO с открытым коллектором, поэтому мы соответствующим образом загораем светодиод, уменьшая ток.
Поскольку мы управляем только одним сигналом и не используем ШИМ, мы выбрали RN4871. Схема может питаться от пары батареек AAA или даже от плоского элемента.
Остальные элементы схемы:
- C1: Шунтирующий конденсатор для стабилизации мощности.
- R1, C2: Задержка перезагрузки процессора при включении.
- J1: Последовательный порт для настройки
Конфигурация цифрового управления
Перед созданием конфигурации для этого примера убедитесь, что модуль находится в известном состоянии. Это описано в приложении, посвященном стандартной инициализации.
Не пропускайте этот шаг!
Нам нужна только одна характеристика в базе данных, чтобы представить состояние нашего датчика. Итак, мы создаем одну услугу и одну характеристику в этой услуге.
Две соответствующие команды:
PS, 59c88760536411e7b114b2f933d5fe66 ПК, 59c889e0536411e7b114b2f933d5fe66,08,01
Первая команда PS создает службу. Вторая команда, PC, создает характеристику. В обеих командах первым параметром является идентификатор, который позволяет нашему периферийному устройству существовать во вселенной других периферийных устройств Bluetooth и при этом иметь уникальный доступ. Этот параметр должен соответствовать стандарту UUID. Вы можете использовать показанные в качестве примера значения. Также легко создать любое количество стандартных UUID.
В команде ПК второй параметр сообщает уровню Bluetooth, как изменения значения должны поступать на периферийное устройство. В этом случае параметр (08) указывает, что периферийное устройство должно отправить подтверждение клиенту при изменении значения. Наконец, в команде PC третий параметр определяет размер значения в байтах; в данном случае только один (01).
Часть сценария нашей конфигурации выглядит так:
@CONN | O, 08,72
В этом скрипте есть только один метод - @CONN. Он запускается каждый раз, когда клиент подключается к периферийному устройству.
Единственная строка скрипта - это команда «обработать ассоциацию», дающая очень мощный результат. Он связывает переменную базы данных с командой вывода цифрового вывода. Параметр «08» - это битовая маска, определяющая вывод, к которому подключен наш светодиод. Параметр «72» - это уникальный и постоянный дескриптор характеристики, которую мы создали в базе данных. Таким образом, после подключения клиента каждый раз, когда клиент записывает новое значение в переменную базы данных, наш светодиод будет соответственно включаться или выключаться.
Приложение цифрового управления
Скрипт Python - это light.py, его можно найти здесь. Отредактируйте сценарий и замените образец MAC-адреса на MAC-адрес вашего устройства. Затем, чтобы проверить пример, просто подайте питание на периферийное устройство, а затем запустите сценарий в системе с соответствующими возможностями Bluetooth. См. Приложение для получения справки по этой настройке в Linux. Сценарий будет выдавать сообщения, указывающие на прогресс при подключении к периферийному устройству. После подключения периферийного устройства скрипт будет отправлять периферийному устройству новую команду каждую секунду. Команды будут включать и выключать светодиод.
Скрипт короткий и включает комментарии ко всем функциональным блокам и вызовам GATT API. Уникальная функция BLE, которую мы используем в этом примере, - это ассоциация дескрипторов.
Вы можете увидеть весь этот пример в действии в сопроводительном видео проекта.
Дальнейшие действия
На этом завершается вторая часть нашей серии из трех частей, посвященных модулю RN487x.
Часть 3 будет следовать той же схеме проектирования для создания аналогового датчика и аналогового элемента управления. Он также будет включать некоторые темы для дальнейшего изучения, которые применимы ко всем примерам проектов.
Интернет вещей
- Бесплатное как на свободе или бесплатное пиво? ... как насчет:бесплатно использовать, строить и исследовать!
- Базовый ввод и вывод C#
- Резюме:Как Bluetooth LE и XLE представляют собой будущее отслеживания и мониторинга активов
- Как Bluetooth + ультразвук =лучшая точность RTLS и меньшая стоимость
- Как построить и оптимизировать график профилактического обслуживания
- Датчики и элементы управления с модулем Bluetooth RN487x от Microchip
- Как создавать решения, которые хотят (и готовы платить) ваши клиенты
- Как построить более разумную операцию с использованием технологии IoT для мониторинга резервуаров
- Как разобраться в больших данных:RTU и приложения для управления процессами
- Что такое Lean Digital и как его интегрировать?