Оглавление:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 шага
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 шага

Видео: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 шага

Видео: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 шага
Видео: ESP-NOW MQTT шлюз 2024, Ноябрь
Anonim
ESP-NOW Домашняя автоматизация Esp8266 Raspberry Pi MQTT
ESP-NOW Домашняя автоматизация Esp8266 Raspberry Pi MQTT

В этом руководстве я покажу вам, как я использовал ESP-NOW в домашней автоматизации. На схеме вы можете увидеть коммуникационные потоки

Я покажу тебе:

  • как работает отправитель
  • как работает ресивер
  • как работает последовательная связь с Raspberry Pi

Я не показываю, как работает MQTT и моя домашняя автоматизация, вы можете найти другие хорошие инструкции для этого.

Авторы: это руководство было вдохновлено:

Видео # 172, автор - Andreas Spiess

www.esploradores.com/practica-6-conexion-es…

Шаг 1. Резервное копирование через WiFi и MQTT

Резервное копирование через Wi-Fi и MQTT
Резервное копирование через Wi-Fi и MQTT

Я выяснил, что ESP-NOW чрезвычайно быстр и достаточно надежен, но иногда дает сбой. В своей программе я добавил резервную копию через обычное соединение WiFi и MQTT.

Шаг 2: Удаленный / отправитель

Удаленный / отправитель
Удаленный / отправитель
Удаленный / отправитель
Удаленный / отправитель
Удаленный / отправитель
Удаленный / отправитель
Удаленный / отправитель
Удаленный / отправитель

На первой схеме вы видите, как работает программа отправителя:

  1. Esp8266 запускается при включении или сбросе
  2. ESP-NOW инициализирован
  3. Модуль отправляет ESP-NOW в течение определенного времени.
  4. Модуль проверяет, было ли получено сообщение ESP-NOW, в функции обратного вызова.

    1. Если было получено сообщение ESP-NOW, модуль переходит в глубокий сон с низким энергопотреблением.
    2. Если сообщение ESP-NOW не было получено, модуль запускает соединение WiFi и соединение MQTT в качестве резервного соединения.

Программа для отправителя находится у меня на Github (Master_sender.ino). Программы отправляют тему и сообщение для домашней автоматизации MQTT в одном объединенном сообщении ESP-NOW, объединенном знаком «&» для удобного разделения на приемнике.

Я сделал два разных пульта / отправителя:

Отправитель 1: esp8266 находится в глубоком спящем режиме и активируется сбросом. Светодиод в кнопке загорается и гаснет, когда модуль готов. Если напряжение аккумулятора слишком низкое, светодиод мигает. Если ESP-NOW не удалось, индикатор мигает перед переходом на соединения WiFi / MQTT. Питание esp8266 осуществляется от LiPo аккумулятора с регулятором напряжения HT7333 до 3,3 В.

Отправитель 2: esp8266 выключен и включается нажатием кнопки. Обычно соединение ESP-NOW выполняется после нажатия кнопки. Esp8266 питается напрямую от LiPo батареи. Я не знаю, повредится ли esp8266 из-за высокого напряжения полностью заряженной батареи (до 4,2 В), когда он работает всего несколько 100 мс. Это выше спецификаций (3,0 - 3,6 В).

Примечание: если батарея разряжена, ESP-NOW не работает.

Шаг 3. Приемник - оборудование (esp8266 и Raspberry Pi)

Приемник - оборудование (esp8266 и Raspberry Pi)
Приемник - оборудование (esp8266 и Raspberry Pi)
Приемник - оборудование (esp8266 и Raspberry Pi)
Приемник - оборудование (esp8266 и Raspberry Pi)
Приемник - оборудование (esp8266 и Raspberry Pi)
Приемник - оборудование (esp8266 и Raspberry Pi)

Описание ствольной коробки разделено на две части:

  1. Аппаратное обеспечение
  2. Программное обеспечение

Аппаратное обеспечение

Принимающий esp-01 подключен к моему Raspberry Pi Zero, на котором работает моя система домашней автоматизации (Openhab2) и Node Red.

На схеме показаны простые соединения:

  • RX от esp-01 до TX от RasPi
  • Передача esp-01 на приемник RasPi
  • GND к GND
  • ESP-01 VCC питается от вывода 3.3V Raspi.
  • На esp-01 оба RST и CH_PD подтянуты.

Я сделал интерфейсный разъем, чтобы его было легко смонтировать

На одном снимке вы можете увидеть мои проводные соединения с моим Raspberry Pi 3 (у которого такая же распиновка, но я использовал еще один вывод 3,3 В для подключения к CH_PD).

ESP-01 был запрограммирован, как показано в моем другом руководстве (см. Шаг 3).

Шаг 4: Приемник - программное обеспечение (серийный, красный узел, MQTT)

Приемник - программное обеспечение (серийный, красный узел, MQTT)
Приемник - программное обеспечение (серийный, красный узел, MQTT)
Приемник - программное обеспечение (серийный, красный узел, MQTT)
Приемник - программное обеспечение (серийный, красный узел, MQTT)
Приемник - программное обеспечение (серийный, красный узел, MQTT)
Приемник - программное обеспечение (серийный, красный узел, MQTT)

Программа на esp8266

Программа для ресивера esp-01 есть у меня на Github (Master_sender.ino). Программа действительно проста, она только печатает полученное сообщение ESP-NOW через последовательный порт Raspberry Pi.

Последовательный порт

На Raspberry Pi вы должны активировать последовательный порт (на raspbian выполните sudo raspi-config) для нормальной последовательной связи.

Имя последовательного порта:

  • Малина Pi Zero: / dev / ttyAMA0
  • Малина Pi 3: / dev / ttyS0

Вы можете проверить последовательный порт, запустив 'dmesg | grep tty 'или' ls / dev '

Узел красный

В Node Red выберите узел последовательного ввода и настройте последовательный порт (см. Приложенные изображения). Обратите внимание на скорость последовательного соединения, она должна соответствовать скорости, запрограммированной в esp8266.

Выходные данные последовательного узла преобразуются функциональным узлом, который разбивает сообщение по знаку «&» и устанавливает msg.topic и msg.payload. Выходные данные функции передаются на выходной узел mqtt, который отправляет сообщение на сервер MQTT. Обратите внимание, что поле темы узла mqtt пусто, потому что тема задается в сообщении.

Рекомендуемые: