Kazalo:

Polje kmetijskih senzorjev: 6 korakov
Polje kmetijskih senzorjev: 6 korakov

Video: Polje kmetijskih senzorjev: 6 korakov

Video: Polje kmetijskih senzorjev: 6 korakov
Video: Иоша Бах и Джон Верваке: Разум, идеализм, вычисления 2024, Julij
Anonim
Niz senzorjev za kmetijstvo
Niz senzorjev za kmetijstvo

Projekt Jacksona Breakella, Tylerja McCubbinsa in Jakoba Thalerja za EF 230

Kmetijstvo je pomemben dejavnik proizvodnje v Združenih državah. Pridelki se lahko uporabljajo za najrazličnejše različne namene, od surovin za proizvodnjo oblačil, farmacevtskih izdelkov in aditivov za živila do neposredne porabe delov pridelka, najpogosteje kalitvenega sadja. Večino pridelkov v Združenih državah gojijo na prostem, kjer vremenskih razmer in temperature ni mogoče obsežno nadzorovati. Glede na to, kako drastično neugodne vremenske razmere lahko vplivajo na rast pridelkov, ki posledično vplivajo na gospodarstvo Združenih držav, je spremljanje razmer na poljščinah ključnega pomena.

Naša naprava, Kmetijski senzorski niz, omogoča kmetom, da s 4 senzorji spremljajo stanje vnaprej izbranih delov svojega polja: senzor deževnice, senzor vlažnosti tal, temperaturni senzor in fotoelektrični senzor. Kombinacija teh senzorjev omogoča kmetu, da ustrezno načrtuje sezonsko pridelavo pridelka, se prilagodi premajhnemu ali prevelikemu dežju, bolje obvlada nesreče, ki lahko ubijejo pridelke, ter prihrani čas in težave pri odvzemu vzorcev tal in uporabi dražje senzorske opreme. V tem navodilu vas bomo vodili skozi ožičenje in kodiranje za našim nizom kmetijskih senzorjev, tako da si boste lahko tudi sami naredili svoje.

Korak: Zberite potrebne materiale

Zberite potrebne materiale
Zberite potrebne materiale

Spodaj je seznam potrebnih materialov, ki jih boste potrebovali za začetek."

1. Arduino plošča, po možnosti Arduino Uno

2. Osnovna plošča

3. 1x 220 ohmski upor

4. Različne žice različnih barv

5. Kabel mikro USB v USB

6. Zvočnik, nameščen na ploščo

7. Fotoelektrični senzor

8. Temperaturni senzor

9. Senzor deževnice

10. Senzor vlažnosti tal

11. Računalnik z nameščenim podpornim paketom Matlab 2017 in Arduino (paket podpore najdete pod dodatki)

2. korak: Ožičite ploščo in se povežite

Ožičite ploščo in se povežite
Ožičite ploščo in se povežite

Začnite tako, da ožičite ploščo, kot je prikazano zgoraj, ali na kakršen koli način, ki vam najbolj ustreza. Načini ožičenja plošče so dobesedno neomejeni, zato je natančna konfiguracija res vaša. Ko je plošča priključena, začnite s pritrditvijo senzorjev. Senzorji za deževnico, vlago v tleh in fotoelektrični so vsi analogni izhodi, zato se prepričajte, da so priključeni v analogni del Arduina. Temperaturni senzor pa je digitalni izhod, zato se prepričajte, da je priključen v razpoložljiv digitalni vhod na vašem Arduinu. Arduino mora imeti izhode za 3.3v in 5v, zato se prepričajte, da so senzorji priključeni na napetosti, s katerimi so združljivi.

Ko se prepričate, da je plošča pravilno priključena, priključite kabel Micro USB v USB iz računalnika v vrata Micro USB na računalniku in vklopite Arduino. Odprite Matlab in se prepričajte, da ste v razdelku Dodatki namestili paket za podporo Arduino, zaženite ukaz "fopen (serial ('nada'))" imate na voljo primerjavo s številko. Zaženite ukaz "a = arduino ('comx', 'uno')", kjer je x številka vašega primerjanja, da preslikate vaš Arduino v objekt. LED na Arduinu mora hitro utripati, kar pomeni, da je povezan.

3. korak: Kodirajte fotoelektrični in temperaturni senzor

Kodirajte fotoelektrične in temperaturne senzorje
Kodirajte fotoelektrične in temperaturne senzorje

Preden začnete s kodiranjem, si zapišite, kje so priključeni vaši senzorji na Arduinu, saj bo to pomembno za ukaz readVoltage. Začnite svojo kodo tako, da spremenljivo sončno svetlobo nastavite na ukaz "readVoltage (a, 'X#')", kjer je X# vrata, s katerimi ste povezani, a pa preprosto kliče Arduino, ki ste ga preslikali na to spremenljivko. Zaženite stavek if, in nastavite prvi pogoj za sončno svetlobo <3. Nastavite izhod kot "info. TOD = 'noč'", da prikaže čas dneva kot strukturo, nato pa dodajte še izjavo else z izhodom kot "info. TOD = ' day '". Ker gre za drug stavek, pogoja ne potrebujemo, saj bo deloval za vse druge vrednosti, ki niso določene v stavku if. Prepričajte se, da stavek if zaključite s koncem in pojdite na programiranje temperaturni senzor.

Spremenljivko thermo nastavite na drug ukaz readVoltage, pri čemer je ukaz "readVoltage (a, 'X#')". V našem primeru je bilo treba temperaturo pretvoriti iz napetostnih enot v Celzije, zato je treba enačbo "tempC = (termo-.5).*100" pretvoriti iz napetosti v Celzij. Zaradi enostavnosti smo temperaturo v Celzijih pretvorili v Fahrenheit, vendar je to povsem neobvezno.

Koda za namene lepljenja

sončna svetloba = beri Napetost (a, 'A1'), če je sončna svetloba <3

info. TOD = 'noč'

drugače

info. TOD = 'dan'

konec

thermo = readVoltage (a, 'A3');

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

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

4. korak: Kodirajte senzorje za deževnico in vlago v tleh

Kodirajte senzorje za deževnico in vlago v tleh
Kodirajte senzorje za deževnico in vlago v tleh

Kot je navedeno v zadnjem koraku, se prepričajte, da veste, v katera vrata so priključeni vaši senzorji na plošči Arduino, saj bo ta korak veliko manj frustrirajoč. Začnite s senzorjem deževnice in zaženite stavek if. Nastavite prvi pogoj za "readVoltage (a, 'X#')> 4" in nastavite izhod na "info. Rain = 'brez padavin". Dodajte elseif in pred tem nastavite pogoj na ukaz readVoltage, vendar ga nastavite na> 2. Dodajte "&&", da označite drug pogoj, ki ga morate izpolniti, in ga nastavite na ukaz readVoltage, kot je bil prej, in ga nastavite na <= 4. Izhod bo "info. Rain = 'magljenje" ". Na koncu dodajte še drugo in nastavite izhod na "info. Rain = 'downpour" ". Morda boste morali prilagoditi vrednosti za pogoje glede na vlažnost v prostoru, v katerem delate.

Nato začnite kodo senzorja vlažnosti tal in začnite z izjavo if. Pogoj stavka if nastavite na "readVoltage (a, 'X#')> 4 in dodajte izhod" info.soil = 'dry' ". Dodajte stavek elseif in ga z zgornjim ukazom readVoltage nastavite za> 2. Dodajte "&&" in nastavite drug ukaz readVoltage za <= 4. Nastavite njegov izhod na "info.soil = 'optimalna nasičenost" ". Dodajte še en stavek in nastavite njegov izhod na" info.soil =' flood ' ", in ne pozabite dodati konca.

Koda za namene lepljenja

če bereteVoltage (a, 'A0')> 4 info. Rain = 'brez padavin'

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

info. Rain = 'meglenje'

drugače

info. Rain = 'naliv'

konec

če bereteVoltage (a, 'A2')> 4

info.soil = 'suho'

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

info.soil = 'optimalna nasičenost'

drugače

info.soil = 'poplava'

konec

5. korak: Izhodno kodiranje zvočnikov in sporočil

Kodiranje izhoda zvočnikov in sporočil
Kodiranje izhoda zvočnikov in sporočil

Izhodi za to napravo so lahko zelo različni, vendar vas bomo v tem primeru vodili skozi izhod zvočnika, nameščen neposredno na napravi, in izhod v sporočilnem polju, ki si ga lahko ogledate na oddaljenem računalniku. Naš zvočnik je zasnovan tako, da oddaja različne frekvence, slabše, slabše, za optimalno temperaturo pridelka, sončno svetlobo, vlago v tleh in padavine. Izhodno kodo zvočnika začnite z stavkom if in nastavite njen pogoj na ukaz "readVoltage (a, 'X#")> 4 || info.tempF = 3 || readVoltage (a,' A2 ')> 2 && readVoltage (a, 'A0') <= 4 ". Dodajte isti ukaz playTone, kot je prikazano zgoraj, vendar spremenite 200 na 1000, da ustvarite višji in bolj pozitiven ton. Nato dodajte drugo in znova dodajte isti ukaz playTone, vendar spremenite 1000 v 1500. Ti različni toni označujejo resnost položaja na polju. Za zaključek stavka if dodajte konec.

Naš zadnji del kode bo izhod, ki ustvari okno s sporočilom. Ustvarite niz z oznakami 'v oklepajih in pretvorite dele svoje strukture v nize z ukazom »num2str (info.x)«, kjer je x ime podstrukture v strukturi podatkov. Uporabite »string newline«, da dodate nove vrstice v svoje polje za sporočila, in vnesite svoje sporočilo v besedilo z narekovajem, pri čemer z omenjenim ukazom num2str dodate dejansko vrednost polja v niz. Nazadnje, z definiranim nizom, uporabite ukaz "msgbox (string)" za prikaz podatkov v obliki sporočila na monitorju.

Koda za namene lepljenja

če beremo napetost (a, 'A2')> 4 || info.tempF <32 playTone (a, 'D9', 200, 1)

drugače, če je sončna svetloba> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

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

drugače

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

konec

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

string = [string newline 'The zemlja is', num2str (info.soil)]

string = [string newline 'Zunaj padavin je', num2str (info. Dež)]

string = [string newline 'Čas dneva je', num2str (info. TOD)]

msgbox (niz)

6. korak: Zaključek

Zaključek
Zaključek

Medtem ko se svet še vedno bolj zanaša na sintetične alternative za izdelke, ki so bili prej pobrani iz pridelkov, bo kmetijstvo zagotovo še dolgo ostalo pomemben in pomemben dejavnik gospodarstva. Ustrezen nadzor kmetijskih zemljišč je ključnega pomena za kmeta, da kar najbolje izkoristi svojo letino, z našo napravo pa ni mogoče samo nadzorovati celotne kmetijske zemlje na daljavo, ampak je to mogoče storiti na poceni in enostavni namestitev in zanesljiv način. Upamo, da se je ta vodnik izkazal za informativnega in enostavnega za sledenje, in upamo, da se bo naprava izkazala za uporabno, pa če jo želite implementirati ali eksperimentirati.

Veselo kodiranje, Ekipa nizov kmetijskih senzorjev

Priporočena: