Supravegherea Culturilor Agricole

Intro: 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

Step 1: 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

Step 2: 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

Step 3: 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

Step 4: 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.

Step 5: 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.

Step 6: 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).

Step 7: 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.

Step 8: 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.

Step 9: 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.

Step 10: 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).

Step 11: 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.

Share

    Recommendations

    • Audio Contest 2018

      Audio Contest 2018
    • Tiny Home Contest

      Tiny Home Contest
    • Furniture Contest 2018

      Furniture Contest 2018

    Discussions

    0
    None
    tomatoskins

    4 months ago

    That's for sharing and welcome to the community!