Cuprins:

Automatizarea casei verzi: 11 pași
Automatizarea casei verzi: 11 pași

Video: Automatizarea casei verzi: 11 pași

Video: Automatizarea casei verzi: 11 pași
Video: Cat costa automatizarea unei case - SMART HOME SYSTEMS 2024, Noiembrie
Anonim
Automatizarea casei verzi
Automatizarea casei verzi

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

Componente necesare
Componente necesare
Componente necesare
Componente necesare
Componente necesare
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

Limbă și protocol
Limbă și protocol
Limbă și protocol
Limbă și protocol
Limbă și protocol
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

Eclipse Mosquitto MQTT Broker
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

  1. NodeMCU
  2. Raspberry PI
  3. 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

Conexiunea senzorilor cu NodeMCU
Conexiunea 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

Conexiunea pompei de apă submersibilă cu ESP8266
Conexiunea pompei de apă submersibilă cu ESP8266
Conexiunea pompei de apă submersibilă cu ESP8266
Conexiunea 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?

Cum funcționează MQTT?
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.

  1. Se abonează la un subiect în care senzorul trimite citirile senzorului.
  2. Publică comanda de pornire / oprire a pompei de apă către brokerul MQTT.
  3. 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

Lucrul complet
Lucrul complet

Urmează pașii în care continuă procesul.

  1. NodeMCU funcționează ca parte de detectare și citește temperatura, umiditatea și nivelul de umiditate al solului.
  2. Trimite citirile către brokerul MQTT cu un subiect „Subiect 1”
  3. Într-un laptop, programul Python rulează și se abonează la un subiect „Subiect 1” cu brokerul MQTT.
  4. Când NodeMCU trimite citirile, Mosquitto MQTT Broker trimite imediat datele către programul python.
  5. Programul Python calculează apoi dacă este nevoie de apă în Casa Verde. Apoi stochează citirile în baza de date SQL.
  6. 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”
  7. 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ă.
  8. 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: