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, Juli
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 klijavog voća. Većina usjeva u Sjedinjenim Državama uzgaja se na otvorenom, gdje se vremenski uvjeti niti temperatura ne mogu kontrolirati u velikoj mjeri. S obzirom na to koliko drastično nepovoljni vremenski uslovi mogu uticati na rast usjeva, a opet na ekonomiju Sjedinjenih Država, praćenje uslova na poljima postaje vitalno.

Naš uređaj, Poljoprivredni senzorski niz, omogućava poljoprivrednicima da prate stanje unaprijed odabranih dijelova polja koristeći 4 senzora: senzor za kišnicu, senzor vlažnosti tla, temperaturni senzor i fotoelektrični senzor. Kombinacija ovih senzora omogućava poljoprivrednicima da na odgovarajući način planiraju sezonsku 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 polja za poljoprivredne senzore, tako da i vi možete sami napraviti.

Korak 1: Prikupite potrebne materijale

Prikupite potrebne materijale
Prikupite potrebne materijale

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

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

2. Osnovna osnova

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 vlažnosti tla

11. Računar sa instaliranim Matlab 2017 i Arduino paketom podrške (paket podrške možete pronaći pod Dodaci)

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

Ožičite ploču i povežite se
Ožičite ploču i povežite se

Poč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 zaista ovisi o vama. Nakon što je ploča ožičena, počnite s pričvršćivanjem senzora. Senzori za kišnicu, vlagu u tlu i fotoelektrični senzori su svi analogni izlazi, pa se pobrinite da su spojeni na analogni dio Arduina. Senzor temperature je, s druge strane, digitalni izlaz, pa se pobrinite da je 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 budete sigurni da je ploča pravilno ožičena, priključite mikro USB na USB kabel s računara u mikro USB priključak na računaru i uključite Arduino. Otvorite Matlab i, provjerivši da ste instalirali Arduino paket za podršku pod Dodaci, pokrenite naredbu "fopen (serial ('nada'))", bez ". Greška bi se trebala pojaviti, a greška bi trebala reći imate raspoloživo usporedbu s brojem. Pokrenite naredbu "a = arduino ('comx', 'uno')", gdje je x broj vašeg komport, za mapiranje vašeg Arduina na objekt. LED na Arduinu bi trebao brzo treptati da bi pokazao da je povezan.

Korak 3: Kodirajte fotoelektrične i temperaturne senzore

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

Prije nego započnete kodiranje, 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 na koji ste spojeni, a a jednostavno poziva Arduino koji ste mapirali na tu varijablu. Pokrenite if naredbu, i postavite prvi uslov za sunčevu svjetlost <3. Postavite izlaz kao "info. TOD = 'noć" "da prikaže doba dana kao strukturu, a zatim dodajte još jednu naredbu sa 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. Obavezno dovršite if naredbu s krajem i prijeđite na programiranje senzor temperature.

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

Kôd za svrhe lijepljenja

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

info. TOD = 'noć'

else

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 u tlu
Kodirajte senzore za kišnicu i vlagu u tlu

Kao što je navedeno u posljednjem koraku, pobrinite se da znate u koje su portove vaši senzori priključeni na Arduino ploču jer će ovaj korak učiniti manje frustrirajućim. Počnite sa senzorom za kišnicu i pokrenite if naredbu. Postavite prvi uvjet za "readVoltage (a, 'X#')> 4", a izlaz postavite na "info. Rain = 'bez padavina". Dodajte elseif i postavite uvjet na naredbu readVoltage prije, ali postavite je> 2. Dodajte "&&" da označite još jedan 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 uslove na osnovu vlažnosti okoline prostorije u kojoj radite.

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

Kôd za svrhe lijepljenja

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

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

info. Rain = 'zamagljivanje'

else

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'

else

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 jako razlikovati, ali u ovom slučaju provest ćemo vas kroz izlaz zvučnika montiran direktno na uređaj i izlaz okvira za poruke koji se može vidjeti na udaljenom računaru. Naš zvučnik je dizajniran za emitovanje različitih frekvencija, što je lošije, za optimalnu temperaturu usjeva, sunčevu svjetlost, vlažnost tla i padavine. Započnite izlazni kôd zvučnika s if naredbom i postavite njeno stanje 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 da biste proizveli viši, pozitivniji ton. Zatim dodajte još jedno i ponovo dodajte istu naredbu playTone, ali promijenite 1000 u 1500. Ovi različiti tonovi ukazuju na ozbiljnost situacije na terenu. Obavezno dodajte kraj kako biste dovršili if naredbu.

Naš posljednji odjeljak koda bit će izlaz koji proizvodi okvir za poruku. Kreirajte 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. Koristite "string newline" za dodavanje novih redova u okvir za poruku i upišite svoju poruku u tekst koristeći navodnike, dodajući stvarnu vrijednost polja u niz pomoću gore navedene naredbe num2str. Konačno, s definiranim nizom, upotrijebila je naredbu "msgbox (string)" za prikaz podataka kao okvir za poruku na vašem monitoru.

Kôd za svrhe lijepljenja

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)

else

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 'Vanjske padavine su', num2str (info. Kiša)]

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

msgbox (string)

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 faktor ekonomije. Adekvatno nadziranje obradivog zemljišta ključno je za poljoprivrednika da maksimalno iskoristi 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 ono što želite implementirati ili eksperimentirati s njim.

Sretno kodiranje, Tim za niz poljoprivrednih senzora

Preporučuje se: