Tartalomjegyzék:
- 1. lépés: Mi az MQTT és hogyan működik
- 2. lépés: Raspberry Pi
- 3. lépés: A statikus IP -cím beállítása
- 4. lépés: NodeMCU
- 5. lépés: Python -szkript
- 6. lépés: Csatlakozások és kapcsolási rajz
- 7. lépés: Eredmény
Videó: Raspberry Pi Beszél az ESP8266 -mal az MQTT használatával: 8 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:43
Ebben a projektben elmagyarázom, hogy mi az MQTT protokoll és hogyan használják az eszközök közötti kommunikációra. Ezután gyakorlati demonstrációként bemutatom, hogyan kell beállítani az ügyfél- és brokerrendszert, ahol egy ESP8266 modul és RPi beszélgetés vagy küldjön üzenetet egymásnak, ha megnyomják a gombot.
Szükséges anyag
1. Málna Pi 3
2. NodeMCU
3. LED
4. Gomb
5. Ellenállások (10k, 475 ohm)
1. lépés: Mi az MQTT és hogyan működik
MQTT
Az MQTT egy gép-gép (M2M) adatátviteli protokoll. Az MQTT -t azzal a céllal hozták létre, hogy sok eszközről gyűjtsön adatokat, majd ezeket az adatokat továbbítsa az informatikai infrastruktúrába. Könnyű, ezért ideális a távfelügyelethez, különösen olyan M2M kapcsolatokban, amelyek kis kódlábnyomot igényelnek, vagy ahol a hálózati sávszélesség korlátozott.
Hogyan működik az MQTT?
Az MQTT egy közzétételi/feliratkozási protokoll, amely lehetővé teszi a hálózat szélén lévő eszközök közzétételét egy brókernek. Az ügyfelek csatlakoznak ehhez a közvetítőhöz, amely ezután közvetíti a két eszköz közötti kommunikációt. Minden eszköz feliratkozhat vagy regisztrálhat bizonyos témákra. Amikor egy másik ügyfél üzenetet tesz közzé egy előfizetett témában, a bróker továbbítja az üzenetet minden előfizető ügyfélnek.
Az MQTT kétirányú, és fenntartja a munkamenet állapotát. Ha egy hálózati szegély eszköze elveszíti a kapcsolatot, az összes előfizetett ügyfél értesítést kap az MQTT szerver „Utolsó akarat” funkciójáról, hogy a rendszer bármely jogosult ügyfele új értéket tegyen közzé a szélén. hálózati eszköz, kétirányú kapcsolat fenntartása.
A projekt 3 részre oszlik
Először létrehozunk egy MQTT szervert az RPi -n, és telepítünk néhány könyvtárat.
Másodszor, telepítünk könyvtárakat az Arduino IDE -ben, hogy a NodeMCU működjön együtt az MQTT -vel, feltöltjük a kódot, és ellenőrizzük, hogy a szerver működik -e vagy sem.
Végül létrehozunk egy szkriptet az Rpi -ben, feltöltjük a szükséges kódot a NodeMCU -ba, és futtatjuk a python -szkriptet a ledek kiszolgálói és ügyféloldali vezérléséhez. Itt a szerver RPi, a kliens pedig NodeMCU.
2. lépés: Raspberry Pi
1. A legújabb MQTT szerver és kliens RPi -ben történő telepítéséhez az új tároló használatához először importálja a lerakatcsomag aláíró kulcsát.
wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key add mosquitto-repo.gpg.key
2. Tegye elérhetővé az adattárat az apt számára.
cd /etc/apt/sources.list.d/
3. Attól függően, hogy a Debian melyik verzióját használja.
sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget
sudo wget
sudo apt-get update
4. Telepítse a Mosquitto szervert a parancs használatával.
sudo apt-get install mosquitto
Ha ilyen hibákat kap a Mosquitto telepítésekor.
#################################################################
A következő csomagok nem teljesített függőségekkel rendelkeznek: mosquitto: Depends: libssl1.0.0 (> = 1.0.1), de nem telepíthető Függ: libwebsockets3 (> = 1.2), de nem telepíthető csomagokat.
#################################################################
Ezután használja ezt a parancsot a problémák megoldásához.
sudo apt --fix-tört telepítés
5. Az MQTT szerver telepítése után telepítse az ügyfelet a paranccsal
sudo apt-get install mosquitto-client
A szolgáltatásokat a paranccsal ellenőrizheti.
systemctl állapot mosquitto.szolgáltatás
Mivel az MQTT szerverünk és kliensünk telepítve van. Most ellenőrizhetjük a feliratkozás és közzététel használatával. Feliratkozáshoz és közzétételhez ellenőrizheti a parancsokat, vagy felkeresheti a webhelyet az alábbiak szerint.
Mosquitto Sub
Mosquitto Pub
A paho-mqtt könyvtár telepítéséhez használja az alábbi parancsot.
sudo pip install paho-mqtt
Paho
3. lépés: A statikus IP -cím beállítása
Lépjen a cd /etc könyvtárba, és nyissa meg a dhcpcd.conf fájlt bármely szerkesztővel. A végén írja le ezt a négy sort.
interface eth0 static ip_address = 192.168.1.100 // a használni kívánt ip
wlan0 interfész
statikus ip_cím = 192.168.1.68
statikus útválasztók = 192.168.1.1 // az alapértelmezett átjáró
static domain_name_servers = 192.168.1.1
Ezután mentse el, és indítsa újra a pi -t.
4. lépés: NodeMCU
Telepítse a szükséges könyvtárakat az Arduino IDE for NodeMCU számára
1. Lépjen a Vázlat ==> Könyvtár felvétele ==> Könyvtárak kezelése pontra.
2. Keresse meg az mqtt és telepítse a könyvtárat az Adafruit segítségével, vagy telepíthet bármilyen könyvtárat.
3. A sleepydog könyvtár függvénye, ezért szükségünk van erre a könyvtárra is.
A program a fenti, csak annak ellenőrzésére, hogy működik -e vagy sem. Itt nem készítettem szkriptet RPi -ben. Csak parancsokat használunk az előfizetésre és a közzétételre. Később létrehozunk egy szkriptet a vezérléshez.
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 "BE"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "OFF"
mosquitto_pub -h raspberrypi -t "/leds/esp8266" -m "TOGGLE"
-h ==> hosztnév-t ==> téma
-m ==> üzenet
Az Mqtt_check program ellenőrzése után töltse fel a teljes programot a NodeMCU -ban
5. lépés: Python -szkript
Amint fentebb tárgyaltam, szükségünk van egy python szkriptre a ledek gombokkal történő vezérléséhez. Tehát létre fogunk hozni egy szkriptet. A szkript fent található.
A szkript futtatásakor a szkriptnek a képen láthatónak kell lennie, ha az eredménykód nem nulla, akkor a hiba a paho webhelyen ellenőrizhető.
6. lépés: Csatlakozások és kapcsolási rajz
Gomb illesztése, LED NodeMCU -val
NodeMCU ===> ButtonGnd ===> Gnd
3.3V ===> PIN1
GPIO4 (D2) ===> PIN2
NodeMCU ===> LED
Gnd ===> Katód (-ve)
GPIO5 (D1) ===> Anód (+ve)
Gomb illesztése, LED RPi -vel
RPi ===> ButtonGnd ===> PIN1
GPIO 23 ===> PIN2
RPi ===> LED
Gnd ==> Katód (-ve)
GPIO 24 ===> Anód (+ve)
7. lépés: Eredmény
Győződjön meg arról, hogy a szkript fut, különben nem tudja vezérelni a ledeket a gombok segítségével.
Ajánlott:
Internet/felhővezérelt otthoni automatizálás az Esp8266 használatával (aREST, MQTT, IoT): 7 lépés (képekkel)
Internet/felhővezérelt otthoni automatizálás az Esp8266 használatával (aREST, MQTT, IoT): MINDEN forrás a http://arest.io/ számára a felhőszolgáltatáshoz !! Az IoT a világ legtöbbet tárgyalt témája jelenleg !! A felhőalapú szerverek és szolgáltatások, amelyek ezt lehetővé teszik, a mai világ vonzó pontjai … A TÁVOLSÁGI KORLÁTOZÁS KIMUTATÁSA volt és van
Otthoni automatizálás az MQTT és az ESP8266 használatával: 6 lépés
Otthonautomatizálás az MQTT és az ESP8266 használatával: Napjainkban az otthoni automatizálás az IoT (tárgyak internete) felkapott korszakában van. Mindenki megpróbálja automatizálni az otthont valamilyen módon, akkor ez lehet távirányítható vagy kézi. És ami megkönnyíti számukra az életet. Vannak emberek technikái az irányításra
A gyorsulás felügyelete a Raspberry Pi és az AIS328DQTR használatával Python használatával: 6 lépés
A gyorsulás nyomon követése a Raspberry Pi és az AIS328DQTR használatával Python használatával: A gyorsulás véges, azt hiszem, a fizika egyes törvényei szerint.- Terry Riley A gepárd elképesztő gyorsulást és gyors sebességváltozásokat használ üldözés közben. A leggyorsabb lény a parton időnként kihasználja csúcssebességét a zsákmány elkapására. Az
Hozzon létre egy IPhone -alkalmazást, amely beszél a részecskehálóval: 4 lépés
Hozzon létre egy IPhone alkalmazást, amely beszél a részecskehálóval: Ebben a projektben megtanulhatja, hogyan kell betölteni egy olyan alkalmazást az iPhone készülékére, amely közvetlenül a 3. generációs részecskeháló táblához beszél. Kevesebb mint 20 percet vesz igénybe az időből. Ezenkívül azonnal elkezdheti a bütykölést !! Kezdjük el. Dolgok, amiket nem
Fém beszél állványok, hegesztés nélkül: 9 lépés (képekkel)
Fém beszél állványok, hegesztés nélkül: Régen volt ilyen négy kerek csöves fém hangszóró állványom, és nagyon szerettem a dizájnt. De amikor más helyre költöztem, "varázslatos" elveszett. Nemrég megjavítottam a régi hifi -t, és ugyanazokat a hangszóróállványokat akartam, de