Uploaded by Максим Лапердин

перспектива Modbus

advertisement
https://smacont.ru/wiki/040/
Перспектива развития протокола «MODBUS»
Беспроводной Wi-Fi модуль ESP-01 ESP8266 & Контролер
последовательного порта приемопередатчика дальней связи
Универсальная программа (прошивка) «Smacont-ESP» для модулей
ESP8266/ESP8285
«Smacont-ESP» — это децентрализованная система, которой не требуются сервер или
центральный контроллер управления. Каждое устройство может работать как
самостоятельно, так и в связи с другими устройствами.
Каждое устройство, под управлением прошивки «Smacont-ESP», выполняет свои задачи, а
также может общаться между собой через WiFi-сеть или по протоколу «MODBUS» и в
случае необходимости, устройство может выполнить действия по изменению состояния
другого устройства.
Прошивка «Smacont-ESP», является первой подобной прошивкой, с поддержкой
протокола ESP-NOW, что позволяет создавать автономные устройства с питанием от
батарей, аккумуляторов или ионисторов.
Беспроводной Wi-Fi модуль ESP-01 ESP8266 & Контролер
последовательного порта приемопередатчика дальней связи
Обмен данными с устройством
по протоколу ESP-NOW
Содержание
Общие данные
Односторонняя связь
Двухсторонняя связь
Настройки для работы по протоколу ESP-NOW
Шифрование данных
Действие «send_ESP_NOW()»
Информация о текущем состоянии ESP-NOW
Общие данные
Технология ESP-NOW — это упрощенный протокол связи WiFi с передачей
коротких пакетов между парами сопряженных устройств, разработанный и
выпущенный Espressif в 2016 для микроконтроллеров ESP8266 и ESP32. При
этом дополнительные процедуры, связанные с поддержкой протокола WiFi
не используются, что ускоряет процесс обмена пакетами.
Прошивка «Smacont-ESP» является первой подобной прошивкой, в
которой реализован протокол ESP-NOW, в удобном для пользователя
виде.
Применение протокола ESP-NOW в прошивке «Smacont-ESP»,
совместно со sleep-режимом, является идеальным решением для
создания автономных устройств с питанием от батареек, аккумуляторов
или ионисторов.
Экономия энергии происходит за счет уменьшения времени передачи
данных, а именно, за счет быстрого соединения и быстрой передачи
небольшого объема данных. В среднем, передача пакета из 250 байт,
занимаем 10-20мс. Время передачи зависит от «загруженности»
принимающей стороны при работе по WiFi с другими устройствами.
Еще одним достоинством применения протокола ESP-NOW является
отсутствие применения дополнительного шлюза, например, шлюза ZigbeeWiFi. В данном случае, в качестве шлюза выступает любое устройство на
микроконтроллере esp8266 (esp8285) с прошивкой «Smacont-ESP». При этом,
устройство будет работать в штатном режиме, выполняя свои функции, в том
числе полноценно обмениваться информацией по WiFi-сети.
Под управлением прошивки «Smacont-ESP», с применением протокола ESPNOW уже реализованы и работают следующие устройства с автономным
питанием:
• ИК-датчик движения.
• ИК-датчик движения с датчиком температуры, влажности и давления
(BME280).
• Выключатель освещения. Выключатель (кнопка) управляет работой
покупного устройства Sonoff mini R2 (c прошивкой «Smacont-ESP»), которое
расположено в корпусе потолочной люстры.
• Кнопка звонка.
• Датчик температуры с питанием от ионисторов и зарядом от солнечной
панели.
• Датчик открывания входной двери (геркон + магнит).
• Датчик протечки воды.
• Датчик влажности почвы.
Ссылки на статьи будут выкладываться по мере описания конструкции
устройств.
В качестве управляющего модуля автономных устройств, в основном,
используется 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-соединения):
1. ESP-NOW CONTROLLER
2. ESP-NOW CONTROLLER (STA)
3. ESP-NOW CONTROLLER (AP)
4. ESP-NOW CONTROLLER (AP+STA)
5. ESP-NOW SLAVE (AP)
6. ESP-NOW SLAVE (AP+STA)
7. ESP-NOW COMBO (AP)
8. ESP-NOW COMBO (AP+STA)
«CONTROLLER»
В данном режиме устройство (ведущий) может только передавать данные на
другое устройство, предварительно сконфигурированное в режиме:
• «SLAVE» (ведомый);
• «COMBO» (ведущий+ведомый).
Режим «ESP-NOW CONTROLLER» предпочтительно использовать для
устройств с автономным питанием.
«SLAVE»
В данном режиме устройство (ведомый) может только принимать данные от
другого устройства, предварительно сконфигурированного в режиме:
• «CONTROLLER» (ведущий);
• «COMBO» (ведущий+ведомый).
«COMBO»
В данном режиме устройство (ведущий+ведомый) может как принимать, так
и передавать данные на другое устройство, предварительно
сконфигурированное в режиме:
• «CONTROLLER» (ведущий);
• «SLAVE» (ведомый);
• «COMBO» (ведущий+ведомый).
Шифрование данных
В прошивке «Smacont-ESP» предусмотрено шифрование данных при
передаче данных по протоколу ESP-NOW.
Разрешение шифрования данных осуществляется на вкладке «WiFi», в окне
«Изменение режима работы».
ESP-NOW. Шифрование данных
Шифрование данных подразумевает под собой использование ключей:
• «PMK_KEY» - основной мастер-ключ, который используется для ключа на
присоединенном устройстве;
• «LMK_KEY» - локальный мастер-ключ, который используется для ключа
полезной информации во время связи в данной паре.
Ключи «PMK_KEY» и «LMK_KEY» хранятся в текстовых
шаблонах. Для ключа «PMK_KEY» резервируется шаблон «Т34», Для ключа
«LMK_KEY» резервируется шаблон «Т35».
ESP-NOW. Ключи «PMK_KEY» и «LMK_KEY» в текстовых шаблонах
Длина ключей «PMK_KEY» и «LMK_KEY» составляет 16 символов. В
качестве символов допускается использовать:
• заглавные латинские буквы: от A до Z (26 символов);
• строчные латинские буквы: от a до z (26 символов);
• цифры от 0 до 9 (10 символов);
• символы: (пробел) ! " # $ & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _` { } ~ (33
символа).
Ключи «PMK_KEY» и «LMK_KEY» ДОЛЖНЫ СОВПАДАТЬ на ВСЕХ
сопрягаемых УСТРОЙСТВАХ.
Пример записи ключа:
«PMK_KEY» Kjlsd$@id86*Io:T
«LMK_KEY» Luiio^)5)8LJIds4
Действие «send_ESP_NOW()»
Для передачи данных по протоколу ESP-NOW предусмотрено действие
«send_ESP_NOW()» (обмен данными по протоколу ESP-NOW).
ESP-NOW. Действие «send_ESP_NOW()»
В качестве параметров задаются:
• MAC-адрес принимающей стороны;
• Номер канала;
• Адрес первой переменной «Vx»;
• Количество переменных.
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:
0 – ошибка, ESP-NOW не в режиме «CONTROLLER/COMBO»;
1 – успешная передача данных;
2 – ошибка, передать данные не удалось;
3 – ошибка регистрации пира;
4 – ошибка начала передачи данных;
5 – в процессе передачи данных;
7 – ошибка инициализации;
8 – ошибка, неверная длина принятых данных;
9 – ошибка при дешифровке (ключи не совпадают);
10 – ESP-NOW отключен (в режиме «ESP_NOW_ROLE_IDLE»);
14 – ESP-NOW включен (CONTROLLER / SLAVE / COMBO);
15 – ошибка, полученные данные зашифрованы;
255 – неизвестная ошибка.
Download