Inhoudsopgave:

De agrarische sensorarray: 6 stappen
De agrarische sensorarray: 6 stappen

Video: De agrarische sensorarray: 6 stappen

Video: De agrarische sensorarray: 6 stappen
Video: Waterbeheer in de landbouw - Best Practices 6/12/22 2024, Juli-
Anonim
De agrarische sensorarray
De agrarische sensorarray

Een project van Jackson Breakell, Tyler McCubbins en Jakob Thaler voor EF 230

Landbouw is een vitale productiefactor in de Verenigde Staten. Gewassen kunnen voor veel verschillende doeleinden worden gebruikt, variërend van grondstoffen voor de productie van kleding, geneesmiddelen en voedseladditieven tot directe consumptie van de delen van het gewas, meestal het ontkiemende fruit. De meeste gewassen in de Verenigde Staten worden buiten geteeld, waar weersomstandigheden en temperatuur niet op grote schaal kunnen worden gecontroleerd. Gezien hoe drastisch ongunstige weersomstandigheden de groei van gewassen kunnen beïnvloeden, en op hun beurt de economie van de Verenigde Staten, wordt het bewaken van de omstandigheden van een akker van vitaal belang.

Ons apparaat, de Agricultural Sensor Array, stelt boeren in staat om de toestand van vooraf geselecteerde delen van hun perceel te bewaken met behulp van 4 sensoren: een regenwatersensor, een bodemvochtsensor, een temperatuursensor en een foto-elektrische sensor. De combinatie van deze sensoren stelt een boer in staat om de oogstopbrengst van het seizoen adequaat te plannen, zich aan te passen aan te weinig of te veel regen, beter om te gaan met rampen die gewassen kunnen doden en tijd en moeite te besparen bij het nemen van grondmonsters en het gebruik van duurdere sensorapparatuur. In deze Instructable zullen we je door de bedrading en codering achter onze Agricultural Sensor Array leiden, zodat ook jij er zelf een kunt maken.

Stap 1: Verzamel de benodigde materialen

Verzamel de benodigde materialen
Verzamel de benodigde materialen

Hieronder vindt u een lijst met de benodigde materialen om aan de slag te gaan"

1. Arduino-bord, bij voorkeur Arduino Uno

2. Basis breadboard

3. 1x 220 ohm weerstand

4. Geassorteerde draden van verschillende kleuren

5. Micro-USB naar USB-kabel

6. Op het bord monteerbare luidspreker

7. Foto-elektrische sensor

8. Temperatuursensor

9. Regenwatersensor

10. Bodemvochtsensor

11. Computer met Matlab 2017 en Arduino Support Package geïnstalleerd (Support package is te vinden onder Add-Ons)

Stap 2: bedraad het bord en maak verbinding

Bedraad het bord en maak verbinding
Bedraad het bord en maak verbinding

Begin met het bedraden van het bord zoals hierboven weergegeven, of op de manier die het beste bij u past. Er zijn letterlijk onbeperkte manieren waarop het bord kan worden bedraad, dus de exacte configuratie is helemaal aan jou. Nadat het bord is bedraad, begint u met het bevestigen van uw sensoren. De regenwater-, bodemvocht- en foto-elektrische sensoren zijn allemaal analoge uitgangen, dus zorg ervoor dat ze zijn aangesloten op de analoge ingang van de Arduino. De temperatuursensor daarentegen is een digitale uitgang, dus zorg ervoor dat deze is aangesloten op een beschikbare digitale ingang op je Arduino. De Arduino moet uitgangen hebben voor 3.3v en 5v, dus zorg ervoor dat de sensoren zijn aangesloten op spanningen waarmee ze compatibel zijn.

Nadat u zeker weet dat het bord correct is aangesloten, steekt u de Micro USB naar USB-kabel van uw computer in de Micro USB-poort van uw computer en zet u uw Arduino aan. Open Matlab, en zorg ervoor dat u het Arduino-ondersteuningspakket onder Add-Ons hebt geïnstalleerd, voer het commando "fopen(serial('nada'))" uit, zonder de ". Er zou een fout moeten verschijnen en de fout zou moeten aangeven er is een beschikbare comport met een nummer Voer het commando "a=arduino('comx', 'uno')" uit, waarbij x het nummer van je comport is, om je Arduino aan een object toe te wijzen. De LED op de Arduino moet snel knipperen om aan te geven dat hij is aangesloten.

Stap 3: Codeer de foto-elektrische en temperatuursensoren

Codeer de foto-elektrische en temperatuursensoren
Codeer de foto-elektrische en temperatuursensoren

Noteer voordat je begint met coderen waar je sensoren zijn aangesloten op de Arduino, want dit is belangrijk voor het readVoltage-commando. Begin je code door de variabele zonlicht gelijk te stellen aan het commando "readVoltage(a, 'X#')', waarbij X# de poort is waarmee je bent verbonden, en a gewoon de Arduino aanroept die je aan die variabele hebt toegewezen. Start een if-statement en stel de eerste voorwaarde in voor zonlicht < 3. Stel de uitvoer in als "info. TOD='nacht'" om de tijd van de dag als een structuur uit te voeren, en voeg vervolgens een else-instructie toe met de uitvoer als "info. TOD=' day'". Aangezien dit een else-instructie is, hebben we geen voorwaarde nodig, omdat deze werkt voor alle andere waarden die niet zijn gedefinieerd in de if-instructie. Zorg ervoor dat u uw if-instructie afsluit met een einde en ga verder met programmeren de temperatuursensor.

Stel de variabele thermo gelijk aan een ander readVoltage commando, het commando is "readVoltage(a, 'X#')". In ons geval moest de temperatuur worden omgezet van spanningseenheden naar Celsius, dus de vergelijking "tempC=(thermo-.5).*100" om van de spanning naar Celsius te converteren. Voor het gemak hebben we de temperatuur in Celsius omgerekend naar Fahrenheit, maar dit is puur optioneel.

Code om te plakken

zonlicht=leesVoltage(a, 'A1')als zonlicht<3

info. TOD='nacht'

anders

info. TOD='dag'

einde

thermo=leesVoltage(a, 'A3');

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

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

Stap 4: Codeer de regenwater- en bodemvochtsensoren

Codeer de regenwater- en bodemvochtsensoren
Codeer de regenwater- en bodemvochtsensoren

Zoals vermeld in de laatste stap, moet u ervoor zorgen dat u weet op welke poorten uw sensoren zijn aangesloten op het Arduino-bord, omdat deze stap veel minder frustrerend zal zijn. Begin met de regenwatersensor en start een if-statement. Stel de eerste voorwaarde in voor "readVoltage(a, 'X#')>4", en stel de uitvoer in op "info. Rain='no neerslag". Voeg een elseif toe en stel de voorwaarde eerder in op de readVoltage-opdracht, maar stel deze in op >2. Voeg een "&&" toe om een andere voorwaarde aan te duiden waaraan moet worden voldaan, en stel deze in op een readVoltage-opdracht zoals eerder, en stel deze in op <=4. De uitvoer is "info. Rain='misting'". Voeg ten slotte een else toe en stel de uitvoer in op "info. Rain='downpour'". Mogelijk moet u de waarden voor de omstandigheden aanpassen op basis van de luchtvochtigheid van de ruimte waarin u werkt.

Begin vervolgens met de code voor de bodemvochtsensor en begin met een if-statement. Stel de voorwaarde van het if-statement in op "readVoltage(a, 'X#')>4, en voeg de output "info.soil='dry'" toe. Voeg een elseif-statement toe en gebruik het bovenstaande readVoltage-commando voor > 2. Voeg een "&&" toe en stel een ander readVoltage-commando in voor <=4. Stel de uitvoer in op "info.soil='optimal saturation'". Voeg een else-statement toe en stel de uitvoer in op "info.soil='flood' ", en vergeet niet een einde toe te voegen.

Code om te plakken

if readVoltage(a, 'A0')>4 info. Rain='geen neerslag'

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

info. Rain='nevel'

anders

info. Rain='regenbui'

einde

if readVoltage(a, 'A2')>4

info.bodem='droog'

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

info.soil='optimale verzadiging'

anders

info.soil='overstroming'

einde

Stap 5: Uitgangscodering luidspreker en berichtenbox

Uitgangscodering luidspreker en berichtenbox
Uitgangscodering luidspreker en berichtenbox

De uitgangen voor dit apparaat kunnen sterk variëren, maar in dit geval zullen we je door een luidsprekeruitgang leiden die direct op een apparaat is gemonteerd en een berichtboxuitgang die kan worden bekeken op een externe computer. Onze luidspreker is ontworpen om verschillende frequenties weer te geven, lagere betekenis erger, voor optimale gewastemperatuur, zonlicht, bodemvocht en neerslag. Begin uw luidsprekeruitgangscode met een if-statement en stel de voorwaarde in op het commando "readVoltage(a, 'X#')>4 || info.tempF=3 || readVoltage(a, 'A2')>2 && readVoltage(a, 'A0')<=4". Voeg hetzelfde playTone-commando toe als hierboven, maar verander 200 in 1000 om een hogere, positievere toon te produceren. Voeg dan een else toe en voeg hetzelfde playTone-commando opnieuw toe, maar verander 1000 in 1500. Deze variërende tonen geven de ernst van de situatie van het veld aan. Zorg ervoor dat u een einde toevoegt om uw if-statement te voltooien.

Ons laatste deel van de code zal een uitvoer zijn die een berichtvenster produceert. Maak een string met ' tekens tussen haakjes en converteer de delen van je structuur naar strings met het commando "num2str(info.x)", waarbij x een substructuurnaam is in de infostructuur. Gebruik "string newline" om nieuwe regels toe te voegen aan uw berichtvenster en typ uw bericht in tekst met behulp van het aanhalingsteken, waarbij u de werkelijke waarde van het veld aan de tekenreeks toevoegt met behulp van de eerder genoemde opdracht num2str. Gebruik ten slotte, met de gedefinieerde tekenreeks, de opdracht "msgbox(string)" om de gegevens als een berichtvenster op uw monitor weer te geven.

Code om te plakken

indien gelezen Spanning(a, 'A2')>4 || info.tempF<32 playTone(a, 'D9', 200, 1)

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

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

anders

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

einde

string = ['De temperatuur is (°F) ', num2str(info.tempF)]

string=[string nieuwe regel 'De bodem is ', num2str(info.soil)]

string=[string newline 'Buiten neerslag is ', num2str(info. Rain)]

string=[string newline 'De tijd van de dag is ', num2str(info. TOD)]

msgbox(string)

Stap 6: Conclusie

Conclusie
Conclusie

Terwijl de wereld steeds meer afhankelijk blijft van synthetische alternatieven voor producten die eerder uit gewassen zijn geoogst, zal landbouw zeker nog lange tijd een relevante en belangrijke factor van de economie blijven. Adequaat toezicht houden op landbouwgrond is van cruciaal belang voor een boer om het meeste uit zijn of haar oogst te halen, en met ons apparaat is het niet alleen mogelijk om de hele landbouwgrond op afstand te bewaken, maar het is mogelijk om dit op een goedkope, gemakkelijk te installeren en betrouwbare manier. We hopen dat deze handleiding informatief en gemakkelijk te volgen is gebleken, en we hopen dat het apparaat nuttig zal zijn voor hoe u het ook wilt implementeren of ermee wilt experimenteren.

Veel plezier met coderen, Het Agricultural Sensor Array-team

Aanbevolen: