Obsah:
- Zásoby
- Krok 1: Schémata a zdrojový kód
- Krok 2: Práce obvodu
- Krok 3: Kontrola stavu
- Krok 4: Měření výkonu a životnost baterie
- Krok 5: Budoucí vylepšení
Video: Bezdrátový dveřní senzor - ultra nízký výkon: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:19
Ještě další dveřní senzor !! Motivací pro vytvoření tohoto senzoru pro mě bylo, že mnoho z nich, které jsem viděl na internetu, mělo jedno nebo druhé omezení. Některé z cílů senzoru pro mě jsou:
1. Senzor by měl být velmi rychlý - nejlépe méně než 5 sekund
2. Senzor by měl vybít 3,7V Li-ion baterii, protože jich mám kolem sebe desítky
3. Senzor by měl běžet mnoho měsíců na jedno nabití baterie. V režimu spánku by měla spotřebovat <10uA
4. Senzor by měl být schopen probudit se pro přenos kritických dat, jako je stav baterie, i když dveře nejsou delší dobu v provozu.
5. Senzor by měl přenášet data do tématu MQTT, když jsou dveře otevřeny, stejně jako když jsou dveře zavřeny
6. Senzor by měl spotřebovávat stejné množství energie bez ohledu na stav dveří
Funkce senzoru:
Senzor má 2 hlavní ovladače. Prvním je malý mikrořadič ATiny 13A. Druhým je ESP, který je obvykle v režimu spánku a probouzí se pouze tehdy, když to ATiny umožňuje. Celý obvod může být také vyroben pouze pomocí ESP jeho použitím v režimu spánku, ale proud, který spotřebovává, je mnohem větší, než je potřeba k tomu, aby baterie vydržela měsíce, takže ATTiny přijde na záchranu. Slouží pouze k probuzení každých N sekund, vyhledání události dveří nebo události kontroly stavu, pokud existuje, přidrží pin CH_PD ESP na HIGH a odešle příslušný signál typu události do ESP. Tím jeho role končí.
ESP poté převezme kontrolu, přečte typ signálu, připojí se k WiFi/MQTT, zveřejní požadované zprávy včetně úrovně baterie a poté se vypne, čímž vrátí pin EN zpět na LOW.
Použitím těchto čipů tímto způsobem využívám výhod nízkého spánkového proudu ATtiny a nulového klidového proudu ESP, když je čip deaktivován pomocí pinu CH_PD.
Zásoby
Předběžná žádost:
- Znalost programování ATTiny & ESP 01
- Znalost pájení součástek na DPS
ESP-01 (nebo jakýkoli ESP)
ATTiny 13A - AVR
LDO 7333 -A - nízkonapěťový regulátor napětí
Rezistory - 1K, 10K, 3K3
Kondenzátory: 100 uF, 0,1 uF
Tlačítko, mikro zapínač/vypínač - (oba volitelně)
Dioda - IN4148 (nebo jakýkoli ekvivalent)
Li-ion baterie
Jazýčkový spínač
Případ, ve kterém je vše uloženo
Pájka, PCB atd
Krok 1: Schémata a zdrojový kód
Schémata jsou uvedena v přiloženém schématu.
Zahrnul jsem MOSFET kanálu P pro ochranu proti přepólování. Pokud to nepotřebujete, můžete to vynechat. Jakýkoli MOSFET kanálu P s nízkými RDS ON bude stačit.
V současné době ESP nemá schopnost OTA, ale to je pro budoucí zlepšení.
Zdrojový kód smart-door-sensor
Krok 2: Práce obvodu
ATTiny Pracovní tok
Kouzlo se zde děje v tom, jak ATTiny monitoruje polohu dveřního spínače.
Normální možností by bylo připojit k přepínači vytahovací odpor a sledovat jeho stav. To má nevýhodu konstantního proudu spotřebovávaného odporem. Tomu se zde vyhneme tím, že jsem ke sledování přepínače použil dva piny než jeden. Zde jsem použil PB3 a PB4. PB3 je definován jako vstup a PB4 jako výstup s interním INPUT_PULLUP na PB3. Normálně je PB4 držen VYSOKÝ, když je ATtiny v režimu spánku. Tím je zajištěno, že vstupním vytahovacím odporem neprotéká žádný proud bez ohledu na polohu jazýčkového spínače. tj. Pokud je spínač sepnutý, PB3 i PB4 jsou VYSOKÉ, takže mezi nimi neteče žádný proud. Pokud je spínač otevřený, není mezi nimi žádná cesta, takže proud je nulový. Když se ATtiny probudí, napíše LOW na PB4 a poté zkontroluje stav PB3. Pokud je PB3 VYSOKÝ, pak je jazýčkový spínač OTEVŘEN, jinak je ZAVŘEN. Poté odepíše HIGH na PB4.
Komunikace mezi ATtiny a ESP probíhá přes dva piny PB1 / PB2 připojené k Tx / RX ESP. Definoval jsem signál jako
PB1 PB2 ====== Tx Rx
0 0 ====== WAKE_UP (kontrola stavu)
0 1 ====== SENSOR_OPEN
1 0 ====== SENZOR_ZAVŘEN
1 1 ====== NEPOUŽITÉ
Kromě odeslání signálu do ESP také vysílá VYSOKÝ puls na PB0, který je připojen ke kolíku ESP CH_PD. Tím se probouzí ESP. První věc, kterou ESP dělá, aby udržel GPIO0 HIGH, který je připojen k CH_PD, a tím zajistil jeho výkon, i když ATTiny odejme PB0 HIGH. Nyní je na ESP, aby určil, kdy chce vypnout napájení.
Poté se připojí k WiFi, MQTT, zveřejní zprávu a vypne se psaním LOW na GPIO0.
ESP 01 Pracovní tok:
Tok ESP je přímý. Probudí se a načte hodnoty pinů Tx/Rx, aby určil, jaký typ zprávy má být zveřejněn. Připojí se k WiFi a MQTT, zveřejní zprávu a vypne se.
Před vypnutím znovu zkontroluje hodnoty vstupních pinů, aby zjistil, zda se od posledního čtení změnily. To se má postarat o rychlé otevírání a zavírání dveří. Pokud tuto kontrolu nemáte, v některých případech vám může uniknout zavření dveří, pokud jsou zavřená do 5-6 sekund od otevření. Praktický scénář otevírání a zavírání dveří do 2 sekund je dobře zachycen smyčkou while, která stále zveřejňuje zprávy, pokud se aktuální stav dveří liší od předchozího. Jediný scénář, který může zaznamenat událost otevření/zavření, je, když se dveře opakovaně otevírají/zavírají během 4-5 sekundového okna, což je velmi nepravděpodobný případ - pravděpodobně případ nějakého dítěte, které si hraje s dveřmi.
Krok 3: Kontrola stavu
Také jsem potřeboval způsob, jak mít zprávu o kontrole stavu z ESP, kde také odešle úroveň baterie ESP, aby bylo zajištěno, že senzor funguje dobře bez ruční kontroly. Za tímto účelem ATTiny vysílá signál WAKE_UP každých 12 hodin. Lze jej konfigurovat pomocí proměnné WAKEUP_COUNT v kódu ATtiny. To je velmi užitečné u dveří nebo oken, která se otevírají jen zřídka, a tak se nemusíte dovědět, jestli je něco v nepořádku se senzorem nebo jeho baterií.
V případě, že nepotřebujete funkci kontroly stavu, pak není potřeba celý koncept používání ATTiny. V takovém případě můžete najít další návrhy, které lidé vytvořili, kde je napájení ESP napájeno přes MOSFET, a tak můžete dosáhnout nulového odběru proudu, když dveře nejsou v provozu. Je třeba se postarat o další věci, jako je současná kresba, aby byla stejná v poloze otevřených dveří a zavřených dveří - za tím účelem jsem někde viděl design, který místo obvyklého 2 stavu používal třípásmový jazýčkový spínač.
Krok 4: Měření výkonu a životnost baterie
Změřil jsem aktuální spotřebu obvodu a při spánku a kolem to trvá ~ 30uA. Pokud jde o datové listy ATTiny, mělo by to být kolem 1-4 uA pro celý obvod včetně klidového proudu LDO, ale pak moje měření ukazuje 30. MOSFET a LDO spotřebovává nevýznamný proud.
Baterie 800mAH by tedy měla vydržet dlouho. Nemám přesné statistiky, ale používám to na 2 mých dveřích více než rok a každá buňka 18650 s přibližně 800mAH v nich vydrží asi 5-6 měsíců na mých hlavních dveřích, které se otevírají a zavírají v nejméně 30krát denně. Ten na střešních dveřích, který se otevírá jen několikrát za týden, vydrží 7–8 měsíců.
Krok 5: Budoucí vylepšení
1. ESP neakceptuje doručení zprávy MQTT. Program lze vylepšit přihlášením k odběru tématu, které zprávu zveřejňuje, k potvrzení doručení, nebo lze k odeslání zprávy pomocí QoS 1 použít knihovnu Async MQTT.
2. Aktualizace OTA: Kód ESP lze upravit tak, aby četl téma MQTT pro aktualizaci, a tak vstoupit do režimu OTA pro příjem souboru.
3. ESP01 lze nahradit ESP-12, abyste získali přístup k více vstupním PINům, a tak k němu můžete připojit více senzorů. V takovém případě není komunikace přes 2bitovou metodu možná. To lze poté vylepšit a implementovat komunikaci I2C mezi ATtiny a ESP. Je to trochu komplikované, ale funkční. Mám to funguje v jiném nastavení, kde ATTiny posílá hodnoty rotačního kodéru do ESP přes I2C linku.
4. Aktuální obvod monitoruje interní Vcc ESP. Pokud použijeme ESP12, pak to lze upravit tak, aby odečetlo skutečnou úroveň baterie pomocí kolíku ADC.
5. V budoucnu také zveřejním modifikaci, která může být použita jako samostatný senzor bez potřeby MQTT nebo jakéhokoli systému domácí automatizace. Senzor bude fungovat samostatně a při spuštění může telefonovat - samozřejmě k tomu potřebuje připojení k internetu.
6. A seznam pokračuje…
7. Reverzní ochrana baterie - HOTOVO (Skutečné obrázky zařízení jsou staré, a proto neodrážejí MOSFET)
Doporučuje:
Vytvořte dveřní senzor podobný 2GIG za ~ 4 $ v závislosti na objemu nákupu: 6 kroků
Vytvořte dveřní senzor podobný 2GIG za ~ 4 $ v závislosti na objemu nákupu: Tato příručka předvede postup, který můžete dodržet při výrobě vlastního kompatibilního senzoru bezpečnostních dveří, který stále vypadá elegantně a má velmi nízké náklady
Noční lampa schodiště - velmi nízký výkon a 2 senzory: 5 kroků
Noční lampa na schodišti - velmi nízká spotřeba a 2 senzory: Postavil jsem tuto noční lampu s nízkým výkonem na schodiště se dvěma infračervenými senzory pohybu, takže mohu nainstalovat jediné zařízení, napůl na schodiště, a nechat ho spustit buď tím, že někdo jde nahoru nebo přijde dolů po schodech. Také jsem navrhl svůj design velmi nízko
Bezdrátový přístupový bod s dosahem padesáti metrů s TP Link WN7200ND USB bezdrátový adaptér na Raspbian Stretch: 6 kroků
Bezdrátový přístupový bod s dosahem padesáti metrů s TP Link WN7200ND USB bezdrátový adaptér na Raspbian Stretch: Raspberry Pi je skvělé pro vytváření zabezpečených bezdrátových přístupových bodů, ale nemá dobrý dosah, pro jeho rozšíření jsem použil bezdrátový adaptér USB TP TP WN7200ND. Chci se podělit o to, jak to udělat Proč chci použít malinový pi místo routeru? T
DIY bezdrátový mikrofonní bezdrátový kytarový systém: 4 kroky
DIY bezdrátový mikrofonní bezdrátový kytarový systém: Sledoval jsem některá videa a některá pásma a téměř většina z nich používá bezdrátový systém na kytaru. Zbláznit se, hýbat se, chodit a dělat si co chtějí bez kabelu, tak sním o tom, že ho budu mít … Ale .. pro mě je to teď příliš drahé, takže jsem přišel na tohle
Převeďte bezdrátový router na bezdrátový extender 2x přístupový bod: 5 kroků
Převést bezdrátový směrovač na bezdrátový extender 2x přístupový bod: V domě jsem měl špatné bezdrátové připojení k internetu kvůli RSJ (kovový nosný paprsek ve stropě) a chtěl jsem posílit signál nebo přidat další prodlužovač pro zbytek domu. V elektroinstalaci jsem viděl prodlužovače asi za 50