Sadržaj:
- Korak 1: Potrebne komponente
- Korak 2: Jezik i protokol
- Korak 3: Eclipse Mosquitto MQTT posrednik
- Korak 4: Tok podataka u cijelom projektu
- Korak 5: Povezivanje senzora s NodeMCU
- Korak 6: Spajanje potopljene pumpe za vodu s ESP8266
- Korak 7: Instaliranje Mosquitto brokera i pokretanje Python programa u Raspberry Pi
- Korak 8: Kako funkcionira MQTT?
- Korak 9: Programiranje NodeMCU i ESP8266
- Korak 10: Dizajniranje web stranice i povezivanje sa SQL bazom podataka
- Korak 11: Dovršite rad
Video: Automatizacija staklenika: 11 koraka
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Automatizacija staklenika je projekt gdje tri parametra staklenika, odnosno vlažnost tla, temperatura i vlažnost, korisnik nadzire daljinski, jednostavno pomoću web preglednika.
Korak 1: Potrebne komponente
Neke bitne komponente su navedene u nastavku
1. Malina PI Model B
2. Odbor za razvoj NodeMCU -a
3. ESP8266 Wifi modul
4. Senzor vlage
5. DHT11 Senzor temperature i vlažnosti
6. 5V jednokanalni relej
7. Potopna pumpa za vodu 5V
8. Bread Board
9. Modul za napajanje ploče za kruh
Korak 2: Jezik i protokol
- C Jezik se koristi za mikrokontrolere.
- MQTT poruke: MQTT označava MQ telemetrijski transport. To je izuzetno jednostavan i lagan protokol razmjene poruka za objavljivanje/pretplatu, dizajniran za ograničene uređaje i mreže niske propusnosti, velike latencije ili nepouzdane. Principi dizajna su da minimiziraju propusnost mreže i zahtjeve resursa uređaja, pokušavajući pritom osigurati pouzdanost i određeni stupanj sigurnosti isporuke. Pokazalo se da ovi principi također čine protokol idealnim za svijet povezanih uređaja "mašina za stroj" (M2M) ili "Internet stvari", te za mobilne aplikacije u kojima su propusnost i snaga baterije na prvom mjestu.
- Python program se koristi za automatizaciju protoka vode i povezivanja baze podataka.
Korak 3: Eclipse Mosquitto MQTT posrednik
Ovdje sam upotrijebio Mosquitto MQTT Broker za laku komunikaciju poruka između čvorova.
Eclipse Mosquitto je posrednik za poruke otvorenog koda (licenciran EPL/EDL) koji implementira verzije 5.0, 3.1.1 i 3.1 protokola MQTT. Mosquitto je lagan i pogodan je za upotrebu na svim uređajima, od single board računara male snage do punih servera.
MQTT protokol pruža lagan način slanja poruka pomoću modela objavljivanja/pretplate. To ga čini pogodnim za razmjenu poruka Interneta stvari, poput senzora male snage ili mobilnih uređaja, poput telefona, ugrađenih računara ili mikro kontrolera.
Projekt Mosquitto također nudi C biblioteku za implementaciju MQTT klijenata, te vrlo popularne klijente iz komande MskTto_sub mosquitto_pub i mosquitto_sub.
Korak 4: Tok podataka u cijelom projektu
Na gornjoj slici čvorovi su
- NodeMCU
- Raspberry PI
- ESP8266
NodeMCU je osjetljivi dio Zelene kuće, a ESP8266 je pokretački dio koji opskrbljuje vodu kada zemljištu treba voda prema senzorima.
Raspberry PI sadrži Mosquitto Broker i Python klijent koji pretplaćuje poruke koje dolaze od MQTT brokera i pohranjuje podatke na SQL server.
Korak 5: Povezivanje senzora s NodeMCU
Senzor temperature i vlažnosti DHT11 i senzor vlage vode mogu raditi na 3,3 volta.
NodeMCU ne može dati više od 3,3 volta. Tako se senzori mogu direktno povezati s pločom mikrokontrolera NodeMCU.
Korak 6: Spajanje potopljene pumpe za vodu s ESP8266
Potopna pumpa za vodu koristi se za opskrbu vodom kad god je to potrebno.
Za rad pumpe za vodu potrebno je napajanje od 5 volti.
Za povezivanje motora potreban je jednokanalni relej. Kada se aktivira GPIO2 pin ESP8266, relej se uključuje i automatski napaja vodu pomoću potopljene pumpe za vodu.
Ovdje se pruža vanjsko napajanje ploči ESP8266, releju i potopnoj pumpi za vodu.
Moja kompletna hardverska veza je na gornjoj slici.
Korak 7: Instaliranje Mosquitto brokera i pokretanje Python programa u Raspberry Pi
Slijede koraci za instaliranje brokera Mosquitto u Raspberry PI
Otvorite terminal i upišite sljedeće naredbe
sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Automatski bi trebao pokrenuti komarac.
Za zaustavljanje i pokretanje usluge koju sam trebao koristiti
sudo service stop mosquitto
sudo service start mosquitto
Većina stranica koje sam otkrio koriste format.
sudo /etc/init.d/mosquitto stop
Korak 8: Kako funkcionira MQTT?
MQTT je jedan od najčešće korištenih protokola u IoT projektima. To znači telemetrijski transport u redu poruka.
Osim toga, dizajniran je kao lagani protokol za razmjenu poruka koji koristi operacije objavljivanja/pretplate za razmjenu podataka između klijenata i poslužitelja. Nadalje, njegove male veličine, niska potrošnja energije, minimizirani paketi podataka i jednostavnost implementacije čine protokol idealnim za svijet "mašina-za-stroj" ili "Internet stvari".
Kao i svaki drugi internetski protokol, MQTT se temelji na klijentima i poslužitelju. Slično, poslužitelj je čovjek koji je odgovoran za rješavanje klijentovih zahtjeva za primanje ili slanje podataka između sebe. MQTT poslužitelj se naziva posrednikom, a klijenti su jednostavno povezani uređaji. Dakle:
* Kada uređaj (klijent) želi poslati podatke posredniku, ovu operaciju nazivamo "objavom".
* Kada uređaj (klijent) želi primiti podatke od brokera, ovu operaciju nazivamo "pretplatom".
Korak 9: Programiranje NodeMCU i ESP8266
Slijedi izvorni kod za ploču mikrokontrolera NodeMCU i ESP8266
Korak 10: Dizajniranje web stranice i povezivanje sa SQL bazom podataka
Web stranica je dizajnirana korištenjem HTML, CSS i PHP jezika.
PHP se koristi za izdvajanje očitanja senzora iz baze podataka i njihovo prikazivanje na HTML stranici.
Python program se koristi kao srce ovog projekta.
Radovi koje radi program python su sljedeći.
- Pretplaćuje se na temu u kojoj senzor šalje očitanja senzora.
- On objavljuje naredbu za uključivanje/isključivanje pumpe za vodu posredniku MQTT.
- Pohranjuje očitanje senzora u SQL bazu podataka.
Ovdje je u mom slučaju program python i SQL baza podataka prisutni na prijenosnom računaru. Web stranica radi preko lokalnog domaćina.
Slijedi izvorni kod mog programa python.
Korak 11: Dovršite rad
Slijede koraci u kojima se proces odvija.
- NodeMCU radi kao osjetljivi dio i očitava temperaturu, vlažnost i nivo vlažnosti tla.
- Šalje očitanja MQTT posredniku s temom "Tema 1"
- Na prijenosnom računaru je pokrenut program python koji se pretplaćuje na temu "Tema 1" s posrednikom MQTT.
- Kada NodeMCU pošalje očitanja, Mosquitto MQTT posrednik odmah šalje podatke u program python.
- Python program zatim izračunava ima li vode potrebne u Zelenoj kući. Zatim pohranjuje očitanja u SQL bazu podataka.
- Ako je voda potrebna u Zelenoj kući, tada program python objavljuje poruku o uključivanju/isključivanju pumpe za vodu brokeru Mosquitto MQTT s temom "Tema 2"
- ESP8266 radi kao pokretač. Pretplaćuje se na temu "Tema 2" u kojoj temi program python objavljuje poruku. Kada program python objavi bilo koju poruku, poruka se odmah prenosi na ESP8266. Prema poruci za uključivanje/isključivanje, uključio/isključio je potopnu pumpu za vodu.
- Zadnja faza za prikaz čitanja uživo na web stranici. Web stranica preuzima podatke iz SQL baze podataka u koju program python pohranjuje podatke izravno i prikazuje očitanja na stranici.