Innehållsförteckning:
- Steg 1: Komponenter krävs
- Steg 2: Språk och protokoll
- Steg 3: Eclipse Mosquitto MQTT Broker
- Steg 4: Dataflöde i hela projektet
- Steg 5: Anslutning av sensorer med NodeMCU
- Steg 6: Anslutning av nedsänkbar vattenpump med ESP8266
- Steg 7: Installera Mosquitto Broker & Running Python Program i Raspberry Pi
- Steg 8: Hur fungerar MQTT?
- Steg 9: Programmering av NodeMCU och ESP8266
- Steg 10: Designa en webbsida och ansluta till SQL -databasen
- Steg 11: Slutför arbetet
Video: Green House Automation: 11 steg
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Grönhusautomatisering är ett projekt där tre parametrar för ett växthus, det vill säga jordfuktighet, temperatur och luftfuktighet, övervakas av användaren på distans helt enkelt med hjälp av en webbläsare.
Steg 1: Komponenter krävs
Några viktiga komponenter som krävs anges nedan
1. Hallon PI Modell B
2. NodeMCU Development Board
3. ESP8266 Wifi -modul
4. Fuktsensor
5. DHT11 temperatur- och fuktighetssensor
6. 5V enkelkanalsrelä
7. 5V nedsänkbar vattenpump
8. Brödbräda
9. Strömförsörjningsmodul för brödbräda
Steg 2: Språk och protokoll
- C Språk används för mikrokontrollerna.
- MQTT Messaging: MQTT står för MQ Telemetry Transport. Det är ett publicera/prenumerera, extremt enkelt och lätt meddelandeprotokoll, utformat för begränsade enheter och låg bandbredd, hög latens eller opålitliga nätverk. Designprinciperna är att minimera nätverksbandbredd och enhetens resursbehov samtidigt som de försöker säkerställa tillförlitlighet och viss grad av leveranssäkerhet. Dessa principer visar sig också göra protokollet idealiskt för den framväxande "machine-to-machine" (M2M) eller "Internet of Things" -världen för anslutna enheter och för mobila applikationer där bandbredd och batterikraft är högst.
- Python -programmet används för att automatisera vattenflödet och databasanslutningen.
Steg 3: Eclipse Mosquitto MQTT Broker
Här använde jag Mosquitto MQTT Broker för enkel meddelandekommunikation mellan noderna.
Eclipse Mosquitto är en meddelandemäklare med öppen källkod (EPL/EDL -licensierad) som implementerar MQTT -protokollversionerna 5.0, 3.1.1 och 3.1. Mosquitto är lätt och är lämplig för användning på alla enheter från enspänningsdatorer med låg effekt till fulla servrar.
MQTT -protokollet tillhandahåller en lätt metod för att utföra meddelanden med hjälp av en publicerings-/prenumerationsmodell. Detta gör den lämplig för Internet of Things -meddelanden, till exempel med lågeffektsensorer eller mobila enheter som telefoner, inbyggda datorer eller mikrokontroller.
Mosquitto -projektet tillhandahåller också ett C -bibliotek för implementering av MQTT -klienter och de mycket populära MQTT -klienterna mygg_pub och mosquitto_sub.
Steg 4: Dataflöde i hela projektet
I bilden ovan är noder
- NodeMCU
- Raspberry Pi
- ESP8266
NodeMCU är den avkännande delen av Green House & ESP8266 är den aktiverande delen som levererar vattnet när marken behöver vatten enligt sensorerna.
Raspberry PI innehåller Mosquitto Broker och en Python -klient som prenumererar på meddelandena från MQTT Broker och lagrar data i en SQL -server.
Steg 5: Anslutning av sensorer med NodeMCU
DHT11 temperatur- och fuktsensor och vattenfuktighetssensorn kan arbeta med 3,3 volt.
NodeMCU kan inte ge mer än 3,3 volt. Så sensorerna kan anslutas direkt till NodeMCU -mikrokontrollerkortet.
Steg 6: Anslutning av nedsänkbar vattenpump med ESP8266
En dränkbar vattenpump används för att tillföra vattnet när det behövs.
Vattenpumpen behöver 5 volt strömförsörjning för att den ska fungera.
Ett enda kanalrelä behövs för att ansluta motorn. När GPIO2 -stiftet på ESP8266 är aktiverat slås reläet på och levererar automatiskt vattnet med hjälp av nedsänkbar vattenpump.
Här tillhandahålls extern strömförsörjning till ESP8266 -kort, relä och nedsänkbar vattenpump.
Min fullständiga hårdvaruanslutning finns i bilden ovan.
Steg 7: Installera Mosquitto Broker & Running Python Program i Raspberry Pi
Följande är stegen för att installera Mosquitto -mäklaren i Raspberry PI
Öppna terminalen och skriv följande kommandon
sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa
sudo apt-get uppdatering
sudo apt-get install mygg
sudo apt-get install myggklienter
Det ska automatiskt starta mygg.
För att stoppa och starta tjänsten jag behövde använda
sudo service stoppa mygga
sudo service starta mygga
De flesta webbplatser jag upptäckte använde formatet.
sudo /etc/init.d/mosquitto stoppa
Steg 8: Hur fungerar MQTT?
MQTT är ett av de mest använda protokollen i IoT -projekt. Det står för Message Queuing Telemetry Transport.
Dessutom är det utformat som ett lättmeddelandeprotokoll som använder publicera/prenumerera för att utbyta data mellan klienter och servern. Dessutom är dess lilla storlek, låga energianvändning, minimerade datapaket och enkel implementering protokollet idealiskt för världen”maskin-till-maskin” eller”sakernas internet”.
Precis som alla andra internetprotokoll är MQTT baserat på klienter och en server. På samma sätt är servern killen som är ansvarig för att hantera klientens förfrågningar om att ta emot eller skicka data mellan varandra. MQTT -server kallas en mäklare och klienterna är helt enkelt de anslutna enheterna. Så:
* När en enhet (en klient) vill skicka data till mäklaren kallar vi denna operation för "publicering".
* När en enhet (en klient) vill ta emot data från mäklaren kallar vi denna operation en "prenumerera".
Steg 9: Programmering av NodeMCU och ESP8266
Nedan följer källkoden för NodeMCU och ESP8266 Microcontroller -kort
Steg 10: Designa en webbsida och ansluta till SQL -databasen
Webbsidan är utformad med HTML, CSS och PHP -språk.
PHP används för att extrahera sensoravläsningarna från databasen och visa den på HTML -sidan.
Ett pythonprogram används som hjärtat i detta projekt.
Verk som pythonprogrammet gör är följande.
- Den prenumererar på ett ämne där sensorn skickar sensoravläsningarna.
- Det publicerar vattenpumpens på/av -kommando till MQTT -mäklaren.
- Det lagrar sensoravläsningen i en SQL -databas.
Här i mitt fall finns pythonprogrammet och SQL -databasen i en bärbar dator. Webbsidan som körs via en lokal värd.
Följande är källkoden för mitt pythonprogram.
Steg 11: Slutför arbetet
Följande är de steg i vilka processen fortsätter.
- NodeMCU fungerar som avkänningsdel och avläser temperatur, luftfuktighet och markfuktighetsnivå.
- Den skickar avläsningarna till MQTT -mäklaren med ämnet "Ämne 1"
- I en bärbar dator är python -programmet igång och det prenumererar på ett ämne "Ämne 1" med MQTT -mäklaren.
- När NodeMCU skickar avläsningarna skickar Mosquitto MQTT -mäklaren omedelbart data till pythonprogrammet.
- Python -programmet beräknar sedan om det behövs vatten i Green House. Därefter lagras avläsningarna i SQL -databasen.
- Om det behövs vatten i Green House, publicerar pythonprogrammet vattenpumpens på/av -meddelande till Mosquitto MQTT -mäklaren med ämnet "Ämne 2"
- ESP8266 fungerar som ställdon. Den prenumererar på ämnet "Ämne 2" i vilket ämne pythonprogrammet publicerar meddelandet. När pythonprogrammet publicerar ett meddelande överförs meddelandet omedelbart till ESP8266. Enligt på/av -meddelandet slog det på/av den nedsänkbara vattenpumpen.
- Sista fasen för att visa liveavläsningarna på webbsidan. Webbsidan hämtar data från SQL -databasen där pythonprogrammet lagrar data direkt och visar avläsningarna på sidan.