Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Det börjar bli kallt ute, men ibland behöver jag lite frisk luft i mina rum. Så jag öppnar fönstret, lämnar rummet, stänger dörren och vill komma tillbaka om 5 till 10 minuter. Och efter några timmar kommer jag ihåg att fönstret är öppet … Kanske du vet detta eller har barn, vilket ger dig denna upplevelse.
Min lösning är Open Window Detector. Batteriet håller i över ett år, så placera det bara på hösten och ta bort det på våren.
Steg 1: Dellista
- Digispark ombord från eBay.
- Gamla hörlurar.
- Liten knapp för återställning.
- Anslutningar för högtalare - annars är det inte möjligt att omprogrammera kortet.
- Tråd.
- För strömförsörjning behöver du:
AAA batterifodral med strömbrytare. Du kan till och med använda slitna batterier, eftersom modulen fungerar ner till 2,4 volt
ELLER
Gammalt lipobatteri (även 30% kapacitet räcker för detta ändamål) och om du inte redan har en laddare för lipobatterier från eBay.
ELLER
En hållare för myntcellen CR2032
OCH
1A diod 1N4001 eller motsvarande - eller vad du än har i den här storleken - för skydd mot omvänd polaritet
Steg 2: Programmering av Digispark Board
Installation av drivrutinen
Du måste installera Digispark -drivrutinen innan du kan programmera kortet. Ladda ner den här, öppna den och kör "InstallDrivers.exe".
Installation av Arduino IDE
Installera Digispark -kortet för Arduino IDE enligt beskrivningen i
Jag rekommenderar att du använder Digispark board URL i Arduino File/Preferences den nya https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json istället för https://digistump.com/package_digistump_index.json och installerar Digistump AVR Boards version 1.6.8.
Eftersom vi vill spara ström ändras kortets klocka till 1 MHz i vår inställning () du kan välja Digispark (1mhz - Ingen USB) som kort i menyn Verktyg.
Kompilera och ladda upp programmet till tavlan
I Arduino IDE skapa en ny skiss med File/New och namnge den t.ex. "OpenWindowAlarm". Kopiera koden från OpenWindowAlarm.ino
ELLER
Ladda ner och extrahera förvaret. Öppna skissen med Arkiv -> Öppna … och välj mappen "OpenWindowAlarm".
Kompilera och ladda upp den. Tänk på att överföringen inte fungerar om högtalaren är ansluten. Om allt fungerar bra kommer den inbyggda lysdioden på Digispark att blinka 5 gånger (för 5 minuters larmfördröjning) och sedan börja blinka efter 8 sekunder med ett intervall på 24 sekunder för att signalera varje temperaturavläsning.
Steg 3: Strömminskning
Vårt Digispark -kort använder 5mA vid 3, 0 volt. Med 2 AAA -batterier (1000mAh) kommer den att fungera i 8 dagar. Men det är möjligt att minska strömförbrukningen till 26 µA i tre steg.
- Inaktivering av ström -LED genom att bryta koppartråden som ansluter ström -LED till dioden med en kniv eller ta bort / inaktivera 102 -motståndet sparar 1,3 mA.
- Att ta bort VIN -spänningsregulatorn sparar 1,2 mA.
-
Om du kopplar bort USB Pullup -motståndet (märkt 152) från 5 Volt (VCC) sparas de återstående 2,5 mA. Koppla bort den genom att bryta koppartråden på sidan av motståndet som pekar på ATTiny. Detta inaktiverar USB -gränssnittet och i sin tur möjligheten att programmera Digispark -kortet via USB. För att aktivera det igen, men ändå spara ström, anslut motståndet (märkt 152) direkt till USB 5 volt som är lättillgänglig på utsidan av dioden.
Diodens rätta sida kan hittas med hjälp av en kontinuitetstester. Ena sidan av denna diod är ansluten till stift 8 på ATtiny (VCC). Den andra sidan är ansluten till USB 5 volt.
Nu aktiveras USB -pullup -motståndet endast om Digispark -kortet är anslutet till USB t.ex. under programmeringen och tavlan förbrukar 26 µA under sömnen.
Om du programmerar om säkringarna kan du få 6 µA strömförbrukning.
För att omprogrammera säkringarna behöver du en ISP (som kan byggas med en Arduino) och en anslutningsadapter. För omprogrammering kan du använda detta skript.
Steg 4: Återställ -knapp
Om du inte vill ta bort strömmen för att återställa larmet, anslut en återställningsknapp mellan PB5 och jord. Jag gjorde detta genom att ansluta den oanslutna VIN -kopparytan till PB5 och lödde återställningsknappen direkt till VIN -stifthålet och den stora markytan på den borttagna VIN -spänningsregulatorn.
Om du vill bli av med de fem sekundernas väntan på USB -anslutning efter återställning kan du ändra mikrokärnkärnan på ATtiny85. Kör skriptet "0_Burn_upgrade-t85_recommended.cmd" och ladda sedan om OpenWindowAlarm-programmet igen med Arduino IDE.
Steg 5: Högtalare
Jag demonterade ett gammalt headset och kopplade hankontakten till kabeln.
Steg 6: Användning
Om du vill använda brädan placerar du den på en fönsterbräda och ansluter den till ett batteri. Om temperaturen på tröskeln är lägre än temperaturen där brädan ursprungligen placerades tar det ytterligare 5 minuter att intelligent anta det nya startvärdet.
Du blir då orolig om du lämnar fönstret öppet längre än fem minuter.
Intern drift
- Ett öppet fönster detekteras efter TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) sekunder efter avläsning av en temperatur med ett värde på TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) lägre än temperaturen TEMPERATURE_COMPARE_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_DISTANCE * TEMPER_SISTON
- Fördröjningen genomförs genom att sova 3 gånger på `SLEEP_MODE_PWR_DOWN` under en period av 8 sekunder för att minska strömförbrukningen.
- En upptäckt av ett öppet fönster indikeras av en längre blinkning på 20 ms och ett kort klick var 24: e sekund. Därför har den interna sensorn en tid på 3 minuter att anpassa sig till yttertemperaturen för att fånga även små temperaturförändringar. Ju större temperaturförändring desto tidigare ändras sensorvärdet och detekterar ett öppet fönster.
-
`OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) minuter efter detektering av öppna fönster larmet aktiveras.
Larmet startar inte eller ett aktiverat larm stoppas om den aktuella temperaturen är högre än den lägsta uppmätta temperaturen (+ 1) dvs fönstret har redan stängts.
- Det första larmet varar i 10 minuter. Efter detta aktiveras det under en period av 10 sekunder med en ökande paus från 24 sekunder upp till 5 minuter.
- Varje VCC_MONITORING_DELAY_MIN (60) minuter mäts batterispänningen. Beroende på den upptäckta batteritypen vid uppstart (se VCC_VOLTAGE_LIPO_DETECTION (3,6 volt)), är en batterispänning under VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) eller VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD indikerad med LED varje gång och blinkar varje dag med Mill. Endast pipen (inte blixten) är betydligt längre än pipen för att upptäcka ett öppet fönster.
- Efter uppstart är den inaktiva avvecklingstiden 5 minuter. Om brädan blir kallare under avvecklingstiden läggs 4:15 (eller 8:30) minuter till för att undvika falska larm efter uppstart.