Stap 1: De sensornode
Gebouw de sensornode
We gonna dit project beginnen door het bouwen van onze sensornode. Zetten we samen de temperatuursensor eerst, en dan zodra we hebben getest die en het is werken we de draadloze communicatie zal nemen. De eerste stap is om ervoor te zorgen dat u de all de bibliotheken geïnstalleerd hebben.
De twee u moet bent hier:
Installeren die en zorg ervoor dat u een FTDI-adapter hebt en de stuurprogramma's juist zijn geïnstalleerd.
Zodra dat wordt gedaan u moet leest deze Snelstartgids voor de Moteino is er er sommige nuttige informatie.
Zodra dat is gebeurd, soldeer de kop pinnen op het bord Moteino omdat we zullen worden stekker direct in een breadboard en knip een stuk draad 6.83 in (743mm) lang te gebruiken als onze antenne. Soldeer het om het gat van de antenne op de Moteino. Zie de afbeeldingen op deze pagina en de website Moteino ter referentie. Zodra die zijn gesoldeerd en u hebt met succes geïnterfacet met de Moteino (probeer uploaden van de schets knipperen met de LED-pin ingesteld op 9), steek de stekker in het breadboard, de kracht en de grond verbinden met het breadboard bussen en we kunnen beginnen sensing.
Sensing
Raadpleeg afzender-temp.ino bestand dat de code voor dit deel heeft
Voor de temperatuursensor, zijn we met behulp van een Thermistor. Het is een eenvoudig, goedkoop en vrij nauwkeurig hardwareonderdeel vaste toestand. We gaan worden steken deze sensor in een warme, vochtige en tamelijk bijtende omgeving, dus het is belangrijk dat er kunnen weerstaan deze omgevingsfactoren.
De sensor die we gebruiken is een 10kOhm Epoxy verzegeld Thermistor van Adafruit, die zij hebben uitstekende documentatie voor. De code die ik gebruik is een iets gewijzigde versie van hen. Het heeft geen zin in het opnieuw uitvinden van het wiel, dus lees via hun documentatie naast dit leerprogramma voor meer informatie over deze sensor.
De aansluiting is super eenvoudig, zie het schema en de afbeeldingen zijn toegevoegd aan deze pagina. We worden met behulp van analoge ingang 0.
De code zelf bestaat grotendeels uit de wiskunde die u niet hoeft te bekommeren. De math deel is afgezet uit in zijn eigen functie omdat het beter is om niet naar te kijken. De code 5 lezingen van de analoge Input neemt met een korte hoeveelheid tijd en gemiddelden hen om een stabieler lezing (deze sensoren kunnen luidruchtig zijn). Het doet dan wat magie om te converteren die weerstand naar de temperatuur die we de seriële Monitor uitprinten.
Radiocommunicatie
Raadpleeg afzender-node.ino , die de code voor dit deel heeft.
Zodra uw temperaturen aan het lezen bent correct, zullen we een manier van het verzenden van hen naar de ontvanger. Doen dat, zijn wij met behulp van de RFM69 Radio module, die groene ding vastgesoldeerd aan de achterkant van uw Moteino. Allereerst, zorg ervoor dat u een antenne vastgesoldeerd aan de poort van de antenne van de Moteino bestuur. Zonder de antenne is het bereik van deze radio een paar duim in plaats van een paar honderd meter. Informatie over van de antenne en bereik kan worden gevonden op de Site van Moteino. Alle verbindingen zijn reeds voor ons, zodat we kunnen gewoon de bibliotheek initialiseren en beginnen het te gebruiken. Om te beginnen stel ik Andy Sigler de uitstekende code bekijkt voor sommige super eenvoudig verzenden/ontvangen voorbeelden.
Aan de slag
In de code sensing we tot nu toe de temperatuur. Wat we moeten doen is om de waarde van de sensor en het over naar een andere Moteino die naar radio berichten luisteren zal sturen. We doen dat door bundeling van dit stukje van de gegevens in een klein pakje en doorgegeven via de ether. Dit pakket wordt de 'payload' genoemd. Zodra de 'payload' de ontvanger aankomt, stuurt de ontvanger een snel bericht terug "Heb uw pakket, alles ziet er OK". Dit heet een bevestiging (shorthanded aan ACK in de code). Als er een bevestiging is niet ontvangen door de afzender, zal het een tijdje wachten en opnieuw proberen te verzenden het. Als het 5 keer geprobeerd en mislukt, zal het geven. Dit is een echt belangrijke manier van het creëren van stabiliteit en verantwoordingsplicht in onze draadloze communicatie omdat we weten willen als onze berichten worden ontvangen.
Het voeden
Voor het aandrijven van de Moteino zonder de computer zullen we met een 9 volt-batterij aangesloten op de VIN pin van de Moteino. Deze pin stuurt macht naar de spanningsregelaar, welke het tot 3,3 v voor gebruik op het bord stappen.
Stroomverbruik
Omdat deze sensornodes batterij aangedreven, is stroomverbruik een echt belangrijke factor rekening te houden. Dit is een een beetje buiten het bestek van deze tutorial, maar ik ga hier in grote lijnen bespreken. Het bestaande circuit, zoals u zult zien zou moeten werken prima zoals het is, maar er is ruimte voor optimalisaties. Iedere andere component verbruikt sommige hoeveelheid stroom. Ik heb sommige huidige metingen echt snel met een 9V batterij voor het aandrijven van de Moteino.
- een lege schets:
- 24mA * 9V = 0.216 watt
- met de microcontroller slapen (en de radio op):
- 16mA * 9V = 0.144 watt
- met de radio slapen (en de µC op):
- 7.5mA * 9V = 0.0675 watt
- met zowel radio als µC slapen:
- 4µA * 9V = 0.036 milliwatt
- met slapen én de thermistor aangesloten:
- 0.16mA * 9V = 1,44 milliwatt
U kunt hier zien dat de grootste hogs van macht de microcontroller en de radio zijn (uiteraard). Zowel voor die we kunnen zetten om te slapen en het energieverbruik drastisch verminderen. Helaas zitten we met de Thermistor consumptie zonder wat meer geavanceerde circuits. We gebruiken de bibliotheek gemaakt door jeelabs , die een geweldige functie genaamd Sleepy heeft. Ik gebruik het zo veel ik het uitgepakt en mijn eigen bibliotheek maakte zodat ik net dat een functie zonder dat een van de andere dingen kunt gebruiken. Het is hier in mijn github. Sleepy vervangt in feite gewoon de delay() functie.
Uiteindelijk zitten we met een circuit wat een nominale verbruikt ~ 1,5 mW op 9v. Een typische 9 volt batterij alkaline batterij heeft een capaciteit van 565mAh, die is 5 watt-uur. Onze sensor verbruikt met een snelheid van 0.0015 watt-uur. Een goede vuistregel met batterijen is dat slechts 50% van hun nominale capaciteit daadwerkelijk bruikbaar. Dat laat ons met 2,5 watt uren van beschikbare capaciteit. Vanuit deze schattingen, zouden wij moeten verwachten een levensduur van ongeveer 1600 uur of ongeveer 2 maanden, die is geheel redelijk voor de omvang van dit project. Dit, natuurlijk, is niet rekening houdend met het percentage van zelfontlading van de accu.
Nu dat we een sensor die hebben op zijn eigen voor een lengte van tijd leven kan, is het tijd om iets te bouwen dat haar berichten ontvangt.