Sisällysluettelo:
- Vaihe 1: Mikä on MQTT ja miten se toimii
- Vaihe 2: Raspberry Pi
- Vaihe 3: Staattisen IP -osoitteen määrittäminen
- Vaihe 4: NodeMCU
- Vaihe 5: Python -skripti
- Vaihe 6: Liitännät ja piirikaavio
- Vaihe 7: Tulos
Video: Raspberry Pi puhuu ESP8266: lle MQTT: n avulla: 8 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
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
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
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
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
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
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
Varmista, että komentosarja on käynnissä, muuten se ei voi ohjata lediä painikkeilla.
Suositeltava:
DIN -kiskoasennus Arduino YUN: lle, UNO: lle ja nanolle: 7 vaihetta
DIN -kiskokiinnitys Arduino YUN: lle, UNO: lle ja Nanolle: Joskus on hyödyllistä asentaa Arduino -projektisi pysyvästi kytkentäkaappiin - esimerkiksi kodin automaatioon tai teollisiin sovelluksiin. Tällaisissa tapauksissa ArduiBox -kotelomme Arduino Nanolle, UNO: lle ja Yun Rev2: lle voi auttaa sinua tulemaan matkaan
Lisätty todellisuus (AR) Dragonboard410c: lle tai Dragonboard820c: lle OpenCV: n ja Python 3.5: n avulla: 4 vaihetta
Lisätty todellisuus (AR) Dragonboard410c: lle tai Dragonboard820c: lle OpenCV: n ja Python 3.5: n käyttö: Tässä ohjeessa kuvataan OpenCV: n, Python 3.5: n ja Python 3.5: n riippuvuuksien asentaminen lisätyn todellisuuden sovelluksen suorittamiseen
Liike havaittu sähköposti -ilmoitus DVR: lle tai NVR: lle: 4 vaihetta
Liikkeentunnistettu sähköposti -ilmoitus DVR: lle tai NVR: lle: Tässä ohjeessa näytämme, kuinka voit määrittää liiketunnistetut sähköposti -ilmoitukset DVR: lle tai NVR: lle. Lähes jokainen rakennukseen murtautuva tietää, että ihmiset ovat turvautuneet CCTV -järjestelmien asentamiseen suojellakseen omaisuuttaan
Ilmoituslippu - loistava esittely Wi -Fi: lle, IFTTT: lle ja Huzzahille ESP8266: 9 vaihetta (kuvilla)
Ilmoituslippu - loistava esittely Wi -Fi: lle, IFTTT: lle ja Huzzahille ESP8266: Minulta puuttuu aina tärkeitä asioita … joten loin lipun. Internet of Things (IoT) -laite, joka ilmoittaa tai muistuttaa minua näistä tärkeistä asioista! Nyt katson nopeasti työpöydälleni ja näen, onko … Minulla on sähköposti, joka mainittiin tweessä
Telakointiasema T-mobile MDA: lle tai 8125: lle (ohjattu toiminto): 4 vaihetta
Telakka T-mobile MDA: lle tai 8125: lle (ohjattu toiminto): Yksinkertainen telakka T-mo MDA: lle (alias HTC Wizard). Valmistettu kokonaan pahvista ja ylimääräisestä USB -mini -USB -johdosta. Halusin telakan, mutta minulla ei ollut siihen varaa juuri nyt, joten minulla oli idea tehdä se itse. Se oli spontaani projekti, joka oli hauskaa ja hauskaa