Obsah:

Raspberry Pi, hovoriaci s ESP8266 pomocou MQTT: 8 krokov
Raspberry Pi, hovoriaci s ESP8266 pomocou MQTT: 8 krokov

Video: Raspberry Pi, hovoriaci s ESP8266 pomocou MQTT: 8 krokov

Video: Raspberry Pi, hovoriaci s ESP8266 pomocou MQTT: 8 krokov
Video: ГОВОРЯЩИЙ КАКТУС С ИСКУССТВЕННЫМ ИНТЕЛЛЕКТОМ 2024, November
Anonim
Raspberry Pi hovoriť s ESP8266 pomocou MQTT
Raspberry Pi hovoriť s ESP8266 pomocou MQTT

V tomto projekte vysvetlím, čo je protokol MQTT a ako sa používa na komunikáciu medzi zariadeniami. Potom ako praktickú ukážku ukážem, ako nastaviť systém klient a brocker, kde sa hovorí o moduloch ESP8266 a RPi navzájom alebo odoslať správu po stlačení tlačidla.

Potrebný materiál

1. Raspberry Pi 3

2. NodeMCU

3. LED dióda

4. Tlačidlo

5. Rezistory (10k, 475 ohmov)

Krok 1: Čo je MQTT a ako funguje

MQTT

MQTT je protokol na prenos údajov medzi strojmi (M2M). MQTT bol vytvorený s cieľom zhromažďovať údaje z mnohých zariadení a potom ich prenášať do IT infraštruktúry. Je ľahký, a preto je ideálny na diaľkové monitorovanie, najmä v prípade pripojení M2M, ktoré vyžadujú malú stopu kódu alebo kde je obmedzená šírka pásma siete.

Ako funguje MQTT

MQTT je protokol na publikovanie/predplatné, ktorý umožňuje zariadeniam na okrajových sieťach publikovať u makléra. Klienti sa pripájajú k tomuto maklérovi, ktorý potom sprostredkúva komunikáciu medzi týmito dvoma zariadeniami. Každé zariadenie sa môže prihlásiť na odber konkrétnych tém alebo sa zaregistrovať. Keď iný klient zverejní správu na tému predplateného, sprostredkovateľ správu prepošle každému klientovi, ktorý sa prihlásil na odber.

MQTT je obojsmerný a udržuje stavové povedomie o relácii. Ak zariadenie na okraji siete stratí konektivitu, všetci prihlásení klienti budú upozornení na funkciu „Posledná vôľa“servera MQTT, aby ktorýkoľvek autorizovaný klient v systéme mohol publikovať novú hodnotu späť na okraj siete. sieťové zariadenie so zachovaním obojsmerného pripojenia.

Projekt je rozdelený na 3 časti

Najprv vytvoríme server MQTT na RPi a nainštalujeme niektoré knižnice.

Za druhé, nainštalujeme knižnice do Arduino IDE, aby NodeMCU fungovalo s MQTT, nahráme kód a skontrolujeme, či server funguje alebo nie.

Nakoniec vytvoríme skript v Rpi, nahráme požadovaný kód do NodeMCU a spustíme skript python na ovládanie LED diód zo serverovej aj klientskej strany. Tu je server RPi a klient NodeMCU.

Krok 2: Raspberry Pi

Malinový koláč
Malinový koláč
Malinový koláč
Malinový koláč
Malinový koláč
Malinový koláč
Malinový koláč
Malinový koláč

1. Ak chcete nainštalovať najnovší server a klienta MQTT do systému RPi, aby ste mohli používať nové úložisko, najskôr importujte podpisový kľúč balíka úložiska.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key pridať mosquitto-repo.gpg.key

2. Sprístupnite úložisko pre apt.

cd /etc/apt/sources.list.d/

3. Podľa toho, akú verziu Debianu používate.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get aktualizácia

4. Nainštalujte server Mosquitto pomocou príkazu.

sudo apt-get install mosquitto

Ak sa vám pri inštalácii Mosquitta zobrazujú chyby, postupujte takto.

#################################################################

Nasledujúce balíky majú nesplnené závislosti: mosquitto: Závisí: libssl1.0.0 (> = 1.0.1), ale nie je možné ho nainštalovať Závisí od: libwebsockets3 (> = 1.2), ale nie je možné ho nainštalovať E: Nedá sa opraviť problémy, považovali ste zlomené balíčky.

#################################################################

Potom pomocou tohto príkazu vyriešte problémy.

sudo apt-opravená inštalácia

5. Po inštalácii servera MQTT nainštalujte klienta pomocou príkazu

sudo apt-get install mosquitto-clients

Služby môžete skontrolovať pomocou príkazu.

systemctl status mosquitto.service

Pretože je nainštalovaný náš server a klient MQTT. Teraz to môžeme skontrolovať pomocou prihlásenia sa na odber a publikovania. Ak sa chcete prihlásiť na odber a publikovať, môžete skontrolovať príkazy alebo navštíviť webovú stránku, ako je uvedené nižšie.

Mosquitto Sub

Pub Mosquitto

Na nainštalovanie knižnice paho-mqtt použite nasledujúci príkaz.

sudo pip install paho-mqtt

Paho

Krok 3: Ako nastaviť statickú IP adresu

Ako nastaviť statickú IP adresu
Ako nastaviť statickú IP adresu

Prejdite do adresára cd /etc a pomocou ľubovoľného editora otvorte súbor dhcpcd.conf. Na konci napíšte tieto štyri riadky.

interface eth0 static ip_address = 192.168.1.100 // ip, ktorú chcete použiť

rozhranie wlan0

statická adresa ip = 192.168.1.68

static routery = 192.168.1.1 // vaša predvolená brána

statické_domény_služby_služby = 192.168.1.1

Potom to uložte a reštartujte svoje pi.

Krok 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Nainštalujte požadované knižnice do Arduino IDE pre NodeMCU

1. Prejdite na položku Skica ==> Zahrnúť knižnicu ==> Spravovať knižnice.

2. Vyhľadajte mqtt a nainštalujte knižnicu pomocou Adafruit alebo si môžete nainštalovať ľubovoľnú knižnicu.

3. Závisí to od knižnice sleepydog, takže potrebujeme aj túto knižnicu.

Program je uvedený vyššie, len na kontrolu, či funguje alebo nie. Tu som v RPi nevytvoril žiadny skript. Na prihlásenie na odber a publikovanie používame iba príkazy. Skript na ovládanie vytvoríme neskôr.

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "VYPNUTÉ"

mosquitto_pub -h raspberrypi -t "/leds/pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "VYPNUTÉ"

mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"

-h ==> názov hostiteľa-t ==> téma

-m ==> správa

Po kontrole programu Mqtt_check nahrajte kompletný program do NodeMCU

Krok 5: Python skript

Skript Python
Skript Python
Skript Python
Skript Python

Ako som už diskutoval vyššie, potrebujeme python skript na ovládanie LED diód pomocou tlačidiel. Takže vytvoríme skript. Skript je uvedený vyššie.

Keď spustíte skript, váš skript by mal vyzerať tak, ako je znázornené na obrázku, ak kód výsledku nie je nula, potom je to chyba, môžete chybu skontrolovať na webe paho.

Krok 6: Pripojenia a schéma zapojenia

Schéma zapojenia a obvodu
Schéma zapojenia a obvodu
Schéma zapojenia a obvodu
Schéma zapojenia a obvodu

Rozhranie tlačidla, LED s NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3,3 V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katóda (-ve)

GPIO5 (D1) ===> Anóda (+ve)

Rozhranie tlačidla, LED s RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katóda (-ve)

GPIO 24 ===> Anóda (+ve)

Krok 7: Výsledok

Image
Image
Výsledok
Výsledok

Uistite sa, že je skript spustený, inak nebude môcť ovládať LED pomocou tlačidiel.

Odporúča: