Cuprins:

Matricea senzorilor agricoli: 6 pași
Matricea senzorilor agricoli: 6 pași

Video: Matricea senzorilor agricoli: 6 pași

Video: Matricea senzorilor agricoli: 6 pași
Video: Evoluția incidentelor de securitate cibernetică și instrumentele pentru combaterea lor 2024, Iunie
Anonim
Matricea senzorului agricol
Matricea senzorului agricol

Un proiect al lui Jackson Breakell, Tyler McCubbins și Jakob Thaler pentru EF 230

Agricultura este un factor vital de producție în Statele Unite. Culturile pot fi utilizate pentru o mare varietate de scopuri diferite, variind de la materii prime pentru producerea de îmbrăcăminte, produse farmaceutice și aditivi alimentari până la consumul direct al părților culturii, cel mai adesea fructele germinate. Majoritatea culturilor din Statele Unite sunt cultivate în aer liber, unde condițiile meteorologice și temperatura nu pot fi controlate pe scară largă. Având în vedere cât de mult pot afecta condițiile meteorologice nefavorabile creșterea culturilor, afectând la rândul său economia Statelor Unite, monitorizarea condițiilor unui câmp de cultură devine vitală.

Dispozitivul nostru, Agricultural Sensor Array, permite fermierilor să monitorizeze starea părților preselectate ale câmpului lor folosind 4 senzori: un senzor de apă de ploaie, un senzor de umiditate a solului, un senzor de temperatură și un senzor fotoelectric. Combinația acestor senzori permite unui fermier să planifice în mod adecvat producția de recoltă a sezonului, să se adapteze pentru prea puțină sau prea multă ploaie, să se ocupe mai bine de dezastrele care pot ucide culturile și să economisească timp și probleme de la prelevarea de probe de sol și utilizarea unor echipamente de senzori mai scumpe. În acest Instructable, vă vom îndruma prin cablare și codificare în spatele matricei noastre de senzori agricoli, astfel încât și dvs. să vă puteți face propriile.

Pasul 1: Strângeți materialele necesare

Adunați materialele necesare
Adunați materialele necesare

Mai jos este o listă a materialelor necesare de care veți avea nevoie pentru a începe"

1. Placa Arduino, de preferință Arduino Uno

2. Panou de bază

3. Rezistor 1x 220 ohm

4. Firuri asortate de diferite culori

5. Cablu micro USB la USB

6. Difuzor montabil pe placa

7. Senzor fotoelectric

8. Senzor de temperatură

9. Senzor de apă de ploaie

10. Senzor de umiditate a solului

11. Computer cu Matlab 2017 și pachetul de asistență Arduino instalat (pachetul de asistență poate fi găsit în Suplimente)

Pasul 2: conectați placa și conectați-vă

Conectați placa și conectați-vă
Conectați placa și conectați-vă

Începeți fie prin cablarea plăcii, așa cum se arată mai sus, sau în orice mod vi se potrivește cel mai bine. Există literalmente moduri nelimitate de conectare a plăcii, deci configurația exactă depinde de dvs. După ce placa este cablată, începeți să atașați senzorii. Apele de ploaie, umiditatea solului și senzorii fotoelectrici sunt toate ieșiri analogice, deci asigurați-vă că sunt conectate la secțiunea analog-in a Arduino. Senzorul de temperatură, pe de altă parte, este o ieșire digitală, deci asigurați-vă că este conectat la o intrare digitală disponibilă pe Arduino. Arduino ar trebui să aibă ieșiri pentru 3.3v și 5v, deci asigurați-vă că senzorii sunt conectați la tensiuni cu care sunt compatibili.

După ce sunteți sigur că placa a fost conectată corect, conectați cablul Micro USB la USB de la computer în portul Micro USB de pe computer și porniți Arduino. Deschideți Matlab și, asigurându-vă că ați instalat pachetul de asistență Arduino sub Add-Ons, rulați comanda „fopen (serial ('nada'))”, fără „. Ar trebui să apară o eroare, iar eroarea ar trebui să spună există un comportament disponibil cu un număr. Rulați comanda "a = arduino ('comx', 'uno')", unde x este numărul comportamentului dvs., pentru a mapa Arduino la un obiect. LED-ul de pe Arduino ar trebui să clipească rapid pentru a indica faptul că este conectat.

Pasul 3: Codificați senzorii fotoelectrici și de temperatură

Codificați senzorii fotoelectrici și de temperatură
Codificați senzorii fotoelectrici și de temperatură

Înainte de a începe codarea, notați unde sunt conectați senzorii dvs. pe Arduino, deoarece acest lucru va fi important pentru comanda readVoltage. Începeți codul setând variabila lumină solară egală cu comanda "readVoltage (a, 'X #') ', unde X # este portul la care sunteți conectat și a apelează pur și simplu Arduino pe care l-ați mapat la acea variabilă. Porniți o instrucțiune if, și setați prima condiție pentru lumina soarelui <3. Setați ieșirea ca "info. TOD = 'night'" pentru a afișa ora din zi ca structură, apoi adăugați o instrucțiune else cu ieșirea ca "info. TOD = ' day '". Deoarece aceasta este o instrucțiune else, nu avem nevoie de o condiție, deoarece va funcționa pentru toate celelalte valori care nu sunt definite în instrucțiunea if. Asigurați-vă că ați terminat instrucțiunea if cu un sfârșit și treceți la programare senzorul de temperatură.

Setați variabila termică egală cu o altă comandă readVoltage, comanda fiind "readVoltage (a, 'X #')". În cazul nostru, temperatura trebuia convertită din unități de tensiune în Celsius, deci ecuația "tempC = (termo-.5). * 100" pentru a converti de la tensiune la Celsius. Din motive de ușurință, am convertit temperatura în grade Celsius în Fahrenheit, dar acest lucru este pur opțional.

Cod pentru lipire

lumina soarelui = readVoltage (a, 'A1') dacă lumina soarelui <3

info. TOD = 'noapte'

altceva

info. TOD = 'zi'

Sfârșit

thermo = readVoltage (a, 'A3');

tempC = (termo-.5). * 100;

info.tempF = (9 / 5. * tempC) +32

Pasul 4: Codificați senzorii de apă de ploaie și de umiditate a solului

Codificați senzorii de apă de ploaie și de umiditate a solului
Codificați senzorii de apă de ploaie și de umiditate a solului

După cum sa menționat în ultimul pas, asigurați-vă că știți în ce porturi sunt conectați senzorii dvs. pe placa Arduino, deoarece acest lucru va face acest pas mult mai puțin frustrant. Începeți cu senzorul de apă de ploaie și începeți o declarație if. Setați prima condiție pentru "readVoltage (a, 'X #')> 4" și setați ieșirea la "info. Rain = 'no precipitation". Adăugați un elseif și setați-l condițional la comanda readVoltage înainte, dar setați-l la> 2. Adăugați un „&&” pentru a semnifica o altă condiție care trebuie îndeplinită și setați-o la o comandă readVoltage ca înainte și setați-o la <= 4. Ieșirea va fi „info. Rain = 'ceață' '. În cele din urmă, adăugați altceva și setați ieșirea la "info. Rain = 'downpour'". Este posibil să trebuiască să ajustați valorile pentru condițiile pe baza umidității ambientale a camerei în care lucrați.

Apoi, începeți codul pentru senzorul de umiditate al solului și începeți cu o declarație if. Setați starea instrucțiunii if la "readVoltage (a, 'X #')> 4 și adăugați rezultatul" info.soil = 'dry' ". Adăugați o instrucțiune elseif și utilizând comanda readVoltage de mai sus, setați-o pentru> 2. Adăugați un „&&” și setați o altă comandă readVoltage pentru <= 4. Setați ieșirea la „info.soil = 'saturație optimă'”. Adăugați o instrucțiune else și setați ieșirea la „info.soil = 'flood' ", și nu uitați să adăugați un final.

Cod pentru lipire

dacă readVoltage (a, 'A0')> 4 info. Ploaie = 'fără precipitații'

elseif readVoltage (a, 'A0')> 2 && readVoltage (a, 'A0') <= 4

info. Rain = "ceață"

altceva

info. Rain = 'ploaie'

Sfârșit

dacă citește Tensiune (a, 'A2')> 4

info.soil = 'uscat'

elseif readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

info.soil = 'saturație optimă'

altceva

info.soil = 'potop'

Sfârșit

Pasul 5: Codare ieșire boxă și casetă de mesaje

Codificare ieșire boxă și casetă de mesaje
Codificare ieșire boxă și casetă de mesaje

Ieșirile pentru acest dispozitiv pot varia foarte mult, dar, în acest caz, vă vom îndruma printr-o ieșire a difuzoarelor montată direct pe un dispozitiv și o ieșire din caseta de mesaje care poate fi vizualizată pe un computer la distanță. Difuzorul nostru este conceput pentru a emite frecvențe diferite, ceea ce înseamnă mai puțin semnificativ, pentru o temperatură optimă a culturii, lumina soarelui, umiditatea solului și precipitații. Începeți codul de ieșire al difuzorului cu o instrucțiune if și setați starea acestuia la comanda "readVoltage (a, 'X #')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Adăugați aceeași comandă playTone așa cum se arată mai sus, dar schimbați 200 la 1000 pentru a produce un ton mai înalt și mai pozitiv. Apoi, adăugați altceva și adăugați din nou aceeași comandă playTone, dar schimbați 1000 la 1500. Aceste tonuri variate indică severitatea situației câmpului. Asigurați-vă că adăugați un final pentru a completa declarația if.

Secțiunea noastră finală de cod va fi o ieșire care produce o casetă de mesaje. Creați un șir folosind marcajele 'între paranteze și convertiți părțile structurii dvs. în șiruri folosind comanda "num2str (info.x)", unde x este un nume de structură în structura de informații. Utilizați „string newline” pentru a adăuga linii noi în caseta de mesaj și introduceți mesajul în text folosind ghilimele, adăugând valoarea reală a câmpului în șir folosind comanda num2str menționată anterior. În cele din urmă, cu șirul definit, a folosit comanda „msgbox (șir)” pentru a afișa datele ca o casetă de mesaje pe monitor.

Cod pentru lipire

dacă citește Tensiune (a, 'A2')> 4 || info.tempF <32 playTone (a, „D9”, 200, 1)

altfel dacă lumina soarelui> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

playTone (a, „D9”, 1000, 3)

altceva

playTone (a, „D9”, 1500, 5)

Sfârșit

șir = ['Temperatura este (deg F)', num2str (info.tempF)]

șir = [șir newline 'Solul este', num2str (info.soil)]

șir = [șir newline 'În afara precipitațiilor este', num2str (info. Rain)]

șir = [șir newline 'Ora zilei este', num2str (info. TOD)]

msgbox (șir)

Pasul 6: Concluzie

Concluzie
Concluzie

În timp ce lumea continuă să se bazeze din ce în ce mai mult pe alternative sintetice la produsele recoltate anterior din culturi, agricultura va rămâne cu siguranță un factor relevant și important al economiei pentru o lungă perioadă de timp. Monitorizarea adecvată a terenurilor agricole este crucială pentru ca un fermier să profite la maximum de recolta sa și, cu dispozitivul nostru, nu este posibil doar să monitorizăm întregul teren agricol de la distanță, dar este posibil să o faci într-un mod ieftin, ușor de instalare și mod fiabil. Sperăm că acest ghid s-a dovedit informativ și ușor de urmat și sperăm că dispozitivul se va dovedi util pentru oricum doriți să îl implementați sau să experimentați.

Codificare fericită, Echipa Agricole pentru senzori

Recomandat: