Cuprins:
- Pasul 1: Strângeți materialele necesare
- Pasul 2: conectați placa și conectați-vă
- Pasul 3: Codificați senzorii fotoelectrici și de temperatură
- Pasul 4: Codificați senzorii de apă de ploaie și de umiditate a solului
- Pasul 5: Codare ieșire boxă și casetă de mesaje
- Pasul 6: Concluzie
Video: Matricea senzorilor agricoli: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
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
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ă
Î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ă
Î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
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
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
Î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:
Figurile Lissajous pe matricea LED 8X8: 7 pași
Figurile Lissajous pe matricea LED 8X8: Un punct de lumină oscilant în 2 axe perpendiculare desenează un model numit „Lissajous Figure”. (1857) sau „Curba Bowditch” (1815). Modelele variază de la simplu la complex, în funcție de raportul de frecvență și faza celor 2 axe. A 1: 1
Matricea cu cascadă 8x16 Rgb Led: 3 pași
Cascadable 8x16 Rgb Led Matrix: În acest proiect am realizat cascadabil 8x16 rgb led matrix și controlerul său. Microfonul 18F2550 este utilizat pentru suportul USB. Ledurile RGB sunt acționate de registre de deplasare 74hc595 cu rezistențe. Pentru date de animație și configurare; 24C512 eeprom extern
Iluminează-ți Valentine-ul cu matricea RGB sclipitoare: 3 pași
Aprinde-ți Valentine-ul cu matricea RGB scânteietoare: vine Ziua Îndrăgostiților, întâlnești pe cineva care s-a îndrăgostit la prima vedere?
Iluminează-ți Valentine-ul cu matricea strălucitoare: 5 pași
Aprinde-ți Valentine-ul cu matricea strălucitoare: Ziua Îndrăgostiților este o șansă pentru tine de a trimite mesaje de dragoste. De ce să nu faci o față LED distractivă cu componente ieftine pentru a-ți exprima sentimentul
Generator de caractere personalizat (Matricea Adafruit HT16k33): 3 pași
Generator de caractere personalizat (matricea Adafruit HT16k33): imprimarea de caractere speciale pe LCD-uri și matrice cu leduri este o distracție extraordinară. Procedura pentru a imprima caractere speciale sau caractere personalizate este de a genera o matrice cu valori binare pentru fiecare rând și coloană. Poate fi agitat să găsești codul corect pentru orice