Innehållsförteckning:
- Steg 1: Samla erforderligt material
- Steg 2: Anslut kortet och anslut
- Steg 3: Koda fotoelektriska och temperatursensorer
- Steg 4: Koda sensorerna för regnvatten och jordfuktighet
- Steg 5: Kodning av högtalare och meddelandebox
- Steg 6: Slutsats
Video: Agricultural Sensor Array: 6 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
Ett projekt av Jackson Breakell, Tyler McCubbins och Jakob Thaler för EF 230
Jordbruket är en viktig produktionsfaktor i USA. Grödor kan användas för en mängd olika ändamål, allt från råvaror för produktion av kläder, läkemedel och livsmedelstillsatser till direkt konsumtion av grödans delar, oftast den spirande frukten. Majoriteten av grödorna i USA odlas utomhus, där väderförhållanden eller temperatur inte kan kontrolleras i stor skala. Med tanke på hur drastiskt ogynnsamma väderförhållanden kan påverka tillväxten av grödor, vilket i sin tur påverkar USA: s ekonomi, blir det mycket viktigt att övervaka villkoren för ett grödfält.
Vår enhet, Agricultural Sensor Array, gör det möjligt för bönder att övervaka tillståndet hos förvalda delar av deras fält med hjälp av 4 sensorer: en regnvattensensor, en jordfuktighetssensor, en temperatursensor och en fotoelektrisk sensor. Kombinationen av dessa sensorer gör att en jordbrukare kan planera säsongens grödor på ett adekvat sätt, justera för lite eller för mycket regn, bättre hantera katastrofer som kan döda grödor och spara tid och besvär från att ta jordprover och använda dyrare sensorutrustning. I denna instruktionsbok kommer vi att leda dig genom kablarna och kodningen bakom vår jordbrukssensormatris, så att du också kan göra din egen.
Steg 1: Samla erforderligt material
Nedan finns en lista över de material som krävs för att komma igång"
1. Arduino Board, helst Arduino Uno
2. Grundläggande brödbräda
3. 1x 220 ohm motstånd
4. Assorterade trådar i olika färger
5. Micro USB till USB -kabel
6. Bordsmonterbar högtalare
7. Fotoelektrisk sensor
8. Temperaturgivare
9. Regnvattensensor
10. Jordfuktighetssensor
11. Dator med Matlab 2017 och Arduino Support Package installerat (Supportpaket finns under tillägg)
Steg 2: Anslut kortet och anslut
Börja med att antingen koppla in brädet enligt ovan, eller på vilket sätt som passar dig bäst. Det finns bokstavligen obegränsade sätt på vilka kortet kan kopplas, så den exakta konfigurationen är verkligen upp till dig. När kortet är anslutet börjar du fästa dina sensorer. Regnvattnet, jordfuktigheten och fotoelektriska sensorer är alla analoga utgångar, så se till att de är anslutna till den analoga in-delen av Arduino. Temperatursensorn, å andra sidan, är en digital utgång, så se till att den är ansluten till en tillgänglig digital ingång på din Arduino. Arduino ska ha utgångar för 3,3v och 5v, så se till att sensorerna är anslutna till spänningar som de är kompatibla med.
När du är säker på att kortet är korrekt anslutet ansluter du Micro USB till USB -kabeln från datorn till Micro USB -porten på datorn och slår på din Arduino. Öppna Matlab och se till att du har installerat Arduino-supportpaketet under tillägg, kör kommandot "fopen (serial ('nada'))" utan ". Ett fel ska dyka upp och felet ska visa du det finns en tillgänglig komport med ett nummer. Kör kommandot "a = arduino ('comx', 'uno')", där x är din komports nummer, för att kartlägga din Arduino till ett objekt. Lysdioden på Arduino ska blinka snabbt för att indikera att den är ansluten.
Steg 3: Koda fotoelektriska och temperatursensorer
Innan du börjar koda, notera var dina sensorer är anslutna på Arduino, eftersom detta kommer att vara viktigt för readVoltage -kommandot. Börja din kod med att ställa in variabeln solljus som är lika med kommandot "readVoltage (a, 'X#') ', där X# är porten du är ansluten till, och a ringer helt enkelt till den Arduino du har mappat till den variabeln. Starta en if -sats, och ställ in det första villkoret för solljus <3. Ställ in utmatningen som "info. TOD = 'night'" för att mata ut tiden på dagen som en struktur och lägg sedan till ett annat uttalande med utdata som "info. TOD = ' day '". Eftersom detta är ett annat uttalande behöver vi inte ett villkor, eftersom det fungerar för alla andra värden som inte definieras i if -satsen. Se till att du avslutar if -satsen med ett slut och går vidare till programmering temperaturgivaren.
Ställ in variabeln termo lika med ett annat readVoltage -kommando, kommandot är "readVoltage (a, 'X#')". I vårt fall måste temperaturen konverteras från spänningsenheter till Celsius, så ekvationen "tempC = (termo-.5).*100" för att konvertera från spänningen till Celsius. För enkelhets skull konverterade vi temperaturen i Celsius till Fahrenheit, men detta är rent valfritt.
Kod för att klistra in
solljus = readVoltage (a, 'A1') om solljus <3
info. TOD = 'natt'
annan
info. TOD = 'dag'
slutet
termo = readVoltage (a, 'A3');
tempC = (termo-.5).*100;
info.tempF = (9/5.*tempC) +32
Steg 4: Koda sensorerna för regnvatten och jordfuktighet
Som anges i det sista steget, se till att du vet vilka portar dina sensorer är anslutna till Arduino -kortet, eftersom det kommer att göra detta steg mycket mindre frustrerande. Börja med regnvattensensorn och starta ett if -uttalande. Ange det första villkoret för "readVoltage (a, 'X#')> 4" och ställ in dess utgång till "info. Rain = 'ingen nederbörd'. Lägg till ett elseif och ställ dess villkorade till readVoltage -kommandot innan, men ställ det till> 2. Lägg till ett "&&" för att markera ett annat villkor som måste uppfyllas, och ställ det till ett readVoltage -kommando som tidigare, och ställ det till <= 4. Utdata kommer att vara "info. Rain = 'misting'". Slutligen, lägg till en annan och ställ in dess utgång till "info. Rain = 'regnskur'". Du kan behöva justera värdena för förhållandena baserat på luftfuktigheten i rummet du arbetar i.
Börja sedan med koden för jordfuktighetssensorn och börja med ett if -uttalande. Ange villkoret för if -satsen till "readVoltage (a, 'X#')> 4 och lägg till utdata" info.soil = 'dry' ". Lägg till en elseif -sats och använd kommandot readVoltage ovan, ställ in den för> 2. Lägg till ett "&&" och ställ in ett annat readVoltage -kommando för <= 4. Ställ in dess utmatning på "info.soil = 'optimal mättnad'". Lägg till ett annat uttalande och ställ in dess utgång till "info.soil = 'flood' ", och glöm inte att lägga till ett slut.
Kod för att klistra in
if readVoltage (a, 'A0')> 4 info. Rain = 'ingen nederbörd'
elseif readVoltage (a, 'A0')> 2 && readVoltage (a, 'A0') <= 4
info. Rain = 'dimma'
annan
info. Rain = 'skyfall'
slutet
if readVoltage (a, 'A2')> 4
info.soil = 'torr'
elseif readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4
info.soil = 'optimal mättnad'
annan
info.soil = 'översvämning'
slutet
Steg 5: Kodning av högtalare och meddelandebox
Utgångar för den här enheten kan variera kraftigt, men i det här fallet kommer vi att gå dig genom en högtalarutgång monterad direkt på en enhet och en meddelandeboxutgång som kan ses på en fjärrdator. Vår högtalare är utformad för att mata ut olika frekvenser, lägre betydelse sämre, för optimal grödtemperatur, solljus, markfuktighet och nederbörd. Börja högtalarens utmatningskod med en if -sats och ställ dess villkor till kommandot "readVoltage (a, 'X#')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Lägg till samma playTone -kommando som visas ovan, men ändra 200 till 1000 för att få en högre, mer positiv ton. Lägg sedan till en annan och lägg till samma playTone -kommando igen, men ändra 1000 till 1500. Dessa varierande toner indikerar svårighetsgraden av fältets situation. Se till att du lägger till ett slut för att slutföra if -uttalandet.
Vår sista del av koden kommer att vara en utmatning som producerar en meddelanderuta. Skapa en sträng med markeringar inom parentes och konvertera delarna av din struktur till strängar med kommandot "num2str (info.x)", där x är ett understrukturnamn i informationsstrukturen. Använd "string newline" för att lägga till newlines i din meddelanderuta och skriv ditt meddelande i text med citationstecken och lägg till det faktiska värdet för fältet i strängen med kommandot num2str ovan. Slutligen, med strängen definierad, använde kommandot "msgbox (string)" för att visa data som en meddelanderuta på din bildskärm.
Kod för att klistra in
if readVoltage (a, 'A2')> 4 || info.tempF <32 playTone (a, 'D9', 200, 1)
annarsif solljus> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4
playTone (a, 'D9', 1000, 3)
annan
playTone (a, 'D9', 1500, 5)
slutet
string = ['Temp är (deg F)', num2str (info.tempF)]
string = [string newline 'The earth is', num2str (info.soil)]
string = [string newline 'Utanför nederbörd är', num2str (info. Rain)]
string = [string newline 'Tid på dagen är', num2str (info. TOD)]
msgbox (sträng)
Steg 6: Slutsats
Medan världen fortsätter att förlita sig mer och mer på syntetiska alternativ till föremål som tidigare skördats från grödor, kommer jordbruket säkert att förbli en relevant och viktig faktor för ekonomin under lång tid. Tillräcklig övervakning av jordbruksmark är avgörande för att en bonde ska få ut det mesta av sin skörd, och med vår enhet är det inte bara möjligt att fjärrövervaka hela jordbruksmarken, utan det är möjligt att göra det på en billig, lätt att installera och pålitligt sätt. Vi hoppas att den här guiden har visat sig vara informativ och lätt att följa, och vi hoppas att enheten visar sig vara användbar för hur du än vill implementera eller experimentera med den.
Glad kodning, Agricultural Sensor Array Team
Rekommenderad:
DIY LED Array (med Arduino): 7 steg
DIY LED Array (med Arduino): INTRO: Har du någonsin velat göra ett enkelt projekt som får lysdioder att verka? Nej? Det är det jag trodde. Tja, om du någonsin har velat göra något liknande är du på rätt ställe
7 segment Display Array: 6 steg (med bilder)
7 Segment Display Array: Jag har byggt en LED -display gjord av 144 7 segment displayer som styrs av en arduino nano. Segmenten styrs av 18 MAX7219 ic som kan styra upp till 64 individuella lysdioder eller 8 7 segment displayer. Arrayen har 144 skärmar som består av
Hur man använder en while -loop för att upprepa ett array i Java: 9 steg
Hur man använder en while -loop för att upprepa en array i Java: Idag kommer jag att visa dig hur du använder Java för att skapa en While -loop som kan användas för att iterera genom en lista med siffror eller ord. Detta koncept är för nybörjare och alla som vill få en snabb uppgradering av Java Loops och arrays
PCB UV LED Array Timer: 3 steg
PCB UV LED Array Timer: Det är ett slags projekt som tog lång tid att bli klar, trots sin enkelhet! Det beror på att jag länge har använt en UV -lysrörslåda för att göra mina kretskort och jag har alltid tänkt att en annan, med UV -lysdioder, kan
Stationär radar (LIDAR) Array med Arduino: 10 steg (med bilder)
Stationär radar (LIDAR) Array med Arduino: När jag bygger en robot med tvåbent tankar tänkte jag alltid på att ha någon form av cool gadget som kan spåra min motståndare och göra attacker med den. Massor av radar/lidar -projekt finns redan här. Det finns dock vissa begränsningar för mitt syfte