Weed Pot

Introducere

Prezentarea pe scurt a proiectului:

  • Ghiveci inteligent care ajuta la cresterea in conditii bune a plantelor
  • Senzorii masoara conditiile de mediu (umiditatea solului din ghiveci, nivelul de intensitate a luminii ambientale, nivelul apei de la baza ghiveciului), care apoi sunt trimise de catre microcontroller la o platforma IoT printr-un modul Wi-Fi
  • Datele sunt interpretate in cadrul platformei in limbaj Matlab si trimise pe mail sub forma de grafice din ultimele ore

Ideea de proiect a pornit de la una dintre plantele mele, foarte greu de crescut, de care mereu trebuie sa ma ingrijesc pentru a-i asigura suficienta apa, umiditate a solului si lumina.

Link de wikipedia pentru specia de planta in cauza: https://ro.wikipedia.org/wiki/Dionaea_muscipula

Schema bloc

Hardware Design

Componente:

  • Arduino UNO R3 (ATmega328p + ATmega16u2)
  • 1 breadboard generic pentru intermedierea dintre Arduino si restul componentelor electrice
  • 1 mini breadboard folosit in cadrul set-upului de alimentare in siguranta
  • Modul Wi-Fi ESP8266
  • Modul analogic cu senzor de masurare a umiditatii a solului
  • Modul analogic cu senzor de masurare a nivelului apei
  • Modul analogic/digital cu senzor de masurare a nivelului de intensitate a lumii ambientale
  • Fire mama-mama pentru conexiuni
  • Fire tata-tata pentru conexiuni
  • Rezistente de 1Kohmi pentru un divizor de tensiune
  • Baterie 9V pentru alimentarea intregului circuit
  • Un suport de plastic sub forma de tub ce protejeaza placuta de baza si breadboard-ul principal
  • Un suport de plastic in forma de trunchi de piramida fara baza pentru ghiveci, apa si senzori

Schema electrica (clic pe imagine pentru a vedea versiunea in dimensiuni originale a schemei electrice):

Pentru alimentarea pinului de RX al modulului Wi-Fi se poate observa necesitatea folosirii unui divizor de tensiune, intrucat o alimentare de 5V de la Arduino ar fi avut tensiunea prea ridicata si ar fi prajit modului Wi-Fi, iar una de la 3.3V tot de la Arduino nu ar fi avut intensitatea curentului suficient de mare pentru ca modului Wi-Fi sa functioneze in paramentrii normali.

Divizorul de tensiune este format din doua rezistente de 1Kohmi conectate in paralel cu alimentarea pinului de RX al modulului Wi-Fi de la un pin digital de pe Arduino. Montajul realizat reduce tensiunea care ajunge la modului Wi-Fi la 3.3V fara a afecta intensitatea curentului din conexiune.

Pentru a alimenta in siguranta circuitul, bateria de 9V nu este conectata direct la breadboardul de baza, ci prin intermediul unei prelugiri de 1m catre un mini-breadboard. Am luat aceasta decizie intrucat din cauza unei erori de gestionare a firelor am reusit sa dau pentru cateva secunde foc la alimentare si nu vreau ca asta sa se mai intample in proximitatea montajului principal.

Software Design

Lista de parti ale codului:

  1. Cod Arduino principal pentru primirea datelor si pornire/oprire a alimentarii modulelor cu senzori integrati
    • Setarea si pornirea alimentarii pinilor destinati pentru senzori
    • Citirea datelor primite de la senzori si salvarea lor in variabile
    • Oprirea alimentarii senzorilor pentru o perioada stabilita
    • Repornirea alimentarii senzorilor la finalul perioadei
    • Repetarea pasilor citire-oprire-repornire la intervale regulate
  2. Comunicare cu modulul Wi-Fi si transmiterea datelor folosind biblioteci speciale pentru modul
    • Initializarea parametrilor de conectare la Wi-Fi (nume retea, parola)
    • Initializarea parametrilor de conectare la ThingsSpeak (canal de date, APIkey)
    • Conectare la reteaua Wi-Fi si la platforma ThingsSpeak
    • Trimitere valori citite de la senzori catre ThingsSpeak
    • Oprirea alimentarii modulului pentru o perioada pentru a reduce consumul de curent
  3. Cod matlab in cadrul platformei ThingSpeak pentru interpretarea datelor primite
    • Parsarea datelor primite pe canalele de comunicatie
    • Interpretarea si plotarea datelor sub forma de grafice

Pentru a putea folosi si programa modulul Wi-Fi ESP8266, este necesara instalarea in cadrul aplicatiei Arduino IDE a unor biblioteci specifice. Un tutorial in acest sens (contine si varianta video si indicatii de montare si testare a functionalitatii) poate fi gasit aici.

Modulele cu senzori sunt alimentate de pe pini digitali, astfel incat sa poata fi activate doar la nevoie, pentru a face cateva masuratori, apoi sunt dezactivate. Aceasta practica are ca scop atat generarea unui consum mai redus de curent, cat si prelungirea duratei de viata a senzorilor (spre exemplu, catodul senzorului de umiditate a solului tinde sa erodeze cat timp senzorul este alimentat, insa asta nu se intampla atunci cand acesta nu primeste curent).

Modulul de Wi-Fi ESP8266 nu necesita intreruperea alimentarii de la Arduino pentru a reduce consumul de energie. Acesta poate fi configurat sa intre singur in modul DeepSleep prin intermediul functiilor de biblioteca dedicate.

Rezultate obtinute

Graficele obtinute pe ThingSpeak pentru parametrii masurati pe parcursul unei zile:

Pentru ultimul grafic (Soil Moisture), rezultatele au fost obtinute pe pragul inferior prin scoaterea senzorului din ghivechi sa lasarea lui in aer, intrucat nu puteam usca solul instant (si nici nu ar fi fost de dorit pentru planta). :-x

Concluzii

Fisierele media au fost realizate in cadrul a doua versiuni fizice ale proiectului:

  • Prima versiune, a carei functionalitate a fost verificata prin rezultatele obtinute, are atribuite fisierele mp4 continute in arhiva weedpot_media_files.zip de mai jos. Fisierele mp4 mentionate demonstreaza functionarea fiecarui senzor, a modulului de Wi-Fi si a placutei de baza in cadrul alimentarii la 9V.
  • A doua versiune este doar in scop de prezentare si exemplu de folosire a circuitului in situatii casnice, insa avand in vedere suportul de carton folosit, placuta nu a fost conectata la alimentare din motive de siguranta. Cutia de carton tine loc de suport (exemplu: de plastic) care ar putea fi utilizat intr-o varianta de folosire propriu-zisa. Imaginile care sunt atribuite acestei versiuni sunt afisate mai jos:

Arhiva cu fisiere mp4:

weedpot_media_files.zip

Imagini cu versiunea propusa pentru prezentare:

  • Circuitul introdus in carcasa portabila:

  • Circuitul in interiorul carcasei portabile (partile care raman mereu in interior):

  • Carcasa portbila si senzorii plasati in ghiveci:

  • Conectarea circuitului prin fire legate la breadboard:

  • Tot circuitul propriu-zis (fara alimentare):

  • Componentele separate pentru alimentare:

Downloads

Aceasta sectiune va fi completata cu toate fisierele folosite pentru implementare, dupa prezentarea proiectului.

Codul principal C++ folosit (fara fisierele de debug pentru senzori) poate fi gasit momentan pe Github.

Modul in care sunt interpretate datele pentru grafice poate fi consultat pe canalul de ThingSpeak folosit.

Jurnal

Nu lasati niciodata VCC si GND sa se atinga: e posibil sa ia foc! Cand scoateti firele din circuit, aveti grija sa le scoateti intai pe cele legate direct la baterie pentru a evita o alimentare nedorita a unei portiuni nesigure! Nu lasati fire in aer cat timp sunt conectate la alimentare!

Bibliografie/Resurse

pm/prj2021/abirlica/weedpot.txt · Last modified: 2021/06/04 14:52 by florin.radulescu99
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0