Kompost Sensor (1 / 7 steg)
Steg 1: Noden Sensor
Bygga noden Sensor
Vi kommer att börja detta projekt genom att bygga vår Sensor nod. Vi kommer att sätta ihop temperaturgivaren först, och sedan när vi testat det och det är vi ska införliva den trådlös kommunikationen. Det första steget är att kontrollera att du har alla biblioteken installerat.
De två som du behöver finns här:
Installera dem och se till att ett nätverkskort är FTDI och drivrutinerna installeras korrekt.
När detta är gjort bör du läsa denna Snabbstartsguide till Moteino, det finns några bra information där.
När det är gjort, löd rubriken stiften på Moteino styrelsen eftersom vi kommer att ansluta den direkt till en skärbräda och skär en bit tråd 6.83 743 mm lång tid för att använda som våra antenn. Löd den till antenn hålet på Moteino. Se bilder på denna sida och Moteino webbplats för referens. När de är lödda och du framgångsrikt har kopplats ihop med Moteino (försök belastande upp Blink skissen med LED pin inställd på 9), ansluta den till bakbord, Anslut power och marken till bakbord bussarna och vi kan komma igång avkänning.
Sensing
Vänligen referens avsändare-temp.ino fil som har koden för denna del
För temperaturgivare använder vi en termistor. Det är en enkel, billig och ganska exakt del av halvledar-maskinvaran. Vi ska sticka denna sensor i ett varmt, fuktigt och ganska frätande miljö så det är viktigt att det är klarar dessa miljöfaktorer.
Sensorn som vi använder är ett 10kOhm epoxi förseglade termistor från Adafruit, som de har utmärkt dokumentation för. Den koden jag använder är en något modifierad version av deras. Det är ingen mening i att återuppfinna hjulet, så Läs igenom deras dokumentation förutom denna handledning för mer information om denna sensor.
Hookup är superenkel, se Schematisk och bilder kopplade till denna sida. Vi kommer att använda Analog ingång 0.
Själva koden består mestadels av matematik som du inte behöver oroa dig. Den matematiska delen är avspärrat i sin egen funktion eftersom det är bättre att inte titta på den. Koden tar 5 avläsningar från Analog ingång under en kort tidsperiod och i genomsnitt dem för att få en stabilare behandling (dessa sensorer kan vara bullriga). Det gör då något magiskt för att konvertera det motståndet i temperatur som vi skriva ut följetong bildskärmen.
Radiokommunikation
Vänligen hänvisa till avsändaren-node.ino som har koden för denna del.
När din temperaturer läser korrekt, behöver vi ett sätt att skicka dem till mottagaren. Att göra att vi använder modulen RFM69 Radio, som grön sak lödas på baksidan av din Moteino. Första, kontrollera att du har en antenn som lödda till antenn port Moteino styrelsen. Utan antenn är denna radio några inches i stället för ett par hundra meter. Information om antennens och utbud finns på webbplatsen Moteino. Alla anslutningar är redan gjort för oss, så vi kan bara starta biblioteket och börja använda den. För att komma igång, föreslår jag titta på Andy Sigler utmärkt kod för vissa super enkelt skicka och ta emot exempel.
Komma igång
I koden så långt, känna vi temperaturen. Vad vi behöver göra är att ta sensor-värdet och sända den över till en annan Moteino som kommer att lyssna till radiomeddelanden. Vi gör det genom kombinationserbjudanden upp denna bit av data i ett litet paket och skicka det via etern. Detta paket kallas "nyttolast". När "nyttolasten" når mottagaren, skickar mottagaren en snabb meddelande tillbaka ordstav "Fick dina paket, allt ser OK". Detta kallas en bekräftelse (shorthanded till ACK i koden). Om en bekräftelse inte är emot av avsändaren, det vänta en liten stund och försök skicka det igen. Om 5 gånger försöker och misslyckas, kommer det att ge upp. Detta är ett mycket viktigt sätt att skapa stabilitet och ansvarsskyldighet i vår trådlös kommunikation eftersom vi behöver veta om våra meddelanden tas emot.
Driver den
För att driva Moteino utan att datorn kommer vi att använda ett 9 volts batteri är anslutet till Moteino VIN stift. Detta stift skickar ström till spänningsregulator, som kliver det ner till 3.3V för användning i styrelsen.
Strömförbrukning
Eftersom dessa sensornoder är batteridrivna, är strömförbrukning en mycket viktig faktor att ta hänsyn till. Detta är en lite utanför ramen för denna tutorial, men jag ska diskutera i stort sett här. Den befintliga kretsen, som du ser bör fungera bra som är, men det finns utrymme för optimeringar. Varje annan komponent förbrukar några mängd ström. Jag gjorde några aktuella mätningar verkligen snabbt med ett 9V batteri driver Moteino.
- en tom skiss:
- 24mA * 9V = 0.216 watt
- med mikrokontroller sova (och radio på):
- 16mA * 9V = 0.144 watt
- med radio sova (och µC på):
- 7.5mA * 9V = 0.0675 watt
- med både radio och µC sova:
- 4µA * 9V = 0.036 milliwatt
- med både sov- och termistor inkopplad:
- 0.16mA * 9V = 1,44 milliwatt
Här kan du se att de största svin av makt är mikrokontroller och radion (uppenbarligen). Båda av dem kan vi sätta för att sova och reducera makten förtäringen dramatiskt. Vi har tyvärr fastnat med förbrukning av termistor utan lite mer avancerade kretsar. Vi använder biblioteket av jeelabs som har en stor funktion kallas Sleepy. Jag använder den så mycket jag utdraget den och gjorde mitt eget bibliotek så att jag kan använda bara den en funktionen utan att någon av de andra saker. Det är här i min github. Sleepy i princip ersätter bara funktionen delay().
Till slut återstår en krets som förbrukar en nominell ~ 1,5 mW på 9v. En typisk 9 volts batteri alkaliskt batteri har en kapacitet på 565mAh, som är 5 watt timmar. Sensor förbrukar en hastighet av 0.0015 watt timmar. En bra tumregel med batterier är att endast 50% av sin nominella kapacitet är faktiskt användbar. Det lämnar oss med 2,5 watt timmar av tillgänglig kapacitet. Från dessa beräkningar, bör vi förvänta oss en livslängd på ca 1600 timmar, eller ca 2 månader, vilket är helt rimligt att tillämpningsområdet för detta projekt. Detta, naturligtvis, tar inte hänsyn till självurladdning batterier.
Nu när vi har en sensor som kan leva på egna under en lång tid, är det dags att bygga något som tar emot meddelanden.