Прототипирование цифрового I/O с модулем Bluetooth RN487x от Microchip
Строительство надежных периферий цифрового ввода и вывода с использованием модуля Bluetooth RN487x
Во второй части нашей трехчастной серии по модулям Bluetooth RN487x от Microchip мы пройдемся через создание цифрового входа (переключателя) и цифрового выхода (светодиода). Для фона по конфигурации модуля обратитесь к первой статье.
Проект 1: Цифровой вход переключателя RN487x
Наш дизайн следует трехшаблонному паттерну:
- Аппаратное обеспечение — переключатель, генерирующий цифровой сигнал.
- Конфигурация — команды RN487x для выделения переменной базы данных и отображения пина к ней.
- Приложение — скрипт рабочей станции, читающий значение базы данных.
Аппаратное обеспечение цифрового входа
Вход — простой нормально разомкнутый переключатель (SW1). RN487x предоставляет внутренние подтяжки, поэтому переключатель, подключенный к земле при замыкании, дает чистый двухсостояний сигнал.


Мы используем RN4871, поддерживающий однопиновый GPIO. Схема может питаться от двух элементов ААА или монетной ячейки. Дополнительные компоненты:
- C1: Обходной конденсатор для стабильности питания.
- R1, C2: Задержка для сброса процессора при включении.
- J1: Последовательный порт для конфигурации.
Конфигурация цифрового входа
Убедитесь, что модуль в известном состоянии перед продолжением (см. приложение для инициализации). Создайте один сервис и одну характеристику в GATT базе данных для представления состояния переключателя:
PS,59c88760536411e7b114b2f933d5fe66
PC,59c889e0536411e7b114b2f933d5fe66,10,01
Здесь PS создает сервис, а PC — характеристику. UUID являются плейсхолдерами; сгенерируйте свои по стандарту UUID. Второй параметр в PC (10) запрашивает немедленные уведомления при изменении значения, а третий параметр (01) устанавливает размер значения в один байт.
Периферийный скрипт конфигурирует пин и обрабатывает события:
@PW_ON SW,0A,09
@PIO1H SHW,0072,01
@PIO1L SHW,0072,00
Каждый метод с префиксом @ запускается на системном событии:
PW_ON— при включении питания, устанавливает P1_2 как триггерный цифровой вход.PIO1H— при переходе в высокое, записывает1в базу данных.PIO1L— при переходе в низкое, записывает0в базу данных.
Приложение цифрового входа
Используйте Python-скрипт switch.py (ссылка предоставлена). Замените образец MAC-адреса на MAC вашего устройства. После питания периферии запустите скрипт на Bluetooth-способной машине. Скрипт подключается к устройству, слушает уведомления и печатает каждое событие переключателя. См. руководство по настройке Linux в приложении.
Ключевая BLE фича: уведомления (notifications) — периферия толкает изменения состояния клиенту без поллинга.
Проект 2: Цифровое управление RN487x (светодиод)
Применяем тот же трехшаговый паттерн для выхода:
- Аппаратное обеспечение — светодиод, управляемый open-collector GPIO RN4871.
- Конфигурация — создание переменной базы данных, отображенной на пин светодиода.
- Приложение — скрипт, записывающий значения в базу данных для включения/выключения светодиода.
Аппаратное обеспечение цифрового управления
Светодиод (D1) подключен как open-collector сток. Схема следует референс-дизайну RN487x.


Компоненты:
- C1: Обходной конденсатор питания.
- R1, C2: Задержка сброса.
- J1: Последовательный порт.
Конфигурация цифрового управления
Инициализируйте модуль как описано в приложении. Создайте один сервис и характеристику:
PS,59c88760536411e7b114b2f933d5fe66
PC,59c889e0536411e7b114b2f933d5fe66,08,01
Здесь 08 указывает, что периферия должна подтверждать записи, а 01 устанавливает одно-байтовое значение. Скрипт обрабатывает клиентские соединения:
@CONN |O,08,72
Когда клиент подключается, команда ассоциирует переменную базы данных с пином светодиода (bitmask 08) и дескриптором характеристики (72). Последующие записи клиента переключают светодиод.
Приложение цифрового управления
Запустите light.py (ссылка предоставлена) после замены MAC-адреса. Скрипт подключается к периферии, затем посылает новое значение каждую секунду для включения и выключения светодиода. Скрипт логирует прогресс и иллюстрирует фичу ассоциации дескриптора (handle association).
Посмотрите полную демонстрацию в сопровождающем проектном видео.
Следующие шаги
Это завершает часть 2 нашей серии RN487x. Часть 3 затронет аналоговые сенсоры и управление, и предоставит дополнительные ресурсы, применимые ко всем проектам.
Интернет вещей
- Бесплатно, мощно и готово для исследований: лицензирование RTI Connext DDS для университетов
- Основы ввода-вывода в C#: Console.WriteLine, ReadLine и форматирование
- Bluetooth LE против XLE: следующее поколение отслеживания и мониторинга активов
- Комбинация Bluetooth и ультразвука для точного, выгодного трекинга в реальном времени
- Мастерство превентивного обслуживания: Построение и оптимизация фиксированных и плавающих расписаний
- Освоение модулей Bluetooth RN487x от Microchip для низкопотребляющих периферий
- Создавайте IoT продукты, которые любят клиенты — и за которые платят
- Повысьте эффективность операций: IoT-мониторинг резервуаров для более безопасного, умного и прибыльного управ…
- Использование RTU для получения инсайтов из больших данных в промышленных операциях
- Lean Digital: определение, преимущества и бесшовная интеграция