Innholdsfortegnelse:

Arduino åpen vindusdetektor - for vinter: 6 trinn
Arduino åpen vindusdetektor - for vinter: 6 trinn

Video: Arduino åpen vindusdetektor - for vinter: 6 trinn

Video: Arduino åpen vindusdetektor - for vinter: 6 trinn
Video: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, November
Anonim
Arduino åpen vindusdetektor - for vinteren
Arduino åpen vindusdetektor - for vinteren

Det blir kaldt ute, men noen ganger trenger jeg litt frisk luft på rommene. Så jeg åpner vinduet, forlater rommet, lukker døren og vil komme tilbake om 5 til 10 minutter. Og etter noen timer husker jeg at vinduet er åpent … Kanskje du vet dette eller har barn, noe som gir deg denne opplevelsen.

Min løsning er Open Window Detector. Batteriet varer i over et år, så det er bare å plassere det om høsten og fjerne det om våren.

Trinn 1: Deleliste

Deleliste
Deleliste
Deleliste
Deleliste
Deleliste
Deleliste
Deleliste
Deleliste
  1. Digispark -brett fra eBay.
  2. Gamle hodetelefoner.
  3. Liten knapp for tilbakestilling.
  4. Kontakt for høyttaler - ellers er det ikke mulig å omprogrammere kortet.
  5. Metalltråd.
  6. For strømforsyning trenger du:

AAA batteriveske med av/på -bryter. Du kan til og med bruke utslitte batterier, siden modulen går ned til 2,4 volt

ELLER

Gammelt lipobatteri (til og med 30% kapasitet er tilstrekkelig for dette formålet), og hvis du ikke allerede har en lader for lipobatterier fra eBay.

ELLER

En holder for myntcelle CR2032

OG

1A diode 1N4001 eller tilsvarende - eller hva du enn har i denne størrelsen - for beskyttelse mot omvendt polaritet

Trinn 2: Programmering av Digispark Board

Programmering av Digispark Board
Programmering av Digispark Board
Programmering av Digispark Board
Programmering av Digispark Board

Driver installasjon

Du må installere Digispark -driveren før du kan programmere kortet. Last den ned her, åpne den og kjør "InstallDrivers.exe".

Installasjon av Arduino IDE

Installer Digispark -kortet for Arduino IDE som beskrevet i

Jeg anbefaler å bruke som Digispark -tavle -URL i Arduino File/Preferences den nye https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json i stedet for https://digistump.com/package_digistump_index.json og installere Digistump AVR Boards versjon 1.6.8.

Siden vi ønsker å spare strøm, blir brettklokken byttet til 1 MHz i oppsettet vårt () du kan velge Digispark (1mhz - Ingen USB) som kort i Verktøy -menyen.

Kompiler og last opp programmet til tavlen

I Arduino IDE lag en ny skisse med File/New og navngi den f.eks. "OpenWindowAlarm". Kopier koden fra OpenWindowAlarm.ino

ELLER

Last ned og trekk ut depotet. Åpne skissen med Fil -> Åpne … og velg mappen "OpenWindowAlarm".

Kompiler og last den opp. Husk at opplasting ikke fungerer hvis høyttaleren er tilkoblet. Hvis alt fungerer bra, vil den innebygde LED-en på Digispark blinke 5 ganger (i 5 minutters alarmforsinkelse) og deretter begynne å blinke etter 8 sekunder med et intervall på 24 sekunder for å signalisere hver temperaturavlesning.

Trinn 3: Strømreduksjon

Strømreduksjon
Strømreduksjon
Strømreduksjon
Strømreduksjon

Digispark -kortet bruker 5mA ved 3, 0 volt. Med 2 AAA -batterier (1000mAh) vil den gå i 8 dager. Men det er mulig å redusere strømforbruket ned til 26 µA i 3 trinn.

  1. Deaktivering av strøm -LED -en ved å bryte kobbertråden som kobler strøm -LED -en til dioden med en kniv eller fjerne / deaktivere 102 -motstanden sparer 1,3 mA.
  2. Ved å fjerne VIN spenningsregulator sparer du 1,2 mA.
  3. Hvis du kobler fra USB Pullup -motstanden (merket 152) fra 5 Volt (VCC), spares de resterende 2,5 mA. Koble den fra ved å bryte kobbertråden på siden av motstanden som peker mot ATTiny. Dette deaktiverer USB -grensesnittet og igjen muligheten til å programmere Digispark -kortet via USB. For å aktivere den igjen, men likevel spare strøm, kobler du motstanden (merket 152) direkte til USB 5 volt som er lett tilgjengelig på utsiden av dioden.

    Den riktige siden av dioden finner du ved å bruke en kontinuitetstester. Den ene siden av denne dioden er koblet til pinne 8 på ATtiny (VCC). Den andre siden er koblet til USB 5 volt.

Nå er USB pullup -motstanden bare aktivert hvis Digispark -kortet er koblet til USB f.eks. under programmeringen og tavlen bruker 26 µA under søvn.

Hvis du omprogrammerer sikringene, kan du få 6 µA strømforbruk.

For å omprogrammere sikringene trenger du en ISP (som kan bygges med en Arduino) og en tilkoblingsadapter. For omprogrammering kan du bruke dette skriptet.

Trinn 4: Tilbakestill -knapp

Nullstillknapp
Nullstillknapp
Nullstillknapp
Nullstillknapp
Nullstillknapp
Nullstillknapp
Nullstillknapp
Nullstillknapp

Hvis du ikke vil fjerne strømmen for å tilbakestille alarmen, kobler du til en tilbakestillingsknapp mellom PB5 og bakken. Jeg gjorde dette ved å koble den ikke -tilkoblede VIN -kobberoverflaten til PB5 og lodde tilbakestillingsknappen direkte til VIN -pinnehullet og den store bakken på den fjernede VIN -spenningsregulatoren.

Hvis du vil bli kvitt de 5 sekundene du venter på USB -tilkobling etter tilbakestilling, kan du endre mikrokjernekjernen på ATtiny85. Kjør "0_Burn_upgrade-t85_recommended.cmd" -skriptet og last deretter inn OpenWindowAlarm-programmet på nytt med Arduino IDE.

Trinn 5: Høyttaler

Høyttaler
Høyttaler
Høyttaler
Høyttaler
Høyttaler
Høyttaler

Jeg demonterte et gammelt headset og koblet hankontakten til kabelen.

Trinn 6: Drift

Drift
Drift
Drift
Drift
Drift
Drift

For å bruke tavlen, plasser den på en vinduskarme og koble den til et batteri. Hvis temperaturen på terskelen er lavere enn temperaturen der brettet opprinnelig lå, vil det ta ytterligere 5 minutter å intelligent adoptere den nye startverdien.

Du vil da bli skremt hvis du lar vinduet stå åpent lenger enn fem minutter.

Intern drift

  • Et åpent vindu oppdages etter TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) sekunder etter avlesning av en temperatur med en verdi på TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) lavere enn temperaturen TEMPERATURE_COMPARE_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_SISTON
  • Forsinkelsen implementeres ved å sove 3 ganger på `SLEEP_MODE_PWR_DOWN` i en periode på 8 sekunder for å redusere strømforbruket.
  • En registrering av et åpent vindu indikeres med et lengre blink på 20 ms og et kort klikk hvert 24. sekund. Derfor har den interne sensoren en tid på 3 minutter til å justere seg til utetemperaturen for å fange selv små temperaturendringer. Jo større temperaturendring jo tidligere vil sensorverdien endres og oppdage et åpent vindu.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) minutter etter registrering av åpent vindu er alarmen aktivert.

    Alarmen starter ikke eller en aktivert alarm stopper hvis gjeldende temperatur er større enn minimum målt temperatur (+ 1) dvs. vinduet er allerede lukket.

  • Den første alarmen varer i 10 minutter. Etter dette aktiveres det i en periode på 10 sekunder med en økende pause fra 24 sekunder til 5 minutter.
  • Hvert VCC_MONITORING_DELAY_MIN (60) minutt måles batterispenningen. Avhengig av den oppdagede batteritypen ved oppstart (se VCC_VOLTAGE_LIPO_DETECTION (3,6 volt)), er en batterispenning under VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) eller VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD indikert med Mill. Bare pipetonen (ikke blitsen) er vesentlig lengre enn pipet for en deteksjon av et åpent vindu.
  • Etter oppstart er den inaktive avregningstiden 5 minutter. Hvis brettet blir kaldere i løpet av oppgjørstiden, legges det til 4:15 (eller 8:30) minutter for å unngå falske alarmer etter oppstart.

Anbefalt: