Obsah:

Pole zemědělských senzorů: 6 kroků
Pole zemědělských senzorů: 6 kroků

Video: Pole zemědělských senzorů: 6 kroků

Video: Pole zemědělských senzorů: 6 kroků
Video: Adel ukazala prso 2024, Smět
Anonim
Pole zemědělských senzorů
Pole zemědělských senzorů

Projekt Jacksona Breakella, Tylera McCubbinse a Jakoba Thalera pro EF 230

Zemědělství je zásadním výrobním faktorem ve Spojených státech. Plodiny lze použít k celé řadě různých účelů, od surovin pro výrobu oděvů, léčiv a potravinářských přídatných látek až po přímou spotřebu částí plodin, nejčastěji klíčícího ovoce. Většina plodin ve Spojených státech se pěstuje venku, kde nelze ve velkém měřítku kontrolovat povětrnostní podmínky ani teplotu. Vzhledem k tomu, jak drasticky nepříznivé povětrnostní podmínky mohou ovlivnit růst plodin a následně ovlivnit ekonomiku Spojených států, je monitorování podmínek na poli plodin životně důležité.

Naše zařízení, Agricultural Sensor Array, umožňuje zemědělcům monitorovat stav předem vybraných částí jejich pole pomocí 4 senzorů: dešťové vody, senzoru půdní vlhkosti, teplotního senzoru a fotoelektrického senzoru. Kombinace těchto senzorů umožňuje zemědělci adekvátně naplánovat sezónní produkci plodin, přizpůsobit se příliš malému nebo příliš velkému dešti, lépe se vypořádat s katastrofami, které mohou zabíjet plodiny a ušetřit čas a potíže při odebírání vzorků půdy a používání dražších senzorových zařízení. V tomto Instructable vás provedeme zapojením a kódováním za naším polem zemědělských senzorů, takže si také můžete vytvořit vlastní.

Krok 1: Shromážděte požadované materiály

Shromážděte požadované materiály
Shromážděte požadované materiály

Níže je uveden seznam požadovaných materiálů, které budete potřebovat, abyste mohli začít “

1. Deska Arduino, nejlépe Arduino Uno

2. Základní prkénko

3. 1x odpor 220 ohmů

4. Různé dráty různých barev

5. Kabel micro USB na USB

6. Reproduktor montovatelný na desku

7. Fotoelektrický snímač

8. Teplotní senzor

9. Čidlo dešťové vody

10. Čidlo vlhkosti půdy

11. Počítač s nainstalovaným balíčkem podpory Matlab 2017 a Arduino (balíček podpory najdete v části Doplňky)

Krok 2: Připojte desku a připojte se

Připojte desku a připojte se
Připojte desku a připojte se

Začněte buď zapojením desky, jak je uvedeno výše, nebo jakýmkoli způsobem, který vám nejlépe vyhovuje. Desky lze zapojit doslova neomezeně, takže přesná konfigurace je opravdu na vás. Jakmile je deska zapojena, začněte připojovat senzory. Dešťová voda, vlhkost půdy a fotoelektrické senzory jsou analogové výstupy, takže se ujistěte, že jsou zapojeny do analogové vstupní části Arduina. Teplotní senzor je na druhé straně digitální výstup, takže se ujistěte, že je zapojen do dostupného digitálního vstupu na vašem Arduinu. Arduino by mělo mít výstupy pro 3,3 V a 5 V, takže se ujistěte, že jsou senzory připojeny k napětí, se kterým jsou kompatibilní.

Jakmile si budete jisti, že je deska zapojena správně, zapojte kabel Micro USB do USB z počítače do portu Micro USB v počítači a zapněte Arduino. Otevřete Matlab a ujistěte se, že jste nainstalovali balíček podpory Arduino v části Doplňky, spusťte příkaz „fopen (serial ('nada'))" bez přípony ". Měla by se objevit chyba a chyba máte k dispozici komport s číslem. Spusťte příkaz „a = arduino ('comx', 'uno')", kde x je číslo vašeho komportu, pro namapování vašeho Arduina na objekt. LED na Arduinu by měla rychle blikat, což znamená, že je připojen.

Krok 3: Kódujte fotoelektrické a teplotní senzory

Kódujte fotoelektrická a teplotní čidla
Kódujte fotoelektrická a teplotní čidla

Než začnete kódovat, poznamenejte si, kde jsou vaše senzory na Arduinu připojeny, protože to bude důležité pro příkaz readVoltage. Začněte kód nastavením proměnné sluneční světlo rovnající se příkazu „readVoltage (a, 'X#') ', kde X# je port, ke kterému jste připojeni, a a jednoduše volá Arduino, které jste k této proměnné namapovali. Spusťte příkaz if, a nastavte první podmínku pro sluneční světlo <3. Nastavte výstup jako "info. TOD = 'noc'" pro výstup denní doby jako struktury a poté přidejte příkaz else s výstupem jako "info. TOD = ' den '". Protože se jedná o příkaz else, podmínku nepotřebujeme, protože bude fungovat pro všechny ostatní hodnoty, které nejsou definovány v příkazu if. Ujistěte se, že jste příkaz if dokončili s koncem, a přejdete k programování teplotní čidlo.

Nastavte proměnnou thermo na jiný příkaz readVoltage, přičemž příkaz je „readVoltage (a, 'X#')“. V našem případě bylo nutné teplotu převést z jednotek napětí na stupně Celsia, takže pro převod z napětí na stupně Celsia je třeba převést rovnici „tempC = (thermo-0,5).*100“. Kvůli zjednodušení jsme převedli teplotu ve stupních Celsia na Fahrenheita, ale to je čistě volitelné.

Kód pro vkládání

sluneční světlo = číst napětí (a, 'A1'), pokud sluneční světlo <3

info. TOD = 'noc'

jiný

info. TOD = 'den'

konec

thermo = readVoltage (a, 'A3');

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

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

Krok 4: Kódujte senzory vlhkosti dešťové vody a půdy

Kódujte senzory vlhkosti dešťové vody a půdy
Kódujte senzory vlhkosti dešťové vody a půdy

Jak je uvedeno v posledním kroku, ujistěte se, že víte, do jakých portů jsou vaše senzory zapojeny na desce Arduino, protože tento krok bude mnohem méně frustrující. Začněte senzorem dešťové vody a zadejte příkaz if. Nastavte první podmínku pro "readVoltage (a, 'X#')> 4" a nastavte jeho výstup na "info. Rain = 'bez srážek". Přidejte elseif a nastavte jeho podmínění na příkaz readVoltage dříve, ale nastavte jej na> 2. Přidejte „&&“pro označení další podmínky, která musí být splněna, a nastavte ji na příkaz readVoltage jako dříve a nastavte na <= 4. Výstupem bude „info. Rain = 'misting'". Nakonec přidejte else a nastavte jeho výstup na "info. Rain = 'liják'". Možná budete muset upravit hodnoty pro podmínky na základě okolní vlhkosti místnosti, ve které pracujete.

Dále začněte kódem senzoru půdní vlhkosti a začněte příkazem if. Nastavte podmínku příkazu if na "readVoltage (a, 'X#')> 4 a přidejte výstup" info.soil = 'dry' ". Přidejte příkaz elseif a pomocí výše uvedeného příkazu readVoltage jej nastavte pro> 2. Přidejte "&&" a nastavte další příkaz readVoltage pro <= 4. Nastavte jeho výstup na "info.soil = 'optimální saturace" ". Přidejte příkaz else a nastavte jeho výstup na" info.soil =' Flood ' “a nezapomeňte přidat konec.

Kód pro vkládání

if readVoltage (a, 'A0')> 4 info. Rain = 'bez srážek'

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

info. Rain = 'mlžení'

jiný

info. Rain = 'liják'

konec

pokud je přečtenoVoltage (a, 'A2')> 4

info.soil = 'suché'

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

info.soil = 'optimální nasycení'

jiný

info.soil = 'povodeň'

konec

Krok 5: Kódování výstupu reproduktoru a schránky zpráv

Kódování výstupu reproduktoru a schránky
Kódování výstupu reproduktoru a schránky

Výstupy pro toto zařízení se mohou značně lišit, ale v tomto případě vás provedeme výstupem reproduktoru namontovaným přímo na zařízení a výstupem schránky zpráv, který lze zobrazit na vzdáleném počítači. Náš reproduktor je navržen tak, aby produkoval různé frekvence, což znamená horší, pro optimální teplotu plodin, sluneční světlo, vlhkost půdy a srážky. Začněte výstupní kód reproduktoru příkazem if a nastavte jeho podmínku na příkaz „readVoltage (a, 'X#')> 4 || info.tempF = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4 ". Přidejte stejný příkaz playTone, jak je uvedeno výše, ale změňte 200 na 1 000, abyste vytvořili vyšší a pozitivnější tón. Poté přidejte else a znovu přidejte stejný příkaz playTone, ale změňte 1000 na 1500. Tyto různé tóny indikují závažnost situace v poli. Ujistěte se, že jste přidali konec k dokončení příkazu if.

Naše poslední část kódu bude výstupem, který vytvoří okno se zprávou. Vytvořte řetězec pomocí značek 'v závorkách a převeďte části své struktury na řetězce pomocí příkazu „num2str (info.x)“, kde x je název struktury v informační struktuře. Pomocí "řetězec nový řádek" přidejte nové řádky do pole se zprávou a zadejte zprávu do textu pomocí uvozovek a přidejte skutečnou hodnotu pole do řetězce pomocí výše uvedeného příkazu num2str. Nakonec s definovaným řetězcem použil příkaz „msgbox (řetězec)“k zobrazení dat jako pole se zprávou na vašem monitoru.

Kód pro vkládání

pokud je přečtenoVoltage (a, 'A2')> 4 || info.tempF <32 playTone (a, 'D9', 200, 1)

elseif sluneční světlo> = 3 || readVoltage (a, 'A2')> 2 && readVoltage (a, 'A0') <= 4

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

jiný

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

konec

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

řetězec = [řetězec nový řádek 'Půda je', num2str (info.soil)]

řetězec = [řetězec nový řádek 'Mimo srážky je', num2str (info. Rain)]

string = [string newline 'The time of day is', num2str (info. TOD)]

msgbox (řetězec)

Krok 6: Závěr

Závěr
Závěr

Zatímco svět se stále více spoléhá na syntetické alternativy k plodinám dříve sklízeným z plodin, zemědělství určitě zůstane po dlouhou dobu relevantním a důležitým faktorem ekonomiky. Přiměřené monitorování zemědělské půdy je pro zemědělce klíčové, aby se dostal co nejvíce ze své sklizně, a pomocí našeho zařízení je možné nejen sledovat celou zemědělskou půdu na dálku, ale je možné to provést i levně a snadno nainstalovat a spolehlivě. Doufáme, že se tato příručka ukázala jako informativní a snadno sledovatelná, a doufáme, že se zařízení ukáže jako užitečné, ať už jej chcete implementovat nebo experimentovat.

Šťastné kódování, Tým pole zemědělských senzorů

Doporučuje: