Inhoudsopgave:

Low Power Arduino-temperatuurmonitor - Ajarnpa
Low Power Arduino-temperatuurmonitor - Ajarnpa

Video: Low Power Arduino-temperatuurmonitor - Ajarnpa

Video: Low Power Arduino-temperatuurmonitor - Ajarnpa
Video: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, November
Anonim
Image
Image
Verkrijg de onderdelen
Verkrijg de onderdelen

In deze Instructable bouwen we nog een andere temperatuurmonitor met behulp van een DS18B20 temperatuursensor. Maar dit project is anders. Op batterijen gaat hij bijna 1,5 jaar mee! Ja! Met behulp van de Arduino-bibliotheek met laag vermogen kunnen we dit project lange tijd laten draaien. Blijf lezen om meer te weten te komen!

Stap 1: Verkrijg de onderdelen

De onderdelen die nodig zijn om dit project te bouwen zijn deze:

ATMEGA328P ▶

Nokia 5110 LCD ▶

DS18B20 ▶

Fotoresistor ▶

Condensatoren ▶

16MHz kristal ▶

Weerstanden ▶

Multimeter Mastech 8268 ▶

De totale kosten van het project op het moment dat ik dit Instructable schrijf, is minder dan $ 10

Stap 2: Sluit alle onderdelen aan

Sluit alle onderdelen aan!
Sluit alle onderdelen aan!
Sluit alle onderdelen aan!
Sluit alle onderdelen aan!

Nu je alle onderdelen hebt, gaan we ze allemaal met elkaar verbinden volgens het schematische diagram.

De sleutel tot het lage stroomverbruik van dit project is het gebruik van een kale ATMEGA-chip in plaats van een Arduino-bord. Omdat Arduino-kaarten een spanningsregelaar gebruiken om met veel verschillende spanningsniveaus te kunnen werken, hebben ze meer stroom nodig. We hebben deze regelaar niet nodig omdat we ons project voeden met 3AA-batterijen!

In dit project gebruik ik het Nokia 5110 LCD-scherm, een geweldig scherm dat slechts 0,2 mA stroom nodig heeft als de achtergrondverlichting uit is. Indrukwekkend!

We gebruiken ook een fotoresistor om licht te detecteren. Dus als het nacht is, schakelen we het LCD-scherm uit om stroom te besparen.

Een ander klein geheimpje is de LowPower-bibliotheek. Als we de temperatuur niet meten, zetten we Arduino in slaap met behulp van de LowPower-bibliotheek. Wanneer een kale ATMEGA-chip slaapt, heeft deze slechts 0,06 mA stroom nodig! Dat betekent dat je een ATMEGA-chip meer dan 4 jaar kunt laten slapen op 3 AA-batterijen!

Dus met een slim software-ontwerp bereiken we een goede batterijduur. De ATMEGA-chip heeft ongeveer 10 mA stroom nodig als hij wakker is. Ons doel is dus om hem het grootste deel van de tijd te laten slapen. Om die reden maken we hem alleen wakker als we de temperatuur moeten meten, om de twee minuten. Als we de ATMEGA-chip wakker maken, doen we alles zo snel mogelijk en gaan we meteen weer slapen.

Het algoritme

Het project wordt elke twee minuten wakker. Het eerste dat het doet, is de fotoresistor inschakelen door HOOG naar digitale pin 6 te schrijven. Het leest de waarde van de fotoresistor en bepaalt of het dag of nacht is. Vervolgens schrijft het LOW naar digitale pin 6 om de fotoresistor uit te schakelen en de poriën te sparen. Als het nacht is, schakelen we het LCD-scherm uit als het AAN is en gaan we onmiddellijk twee minuten slapen zonder de temperatuur af te lezen. Dit is niet nodig, aangezien het display is uitgeschakeld. Zo besparen we nog meer stroom. Als er voldoende licht is, schakelen we het LCD-scherm in als het was uitgeschakeld, lezen we de temperatuur, geven we het op het scherm weer en gaan we twee minuten slapen. Die lus gaat eeuwig door.

Stap 3: Metingen

Afmetingen
Afmetingen
Afmetingen
Afmetingen
Afmetingen
Afmetingen
Afmetingen
Afmetingen

Zoals je op de foto's kunt zien, heeft het, wanneer het project slaapt en het scherm AAN is, 0,26 mA stroom nodig, wat erg laag is als je bedenkt dat we een scherm hebben!

Wanneer het project de temperatuur meet en bijwerkt, heeft het display ongeveer 11,5 mA nodig

Ten slotte, als het donker is en de ldr het LCD-scherm van de Nokia 5110 heeft uitgeschakeld, hebben we slechts 0,07 mA nodig, wat geweldig is!

Batterijduur

Om de batterijduur van het project te berekenen heb ik een eenvoudig Excel-bestand gemaakt. Ik heb de metingen van de multimeter ingevoerd en zoals je kunt zien krijgen we een batterijduur van meer dan 500 dagen als we de temperatuur elke 2 minuten meten! Dat is met het gebruik van 3AA batterijen met een capaciteit van 2.500mAs. Als u betere batterijen gebruikt, zoals een Li-Ion 3.400 mAh-batterij, kunt u uw project natuurlijk meer dan 2 jaar draaiende houden!

U kunt het Excel-bestand downloaden via deze link.

Stap 4: De code van het project

De code van het project
De code van het project
De code van het project
De code van het project

De code van het project is heel eenvoudig. We gebruiken enkele bibliotheken in dit stukje code. De bibliotheken die we gebruiken zijn de volgende:

  • Low Power-bibliotheek:
  • DS18B20 temperatuursensor bibliotheek:
  • De Nokia 5110 LCD-bibliotheek:

De projectcode bestaat uit twee bestanden. In het eerste bestand staat de code die op Arduino draait. Het volgende bestand bevat enkele binaire gegevens voor de pictogrammen die het hoofdprogramma weergeeft. U moet beide bestanden in de projectmap plaatsen om de code correct te compileren.

De code is heel eenvoudig. Je vindt het hieronder. Alle magie gebeurt in de sleepForTwoMinutes-functie. Bij deze functie zetten we Arduino in diepe slaap. Het probleem is dat bij het gebruik van de watchdog-timer de maximale hoeveelheid tijd die we Arduino in de sluimerstand kunnen zetten 8sec is. Dus we voegen dat 15 keer in een lus en we krijgen het interval van twee minuten dat we willen

Ik hoop dat je genoten hebt van dit project. Tot ziens!

Aanbevolen: