Supravegherea Culturilor Agricole

by RobertC313 in Circuits > Raspberry Pi

809 Views, 1 Favorites, 0 Comments

Supravegherea Culturilor Agricole

IMG_20180517_180617.jpg

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

rpi-2-model-b_6-800x609.jpg

- 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

raspbian.png

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

ph.png

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

FL4MOO0ITW3E3RT.LARGE.jpg

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

ADC0832.gif

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

41b8G8zIPDL._SX342_.jpg

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).

Downloads

Configurarea Senzorului De Temperatura

singleTemp-01.png

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

MAX44009-MOD-001-500x500.jpg

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

ysi-ph100probe_200.jpg

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

WhatsApp Image 2018-05-17 at 21.38.43(1).jpeg
WhatsApp Image 2018-05-17 at 21.38.43.jpeg

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.