Sadržaj:

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

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

Video: Arduino detektor otvorenih prozora - za zimu: 6 koraka
Video: LDmicro 21: настройка режима C и Arduino Mega (программирование микроконтроллера с помощью LDmicro) 2024, Novembar
Anonim
Arduino detektor otvorenih prozora - za zimu
Arduino detektor otvorenih prozora - za zimu

Vani je 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 i izvadite u proljeće.

Korak 1: Lista dijelova

Lista delova
Lista delova
Lista delova
Lista delova
Lista delova
Lista delova
Lista delova
Lista delova
  1. Digispark ploča sa eBay -a.
  2. Stare slušalice.
  3. Sitno dugme za resetovanje.
  4. Konektori za zvučnik - u protivnom nije moguće ponovno programirati ploču.
  5. Žica.
  6. Za napajanje je potrebno:

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

ILI

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

ILI

Držač za ćeliju dugmeta CR2032

AND

1A dioda 1N4001 ili ekvivalentna - 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 ga 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šoj postavci () možete odabrati Digispark (1 mhz - bez USB -a) kao ploču u izborniku Alati.

Sastavite i postavite program na ploču

U Arduino IDE -u stvorite novu skicu s File/New i dajte joj naziv npr. "OpenWindowAlarm". Kopirajte kôd s OpenWindowAlarm.ino

ILI

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

Sastavite i učitajte. Imajte na umu da prijenos neće funkcionirati ako je zvučnik priključen. Ako sve radi dobro, ugrađena LED dioda Digisparka će treperiti 5 puta (za 5 minuta odgode alarma), a zatim će početi treperiti 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 Digispark ploča koristi 5mA na 3, 0 volta. Sa 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 povezuje LED diodu za napajanje ili uklanjanjem / onemogućavanjem otpornika 102 štedi 1,3 mA.
  2. Uklanjanjem VIN regulatora napona štedi se 1,2 mA.
  3. Isključivanjem USB Pullup otpornika (označeno 152) sa 5 V (VCC) štedi se preostalih 2,5 mA. Odvojite ga tako što ćete prekinuti bakrenu žicu na strani otpornika koja pokazuje na ATTiny. Ovo onemogućava USB sučelje i zauzvrat mogućnost programiranja Digispark ploče putem USB -a. Da biste ga ponovo omogućili, ali ipak uštedjeli energiju, priključite otpornik (označen 152) izravno na USB 5 volti koji je lako dostupan na vanjskoj strani diode.

    Pravilna 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 otpornik aktivira samo ako je Digispark ploča spojena na USB, npr. tokom programiranja i ploča troši 26 µA tokom 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: Dugme za poništavanje

Dugme za poništavanje
Dugme za poništavanje
Dugme za poništavanje
Dugme za poništavanje
Dugme za poništavanje
Dugme za poništavanje
Dugme za poništavanje
Dugme 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 poništavanje izravno na rupu za VIN pin i veliku površinu uzemljenog 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 ponovo 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 povežite je s baterijom. 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 duže od pet minuta.

Interna operacija

  • Otvoreni prozor se otkriva nakon TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) sekundi očitavanja temperature čija je vrijednost TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) niža od temperature TEMPERATURE_COMPARE_DISTANCES TEMPER 1 TEMPER 1 TEMPER 3 TEMPER 2: 3 TEMPER 3: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: 3 TEMPER: DIMENZIJE: TEMPER: TEMPER: DIMENZIJE: TEMPER: DIMENZIJE: TEMPER: TEMPER: DIMENZIJE: TEMPER: TEMPER: TEMPER: DIMENZIJE, TEMPERATURA: 1
  • Kašnjenje se provodi spavanjem 3 puta na `SLEEP_MODE_PWR_DOWN` u periodu 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 senzora 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 sa povećanjem pauze od 24 sekunde do 5 minuta.
  • Svakih VCC_MONITORING_DELAY_MIN (60) minuta mjeri se napon baterije. Ovisno o otkrivenoj vrsti 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, bit će označeno s milivolti od 24 sekunde, a svakih 24 sekunde bit će prikazano svjetlosno svjetlo, koje će biti prikazano svakih 24 sekunde, a svjetlosni pokazivač u sekundi bit će označen svakim pritiskom na tipku od 1 do 3 Samo je zvučni signal (ne blic) 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 u vrijeme taloženja, dodaje se 4:15 (ili 8:30) minuta kako bi se izbjegli lažni alarmi nakon uključivanja.

Preporučuje se: