Мазмуну:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 кадам
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 кадам

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 кадам

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT: 4 кадам
Video: ESP-NOW MQTT шлюз 2024, Ноябрь
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

Бул Нускамада мен сизге үйдөгү автоматташтырууда ESP-NOW кантип колдонгонумду көрсөтөм. Схемада байланыш агымын көрө аласыз

Мен сага көрсөтөм:

  • жөнөтүүчү кантип иштейт
  • алуучу кантип иштейт
  • Raspberry Pi менен сериялык байланыш кантип иштейт

Мен MQTT жана менин үйдөгү автоматташтыруу кантип иштээрин көрсөтпөйм, бул үчүн башка жакшы көрсөтмөлөрдү таба аласыз.

Кредиттер: Бул Нускаманын жетеги менен жазылган:

Видео #172 Андреас Шпис тарабынан

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

1-кадам: WiFi жана MQTT аркылуу камдык көчүрүү

WiFi жана MQTT аркылуу камдык көчүрүү
WiFi жана MQTT аркылуу камдык көчүрүү

Мен ESP-NOW өтө тез жана ишенимдүү экенин билдим, бирок кээде иштебей калат. Менин программамда кадимки WiFi жана MQTT туташуусу аркылуу резервдик көчүрмөнү коштум.

2 -кадам: Remote/жөнөтүүчү

Remote/жөнөтүүчү
Remote/жөнөтүүчү
Remote/жөнөтүүчү
Remote/жөнөтүүчү
Remote/жөнөтүүчү
Remote/жөнөтүүчү
Remote/жөнөтүүчү
Remote/жөнөтүүчү

Биринчи схемада сиз жөнөтүүчүнүн программасы кандай иштээрин көрөсүз:

  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 катуу уйкуда жана баштапкы абалга келтирүү менен иштетилет. Модуль бүткөндө баскычтын жетеги күйөт жана күңүрт болот. Эгерде батареянын чыңалуусу төмөн болсо, анда LED жаркырайт. Эгерде ESP-NOW ишке ашпай калса, анда WiFi/MQTT туташууларына өтүүдөн мурун светодиод жарк этет. Esp8266 HT7333 чыңалуусун жөнгө салуучу LiPo батареясынан 3.3В чейин иштейт

Жөнөтүүчү 2: esp8266 өчүрүлгөн жана баскычты басуу менен иштейт. Адатта ESP-NOW туташуусу баскыч "чыкылдатуудан" кийин жасалат. Esp8266 түздөн -түз LiPo батареясынан иштейт. Мен билбейм, esp8266 бир нече 100 мс күйгүзүлгөндө, толук заряддалган батарейканын (4.2 В чейин) жогорку чыңалуусунан жабыркайт. Бул мүнөздөмөлөрдөн жогору (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 менин үйдөгү автоматташтыруу системасын (Openhab2) жана Node Redди иштетүүчү Raspberry Pi Zero менен туташкан.

Схемада жөнөкөй туташуулар көрсөтүлгөн:

  • RasPiдин TXке esp-01дин RXи
  • TX esp-01ден RasPiге RX
  • GNDден GNDге
  • Esp-01 VCC Raspi 3.3V пин менен иштейт
  • Esp-01де RST жана CH_PD экөө тең жогору тартылган.

Мен аны оңой орнотуу үчүн интерфейс туташтыргыч жасадым

Бир сүрөттө сиз менин Raspberry Pi 3 менен зым байланыштарымды көрө аласыз (ошол эле пинута бар, бирок мен CH_PDге туташуу үчүн башка 3.3V төөнөгүчтү колдондум).

Esp-01 менин башка көрсөтмөмдө көрсөтүлгөндөй программаланган (3-кадамды караңыз).

4 -кадам: Алуучу - Программалык камсыздоо (Сериялык, Кызыл түйүн, MQTT)

Алуучу - Программалык камсыздоо (Serial, Node Red, MQTT)
Алуучу - Программалык камсыздоо (Serial, Node Red, MQTT)
Алуучу - Программалык камсыздоо (Serial, Node Red, MQTT)
Алуучу - Программалык камсыздоо (Serial, Node Red, MQTT)
Алуучу - Программалык камсыздоо (Serial, Node Red, MQTT)
Алуучу - Программалык камсыздоо (Serial, Node Red, MQTT)

Esp8266 боюнча программа

Esp-01 алуучу үчүн программа менин Github (Master_sender.ino) ичинде. Программа чындыгында жөнөкөй, ал алынган ESP-NOW билдирүүсүн Serial портуна Raspberry Piге гана басып чыгарат.

Сериялык порт

Raspberry Piде сиз кадимки сериялык байланыш үчүн Serial Portту (raspbian боюнча, "sudo raspi-config" аткарыңыз) иштетишиңиз керек.

Сериялык порттун аталышы:

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

Сериялык портту 'dmesg | иштетүү менен текшере аласыз grep tty 'же' ls /dev '

Кызыл түйүн

Кызыл түйүндө сериялык кириш түйүнүн тандап, сериялык портту орнотуңуз (тиркелген сүрөттөрдү караңыз). Сериялык туташуунун байт ылдамдыгына көңүл буруңуз, бул esp8266да программаланган боддратка дал келиши керек.

Сериялык түйүндүн чыгышы "&" белгисиндеги билдирүүнү бөлүп, msg.topic жана msg.payload орноткон функция түйүнү аркылуу өзгөртүлөт. Функциянын чыгышы MQTT серверине билдирүү жөнөтүүчү mqtt чыгаруу түйүнүнө алып барат. Эскертүү mqtt түйүнүнүн тема талаасы бош, анткени тема билдирүүдө коюлган.

Сунушталууда: