Indholdsfortegnelse:

Arduino åbent vinduesdetektor - til vinter: 6 trin
Arduino åbent vinduesdetektor - til vinter: 6 trin

Video: Arduino åbent vinduesdetektor - til vinter: 6 trin

Video: Arduino åbent vinduesdetektor - til vinter: 6 trin
Video: Форрест Хауи Макдональд встречает Led Zeppelin 2024, November
Anonim
Arduino åben vinduesdetektor - til vinter
Arduino åben vinduesdetektor - til vinter

Det er ved at blive koldt udenfor, men nogle gange har jeg brug for lidt frisk luft på mine værelser. Så jeg åbner vinduet, forlader rummet, lukker døren og vil vende tilbage om 5 til 10 minutter. Og efter et par timer husker jeg, at vinduet er åbent … Måske ved du det eller har børn, som giver dig denne oplevelse.

Min løsning er Open Window Detector. Batteriet holder i over et år, så placer det bare om efteråret og fjern det om foråret.

Trin 1: Deleliste

Liste over dele
Liste over dele
Liste over dele
Liste over dele
Liste over dele
Liste over dele
Liste over dele
Liste over dele
  1. Digispark board fra eBay.
  2. Gamle hovedtelefoner.
  3. Lille knap til nulstilling.
  4. Stik til højttaler - ellers er det ikke muligt at omprogrammere tavlen.
  5. Tråd.
  6. Til strømforsyning har du brug for:

AAA batterihus med tænd/sluk -kontakt. Du kan endda bruge slidte batterier, da modulet fungerer ned til 2,4 Volt

ELLER

Gammelt lipobatteri (selv 30% kapacitet er tilstrækkeligt til dette formål), og hvis du ikke allerede har en oplader til lipobatterier fra eBay.

ELLER

En holder til møntcelle CR2032

OG

1A diode 1N4001 eller tilsvarende - eller hvad du end har i denne størrelse - til beskyttelse mod omvendt polaritet

Trin 2: Programmering af Digispark Board

Programmering af Digispark Board
Programmering af Digispark Board
Programmering af Digispark Board
Programmering af Digispark Board

Driver installation

Du skal installere Digispark -driveren, før du kan programmere tavlen. Download det her, åbn det og kør "InstallDrivers.exe".

Installation af Arduino IDE

Installer Digispark -kortet til Arduino IDE som beskrevet i

Jeg anbefaler at bruge som Digispark board 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 version 1.6.8.

Da vi ønsker at spare strøm, skiftes kortets ur til 1 MHz i vores setup (), du kan vælge Digispark (1mhz - Ingen USB) som kort i menuen Værktøjer.

Kompiler og upload programmet til tavlen

I Arduino IDE opretter du en ny skitse med File/New og navngiver den f.eks. "OpenWindowAlarm". Kopiér koden fra OpenWindowAlarm.ino

ELLER

Download og udpak depotet. Åbn skitsen med File -> Open … og vælg mappen "OpenWindowAlarm".

Kompilér og upload det. Husk, at upload ikke virker, hvis højttaleren er tilsluttet. Hvis alt fungerer godt, blinker den indbyggede LED på Digispark 5 gange (i 5 minutters alarmforsinkelse) og begynder derefter at blinke efter 8 sekunder med et interval på 24 sekunder for at signalere hver temperaturaflæsning.

Trin 3: Strømreduktion

Strømreduktion
Strømreduktion
Strømreduktion
Strømreduktion

Vores Digispark -kort bruger 5mA ved 3, 0 volt. Med 2 AAA -batterier (1000mAh) vil den køre i 8 dage. Men det er muligt at reducere strømforbruget ned til 26 µA i 3 trin.

  1. Deaktivering af strøm -LED'en ved at bryde kobbertråden, der forbinder strøm -LED'en til dioden med en kniv eller fjerne / deaktivere 102 -modstanden, sparer 1,3 mA.
  2. Fjernelse af VIN -spændingsregulatoren sparer 1,2 mA.
  3. Afbrydelse af USB Pullup -modstanden (mærket 152) fra 5 Volt (VCC) sparer de resterende 2,5 mA. Afbryd den ved at bryde kobbertråden på siden af modstanden, der peger på ATTiny. Dette deaktiverer USB -interfacet og igen mulighed for at programmere Digispark -kortet via USB. For at aktivere det igen, men stadig spare strøm, skal du slutte modstanden (mærket 152) direkte til USB 5 volt, der er let tilgængelig på ydersiden af dioden.

    Den korrekte side af dioden kan findes ved hjælp af en kontinuitetstester. Den ene side af denne diode er forbundet til pin 8 på ATtiny (VCC). Den anden side er tilsluttet USB 5 volt.

Nu aktiveres USB pullup -modstanden kun, hvis Digispark -kortet er tilsluttet USB f.eks. under programmeringen, og tavlen bruger 26 µA under søvn.

Hvis du omprogrammerer sikringerne, kan du få 6 µA strømforbrug.

For at omprogrammere sikringerne skal du bruge en internetudbyder (som kan bygges med en Arduino) og en tilslutningsadapter. Til omprogrammering kan du bruge dette script.

Trin 4: Nulstil -knap

Genstarts knap
Genstarts knap
Genstarts knap
Genstarts knap
Genstarts knap
Genstarts knap
Genstarts knap
Genstarts knap

Hvis du ikke vil fjerne strømmen til nulstilling af alarmen, skal du tilslutte en nulstillingsknap mellem PB5 og jord. Jeg gjorde dette ved at forbinde den ikke -tilsluttede VIN -kobberoverflade til PB5 og lodde nulstillingsknappen direkte til VIN -pinhullet og den store jordoverflade på den fjernede VIN -spændingsregulator.

Hvis du vil slippe af med de 5 sekunders ventetid på USB -forbindelse efter nulstilling, kan du ændre micronucleus -kernen på ATtiny85. Kør scriptet "0_Burn_upgrade-t85_recommended.cmd", og genindlæs OpenWindowAlarm-programmet igen med Arduino IDE.

Trin 5: Højttaler

Højttaler
Højttaler
Højttaler
Højttaler
Højttaler
Højttaler

Jeg demonterede et gammelt headset og sluttede hanstikket til kablet.

Trin 6: Betjening

Betjening
Betjening
Betjening
Betjening
Betjening
Betjening

Hvis du vil bruge tavlen, skal du placere den på en vindueskarme og tilslutte den til et batteri. Hvis temperaturen på tærsklen er lavere end den temperatur, hvor tavlen oprindeligt var placeret, vil det tage yderligere 5 minutter at intelligent adoptere den nye startværdi.

Du bliver derefter foruroliget, hvis du lader vinduet stå åbent i mere end fem minutter.

Intern drift

  • Et åbent vindue registreres efter TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) sekunder efter aflæsning af en temperatur med en værdi på TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) lavere end temperaturen TEMPERATURE_COMPARE_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_SISTON
  • Forsinkelsen implementeres ved at sove 3 gange på `SLEEP_MODE_PWR_DOWN` i en periode på 8 sekunder for at reducere strømforbruget.
  • En registrering af et åbent vindue angives ved et længere blink på 20 ms og et kort klik hvert 24. sekund. Derfor har den interne sensor en tid på 3 minutter til at tilpasse sig den ydre temperatur for at fange selv små ændringer i temperaturen. Jo større temperaturændringen jo tidligere sensorværdien ændres og registrerer et åbent vindue.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) minutter efter registrering af åbent vindue aktiveres alarmen.

    Alarmen starter ikke, eller en aktiveret alarm stopper, hvis den aktuelle temperatur er større end den minimum målte temperatur (+ 1) dvs. vinduet er allerede lukket.

  • Den indledende alarm varer i 10 minutter. Herefter aktiveres den i en periode på 10 sekunder med en stigende pause fra 24 sekunder op til 5 minutter.
  • Hvert VCC_MONITORING_DELAY_MIN (60) minut måles batterispændingen. Afhængig af den detekterede batteritype ved opstart (se VCC_VOLTAGE_LIPO_DETECTION (3,6 volt)), er en batterispænding under VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) eller VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD hver gang angivet med Mill. Kun bipet (ikke blitzen) er betydeligt længere end bipet til registrering af et åbent vindue.
  • Efter opstart er den inaktive afregningstid 5 minutter. Hvis tavlen bliver koldere under afregningstiden, tilføjes 4:15 (eller 8:30) minutter for at undgå falske alarmer efter opstart.

Anbefalede: