Съдържание:

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 стъпки
Видео: (Beginner Friendly) Home Automation using ESPHome & Home Assistant | ESP32 Projects | Raspberry Pi 2024, Ноември
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

В тази инструкция ще ви покажа как използвах ESP-NOW в домашната си автоматизация. В схемата можете да видите комуникационните потоци

Показвам ти:

  • как работи изпращачът
  • как работи приемникът
  • как работи серийната комуникация с Raspberry Pi

Не показвам как работи MQTT и домашната ми автоматизация, можете да намерите други добри инструкции за това.

Кредити: Тази инструкция е вдъхновена от:

Видео #172 от Andreas Spiess

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

Стъпка 1: Архивиране чрез WiFi и MQTT

Архивиране чрез WiFi и MQTT
Архивиране чрез WiFi и 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.3V

Изпращач 2: esp8266 се изключва и се захранва чрез натискане на бутона. Обикновено връзката ESP-NOW се осъществява след натискане на бутона. Esp8266 се захранва директно от LiPo батерия. Не знам дали esp8266 се повреди от високото напрежение на напълно заредена батерия (до 4,2 V), когато се захранва само за няколко 100 ms. Той е по -висок от спецификациите (3.0 - 3.6V).

Забележка: ако батерията е ниска, 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
  • TX на esp-01 до RX на RasPi
  • GND към GND
  • Esp-01 VCC се захранва от 3.3V щифт на Raspi
  • На esp-01 RST и CH_PD са издърпани високо.

Направих интерфейсен конектор, за да го монтирам лесно

На една снимка можете да видите моите кабелни връзки към моя Raspberry Pi 3 (който има същия извод, но използвах друг 3.3V щифт за свързване към CH_PD).

Esp-01 беше програмиран, както е показано в другия ми Instructable (вижте стъпка 3).

Стъпка 4: Приемникът - софтуер (сериен, Node Red, MQTT)

Приемникът - софтуер (сериен, Node Red, MQTT)
Приемникът - софтуер (сериен, Node Red, MQTT)
Приемникът - софтуер (сериен, Node Red, MQTT)
Приемникът - софтуер (сериен, Node Red, MQTT)
Приемникът - софтуер (сериен, Node Red, MQTT)
Приемникът - софтуер (сериен, Node Red, MQTT)

Програма за esp8266

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

Сериен порт

На Raspberry Pi трябва да активирате серийния порт (на raspbian изпълнете „sudo raspi-config“) за нормална серийна комуникация.

Името на серийния порт е:

  • Raspberry Pi Zero: /dev /ttyAMA0
  • Raspberry Pi 3: /dev /ttyS0

Можете да проверите серийния порт, като изпълните 'dmesg | grep tty 'или' ls /dev '

Червен възел

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

Изходът на серийния възел се трансформира от функционален възел, който разделя съобщението на знака '&' и задава msg.topic и msg.payload. Изходът на функцията се води към изходния възел mqtt, който изпраща съобщението до сървъра на MQTT. Обърнете внимание, че полето за тема на mqtt възела е празно, защото темата е зададена в съобщението.

Препоръчано: