Indholdsfortegnelse:
- Trin 1: Saml nødvendige materialer
- Trin 2: Tilslut kortet og tilslut
- Trin 3: Kode de fotoelektriske og temperatursensorer
- Trin 4: Kode for regnvands- og jordfugtsensorer
- Trin 5: Højttaler- og meddelelsesboksoutputkodning
- Trin 6: Konklusion
Video: Agricultural Sensor Array: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:30
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
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
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
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
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
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
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:
DIY LED Array (ved hjælp af Arduino): 7 trin
DIY LED Array (Brug af Arduino): INTRO: Har du nogensinde ønsket at lave et simpelt projekt, der får LED'er til at se ud til at bevæge sig? Ingen? Det var hvad jeg tænkte. Nå, hvis du nogensinde har ønsket at lave noget lignende, er du på det rigtige sted
7 Segment Display Array: 6 trin (med billeder)
7 Segment Display Array: Jeg har bygget et LED display lavet af 144 7 segment displays, der styres af en arduino nano. Segmenterne styres af 18 MAX7219 ic'er, der kan styre op til 64 individuelle lysdioder eller 8 7 segmentdisplays. Arrayen har 144 displays, der hver består af
Rekursivt opsummering af et array i Java: 9 trin
Rekursivt opsummering af et array i Java: Recursion er en meget nyttig og tidseffektiv procedure, der hurtigt kan løse et problem med meget lidt kode. Rekursion involverer den metode, du opretter, og kalder sig selv for at forkorte det oprindelige problem. I dette eksempel opsummerer vi en række
M5Stack IR termisk kamera ved hjælp af AMG8833 Infrarød Array Imaging Sensor: 3 trin
M5Stack IR -termokamera ved hjælp af AMG8833 Infrarød Array Imaging Sensor: Som mange har jeg haft en fascination af termiske kameraer, men de har altid været uden for min prisklasse - indtil nu !! Mens jeg surfede gennem Hackaday -webstedet, stødte jeg på denne kameraopbygning ved hjælp af M5Stack ESP32 -modul og en relativt billig
PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array: 6 trin (med billeder)
PID-baseret linje efter robot med POLOLU QTR 8RC-sensor Array: Hej! Dette er mit første opslag om instruktører, og i dag tager jeg dig ned af vejen og forklarer, hvordan man buler en PID-baseret linje efter robot ved hjælp af QTR-8RC sensor array. Inden vi går videre til bygningen af robotten, skal vi forstå