Sadržaj:

Niz senzora za poljoprivredu: 6 koraka
Niz senzora za poljoprivredu: 6 koraka

Video: Niz senzora za poljoprivredu: 6 koraka

Video: Niz senzora za poljoprivredu: 6 koraka
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Lipanj
Anonim
Niz senzora za poljoprivredu
Niz senzora za poljoprivredu

Projekt Jacksona Breakella, Tylera McCubbinsa i Jakoba Thalera za EF 230

Poljoprivreda je vitalni faktor proizvodnje u Sjedinjenim Državama. Usjevi se mogu koristiti u različite svrhe, od sirovina za proizvodnju odjeće, lijekova i aditiva za hranu do izravne potrošnje dijelova usjeva, najčešće klijajućeg voća. Većina usjeva u Sjedinjenim Državama uzgaja se na otvorenom, gdje se vremenski uvjeti niti temperatura ne mogu u velikoj mjeri kontrolirati. S obzirom na to koliko drastično nepovoljni vremenski uvjeti mogu utjecati na rast usjeva, što pak utječe na gospodarstvo Sjedinjenih Država, praćenje stanja polja usjeva postaje vitalno.

Naš uređaj, Poljoprivredni senzorski niz, omogućuje poljoprivrednicima da prate stanje unaprijed odabranih dijelova njihovog polja pomoću 4 senzora: senzora za kišnicu, osjetnika vlažnosti tla, osjetnika temperature i fotoelektričnog senzora. Kombinacija ovih senzora omogućuje poljoprivrednicima da na odgovarajući način planiraju godišnju proizvodnju usjeva, prilagode premalo ili previše kiše, bolje se nose s katastrofama koje mogu ubiti usjeve i uštedjeti vrijeme i probleme pri uzimanju uzoraka tla i korištenju skuplje senzorske opreme. U ovom Instructableu provest ćemo vas kroz ožičenje i kodiranje iza našeg niza senzora za poljoprivredu, tako da i vi možete napraviti svoj vlastiti.

Korak 1: Prikupite potrebne materijale

Prikupite potrebne materijale
Prikupite potrebne materijale

Ispod je popis potrebnih materijala koji će vam trebati za početak."

1. Arduino ploča, po mogućnosti Arduino Uno

2. Osnovna ploča

3. 1x 220 ohmski otpornik

4. Razne žice različitih boja

5. Mikro USB na USB kabel

6. Zvučnik koji se može montirati na ploču

7. Fotoelektrični senzor

8. Senzor temperature

9. Senzor kišnice

10. Senzor vlage tla

11. Računalo s instaliranim Matlab 2017 i Arduino paketom podrške (paket podrške nalazi se pod Dodaci)

Korak 2: Ožičite ploču i spojite je

Ožičite ploču i spojite
Ožičite ploču i spojite

Započnite ožičenjem ploče kao što je prikazano gore, ili na bilo koji drugi način koji vam najbolje odgovara. Postoje doslovno neograničeni načini na koje se ploča može ožičiti, pa točna konfiguracija doista ovisi o vama. Nakon što je ploča ožičena, počnite pričvršćivati senzore. Senzori za kišnicu, vlagu u tlu i fotoelektrični senzori analogni su izlazi, stoga provjerite jesu li spojeni na analogni dio Arduina. S druge strane, osjetnik temperature je digitalni izlaz, stoga provjerite je li spojen na dostupan digitalni ulaz na vašem Arduinu. Arduino bi trebao imati izlaze za 3.3v i 5v, stoga provjerite jesu li senzori spojeni na napone s kojima su kompatibilni.

Nakon što ste sigurni da je ploča ispravno ožičena, priključite mikro USB na USB kabel s računala u mikro USB priključak na računalu i uključite Arduino. Otvorite Matlab i, provjerite jeste li instalirali Arduino paket za podršku pod Dodaci, pokrenite naredbu "fopen (serial ('nada'))", bez ". Greška bi se trebala pojaviti, a pogreška bi trebala reći imate raspoloživo usporedbu s brojem. Pokrenite naredbu "a = arduino ('comx', 'uno')", gdje je x broj vašeg računa, za mapiranje vašeg Arduina na objekt. LED na Arduinu bi trebao brzo treptati kako bi pokazao da je spojen.

Korak 3: Kodirajte fotoelektrične i temperaturne senzore

Kodirajte fotoelektrične i temperaturne senzore
Kodirajte fotoelektrične i temperaturne senzore

Prije nego počnete kodirati, zabilježite gdje su vam senzori povezani na Arduinu, jer će to biti važno za naredbu readVoltage. Započnite svoj kôd postavljanjem varijable sunčeve svjetlosti jednake naredbi "readVoltage (a, 'X#')", gdje je X# port s kojim ste spojeni, a a jednostavno poziva Arduino koji ste mapirali na tu varijablu. Pokrenite if naredbu, i postavite prvi uvjet za sunčevu svjetlost <3. Postavite izlaz kao "info. TOD = 'noć" "kako biste prikazali doba dana kao strukturu, a zatim dodajte drugu naredbu s izlazom kao" info. TOD =' day '". Budući da je ovo drugi izraz, ne trebamo uvjet jer će raditi za sve ostale vrijednosti koje nisu definirane u if naredbi. Svakako dovršite if naredbu s krajem i prijeđite na programiranje senzor temperature.

Varijablu thermo postavite jednakom drugoj naredbi readVoltage, naredba je "readVoltage (a, 'X#')". U našem slučaju, temperatura je morala biti pretvorena iz jedinica napona u Celzijeve, pa je jednadžba "tempC = (termo-.5).*100" pretvorena iz napona u Celzijeve. Radi jednostavnosti, pretvorili smo temperaturu u Celzijevim stupnjevima u Fahrenheit, ali to je potpuno neobavezno.

Kôd za lijepljenje

sunčeva svjetlost = očitani napon (a, 'A1') ako je sunčeva svjetlost <3

info. TOD = 'noć'

drugo

info. TOD = 'dan'

kraj

thermo = readVoltage (a, 'A3');

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

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

Korak 4: Kodirajte senzore za kišnicu i vlagu tla

Kodirajte senzore za kišnicu i vlagu tla
Kodirajte senzore za kišnicu i vlagu tla

Kao što je navedeno u posljednjem koraku, pobrinite se da znate u koje su portove uključeni vaši senzori na Arduino ploči jer će ovaj korak učiniti manje frustrirajućim. Počnite s senzorom za kišnicu i pokrenite if naredbu. Postavite prvi uvjet za "readVoltage (a, 'X#')> 4", a izlaz postavite na "info. Rain = 'bez oborina". Dodajte elseif i postavite uvjet na naredbu readVoltage prije, ali postavite je> 2. Dodajte "&&" kako biste označili drugi uvjet koji mora biti ispunjen i postavite ga na naredbu readVoltage kao i prije te ga postavite na <= 4. Izlaz će biti "info. Rain = 'magljenje" ". Na kraju, dodajte još jedno i postavite izlaz na "info. Rain = 'downpour'". Možda ćete morati prilagoditi vrijednosti za uvjete na temelju vlažnosti okoline prostorije u kojoj radite.

Zatim započnite kôd senzora vlažnosti tla i počnite s if naredbom. Postavite uvjet if izraza na "readVoltage (a, 'X#')> 4 i dodajte izlaz" info.soil = 'dry' ". Dodajte elseif izraz i pomoću gornje naredbe readVoltage postavite ga za> 2. Dodajte "&&" i postavite drugu naredbu readVoltage za <= 4. Postavite njezin izlaz na "info.soil = 'optimalno zasićenje". Dodajte još jednu naredbu i postavite njezin izlaz na "info.soil =' flood" ", i ne zaboravite dodati kraj.

Kôd za lijepljenje

ako je očitanoVoltage (a, 'A0')> 4 info. Rain = 'bez oborina'

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

info. Rain = 'zamagljivanje'

drugo

info. Rain = 'pljusak'

kraj

ako je readVoltage (a, 'A2')> 4

info.soil = 'suho'

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

info.soil = 'optimalna zasićenost'

drugo

info.soil = 'poplava'

kraj

Korak 5: Kodiranje izlaza zvučnika i okvira za poruke

Kodiranje izlaza zvučnika i okvira za poruke
Kodiranje izlaza zvučnika i okvira za poruke

Izlazi za ovaj uređaj mogu se uvelike razlikovati, ali u ovom slučaju provest ćemo vas kroz izlaz zvučnika montiran izravno na uređaj i izlaz okvira za poruke koji se može vidjeti na udaljenom računalu. Naš zvučnik je dizajniran za emitiranje različitih frekvencija, što je lošije, za optimalnu temperaturu usjeva, sunčevu svjetlost, vlažnost tla i oborine. Započnite izlazni kod zvučnika s if naredbom i postavite njezin uvjet na naredbu "readVoltage (a, 'X#')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Dodajte istu naredbu playTone kao što je prikazano gore, ali promijenite 200 na 1000 kako biste proizveli viši, pozitivniji ton. Zatim dodajte još jedno i ponovno dodajte istu naredbu playTone, ali promijenite 1000 u 1500. Ovi različiti tonovi ukazuju na ozbiljnost situacije na terenu. Dodajte kraj kako biste dovršili if naredbu.

Naš posljednji odjeljak koda bit će izlaz koji proizvodi okvir s porukom. Izradite niz pomoću oznaka 'u zagradama i pretvorite dijelove svoje strukture u nizove pomoću naredbe "num2str (info.x)", gdje je x naziv podstrukture u info strukturi. Upotrijebite "string newline" za dodavanje novih redaka u okvir s porukom i upišite svoju poruku u tekst pod navodnicima, dodajući stvarnu vrijednost polja u niz pomoću gore spomenute naredbe num2str. Konačno, s definiranim nizom, upotrijebila je naredbu "msgbox (string)" za prikaz podataka kao okvira s porukama na vašem monitoru.

Kôd za lijepljenje

ako je readVoltage (a, 'A2')> 4 || info.tempF <32 playTone (a, 'D9', 200, 1)

inače, ako je sunčeva svjetlost> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

playTone (a, 'D9', 1000, 3)

drugo

playTone (a, 'D9', 1500, 5)

kraj

string = ['Temp je (deg F)', num2str (info.tempF)]

string = [string newline 'Tlo je', num2str (info.soil)]

string = [string newline 'Vanjska količina oborina je', num2str (info. Kiša)]

string = [string newline 'Vrijeme dana je', num2str (info. TOD)]

msgbox (niz)

Korak 6: Zaključak

Zaključak
Zaključak

Dok se svijet i dalje sve više oslanja na sintetičke alternative proizvodima koji su prethodno ubrani iz usjeva, poljoprivreda će zasigurno dugo ostati relevantan i važan čimbenik gospodarstva. Odgovarajuće praćenje obradivog zemljišta ključno je za poljoprivrednika kako bi maksimalno iskoristio svoju žetvu, a pomoću našeg uređaja nije moguće samo daljinsko nadzirati cijelo poljoprivredno zemljište, već je to moguće učiniti na jeftin i jednostavan način instalaciju i pouzdan način. Nadamo se da se ovaj vodič pokazao informativnim i lakim za praćenje, te se nadamo da će se uređaj pokazati korisnim za sve što ga želite implementirati ili eksperimentirati.

Sretno kodiranje, Tim za niz poljoprivrednih senzora

Preporučeni: