Arduino detektor otvorenih prozora - za zimu: 6 koraka
Arduino detektor otvorenih prozora - za zimu: 6 koraka
Anonim
Arduino detektor otvorenih prozora - za zimu
Arduino detektor otvorenih prozora - za zimu

Vani postaje hladno, ali ponekad mi treba malo svježeg zraka u sobama. Otvaram prozor, izlazim iz sobe, zatvaram vrata i želim se vratiti za 5 do 10 minuta. I nakon nekoliko sati sjetim se da je prozor otvoren … Možda to znate ili imate djecu koja vam daju ovo iskustvo.

Moje rješenje je detektor otvorenih prozora. Baterija će trajati više od godinu dana, pa je stavite u jesen, a izvadite u proljeće.

Korak 1: Popis dijelova

Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
Popis dijelova
  1. Digispark ploča s eBay -a.
  2. Stare slušalice.
  3. Mali gumb za resetiranje.
  4. Priključci za zvučnik - u protivnom nije moguće ponovno programirati ploču.
  5. Žica.
  6. Za napajanje je potrebno:

AAA kućište baterije s prekidačem za uključivanje/isključivanje. Možete čak koristiti i istrošene baterije jer će modul raditi do 2,4 Volta

ILI

Stara lipo baterija (čak 30% kapaciteta je dovoljno za tu svrhu), a ako već nemate, punjač za lipo baterije s eBay -a.

ILI

Držač za ćeliju dugmeta CR2032

I

1A dioda 1N4001 ili ekvivalent - ili što god imate u ovoj veličini - za zaštitu od obrnutog polariteta

Korak 2: Programiranje Digispark ploče

Programiranje Digispark ploče
Programiranje Digispark ploče
Programiranje Digispark ploče
Programiranje Digispark ploče

Instalacija upravljačkog programa

Prije programiranja ploče morate instalirati upravljački program Digispark. Preuzmite ga ovdje, otvorite i pokrenite "InstallDrivers.exe".

Instalacija Arduino IDE -a

Instalirajte Digispark ploču za Arduino IDE kako je opisano na

Preporučujem da koristite kao URL Digispark ploče u Arduino datoteci/Postavke novi https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json umjesto https://digistump.com/package_digistump_index.j i Digistump AVR ploče verzija 1.6.8.

Budući da želimo uštedjeti energiju, sat ploče se prebacuje na 1 MHz u našim postavkama () možete odabrati Digispark (1 MHz - Bez USB -a) kao ploču u izborniku Alati.

Sastavite i prenesite program na ploču

U Arduino IDE -u izradite novu skicu s Datoteka/Novo i dajte joj naziv npr. "OpenWindowAlarm". Kopirajte kôd s OpenWindowAlarm.ino

ILI

Preuzmite i raspakirajte spremište. Otvorite skicu pomoću Datoteka -> Otvori … i odaberite mapu "OpenWindowAlarm".

Sastavite i prenesite. Imajte na umu da prijenos neće funkcionirati ako je zvučnik spojen. Ako sve radi dobro, ugrađena LED dioda Digisparka trepnut će 5 puta (za 5 minuta odgode alarma), a zatim će početi bljeskati nakon 8 sekundi s intervalom od 24 sekunde za signalizaciju svakog očitanja temperature.

Korak 3: Smanjenje snage

Smanjenje snage
Smanjenje snage
Smanjenje snage
Smanjenje snage

Naša ploča Digispark koristi 5mA na 3, 0 volta. S 2 AAA baterije (1000mAh) radit će 8 dana. No moguće je smanjiti potrošnju energije na 26 µA u 3 koraka.

  1. Onemogućavanje LED -a za napajanje prekidanjem bakrene žice koja nožem spaja LED diodu za napajanje ili uklanjanjem / onemogućavanjem 102 otpornika štedi 1,3 mA.
  2. Uklanjanjem VIN regulatora napona štedi se 1,2 mA.
  3. Isključivanjem USB Pullup otpornika (označeno 152) s 5 V (VCC) štedi se preostalih 2,5 mA. Odvojite ga tako što ćete prekinuti bakrenu žicu na strani otpornika koja pokazuje na ATTiny. Time se onemogućuje USB sučelje, a zatim i mogućnost programiranja ploče Digispark putem USB -a. Da biste ga ponovno omogućili, ali ipak uštedjeli energiju, priključite otpornik (označen 152) izravno na USB 5 volt koji je lako dostupan na vanjskoj strani diode.

    Ispravna strana diode može se pronaći pomoću ispitivača kontinuiteta. Jedna strana ove diode spojena je na pin 8 ATtiny (VCC). Druga strana je spojena na USB 5 volti.

Sada se USB pullup otpornik aktivira samo ako je ploča Digispark spojena na USB, npr. tijekom programiranja, a ploča troši 26 µA tijekom spavanja.

Ako reprogramirate osigurače, možete postići potrošnju od 6 µA.

Za reprogramiranje osigurača potreban vam je ISP (koji se može sastaviti s Arduinom) i priključni adapter. Za ponovno programiranje možete koristiti ovu skriptu.

Korak 4: Gumb za resetiranje

Gumb za poništavanje
Gumb za poništavanje
Gumb za poništavanje
Gumb za poništavanje
Gumb za poništavanje
Gumb za poništavanje
Gumb za poništavanje
Gumb za poništavanje

Ako ne želite isključiti napajanje radi poništavanja alarma, spojite gumb za resetiranje između PB5 i mase. To sam učinio spajanjem nepovezane VIN bakrene površine s PB5 i lemljenjem gumba za resetiranje izravno na rupu za VIN pin i veliku masu uklonjenog VIN regulatora napona.

Ako se želite riješiti 5 sekundi čekanja na USB vezu nakon resetiranja, možete promijeniti jezgru mikronukleusa na ATtiny85. Pokrenite skriptu "0_Burn_upgrade-t85_recommended.cmd", a zatim ponovno učitajte aplikaciju OpenWindowAlarm s Arduino IDE-om.

Korak 5: Zvučnik

Zvučnik
Zvučnik
Zvučnik
Zvučnik
Zvučnik
Zvučnik

Rastavio sam stare slušalice i spojio muški konektor na kabel.

Korak 6: Rad

Operativno
Operativno
Operativno
Operativno
Operativno
Operativno

Da biste koristili ploču, postavite je na prozorsku dasku i spojite na bateriju. Ako je temperatura na pragu niža od temperature na kojoj se ploča prvobitno nalazila, trebat će dodatnih 5 minuta da se inteligentno prilagodi novoj početnoj vrijednosti.

Tada ćete biti upozoreni ako ostavite prozor otvoren dulje od pet minuta.

Unutarnji rad

  • Otvoreni prozor otkriva se nakon TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) sekundi očitanja temperature s vrijednošću od TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) nižom od temperature TEMPERATURE_COMPARE_DISTANCES TEMPER 3 sekunde * TEMPER 3) TEMPER 3 (3) TEMPER 3) TEMPER 3) TEMPER 3 * TEMPER 3 i 3 TEMPER 3 i 3 TEMPERATURE_AMOUNT * TEMPERATURE_AMOUNT * TEMPERATURE_AMOUNT * TEMPER
  • Kašnjenje se provodi spavanjem 3 puta na `SLEEP_MODE_PWR_DOWN` u razdoblju od 8 sekundi radi smanjenja potrošnje energije.
  • Otkrivanje otvorenog prozora naznačeno je duljim treptanjem od 20 ms i kratkim klikom svakih 24 sekunde. Stoga unutarnji senzor ima vrijeme od 3 minute da se prilagodi vanjskoj temperaturi kako bi zabilježio čak i male promjene temperature. Što je veća promjena temperature, ranije će se vrijednost osjetnika promijeniti i otkriti otvoren prozor.
  • `OPEN_WINDOW_ALARM_DELAY_MINUTES` (5) minuta nakon otkrivanja otvorenog prozora alarm se aktivira.

    Alarm se neće pokrenuti ili će se aktivirani alarm zaustaviti ako je trenutna temperatura veća od minimalne izmjerene temperature (+ 1), tj. Prozor je već zatvoren.

  • Početni alarm traje 10 minuta. Nakon toga se aktivira na period od 10 sekundi s povećanjem pauze od 24 sekunde do 5 minuta.
  • Svakih VCC_MONITORING_DELAY_MIN (60) minuta mjeri se napon baterije. Ovisno o vrsti detektirane baterije pri uključivanju (pogledajte VCC_VOLTAGE_LIPO_DETECTION (3,6 volti)), napon baterije ispod VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_LIPO (3550) ili VCC_VOLTAGE_LOWER_LIMIT_MILLIVOLT_STANDARD Svakih 24 sekunde označava svjetlosni indikator i svakih 24 sekunde označava da će biti prikazano svjetlosno svjetlo i Samo je zvučni signal (ne bljeskalica) znatno duži od zvučnog signala za otkrivanje otvorenog prozora.
  • Nakon uključivanja, neaktivno vrijeme taloženja je 5 minuta. Ako se ploča hladi tijekom vremena slijeganja, dodaju se 4:15 (ili 8:30) minute kako bi se izbjegli lažni alarmi nakon uključivanja.