Supravegherea Culturilor Agricole
by RobertC313 in Circuits > Raspberry Pi
809 Views, 1 Favorites, 0 Comments
Supravegherea Culturilor Agricole
Proiectarea si implementarea unui dispozitiv care supravegheaza ambientul unei plante. Acesta contine:
- preluarea unor date de la anumiti senzori
- afisarea lor pe un server Web
- in cazul depasirii unui anumit prag minim/maxim se va trimite un email de avertizare
- datele sunt trimite spre un serviciu cloud IOT (thingspeak.com) unde sunt reafisate si procesate in vederea unei mici analize numerice
- circuit de incarcare solara
Nota proiect: 10
Componente Folosite
- Raspberry PI 2B
- TP-LINK Wi-Fi Dongle
- senzor umiditate sol - https://www.ebay.com/itm/Soil-Humidity-Hygrometer...
- senzor temperatura sol ( DS18B20 ) - https://www.ebay.com/itm/Waterproof-Digital-Therm...
- senzor intensitate luminoasa ( MAX44009 ) - https://www.ebay.com/itm/MAX44009-Ambient-Light-S...
- Circuit pH
- adaptor BNC female -> cat5 - https://www.ebay.com/itm/CAT5-CCTV-Coaxial-Cam...
- senzor - https://www.ebay.com/itm/New-BNC-Conn...
- amplificator operational (LM108N) - https://www.ebay.com/itm/1Pcs-OP-AMP-IC-B...
- ADC (ADC0832CCN) - https://www.optimusdigital.ro/ro/convertoare-analogic-numeric...
- 2 x 100nF Condesatori
- 1 x 100kOhm Rezistenta
- 1 x 300kOhm Rezistenta
- Circuit alimentare solara
- panou solar - https://www.ebay.com/itm/Mini-6V-3W-Solar-Panel-Sys...
- circuit incarcare (TP405) - https://www.ebay.com/itm/2PCS-TP405-...
- circuit tensiune Boost Up 5V - https://www.ebay.com/itm/2pcs-PFM-Contr...
- acumulator 18650
- suport acumulator 18650
Instalare Si Configurare Software Necesar
1. Raspbian pe un microSD de 16GB
2. RealVNC pentru control la distanta a interfetei grafice
3. Apache2 si Php pentru serverul Web
Circuit PH
Se foloseste linia de 5V de la microcontroller pentru a genera o tensiune de referinta, care va avea aprox. 1.2V datorita modului de operare al amplificatorului. Gruparea de rezistente determina un divizor de tensiune care genereaza tensiunea de referinta, iar amplificatorul operational actioneaza ca un amplificator cu castig. Astfel, rezulta ca iesirea va avea, fata de referinta, aproximativ + sau - 0.4V peste toata gama de pH
Circuit Incarcare Solara
Panoul solar este conectat la circuitul de incarcare, la borna + fiind conectata o dioda pentru a nu perimite curentului sa treaca inapoi spre panou, in vederea protectiei impotriva distrugerii panoului solar. Iesirea circuitului de incarcare se conecteaza la acumulator si ofera o tensiune de incarcare maxima de 4.2V pentru tipul de baterie 18650. Capacitatea acumulatorului a fost alea in modul urmator: am considerat curentul necesar alimentarii circuitului si a microcontrolerului de 1A si o eficienta de tranfer a energiei de 85%, rezultand, pentru o rulare continua fara incarcare, o durata de aproximativ 3 ore jumatate pentru acumulatorul de 4200mAh. Panoul solar are o putere de 3W ceea ce duce la o incarcare de aproximativ 3000mAh pe durata intregii zile, sporind durata de viata pana la jumatate de zi a instalatiei.
Configurare ADC0832CCN
Se conecteaza convertorul astfel:
- Vcc -> 5V
- Gnd -> Gnd
- CS -> GPIO17
- DI -> GPIO22
- DO -> GPIO27
- CLK -> GPIO18
Codul pentru convertor este inclus in codurile pentru senzorul de umiditate si pH din pasii urmatori.
Configurarea Senzorului Pentru Umiditatea Solului
Se conecteaza senzorul la microprocesor astfel:
- Vcc -> 3v3
-Gnd -> Gnd
- D0 -> GPIO21
Senzorul contine un potentiometru integrat care determina sensibilitatea senzorului. Daca senzorul depaseste sensibilitatea impusa, se trimite un semnal pe pinul digital care va fi citi de microcontroller.
In continuare, o sa prezint partea comuna a codului fiecarui senzor: In momentul procesarii datelor primte de la senzor, se va scrie in fisier acea valoare, se va trimite aceiasi valoare la cloudul IOT thingspeak, se va face un test cu o valoare limita, iar daca va depasi acea limita va trimite un mail de avertizare cu valoarea depasita.
Senzorul poate trimite si date analogic, date care sunt citite prin intermediu unui convertor analoc numeric. Fisierul humidity.py contine exeemplul functional pentru o astfel de aplicatie (din pacate mi s-a stricat un canal al convertorului si nu am mai putut folosi acest cod deoarece nu as mai fi putut folosi senzorul de pH).
Configurarea Senzorului De Temperatura
Se conecteaza senzorul la microprocesor astfel:
- Vcc(fir rosu) -> 3v3
-Gnd(fir negru) -> Gnd
-Data(fir galben) -> GPIO4 prin intermediul unei rezistente de 10k la 3v3
Senzorul achizitioneaza digital date si sunt pur si simplu citite de la senzor. Functionalitatea scriptului a fost explicata anterior.
Downloads
Configurarea Senzorului De Intensitate Luminoasa
Se conecteaza senzorul la microprocesor astfel:
- Vcc -> 3v3
- Gnd -> Gnd
- SDA -> GPIO2
- SCL -> GPIO3
Senzorul comunica printr-un protocol i2c cu placuta Raspberry. Se citesc datele de la senzor si se convertesc in lux. Functionalitatea generala a scriptului a fost prezentata anterior.
Downloads
Configurare Senzor PH Sol
Senzorul se conecteaza la circuitul prezentat la pasul 3 prin intermediul adaptorului BNC astfel:
+ -> BNC center
- -> BNC shell
Iesirea circuitului se conecteaza la ADC si se citesc datele prin intermdiul scriptului, dupa care se convertesc in pH. Functionalitatea scriptului a fost discutata in pasii anteriori.
Downloads
Configurare Scripturi Suplimentare
1. Scipt trimitere email
Prin intermediul scriptului se compune si se trimite un mail cu ajutorul bibliotecii smtlib.
2. Script verificare automata functionare scripturi
Prin intermediul scriptului se verifica daca celelalte scripturi care preiau date de la senzori ruleaza in mod automat, iar daca a existat o eroare se incearca pornirea lor automata pentru a reveni in functiune.
3. Serviciu crontab care ruleaza automat un script care contine secventa de executie a tuturor celorlalte scripturi (scriSMI.sh din arhiva).
4. Pagina HTML care permite vizualizarea datelor in timp real, un buton de calcul al pH-ului si linkuri catre paginile thingspeak de afisare de date si analiza numerica (index.php din arhiva).
Servicii IOT
Am folosit site-ul thingspeak.com pentru a folosi o varianta alternativa de a memora datele luate de la senzori. Ele sunt reprezentate pe grafice in timp. Aceste date sunt folosite de niste scripturi MatLab pentru a fi procesate si rescrise pe alt canal.
Atasez linkurile catre canalele proiectului si 2 screenshoturi:
1. https://thingspeak.com/channels/487850
2. https://thingspeak.com/channels/496847
Fiecare script are asociat un altul de TimeControl care il ruleaza automat la un numar de minute/ore/zile setat.