Приводится реализация датчика высокого напряжения для оповещения по Bluetooth BLE.
Устройство реализовано на микросхеме ESP32-WROOM-32D, имеющей в своем составе модуль Bluetooth BLE.
При срабатывании датчика от высокого напряжения или при нажатии кнопки "тест" модуль BLE выдает режиме advertising – посылку «рекламы», структура посылки 18 байт. Более подробно описано в репозитарии https://github.com/OldIngineer/information-collection-system/wiki
В режиме ожидания устройство находится в спящем режиме и потребляет не более 5мкА. При пробуждении от внешних событий устройство включает световую и звуковую сигнализацию, а также канал Bluetooth переходит в режим advertising – посылки «рекламы». Для надежной передачи сообщения дублируются 3-5 раз. Потребление в активном режиме составляет 40-100 мА.
Выход из спящего режима производится при изменении состояния на двух входах:
- при нажатии кнопки «тест» подается нулевой потенциал на вход «IO22». Микросхема формирует проверочный сигнал на выходе «IO23», который поступает на высоковольтный вход. При исправных входных цепях сигнал запускает формирование световой и звуковой сигнализации, а также отсылается сообщение об исправном состоянии или нет. После этого в течении нескольких минут продолжает гореть зеленый светодиод подключенный к выходу «IO21», а затем устройство переходит в спящий режим.
- при поступлении на высоковольтный вход высокого напряжения сформированный входными цепями высокий потенциал поступает на вход «IO4». Устройство переходит в активный режим, формируется световой, звуковой сигнал и отсылается сообщение об опасности.
Световая сигнализации осуществляется подключением к выходам микросхемы «IO5», «IO18» красных светодиодов. Звуковой сигнал формируется на выходе «IO22» к которому подключается излучатель звука.
Для питания устройства достаточно двух батареек типа ААА на несколько лет. Радиус действия по каналу Bluetooth BLE составляет примерно 6-10 м, его можно увеличить задавая с помощью функции BLE TX POWER (по умолчанию +3дБм) большую мощность передатчика.
За основу взяты примеры: - работа с BLE "esp-idf/examples/bluetooth/hci/controller_vhci_ble_adv";
- киберсон "http://wikihandbk.com/wiki/ESP32".
Для понижения потребления питания необходимо внести изменения в конфигурацию перед компиляцией:
-изменение тактовой частоты MIN 80MHz командой для компилятора: "idf.py menuconfig" в настройках таблицы: component config/ESP_specific/
-использование только одного ядра "PRO_CPU" командой для компилятора: "idf.py menuconfig" в настройках таблицы: component config/FreeRTOS/Run FreeRTOS only on first core