Turinys:

„Arduino“atviro lango detektorius - žiemai: 6 žingsniai
„Arduino“atviro lango detektorius - žiemai: 6 žingsniai

Video: „Arduino“atviro lango detektorius - žiemai: 6 žingsniai

Video: „Arduino“atviro lango detektorius - žiemai: 6 žingsniai
Video: LDmicro 3: PIC16F628A & Arduino Nano (Microcontroller PLC Ladder Logic Programming with LDmicro) 2024, Lapkritis
Anonim
„Arduino“atviro lango detektorius - žiemai
„Arduino“atviro lango detektorius - žiemai

Lauke darosi šalta, bet kartais man reikia gryno oro savo kambariuose. Taigi, atidarau langą, išeinu iš kambario, uždarau duris ir noriu grįžti po 5–10 minučių. Ir po kelių valandų prisimenu, kad langas yra atidarytas … Galbūt jūs tai žinote arba turite vaikų, kurie suteikia jums šios patirties.

Mano sprendimas yra atviro lango detektorius. Baterija tarnaus daugiau nei metus, todėl tiesiog įdėkite ją rudenį ir išimkite pavasarį.

1 žingsnis: dalių sąrašas

Dalių sąrašas
Dalių sąrašas
Dalių sąrašas
Dalių sąrašas
Dalių sąrašas
Dalių sąrašas
Dalių sąrašas
Dalių sąrašas
  1. „Digispark“lenta iš „eBay“.
  2. Senos ausinės.
  3. Mažas mygtukas iš naujo nustatyti.
  4. Garsiakalbių jungtys - kitaip plokštės perprogramuoti neįmanoma.
  5. Viela.
  6. Maitinimo šaltiniui jums reikia:

AAA baterijų dėklas su įjungimo/išjungimo jungikliu. Jūs netgi galite naudoti nusidėvėjusias baterijas, nes modulis veiks iki 2,4 voltų

ARBA

Sena lipo baterija (šiam tikslui pakanka net 30% talpos), o jei dar neturite, įkroviklis lipo baterijoms iš „eBay“.

ARBA

CR2032 monetos elemento laikiklis

IR

1A diodas 1N4001 arba lygiavertis, arba bet koks tokio dydžio, skirtas apsaugoti nuo atvirkštinio poliškumo

2 žingsnis: „Digispark Board“programavimas

„Digispark Board“programavimas
„Digispark Board“programavimas
„Digispark Board“programavimas
„Digispark Board“programavimas

Vairuotojo diegimas

Prieš programuodami lentą, turite įdiegti „Digispark“tvarkyklę. Atsisiųskite jį čia, atidarykite ir paleiskite „InstallDrivers.exe“.

„Arduino IDE“diegimas

Įdiekite „Arduino IDE“„Digispark“plokštę, kaip aprašyta

Aš rekomenduoju vietoj https://digistump.com/package_digistump_index.json vietoj https://raw.githubusercontent.com/ArminJo/DigistumpArduino/master/package_digistump_index.json naudoti „Digispark“plokštės URL „Arduino“faile/nuostatose ir įdiegti „Digistump AVR Boards“1.6.8 versija.

Kadangi norime sutaupyti energijos, mūsų sąrankoje plokštės laikrodis perjungiamas į 1 MHz (), įrankių meniu kaip plokštę galite pasirinkti „Digispark“(1 MHz - nėra USB).

Sudarykite ir įkelkite programą į lentą

„Arduino IDE“sukurkite naują eskizą su „File/New“ir pavadinkite jį pvz. „OpenWindowAlarm“. Nukopijuokite kodą iš „OpenWindowAlarm.ino“

ARBA

Atsisiųskite ir ištraukite saugyklą. Atidarykite eskizą naudodami Failas -> Atidaryti… ir pasirinkite aplanką „OpenWindowAlarm“.

Sudarykite ir įkelkite. Atminkite, kad įkėlimas neveiks, jei prijungtas garsiakalbis. Jei viskas veikia gerai, įmontuotas „Digispark“šviesos diodas sumirksės 5 kartus (5 minučių pavojaus signalas), o po 8 sekundžių pradės mirksėti su 24 sekundžių intervalu, kad signalizuotų apie kiekvieną temperatūros rodmenį.

3 žingsnis: galios mažinimas

Galios mažinimas
Galios mažinimas
Galios mažinimas
Galios mažinimas

Mūsų „Digispark“plokštė naudoja 5 mA esant 3, 0 voltų įtampai. Su 2 AAA baterijomis (1000 mAh) jis veiks 8 dienas. Tačiau per tris žingsnius galima sumažinti energijos suvartojimą iki 26 µA.

  1. Išjungus maitinimo šviesos diodą, peiliu nutraukus varinę vielą, jungiančią maitinimo šviesos diodą prie diodo, arba nuėmus / išjungus 102 rezistorių, sutaupoma 1,3 mA.
  2. Pašalinus VIN įtampos reguliatorių, sutaupoma 1,2 mA.
  3. Atjungus USB traukimo rezistorių (pažymėtą 152) nuo 5 voltų (VCC), sutaupoma likusi 2,5 mA. Atjunkite jį, sulaužydami varinę vielą rezistoriaus pusėje, nukreiptoje į ATTiny. Tai išjungia USB sąsają ir savo ruožtu galimybę užprogramuoti „Digispark“plokštę per USB. Norėdami dar kartą įjungti, bet vis tiek taupyti energiją, prijunkite rezistorių (pažymėtą 152) tiesiai prie 5 voltų USB, kuris yra lengvai prieinamas išorinėje diodo pusėje.

    Tinkamą diodo pusę galima rasti naudojant tęstinumo testerį. Viena šio diodo pusė yra prijungta prie ATtiny (VCC) 8 kaiščio. Kita pusė prijungta prie 5 voltų USB.

Dabar USB traukimo rezistorius aktyvuojamas tik tuo atveju, jei „Digispark“plokštė prijungta prie USB, pvz. programavimo metu, o miego metu plokštė sunaudoja 26 µA.

Jei perprogramuojate saugiklius, galite suvartoti 6 µA energijos.

Norėdami perprogramuoti saugiklius, jums reikia IPT (kurį galima sukurti naudojant „Arduino“) ir jungiamąjį adapterį. Norėdami perprogramuoti, galite naudoti šį scenarijų.

4 žingsnis: mygtukas iš naujo

Perkrovimo mygtukas
Perkrovimo mygtukas
Perkrovimo mygtukas
Perkrovimo mygtukas
Perkrovimo mygtukas
Perkrovimo mygtukas
Perkrovimo mygtukas
Perkrovimo mygtukas

Jei nenorite atjungti maitinimo signalo iš naujo, prijunkite atstatymo mygtuką tarp PB5 ir įžeminimo. Aš tai padariau prijungęs neprijungtą VIN vario paviršių prie PB5 ir lituodamas atstatymo mygtuką tiesiai prie VIN kaiščio skylės ir nuimto VIN įtampos reguliatoriaus didelio žemės paviršiaus.

Jei norite atsikratyti 5 sekundžių laukti USB ryšio po atstatymo, galite pakeisti ATtiny85 mikrobranduolių branduolį. Paleiskite scenarijų „0_Burn_upgrade-t85_recommended.cmd“ir vėl įkelkite „OpenWindowAlarm“programą naudodami „Arduino IDE“.

5 žingsnis: garsiakalbis

Pranešėjas
Pranešėjas
Pranešėjas
Pranešėjas
Pranešėjas
Pranešėjas

Išardžiau senas laisvų rankų įrangą ir prie kabelio prijungiau vyrišką jungtį.

6 žingsnis: valdymas

Veikianti
Veikianti
Veikianti
Veikianti
Veikianti
Veikianti

Norėdami naudoti plokštę, padėkite ją ant palangės ir prijunkite prie akumuliatoriaus. Jei temperatūra ant palangės yra žemesnė nei temperatūra, kurioje iš pradžių buvo plokštė, prireiks dar 5 minučių, kad protingai pritaikytumėte naują pradinę vertę.

Tada būsite sunerimę, jei atidarysite langą ilgiau nei penkias minutes.

Vidinė operacija

  • Atidarytas langas aptinkamas po TEMPERATURE_COMPARE_AMOUNT * TEMPERATURE_SAMPLE_SECONDS (48) sekundžių, kai nuskaitoma temperatūra, kurios vertė yra TEMPERATURE_DELTA_THRESHOLD_DEGREE (2) žemesnė nei temperatūra TEMPERATURE_COMPARE_DISTANCE * 3 sekundės ir 3 minutės iki 12 sekundžių ir 12 sekundžių (12 sekundžių).
  • Vėlavimas įgyvendinamas miegant 3 kartus „SLEEP_MODE_PWR_DOWN“8 sekundes, kad būtų sumažintos energijos sąnaudos.
  • Atidarytą langą aptinka ilgesnis 20 sekundžių mirksėjimas ir trumpas paspaudimas kas 24 sekundes. Todėl vidinis jutiklis turi 3 minutes prisitaikyti prie išorinės temperatūros, kad būtų užfiksuoti net maži temperatūros pokyčiai. Kuo didesnis temperatūros pokytis, tuo anksčiau jutiklio vertė pasikeis ir aptiks atidarytą langą.
  • „OPEN_WINDOW_ALARM_DELAY_MINUTES“(5) minutės po atviro lango aptikimo įjungiamas aliarmas.

    Jei dabartinė temperatūra yra didesnė už minimalią išmatuotą temperatūrą (+ 1), t. Y. Langas jau buvo uždarytas, aliarmas neprasidės arba įjungtas aliarmas sustos.

  • Pradinis signalas trunka 10 minučių. Po to jis įjungiamas 10 sekundžių, didinant pertrauką nuo 24 sekundžių iki 5 minučių.
  • Kas VCC_MONITORING_DELAY_MIN (60) minučių matuojama akumuliatoriaus įtampa. Priklausomai nuo aptikto akumuliatoriaus tipo, kai jis įjungiamas (žr. Tik pyptelėjimas (ne blykstė) yra žymiai ilgesnis nei pyptelėjimas, skirtas aptikti atidarytą langą.
  • Įjungus maitinimą, neaktyvus nusistovėjimo laikas yra 5 minutės. Jei plokštė vėsta nustatymo metu, pridedamos 4:15 (arba 8:30) minutės, kad būtų išvengta klaidingų aliarmų po maitinimo įjungimo.

Rekomenduojamas: