Indholdsfortegnelse:

Agricultural Sensor Array: 6 trin
Agricultural Sensor Array: 6 trin

Video: Agricultural Sensor Array: 6 trin

Video: Agricultural Sensor Array: 6 trin
Video: Day Night Sensor Array Tutorial 2024, Juli
Anonim
Agricultural Sensor Array
Agricultural Sensor Array

Et projekt af Jackson Breakell, Tyler McCubbins og Jakob Thaler for EF 230

Landbrug er en vital produktionsfaktor i USA. Afgrøder kan bruges til en lang række forskellige formål, lige fra råvarer til produktion af tøj, lægemidler og tilsætningsstoffer til fødevarer til direkte forbrug af afgrødens dele, oftest den spirende frugt. Størstedelen af afgrøderne i USA dyrkes udendørs, hvor vejrforhold eller temperatur ikke kan kontrolleres i stor skala. I betragtning af hvor drastisk ugunstige vejrforhold kan påvirke væksten af afgrøder, der igen påvirker USA's økonomi, bliver overvågning af betingelserne for en afgrødemark afgørende.

Vores enhed, Agricultural Sensor Array, gør det muligt for landmænd at overvåge tilstanden på forudvalgte dele af deres felt ved hjælp af 4 sensorer: en regnvandssensor, en jordfugtighedssensor, en temperatursensor og en fotoelektrisk sensor. Kombinationen af disse sensorer gør det muligt for en landmand tilstrækkeligt at planlægge sæsonens afgrødeudbytte, justere for lidt eller for meget regn, bedre håndtere katastrofer, der kan dræbe afgrøder og spare tid og besvær ved at tage jordprøver og bruge dyrere sensorudstyr. I denne instruks vil vi lede dig gennem ledningerne og kodningen bag vores Agricultural Sensor Array, så også du kan lave din egen.

Trin 1: Saml nødvendige materialer

Saml nødvendige materialer
Saml nødvendige materialer

Nedenfor er en liste over de nødvendige materialer, du skal bruge for at komme i gang"

1. Arduino Board, gerne Arduino Uno

2. Grundlæggende brødbræt

3. 1x 220 ohm modstand

4. Assorterede ledninger i forskellige farver

5. Micro USB til USB kabel

6. Højttaler, der kan monteres på bordet

7. Fotoelektrisk sensor

8. Temperatursensor

9. Regnvandssensor

10. Jordfugtighedssensor

11. Computer med Matlab 2017 og Arduino Support Package installeret (Supportpakke findes under tilføjelser)

Trin 2: Tilslut kortet og tilslut

Tilslut kortet og tilslut
Tilslut kortet og tilslut

Begynd med enten at tilslutte brættet som vist ovenfor, eller på den måde, der passer bedst til dig. Der er bogstaveligt talt ubegrænsede måder, hvorpå kortet kan forbindes, så den nøjagtige konfiguration er virkelig op til dig. Når kortet er kablet, skal du begynde at tilslutte dine sensorer. Regnvandet, jordfugtigheden og fotoelektriske sensorer er alle analoge udgange, så sørg for, at de er forbundet til den analoge indgang på Arduino. Temperatursensoren er derimod en digital udgang, så sørg for, at den er tilsluttet en tilgængelig digital indgang på din Arduino. Arduino skal have udgange til 3,3v og 5v, så sørg for, at sensorerne er forbundet til spændinger, som de er kompatible med.

Når du er sikker på, at kortet er korrekt forbundet, skal du tilslutte Micro USB til USB -kablet fra din computer til Micro USB -porten på din computer og tænde for din Arduino. Åbn Matlab, og sørg for, at du har installeret Arduino-supportpakken under tilføjelsesprogrammer, kør kommandoen "fopen (serial ('nada'))" uden ". En fejl skulle dukke op, og fejlen skulle vise dig der er en tilgængelig komport med et nummer. Kør kommandoen "a = arduino ('comx', 'uno')", hvor x er din komports nummer, for at kortlægge din Arduino til et objekt. LED'en på Arduino skal blinke hurtigt for at angive, at den er tilsluttet.

Trin 3: Kode de fotoelektriske og temperatursensorer

Kode de fotoelektriske og temperatursensorer
Kode de fotoelektriske og temperatursensorer

Inden du begynder at kode, skal du notere, hvor dine sensorer er forbundet på Arduino, da dette vil være vigtigt for kommandoen readVoltage. Begynd din kode ved at indstille variablen sollys lig med kommandoen "readVoltage (a, 'X#') ', hvor X# er den port, du er forbundet til, og a kalder simpelthen den Arduino, du har tilknyttet denne variabel. Start en if -sætning, og indstil den første betingelse for sollys <3. Indstil output som "info. TOD = 'night'" for at sende tidspunktet på dagen som en struktur, og tilføj derefter en anden sætning med output som "info. TOD = ' day '". Da dette er en else -sætning, har vi ikke brug for en betingelse, da den vil fungere for alle andre værdier, der ikke er defineret i if -sætningen. Sørg for at afslutte din if -sætning med en ende, og gå videre til programmering temperatursensoren.

Indstil variablen termo lig med en anden readVoltage -kommando, kommandoen er "readVoltage (a, 'X#')". I vores tilfælde skulle temperaturen konverteres fra spændingsenheder til Celsius, så ligningen "tempC = (thermo-.5).*100" for at konvertere fra spændingen til Celsius. For nemheds skyld konverterede vi temperaturen i Celsius til Fahrenheit, men dette er rent valgfrit.

Kode til indsætningsformål

sollys = readVoltage (a, 'A1') hvis sollys <3

info. TOD = 'nat'

andet

info. TOD = 'dag'

ende

termo = readVoltage (a, 'A3');

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

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

Trin 4: Kode for regnvands- og jordfugtsensorer

Kode til regnvand og jordfugtighedsfølere
Kode til regnvand og jordfugtighedsfølere

Som anført i det sidste trin, skal du sørge for at vide, hvilke porte dine sensorer er tilsluttet til Arduino -kortet, da det vil gøre dette trin meget mindre frustrerende. Begynd med regnvandssensoren, og start en if -sætning. Indstil den første betingelse for "readVoltage (a, 'X#')> 4", og indstil dens output til "info. Rain = 'ingen nedbør'. Tilføj et elseif, og indstil dets betingede til readVoltage -kommandoen før, men indstil det til> 2. Tilføj et "&&" for at angive en anden betingelse, der skal være opfyldt, og indstil den til en readVoltage -kommando som før, og indstil den til <= 4. Outputtet vil være "info. Rain = 'misting'". Tilføj til sidst en anden og indstil dens output til "info. Rain = 'regnskyl'". Du skal muligvis justere værdierne for forholdene baseret på luftfugtigheden i det rum, du arbejder i.

Start derefter koden til jordfugtighedsføleren, og start med en if -sætning. Indstil betingelsen for if -sætningen til "readVoltage (a, 'X#')> 4, og tilføj output" info.soil = 'dry' ". Tilføj en elseif -sætning, og brug kommandoen readVoltage ovenfor, sæt den til> 2. Tilføj en "&&", og indstil en anden readVoltage -kommando til <= 4. Indstil dens output til "info.soil = 'optimal mætning'". Tilføj en else -sætning og sæt dens output til "info.soil = 'flood' ", og glem ikke at tilføje en ende.

Kode til indsætningsformål

if readVoltage (a, 'A0')> 4 info. Rain = 'ingen nedbør'

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

info. Rain = 'tåge'

andet

info. Rain = 'regnskyl'

ende

hvis readVoltage (a, 'A2')> 4

info.soil = 'tør'

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

info.soil = 'optimal mætning'

andet

info.soil = 'oversvømmelse'

ende

Trin 5: Højttaler- og meddelelsesboksoutputkodning

Højttaler og meddelelsesboks Output -kodning
Højttaler og meddelelsesboks Output -kodning

Output til denne enhed kan variere meget, men i dette tilfælde fører vi dig gennem en højttalerudgang monteret direkte på en enhed og en meddelelsesboksudgang, der kan ses på en fjerncomputer. Vores højttaler er designet til at udsende forskellige frekvenser, lavere betydning værre, for optimal afgrødetemperatur, sollys, jordfugtighed og nedbør. Start din højttalers output -kode med en if -sætning, og indstil dens betingelse til kommandoen "readVoltage (a, 'X#')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Tilføj den samme playTone -kommando som vist ovenfor, men skift 200 til 1000 for at producere en højere, mere positiv tone. Tilføj derefter en anden, og tilføj den samme playTone -kommando igen, men skift 1000 til 1500. Disse varierende toner angiver sværhedsgraden af feltets situation. Sørg for at tilføje en slutning for at fuldføre din if -erklæring.

Vores sidste del af koden vil være et output, der producerer en meddelelsesboks. Opret en streng ved hjælp af 'mærker i parentes, og konverter dele af din struktur til strenge ved hjælp af kommandoen "num2str (info.x)", hvor x er et understrukturnavn i infostrukturen. Brug "string newline" til at tilføje newlines i din meddelelsesboks, og skriv din meddelelse i tekst ved hjælp af anførselstegn, tilføj den faktiske værdi af feltet til strengen ved hjælp af den førnævnte kommando num2str. Endelig, med den definerede streng, brugte kommandoen "msgbox (streng)" til at vise dataene som en meddelelsesboks på din skærm.

Kode til indsætningsformål

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

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

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

andet

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

ende

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

string = [string newline 'Jorden er', num2str (info.soil)]

string = [string newline 'Udenfor nedbør er', num2str (info. Rain)]

string = [string newline 'Tidspunktet på dagen er', num2str (info. TOD)]

msgbox (streng)

Trin 6: Konklusion

Konklusion
Konklusion

Mens verden fortsat stoler mere og mere på syntetiske alternativer til varer, der tidligere er høstet fra afgrøder, vil landbruget helt sikkert forblive en relevant og vigtig faktor i økonomien i lang tid. Tilstrækkelig overvågning af landbrugsjord er afgørende for, at en landmand får det meste ud af sin høst, og med vores enhed er det ikke kun muligt at overvåge hele landbrugsjorden eksternt, men det er muligt at gøre det på en billig, let at installere og pålidelig måde. Vi håber, at denne vejledning har vist sig at være informativ og let at følge, og vi håber, at enheden viser sig nyttig, uanset hvordan du ønsker at implementere eller eksperimentere med den.

Glad kodning, Agricultural Sensor Array Team

Anbefalede: