Cuprins:
- Pasul 1: Componente necesare
- Pasul 2: Limbă și protocol
- Pasul 3: Eclipse Mosquitto MQTT Broker
- Pasul 4: Fluxul de date în întregul proiect
- Pasul 5: Conectarea senzorilor cu NodeMCU
- Pasul 6: Conectarea pompei de apă submersibilă cu ESP8266
- Pasul 7: Instalarea programului Mosquitto Broker și Rularea Python în Raspberry Pi
- Pasul 8: Cum funcționează MQTT?
- Pasul 9: Programarea NodeMCU și ESP8266
- Pasul 10: Proiectarea unei pagini web și conectarea la baza de date SQL
- Pasul 11: Finalizarea lucrului
Video: Automatizarea casei verzi: 11 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Automatizarea serelor este un proiect în care trei parametri ai unei sere, adică Umiditatea solului, temperatura și umiditatea, sunt monitorizați de utilizator de la distanță, pur și simplu utilizând un browser web.
Pasul 1: Componente necesare
Unele componente esențiale necesare sunt enumerate mai jos
1. Raspberry PI Model B
2. Consiliul de dezvoltare NodeMCU
3. Modulul ESP8266 Wifi
4. Senzor de umiditate
5. Senzor de temperatură și umiditate DHT11
6. Releu monocanal 5V
7. Pompa de apă submersibilă de 5V
8. Placă de pâine
9. Modulul de alimentare cu energie a plăcii pentru pâine
Pasul 2: Limbă și protocol
- Limbajul C este utilizat pentru microcontrolere.
- Mesagerie MQTT: MQTT înseamnă MQ Telemetry Transport. Este un protocol de mesagerie de publicare / abonare, extrem de simplu și ușor, conceput pentru dispozitive restricționate și rețele cu lățime de bandă redusă, latență ridicată sau nesigure. Principiile de proiectare sunt de a minimiza lățimea de bandă a rețelei și cerințele de resurse ale dispozitivului, încercând totodată să asigure fiabilitatea și un anumit grad de asigurare a livrării. Aceste principii se dovedesc a face, de asemenea, protocolul ideal al lumii emergente „de la mașină la mașină” (M2M) sau „Internetul obiectelor” al dispozitivelor conectate și pentru aplicațiile mobile în care lățimea de bandă și puterea bateriei sunt la un nivel superior.
- Programul Python este utilizat pentru automatizarea fluxului de apă și a conectivității bazei de date.
Pasul 3: Eclipse Mosquitto MQTT Broker
Aici am folosit Mosquitto MQTT Broker pentru comunicarea ușoară a mesajelor între noduri.
Eclipse Mosquitto este un broker de mesaje open source (licențiat EPL / EDL) care implementează protocolul MQTT versiunile 5.0, 3.1.1 și 3.1. Mosquitto este ușor și este potrivit pentru utilizare pe toate dispozitivele, de la computere cu o singură placă de putere redusă la servere complete.
Protocolul MQTT oferă o metodă ușoară de a efectua mesaje utilizând un model de publicare / abonare. Acest lucru îl face potrivit pentru mesageria Internet of Things, cum ar fi cu senzori de putere redusă sau dispozitive mobile precum telefoane, computere încorporate sau microcontrolere.
Proiectul Mosquitto oferă, de asemenea, o bibliotecă C pentru implementarea clienților MQTT și clienții MQTT din linia de comandă mosquitto_pub și mosquitto_sub foarte populari.
Pasul 4: Fluxul de date în întregul proiect
În imaginea de mai sus nodurile sunt
- NodeMCU
- Raspberry PI
- ESP8266
NodeMCU este partea de detectare a Casei Verzi și ESP8266 este partea de acționare care furnizează apă atunci când solul are nevoie de apă conform senzorilor.
Raspberry PI conține Mosquitto Broker și un client Python care subscrie mesajele provenite de la MQTT Broker și stochează datele într-un server SQL.
Pasul 5: Conectarea senzorilor cu NodeMCU
Senzorul de temperatură și umiditate DHT11 și senzorul de umiditate al apei pot funcționa la 3,3 volți.
NodeMCU nu poate oferi mai mult de 3,3 volți. Deci, senzorii pot fi conectați direct cu placa de microcontroler NodeMCU.
Pasul 6: Conectarea pompei de apă submersibilă cu ESP8266
O pompă submersibilă de apă este utilizată pentru a furniza apa ori de câte ori este nevoie.
Pompa de apă are nevoie de alimentare de 5 volți pentru funcționarea sa.
Pentru conectarea motorului este necesar un releu cu un singur canal. Când pinul GPIO2 al ESP8266 este activat, releul este pornit și alimentează automat apa folosind pompa submersibilă de apă.
Aici sursa de alimentare externă este furnizată către placa ESP8266, releu și pompa submersibilă de apă.
Conexiunea mea hardware completă este în imaginea de mai sus.
Pasul 7: Instalarea programului Mosquitto Broker și Rularea Python în Raspberry Pi
Urmează pașii pentru instalarea brokerului Mosquitto în Raspberry PI
Deschideți terminalul și tastați următoarele comenzi
sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa
sudo apt-get update
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
Ar trebui să pornească automat mosquitto.
Pentru a opri și a începe serviciul pe care trebuia să îl folosesc
sudo service stop mosquitto
sudo service începe mosquitto
Cele mai multe site-uri am descoperit unde folosesc formatul.
sudo /etc/init.d/mosquitto stop
Pasul 8: Cum funcționează MQTT?
MQTT este unul dintre cele mai utilizate protocoale în proiectele IoT. Reprezintă „Message Queuing Telemetry Transport”.
În plus, este conceput ca un protocol ușor de mesagerie care utilizează operații de publicare / abonare pentru a face schimb de date între clienți și server. Mai mult, dimensiunile reduse, consumul redus de energie, pachetele de date minimizate și ușurința implementării fac protocolul ideal pentru lumea „de la mașină la mașină” sau „Internetul obiectelor”.
Ca orice alt protocol de internet, MQTT se bazează pe clienți și pe un server. În mod similar, serverul este tipul care este responsabil pentru gestionarea solicitărilor clientului de a primi sau a trimite date între ele. Serverul MQTT este numit broker, iar clienții sunt pur și simplu dispozitivele conectate.
* Când un dispozitiv (un client) dorește să trimită date brokerului, numim această operațiune „publicare”.
* Când un dispozitiv (un client) dorește să primească date de la broker, numim această operațiune „abonare”.
Pasul 9: Programarea NodeMCU și ESP8266
Următoarele sunt codul sursă pentru placa de microcontroler NodeMCU și ESP8266
Pasul 10: Proiectarea unei pagini web și conectarea la baza de date SQL
Pagina Web este proiectată utilizând limbaj HTML, CSS și PHP.
PHP este folosit pentru a extrage citirile senzorilor din baza de date și a le afișa în pagina HTML.
Un program python este folosit ca bază a acestui proiect.
Lucrările care fac programul Python sunt următoarele.
- Se abonează la un subiect în care senzorul trimite citirile senzorului.
- Publică comanda de pornire / oprire a pompei de apă către brokerul MQTT.
- Stochează citirea senzorului într-o bază de date SQL.
Aici, în cazul meu, programul python și baza de date SQL sunt prezente într-un laptop. Pagina web care rulează printr-o gazdă locală.
Urmează codul sursă al programului meu Python.
Pasul 11: Finalizarea lucrului
Urmează pașii în care continuă procesul.
- NodeMCU funcționează ca parte de detectare și citește temperatura, umiditatea și nivelul de umiditate al solului.
- Trimite citirile către brokerul MQTT cu un subiect „Subiect 1”
- Într-un laptop, programul Python rulează și se abonează la un subiect „Subiect 1” cu brokerul MQTT.
- Când NodeMCU trimite citirile, Mosquitto MQTT Broker trimite imediat datele către programul python.
- Programul Python calculează apoi dacă este nevoie de apă în Casa Verde. Apoi stochează citirile în baza de date SQL.
- Dacă este nevoie de apă în Casa Verde, atunci programul python publică mesajul de pornire / oprire a pompei de apă către brokerul Mosquitto MQTT cu un subiect „Subiect 2”
- ESP8266 funcționează ca un actuator. Acesta se abonează la subiectul „Subiectul 2” în care subiect programul Python publică mesajul. Când programul Python publică orice mesaj, mesajul a fost imediat transferat la ESP8266. Conform mesajului de pornire / oprire, aceasta a pornit / oprit pompa submersibilă de apă.
- Ultima fază pentru afișarea citirilor live în pagina web. Pagina web preia datele din baza de date SQL în care programul python stochează direct datele și afișează citirile în pagină.
Recomandat:
Buton de 5 dolari pentru automatizarea casei: 4 pași
Buton de automatizare a locuinței de 5 USD: un buton de automatizare de domiciliu de 5 USD Uneori cea mai simplă soluție este un singur buton. Ne-am dorit o modalitate ușoară de a declanșa o rutină de „culcare” pe hub-ul nostru de automatizare la domiciliu (Hubitat Elevation), care stinge majoritatea luminilor, le setează pe altele la niveluri specifice și
Monitorizarea casei verzi cu IOT: 5 pași
Monitorizarea Casei Verzi cu IOT: Când vine vorba de agricultură, monitorizarea temperaturii & umiditatea plantelor este un factor important pentru supraviețuirea lor. În prezent, oamenii folosesc termometre atașate într-o seră, astfel încât fermierii să poată măsura temperatura. Cu toate acestea, această aplicație manuală
O modalitate extrem de simplă de a începe cu automatizarea casei folosind module DIY: 6 pași
O modalitate extrem de simplă de a începe cu automatizarea casei folosind module DIY: Am fost plăcut surprins când am decis să încerc să adaug niște senzori DIY asistentului de acasă. Utilizarea ESPHome este extrem de simplă și în această postare vom învăța cum să controlăm un pin GPIO și, de asemenea, să obținem temperatura și amp; date privind umiditatea de la un wireless n
Spargerea unei divizări LG Ducted pentru automatizarea casei: 8 pași (cu imagini)
Spargerea unei divizări LG Ducted pentru automatizarea casei: în primul rând - Acesta nu este un alt hack de emulare a telecomenzii cu infraroșu. AC-ul meu nu are o interfață utilizabilă concepută pentru niciun fel de control, în afară de comenzile inteligente montate pe perete. Am un sistem de divizare inversă LG Ducted în
Noțiuni de bază despre automatizarea casei: 6 pași (cu imagini)
Noțiuni de bază despre automatizarea casei: Bună ziua tuturor. Această instrucțiune vă va ghida să înțelegeți noțiunile de bază ale Home Automation. Deoarece acesta este de nivel de bază, vom folosi doar Arduino și câteva alte componente