Innehållsförteckning:

Agricultural Sensor Array: 6 steg
Agricultural Sensor Array: 6 steg

Video: Agricultural Sensor Array: 6 steg

Video: Agricultural Sensor Array: 6 steg
Video: HORSCH SPRINTER 6ST 6 METRE DIRECT DRILL TINE DRILL, BLOCKAGE SENSORS, Walk-around Video 2024, November
Anonim
Jordbrukssensormatrisen
Jordbrukssensormatrisen

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

Samla in nödvändigt material
Samla in nödvändigt 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

Anslut kortet och anslut
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

Koda fotoelektriska och temperatursensorer
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

Koda regnvatten- och jordfuktighetssensorer
Koda regnvatten- och jordfuktighetssensorer

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

Kodning av högtalare och meddelandebox
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

Slutsats
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: