Обмен данными с устройством
|
Содержание
Общие данные
Общие данныеТехнология ESP-NOW — это упрощенный протокол связи WiFi с передачей коротких пакетов между парами сопряженных устройств, разработанный и выпущенный Espressif в 2016 для микроконтроллеров ESP8266 и ESP32. При этом дополнительные процедуры, связанные с поддержкой протокола WiFi не используются, что ускоряет процесс обмена пакетами. Прошивка «Smacont-ESP» является первой подобной прошивкой, в которой реализован протокол ESP-NOW, в удобном для пользователя виде. Применение протокола ESP-NOW в прошивке «Smacont-ESP», совместно со sleep-режимом, является идеальным решением для создания автономных устройств с питанием от батареек, аккумуляторов или ионисторов. Экономия энергии происходит за счет уменьшения времени передачи данных, а именно, за счет быстрого соединения и быстрой передачи небольшого объема данных. В среднем, передача пакета из 250 байт, занимаем 10-20мс. Время передачи зависит от «загруженности» принимающей стороны при работе по WiFi с другими устройствами. Еще одним достоинством применения протокола ESP-NOW является отсутствие применения дополнительного шлюза, например, шлюза Zigbee-WiFi. В данном случае, в качестве шлюза выступает любое устройство на микроконтроллере esp8266 (esp8285) с прошивкой «Smacont-ESP». При этом, устройство будет работать в штатном режиме, выполняя свои функции, в том числе полноценно обмениваться информацией по WiFi-сети.
Под управлением прошивки «Smacont-ESP», с применением протокола ESP-NOW уже реализованы и работают следующие устройства с автономным питанием:
В качестве управляющего модуля автономных устройств, в основном, используется Wi-Fi модуль ESP-01/ESP-01S, который отличается малыми габаритами и низкой ценой. Благодаря своей универсальности, протокол ESP-NOW позволяет организовывать односторонний или двусторонний вариант связи с разными настройками. Односторонняя связьПрошивка «Smacont-ESP» позволяет реализовать три способа односторонней связи. Один ведущий, один ведомый (минимальная конфигурация)В данной конфигурации используется два модуля, один из них сконфигурирован как «Controller», второй модуль сконфигурирован как «Slave». ESP-NOW. Один ведущий, один ведомый Данным способом можно, например, отправлять команду на включение/отключение нагрузки (см. Выключатель освещения) или передавать показания датчиков (см. ИК-датчик движения). Один ведущий, несколько ведомыхВ данной конфигурации используется несколько модулей, один из них сконфигурирован как «Controller», остальные модули сконфигурированы как «Slave». ESP-NOW. Один ведущий, несколько ведомых Данным способом можно реализовать передачу команд от пульта (ведущего) на разные модули (ведомые). Несколько ведущих, один ведомыйВ данной конфигурации используется несколько модулей, один из них сконфигурирован как «Slave», остальные модули сконфигурированы как «Controller». ESP-NOW. Несколько ведущих, один ведомый Данным способом можно реализовать сеть датчиков (ведущих), передающих информацию на модуль сбора информации (ведомый). Двухсторонняя связьПрошивка «Smacont-ESP» позволяет реализовать несколько способов двухсторонней связи. Каждый модуль может быть отправителем и получателем одновременно. Таким образом, можно устанавливать двустороннюю связь между модулями. Один «Combo», один «Combo» (минимальная конфигурация)ESP-NOW. Один «Combo», один «Combo» Данным способом можно, например, отправлять команду на включение/отключение нагрузки или передавать показания датчиков и при этом, получать подтверждение об успешном приеме. Несколько «Combo»ESP-NOW. Несколько «Combo» Данным способом можно реализовать сеть датчиков (ведущих), передающих информацию на модуль сбора информации (ведомый), с подтверждением об успешном приеме или просто обмениваться информацией между модулями. Настройки для работы по протоколу ESP-NOWДля работы устройства по протоколу ESP-NOW необходимо задать соответствующий режим работы в соответствии с ролью устройства при обмене информацией. Режим работы задается на вкладке «WiFi». ESP-NOW. Режим работы
В прошивке «Smacont-ESP» предусмотрены следующие режимы для работы устройства по протоколу ESP-NOW (в скобках указаны возможные режимы работы WiFi-соединения):
«CONTROLLER»
В данном режиме устройство (ведущий) может только передавать данные на другое устройство, предварительно сконфигурированное в режиме:
Режим «ESP-NOW CONTROLLER» предпочтительно использовать для устройств с автономным питанием. «SLAVE»
В данном режиме устройство (ведомый) может только принимать данные от другого устройства, предварительно сконфигурированного в режиме:
«COMBO»
В данном режиме устройство (ведущий+ведомый) может как принимать, так и передавать данные на другое устройство, предварительно сконфигурированное в режиме:
Шифрование данныхВ прошивке «Smacont-ESP» предусмотрено шифрование данных при передаче данных по протоколу ESP-NOW. Разрешение шифрования данных осуществляется на вкладке «WiFi», в окне «Изменение режима работы». ESP-NOW. Шифрование данных
Шифрование данных подразумевает под собой использование ключей:
Ключи «PMK_KEY» и «LMK_KEY» хранятся в текстовых шаблонах. Для ключа «PMK_KEY» резервируется шаблон «Т34», Для ключа «LMK_KEY» резервируется шаблон «Т35». ESP-NOW. Ключи «PMK_KEY» и «LMK_KEY» в текстовых шаблонах
Длина ключей «PMK_KEY» и «LMK_KEY» составляет 16 символов.
В качестве символов допускается использовать:
Ключи «PMK_KEY» и «LMK_KEY» ДОЛЖНЫ СОВПАДАТЬ на ВСЕХ сопрягаемых УСТРОЙСТВАХ.
Пример записи ключа:
Действие «send_ESP_NOW()»Для передачи данных по протоколу ESP-NOW предусмотрено действие «send_ESP_NOW()» (обмен данными по протоколу ESP-NOW). ESP-NOW. Действие «send_ESP_NOW()»
В качестве параметров задаются:
ESP-NOW. Действие «send_ESP_NOW()» При работе по протоколу ESP_NOW, ВСЕ устройства должны работать на ОДНОМ НОМЕРЕ КАНАЛА. «MAC-адрес принимающей стороны» и «Номер канала» можно получить НА ВКЛАДКЕ «WiFi» ПРИНИМАЮЩЕЙ СТОРОНЫ. ESP-NOW. Вкладка «WiFi» На принимающей стороне данные будут сохраняться в ПЕРЕМЕННЫХ, КОТОРЫЕ УКАЗАНЫ в действии «send_ESP_NOW()» ПЕРЕДАЮЩЕЙ СТОРОНЫ. Действие «send_ESP_NOW()» может выполняться периодически по таймеру, либо по определенному событию. Информация о текущем состоянии ESP-NOWВ прошивке «Smacont-ESP» предусмотрена возможность отслеживания информация о текущем состоянии ESP-NOW. Контроль данного состояния позволяет, например, получать статус передачи данных на приемную сторону и в случае неудачной передачи, либо повторить передачу, либо выдать предупреждающий сигнал. Разрешение отслеживания информация о текущем состоянии ESP-NOW осуществляется на вкладке «INFO/CONF». ESP-NOW. Вкладка «INFO/CONF»
Доступны следующие коды состояния ESP-NOW:
|
Программы
Прошивка «Smacont-ESP»:
«Программа Настройки»:
Телеграм каналНовостиЭнергонезависимая память (EEPROM) Переменные «Vx» (карта переменных «Vx») Действие «wifi_CheckConn()». После подключения к WiFi-сети, выполнить действие с задержкой Обмен данными. Open Monitoring Датчики температуры и влажности AHT10/AHT15/AHT20/AHT21/AHT25 Датчик температуры и влажности SHT30 (SHT31/SHT35) Действие «valueToVx()», «valueToArrVx()». Отслеживание заданного уровня в диапазоне значений Действие «termostat()». Термостат ESP-NOW. Датчик температуры и влажности с питанием от батареек Последовательные интерфейсы (UART, I2C, SPI) Управление одноканальным модулем реле |