Sisällysluettelo:

Raspberry Pi puhuu ESP8266: lle MQTT: n avulla: 8 vaihetta
Raspberry Pi puhuu ESP8266: lle MQTT: n avulla: 8 vaihetta

Video: Raspberry Pi puhuu ESP8266: lle MQTT: n avulla: 8 vaihetta

Video: Raspberry Pi puhuu ESP8266: lle MQTT: n avulla: 8 vaihetta
Video: BTT GTR v1.0/M5 v1.0 - Basics 2024, Marraskuu
Anonim
Raspberry Pi puhuu ESP8266: lle MQTT: n avulla
Raspberry Pi puhuu ESP8266: lle MQTT: n avulla

Tässä projektissa selitän, mikä on MQTT -protokolla ja miten sitä käytetään laitteiden väliseen kommunikointiin, minkä jälkeen esittelen käytännön esimerkkinä, kuinka asennetaan asiakas- ja välitysjärjestelmä, jossa ESP8266 -moduuli ja RPi -keskustelu toisilleen tai lähettää viestin, kun painiketta painetaan.

Tarvittava materiaali

1. Vadelma Pi 3

2. NodeMCU

3. LED

4. Painike

5. vastukset (10k, 475 ohm)

Vaihe 1: Mikä on MQTT ja miten se toimii

MQTT

MQTT on koneiden välinen (M2M) tiedonsiirtoprotokolla. MQTT luotiin tavoitteena kerätä tietoja monilta laitteilta ja siirtää tiedot IT -infrastruktuuriin. Se on kevyt ja siksi ihanteellinen etävalvontaan erityisesti M2M -yhteyksissä, jotka vaativat pienen koodijalanjäljen tai joissa verkon kaistanleveys on rajallinen.

Kuinka MQTT toimii

MQTT on julkaisu/tilausprotokolla, jonka avulla verkon reunalaitteet voivat julkaista välittäjälle. Asiakkaat muodostavat yhteyden tähän välittäjään, joka välittää sitten kahden laitteen välisen viestinnän. Jokainen laite voi tilata tai rekisteröityä tiettyihin aiheisiin. Kun toinen asiakas julkaisee viestin tilatusta aiheesta, välittäjä välittää viestin kaikille tilaajille.

MQTT on kaksisuuntainen ja ylläpitää tilatilaista tietoisuutta. Jos verkon reunalaite menettää yhteyden, kaikille tilattuille asiakkaille ilmoitetaan MQTT-palvelimen "Last Will and Testament" -ominaisuudesta, jotta kaikki järjestelmän valtuutetut asiakkaat voivat julkaista uuden arvon takaisin verkkolaite, joka säilyttää kaksisuuntaisen yhteyden.

Hanke on jaettu 3 osaan

Ensinnäkin luomme RPI: lle MQTT -palvelimen ja asennamme joitain kirjastoja.

Toiseksi asennamme kirjastot Arduino IDE: hen, jotta NodeMCU toimisi MQTT: n kanssa, lataa koodi ja tarkista, toimiiko palvelin vai ei.

Lopuksi luomme komentosarjan Rpi: ssä, lataamme vaaditun koodin NodeMCU: han ja suoritamme python -komentosarjan ohjaamaan ledejä sekä palvelimelta että asiakaspuolelta. Tässä palvelin on RPi ja asiakas on NodeMCU.

Vaihe 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Jos haluat asentaa uusimman MQTT -palvelimen ja -asiakasohjelman RPi: ssä, uuden arkiston käyttämiseksi sinun on ensin tuotava arkistopaketin allekirjoitusavain.

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

2. Aseta arkisto apt: n saataville.

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

3. Riippuen käyttämästäsi Debian -versiosta.

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

sudo wget

sudo apt-get päivitys

4. Asenna Mosquitto -palvelin komennolla.

sudo apt-get install mosquitto

Jos saat virheitä Mosquiton asennuksessa näin.

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

Seuraavissa paketeissa on täyttämättömiä riippuvuuksia: mosquitto: Depends: libssl1.0.0 (> = 1.0.1), mutta sitä ei voi asentaa. Riippuu: libwebsockets3 (> = 1.2), mutta sitä ei voi asentaa paketteja.

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

Käytä sitten tätä komentoa ongelmien korjaamiseen.

sudo apt --fix-rikki asennus

5. Kun olet asentanut MQTT -palvelimen, asenna asiakas komennolla

sudo apt-get install mosquitto-clientit

Voit tarkistaa palvelut komennolla.

systemctl status mosquitto.service

Koska MQTT -palvelin ja asiakas on asennettu. Nyt voimme tarkistaa sen tilaamalla ja julkaisemalla. Tilaa ja julkaise voit tarkistaa komennot tai käydä verkkosivustolla alla kuvatulla tavalla.

Mosquitto Sub

Pubi Mosquitto

Asenna paho-mqtt-kirjasto käyttämällä alla olevaa komentoa.

sudo pip asenna paho-mqtt

Paho

Vaihe 3: Staattisen IP -osoitteen määrittäminen

Staattisen IP -osoitteen määrittäminen
Staattisen IP -osoitteen määrittäminen

Siirry hakemistoon cd /etc ja avaa tiedosto dhcpcd.conf millä tahansa editorilla. Kirjoita lopuksi nämä neljä riviä.

käyttöliittymä eth0 static ip_address = 192.168.1.100 // jota haluat käyttää

käyttöliittymä wlan0

staattinen ip_address = 192.168.1.68

staattiset reitittimet = 192.168.1.1 // oletusyhdyskäytäväsi

staattinen domain_name_servers = 192.168.1.1

Tallenna sen jälkeen ja käynnistä pi uudelleen.

Vaihe 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

Asenna tarvittavat kirjastot Arduino IDE: hen NodeMCU: lle

1. Siirry kohtaan Luonnos ==> Sisällytä kirjasto ==> Hallitse kirjastoja.

2. Hae mqtt ja asenna kirjasto Adafruutin avulla tai voit asentaa minkä tahansa kirjaston.

3. Se riippuu sleepydog -kirjastosta, joten tarvitsemme myös tämän kirjaston.

Ohjelma on annettu yllä, vain sen tarkistamiseksi, toimiiko se vai ei. Tässä en ole luonut mitään komentosarjaa RPi: ssä. Käytämme vain komentoja tilataksemme ja julkaistaksemme. Luomme komentosarjan hallintaa varten myöhemmin.

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

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

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 "OFF"

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

-h ==> isäntänimi-t ==> aihe

-m ==> viesti

Kun olet tarkistanut Mqtt_check -ohjelman, lataa koko ohjelma NodeMCU: ssa

Vaihe 5: Python -skripti

Python -skripti
Python -skripti
Python -skripti
Python -skripti

Kuten edellä keskustelin, tarvitsemme python -komentosarjan ledien ohjaamiseen painikkeilla. Joten aiomme luoda komentosarjan. Skripti on esitetty yllä.

Kun suoritat komentosarjan, komentosarjasi pitäisi näyttää kuvassa esitetyltä, jos tuloskoodi ei ole nolla, niin se on virhe, jonka voit tarkistaa paho -verkkosivustolta.

Vaihe 6: Liitännät ja piirikaavio

Liitännät ja piirikaavio
Liitännät ja piirikaavio
Liitännät ja piirikaavio
Liitännät ja piirikaavio

Painikkeiden liitäntä, LED ja NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Katodi (-ve)

GPIO5 (D1) ===> Anodi (+ve)

Painikkeiden liitäntä, LED RPi: llä

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Katodi (-ve)

GPIO 24 ===> Anodi (+ve)

Vaihe 7: Tulos

Image
Image
Tulos
Tulos

Varmista, että komentosarja on käynnissä, muuten se ei voi ohjata lediä painikkeilla.

Suositeltava: