Съдържание:
- Стъпка 1: Архивиране чрез WiFi и MQTT
- Стъпка 2: Дистанционното/изпращача
- Стъпка 3: Приемникът - хардуер (esp8266 и Raspberry Pi)
- Стъпка 4: Приемникът - софтуер (сериен, Node Red, MQTT)
Видео: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
В тази инструкция ще ви покажа как използвах ESP-NOW в домашната си автоматизация. В схемата можете да видите комуникационните потоци
Показвам ти:
- как работи изпращачът
- как работи приемникът
- как работи серийната комуникация с Raspberry Pi
Не показвам как работи MQTT и домашната ми автоматизация, можете да намерите други добри инструкции за това.
Кредити: Тази инструкция е вдъхновена от:
Видео #172 от Andreas Spiess
www.esploradores.com/practica-6-conexion-es…
Стъпка 1: Архивиране чрез WiFi и MQTT
Разбрах, че ESP-NOW е изключително бърз и доста надежден, но понякога се проваля. В моята програма добавих резервно копие чрез нормална WiFi и MQTT връзка.
Стъпка 2: Дистанционното/изпращача
В първата схема виждате как работи програмата на подателя:
- Esp8266 се стартира при включване или при нулиране
- ESP-NOW се инициализира
- Модулът изпраща ESP-NOW за определено време
-
Модулът проверява дали съобщението ESP-NOW е получено от приемника във функция за обратно повикване.
- Ако съобщението ESP-NOW е получено, модулът преминава в дълбок сън с ниска мощност
- Ако съобщението 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)
Описанието на приемника е разделено на две части:
- Хардуер
- Софтуер
Хардуерът
Получаващият 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)
Програма за 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 възела е празно, защото темата е зададена в съобщението.
Препоръчано:
Wifi Smart Switch ESP8266 работи с Alexa и Google Home Automation: 7 стъпки
Wifi Smart Switch ESP8266 работи с Alexa и Google Home Automation: В света на глобализацията всички се стремят към най -новите и интелигентни технологии
MQTT/Google Home Flood/WIFI сензор за вода с ESP-01: 7 стъпки
MQTT/Google Home Flood/WIFI сензор за вода с ESP-01: В тази инструкция ще ви покажа как да изградите wifi сензор за наводнение/вода с минимални разходи. Целият проект ми струва по-малко от 8 долара за части, които купувам от ebay и съществуващите ми резервни части. В този проект ще използваме ESP-01, за да осигурим Wif
Първи стъпки с Esp 8266 Esp-01 с Arduino IDE - Инсталиране на платки Esp в Arduino Ide и програмиране на Esp: 4 стъпки
Първи стъпки с Esp 8266 Esp-01 с Arduino IDE | Инсталиране на Esp платки в Arduino Ide и програмиране на Esp: В тази инструкция ще научим как да инсталираме esp8266 дъски в Arduino IDE и как да програмираме esp-01 и да качваме код в нея. Тъй като esp дъските са толкова популярни, затова се замислих да поправя инструкции за това и повечето хора се сблъскват с проблем
Sonoff B1 Firmware Home Automation Openhab Google Home: 3 стъпки
Sonoff B1 Firmware Home Automation Openhab Google Home: Много харесвам фърмуера на Tasmota за моите ключове Sonoff. Но не бях истински доволен от фърмуера на Tasmota на моя Sonoff-B1. Не успях напълно да го интегрирам в Openhab и да го контролирам чрез Google Home. Затова написах собствена фирма
MQTT/Google Home DoorBell Използване на ESP-01: 6 стъпки
MQTT/Google Home DoorBell Използване на ESP-01: Случвало ли ви се е да пропуснете да отговорите на гост, който ви звъни на вратата, само защото сте в част от къщата, която е твърде далеч, за да чуете звъненето на вратата? като мазе, спалня със затворени врати или може би сте гледали телевизия или слушали музика. Ако