ESP-NGAYON Home Automation Esp8266 Raspberry Pi MQTT: 4 Hakbang
ESP-NGAYON Home Automation Esp8266 Raspberry Pi MQTT: 4 Hakbang
Anonim
ESP-NGAYON Home Automation Esp8266 Raspberry Pi MQTT
ESP-NGAYON Home Automation Esp8266 Raspberry Pi MQTT

Sa Instructable na ito ipinapakita ko sa iyo kung paano ko ginamit ang ESP-NGAYON sa aking pag-aautomat sa bahay. Sa eskematiko maaari mong makita ang daloy ng komunikasyon

Ipakita ko sa iyo:

  • kung paano gumagana ang nagpadala
  • kung paano gumagana ang tumatanggap
  • kung paano gumagana ang serial na komunikasyon sa isang Raspberry Pi

Hindi ko ipinapakita kung paano gumagana ang MQTT at ang aking automation sa bahay, mahahanap mo ang iba pang magagandang tagubilin para doon.

Mga Kredito: Ang Instructable na Ito ay inspirasyon ng:

Video # 172 ni Andreas Spiess

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

Hakbang 1: Back-up Sa pamamagitan ng WiFi at MQTT

Back-up Via WiFi at MQTT
Back-up Via WiFi at MQTT

Nalaman ko na ang ESP-NGAYON ay napakabilis at lubos na maaasahan, ngunit kung minsan ay nabibigo. Sa aking programa nagdagdag ako ng isang back-up sa pamamagitan ng normal na koneksyon sa WiFi at MQTT.

Hakbang 2: Ang Remote / nagpadala

Ang Remote / nagpadala
Ang Remote / nagpadala
Ang Remote / nagpadala
Ang Remote / nagpadala
Ang Remote / nagpadala
Ang Remote / nagpadala
Ang Remote / nagpadala
Ang Remote / nagpadala

Sa unang pamamaraan makikita mo kung paano gumagana ang programa ng nagpadala:

  1. Ang esp8266 ay nagsisimula mula sa lakas pataas o mula sa pag-reset
  2. Na-initialize ang ESP-NGAYON
  3. Nagpapadala ang module ng ESP-NGAYON para sa isang tinukoy na oras
  4. Sinusuri ng modyul kung ang mensahe na ESP-NGAYON ay natanggap ng tatanggap sa isang function na call-back.

    1. Kung natanggap ang mensahe na ESP-NGAYON, ang module ay napupunta sa isang mababang lakas na mahimbing na pagtulog
    2. Kung ang mensahe na ESP-NGAYON ay hindi natanggap, ang module ay nagsisimula ng isang koneksyon sa WiFi at isang koneksyon sa MQTT bilang isang back-up na koneksyon.

Ang programa para sa nagpadala ay nasa aking Github (Master_sender.ino). Ang mga programa ay nagpapadala ng parehong paksa at mensahe para sa pag-automate ng bahay ng MQTT sa isang pinagsamang mensahe na ESP-NGAYON, na pinagsama sa isang '&' sign para sa isang madaling hatiin sa tatanggap.

Gumawa ako ng dalawang magkakaibang mga remote / nagpadala:

Nagpapadala 1: Ang esp8266 ay nasa mahimbing na pagtulog at pinapagana ng isang pag-reset. Ang humantong sa pindutan ay sindihan at lumabo kapag tapos na ang module. Kung ang boltahe ng baterya ay mababa, ang led blinks. Kung nabigo ang ESP-NGAYON, ang led blinks bago baguhin sa mga koneksyon sa WiFi / MQTT. Ang esp8266 ay pinalakas mula sa isang baterya ng LiPo na may isang HT7333 boltahe regulator sa 3.3V

Nagpapadala 2: Ang esp8266 ay pinapagana at pinapagana ng pagpindot sa pindutan. Karaniwan ang koneksyon sa ESP-NGAYON ay tapos na pagkatapos ng pindutan na 'mga pag-click'. Ang esp8266 ay direktang pinalakas mula sa isang baterya ng LiPo. Hindi ko alam kung ang esp8266 ay napinsala ng mataas na boltahe ng isang ganap na sisingilin na baterya (hanggang sa 4.2 V) kapag ito ay pinalakas sa ilang 100 ms lamang. Ito ay mas mataas pagkatapos ng mga panoorin (3.0 - 3.6V).

Tandaan: kung mababa ang lakas ng baterya, nabigo ang ESP-NGAYON.

Hakbang 3: Ang Tagatanggap - Hardware (esp8266 at Raspberry Pi)

Ang Tagatanggap - Hardware (esp8266 at Raspberry Pi)
Ang Tagatanggap - Hardware (esp8266 at Raspberry Pi)
Ang Tagatanggap - Hardware (esp8266 at Raspberry Pi)
Ang Tagatanggap - Hardware (esp8266 at Raspberry Pi)
Ang Receiver - Hardware (esp8266 at Raspberry Pi)
Ang Receiver - Hardware (esp8266 at Raspberry Pi)

Ang desczine ng tatanggap ay nahahati sa dalawang bahagi:

  1. Hardware
  2. Software

Ang hardware

Ang pagtanggap ng esp-01 ay konektado sa aking Raspberry Pi Zero na nagpapatakbo ng aking system sa automation ng bahay (Openhab2) at Node Red.

Sa eskematiko ang mga simpleng koneksyon ay ipinapakita:

  • RX ng esp-01 hanggang TX ng RasPi
  • TX ng esp-01 hanggang RX ng RasPi
  • GND sa GND
  • Ang esp-01 VCC ay pinalakas ng 3.3V pin ng Raspi
  • Sa esp-01 ang parehong RST at CH_PD ay hinila ng mataas.

Gumawa ako ng isang konektor ng interface upang madali itong mai-mount

Sa isang larawan maaari mong makita ang aking mga koneksyon sa wire sa aking Raspberry Pi 3 (na may parehong pinout, ngunit gumamit ako ng isa pang 3.3V pin upang kumonekta sa CH_PD).

Ang esp-01 ay na-program tulad ng ipinakita sa aking iba pang Instructable (tingnan ang hakbang 3).

Hakbang 4: Ang Tagatanggap - Software (Serial, Node Red, MQTT)

Ang Tatanggap - Software (Serial, Node Red, MQTT)
Ang Tatanggap - Software (Serial, Node Red, MQTT)
Ang Tagatanggap - Software (Serial, Node Red, MQTT)
Ang Tagatanggap - Software (Serial, Node Red, MQTT)
Ang Tagatanggap - Software (Serial, Node Red, MQTT)
Ang Tagatanggap - Software (Serial, Node Red, MQTT)

Programa sa esp8266

Ang programa para sa esp-01 na tatanggap ay nasa aking Github (Master_sender.ino). Ang programa ay talagang simple, inililimbag lamang nito ang natanggap na mensahe na ESP-NGAYON sa Serial port sa Raspberry Pi.

Serial port

Sa Raspberry Pi, dapat mong buhayin ang Serial Port (sa raspbian, isagawa ang 'sudo raspi-config') para sa normal na komunikasyon sa serial.

Ang pangalan ng serial port ay:

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

Maaari mong suriin ang serial port sa pamamagitan ng pagpapatakbo ng 'dmesg | grep tty 'o' ls / dev '

Node Red

Sa Node Red, piliin ang serial input Node at i-setup ang serial port (tingnan ang mga nakalakip na larawan). Tandaan ang baudrate ng serial na koneksyon, dapat itong tumugma sa baudrate tulad ng na-program sa esp8266.

Ang output ng serial node ay binago ng isang function node na hinahati ang mensahe sa tanda na '&' at itinatakda ang msg.topic at ang msg.payload. Ang output ng pagpapaandar ay humantong sa mqtt output node na nagpapadala ng mensahe sa MQTT server. Tandaan ang patlang ng paksa ng mqtt node ay blangko, dahil ang paksa ay nakatakda sa mensahe.

Inirerekumendang: