Kazalo:

Avtomatizacija rastlinjakov: 11 korakov
Avtomatizacija rastlinjakov: 11 korakov

Video: Avtomatizacija rastlinjakov: 11 korakov

Video: Avtomatizacija rastlinjakov: 11 korakov
Video: Такое Увидишь Раз в Жизни! Случаи на Дороге Снятые на Камеру 2024, Julij
Anonim
Avtomatizacija rastlinjakov
Avtomatizacija rastlinjakov

Avtomatizacija rastlinjakov je projekt, pri katerem uporabnik na daljavo preprosto spremlja tri parametre rastlinjaka, in sicer vlažnost tal, temperaturo in vlažnost, preprosto z uporabo spletnega brskalnika.

1. korak: potrebne komponente

Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente
Potrebne komponente

Spodaj so navedene nekatere potrebne komponente

1. Malina PI Model B

2. Razvojni odbor NodeMCU

3. ESP8266 modul Wifi

4. Senzor vlage

5. Senzor temperature in vlažnosti DHT11

6. 5V enokanalni rele

7. 5V potopna vodna črpalka

8. Krušna deska

9. Napajalni modul za ploščo za kruh

Korak: Jezik in protokol

Jezik in protokol
Jezik in protokol
Jezik in protokol
Jezik in protokol
Jezik in protokol
Jezik in protokol
  • Za mikro krmilnike se uporablja jezik C.
  • Sporočila MQTT: MQTT pomeni MQ Telemetry Transport. To je izredno preprost in lahek protokol za pošiljanje sporočil za objavo/naročnino, zasnovan za omejene naprave in nizko pasovno širino, visoke zamude ali nezanesljiva omrežja. Načela oblikovanja so čim manjša pasovna širina omrežja in potrebe po virih naprav, hkrati pa poskušati zagotoviti zanesljivost in določeno stopnjo zagotovila dostave. Iz teh načel se je izkazalo, da je protokol idealen tudi za nastajajoči svet povezanih naprav "med stroji" (M2M) ali "internet stvari" in za mobilne aplikacije, pri katerih sta pasovna širina in moč baterije na prvem mestu.
  • Program Python se uporablja za avtomatizacijo pretoka vode in povezljivosti z zbirko podatkov.

3. korak: Posrednik Eclipse Mosquitto MQTT

Posrednik MQTT Eclipse Mosquitto
Posrednik MQTT Eclipse Mosquitto

Tukaj sem za preprosto komunikacijo sporočil med vozlišči uporabil posrednik Mosquitto MQTT.

Eclipse Mosquitto je odprtokodni posrednik sporočil (z licenco EPL/EDL), ki izvaja protokol MQTT različic 5.0, 3.1.1 in 3.1. Mosquitto je lahek in je primeren za uporabo na vseh napravah, od enosmernih računalnikov z nizko porabo energije do polnih strežnikov.

Protokol MQTT zagotavlja lahek način pošiljanja sporočil z uporabo modela objave/naročnine. Zaradi tega je primeren za pošiljanje sporočil Internet of Things, na primer s senzorji za nizko porabo energije ali mobilnimi napravami, kot so telefoni, vgrajeni računalniki ali mikro krmilniki.

Projekt Mosquitto ponuja tudi knjižnico C za izvajanje odjemalcev MQTT in zelo priljubljene odjemalce ukazne vrstice mosquitto_pub in mosquitto_sub.

4. korak: Pretok podatkov v celotnem projektu

Na zgornji sliki so vozlišča

  1. NodeMCU
  2. Malina PI
  3. ESP8266

NodeMCU je zaznavni del rastlinjaka, ESP8266 pa je aktivirni del, ki oskrbuje vodo, ko zemlja potrebuje vodo v skladu s senzorji.

Raspberry PI vsebuje posrednika Mosquitto in odjemalca Python, ki naroči sporočila, ki prihajajo od posrednika MQTT, in shranjuje podatke v strežnik SQL.

5. korak: Povezava senzorjev z NodeMCU

Povezava senzorjev z NodeMCU
Povezava senzorjev z NodeMCU

Senzor temperature in vlažnosti DHT11 ter senzor vlažnosti vode lahko delujeta na 3,3 volta.

NodeMCU ne more zagotoviti več kot 3,3 volta. Tako so senzorji lahko neposredno povezani z mikrokrmilno ploščo NodeMCU.

6. korak: Povezava potopne vodne črpalke z ESP8266

Povezava potopne vodne črpalke z ESP8266
Povezava potopne vodne črpalke z ESP8266
Povezava potopne vodne črpalke z ESP8266
Povezava potopne vodne črpalke z ESP8266

Potopna vodna črpalka se uporablja za oskrbo z vodo, kadar koli je to potrebno.

Vodna črpalka za svoje delovanje potrebuje 5 voltno napajanje.

Za priključitev motorja je potreben enokanalni rele. Ko je vtič GPIO2 ESP8266 aktiviran, se rele vklopi in samodejno dovaja vodo s potopno vodno črpalko.

Tu je zunanji vir napajanja na plošči ESP8266, releju in potopni vodni črpalki.

Moja celotna strojna povezava je na zgornji sliki.

7. korak: Namestitev programa Mosquitto Broker & Running Python Program v Raspberry Pi

Sledijo koraki za namestitev posrednika Mosquitto v Raspberry PI

Odprite terminal in vnesite naslednje ukaze

sudo apt-add-repository ppa: mosquitto-dev/mosquitto-ppa

sudo apt-get posodobitev

sudo apt-get install mosquitto

sudo apt-get install mosquitto-clients

Samodejno bi se moral zagnati komar.

Za ustavitev in zagon storitve, ki sem jo potreboval

sudo service stop mosquitto

sudo service start mosquitto

Večina spletnih mest, ki sem jih odkril, uporablja obliko.

sudo /etc/init.d/mosquitto ustaviti

8. korak: Kako deluje MQTT?

Kako deluje MQTT?
Kako deluje MQTT?

MQTT je eden najpogosteje uporabljenih protokolov v projektih IoT. To pomeni telemetrični transport v vrsti sporočil.

Poleg tega je zasnovan kot lahek protokol za pošiljanje sporočil, ki uporablja operacije objave/naročnine za izmenjavo podatkov med odjemalci in strežnikom. Poleg tega je zaradi majhnosti, nizke porabe energije, zmanjšanih podatkovnih paketov in enostavnosti izvajanja protokol idealen za svet "stroj-stroj" ali "internet stvari".

Kot kateri koli drug internetni protokol tudi MQTT temelji na odjemalcih in strežniku. Podobno je strežnik tisti, ki je odgovoren za obravnavanje strankinih zahtev po prejemu ali pošiljanju podatkov med seboj. Strežnik MQTT se imenuje posrednik, odjemalci pa so preprosto povezane naprave.

* Ko naprava (odjemalec) želi poslati podatke posredniku, to operacijo imenujemo »objava«.

* Ko naprava (odjemalec) želi prejeti podatke od posrednika, to operacijo imenujemo "naročnina".

9. korak: Programiranje NodeMCU in ESP8266

Spodaj je izvorna koda za mikrokrmilno ploščo NodeMCU in ESP8266

10. korak: Oblikovanje spletne strani in povezovanje z bazo podatkov SQL

Spletna stran je oblikovana z uporabo HTML, CSS in PHP jezika.

PHP se uporablja za pridobivanje odčitkov senzorjev iz baze podatkov in njihovo prikazovanje na strani HTML.

Srce tega projekta je program python.

Dela, ki jih izvaja program python, so naslednja.

  1. Naročen je na temo, v kateri senzor pošlje odčitke senzorja.
  2. Posredniku MQTT objavi ukaz za vklop/izklop vodne črpalke.
  3. Odčitke senzorja shrani v bazo podatkov SQL.

V mojem primeru sta program python in zbirka podatkov SQL prisotna v prenosnem računalniku. Spletna stran, ki teče prek lokalnega gostitelja.

Spodaj je izvorna koda mojega programa python.

11. korak: Dokončajte delo

Popolno delo
Popolno delo

Sledijo koraki, v katerih se postopek nadaljuje.

  1. NodeMCU deluje kot zaznavni del in bere temperaturo, vlažnost in stopnjo vlažnosti tal.
  2. Odčitke pošlje posredniku MQTT s temo "Tema 1"
  3. V prenosnem računalniku se izvaja program python, ki se naroči na temo "Tema 1" pri posredniku MQTT.
  4. Ko NodeMCU pošlje odčitke, posrednik Mosquitto MQTT takoj pošlje podatke v program python.
  5. Program Python nato izračuna, ali je v zeleni hiši potrebna voda. Nato odčitke shrani v bazo podatkov SQL.
  6. Če je v zeleni hiši potrebna voda, potem program python posredniku Mosquitto MQTT objavi sporočilo o vklopu/izklopu vodne črpalke s temo "Tema 2"
  7. ESP8266 deluje kot aktuator. Naročil se je na temo »Tema 2«, v kateri temo program python objavlja sporočilo. Ko program python objavi katero koli sporočilo, se sporočilo takoj prenese na ESP8266. Glede na sporočilo za vklop/izklop je vklopil/izklopil potopno vodno črpalko.
  8. Zadnja faza za prikaz odčitkov v živo na spletni strani. Spletna stran pridobi podatke iz zbirke podatkov SQL, v kateri program python podatke shrani neposredno, in prikaže odčitke na strani.

Priporočena: