Innehållsförteckning:
- Tillbehör
- Steg 1: Schemat & källkod
- Steg 2: Kretsens arbete
- Steg 3: Hälsokontroll
- Steg 4: Effektmätningar och batteritid
- Steg 5: Framtida förbättringar
Video: Trådlös dörrsensor - Ultra Low Power: 5 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Ännu en dörrsensor !! Tja, motivationen för mig att skapa den här sensorn var att många som jag såg på internet hade en eller annan begränsning. Några av målen med sensorn för mig är:
1. Sensorn ska vara mycket snabb - helst mindre än 5 sekunder
2. Sensorn ska köra av ett 3,7V Li-ion-batteri eftersom jag har dussintals av dem liggande
3. Sensorn ska köras i många månader på en enda laddning av batteriet. Det bör konsumera <10uA i viloläge
4. Sensorn ska kunna vakna för överföring av kritisk data, till exempel batteristatus, även när dörren inte är på länge.
5. Sensorn ska överföra data till ett MQTT -ämne när dörren öppnas såväl som när dörren är stängd
6. Sensorn bör förbrukas lika mycket ström oavsett dörrens tillstånd
Sensorn fungerar:
Sensorn har 2 huvudkontroller. Den första är liten mikrokontroller ATiny 13A. Den andra är ESP som vanligtvis är i viloläge och vaknar bara när ATiny möjliggör det. Hela kretsen kan också göras av bara ESP genom att använda den i viloläge men strömmen som den förbrukar är mycket större än vad som behövs för att ett batteri ska hålla i månader så ATTiny kommer till undsättning. Det tjänar bara till att vakna upp varannan sekund, leta efter en dörrhändelse eller en hälsokontrollhändelse, om det finns en, håller den CH_PD -stiftet på ESP till HIGH och skickar lämplig signal för typ av händelse till ESP. Dess roll slutar där.
ESP tar sedan över, läser signaltypen, ansluter till WiFi/MQTT, publicerar nödvändiga meddelanden inklusive batterinivå och stänger sedan av sig själv genom att föra tillbaka EN -stiftet till LÅGT.
Genom att använda dessa marker på det här sättet drar jag nytta av den låga sömnströmmen hos ATtiny och ESP -nollströmmen när chipet är inaktiverat via CH_PD -stift.
Tillbehör
Förförfrågan:
- Kunskap om programmering av ATTiny & ESP 01
- Kunskap om lödningskomponenter på ett kretskort
ESP-01 (eller någon ESP)
ATTiny 13A - AVR
LDO 7333 -A - Spänningsregulator med lågt utfall
Motstånd - 1K, 10K, 3K3
Kondensatorer: 100uF, 0,1 uF
Tryckknappsbrytare, mikro ON/OFF -omkopplare - (båda tillval)
Diod - IN4148 (eller motsvarande)
Li-ion batteri
Reed Switch
Ett fall för att hysa allt
Lödning, kretskort etc.
Steg 1: Schemat & källkod
Schemat är som visas i det bifogade diagrammet.
Jag har inkluderat en P Channel MOSFET för skydd mot omvänd polaritet. Om du inte behöver detta kan du utelämna det. Alla P -kanaler MOSFET med låg Rds ON kommer att göra.
För närvarande har ESP inte möjlighet till OTA men det är för framtida förbättringar.
Källkod smart-door-sensor
Steg 2: Kretsens arbete
ATTiny Arbetsflöde
Magin här händer i hur ATTiny övervakar dörrkontaktens position.
Det normala alternativet skulle vara att fästa ett uppdragningsmotstånd till omkopplaren och fortsätta övervaka dess tillstånd. Detta har nackdelen med konstant ström som förbrukas av uppdragningsmotståndet. Hur detta har undvikits här är att jag har använt två stift för att övervaka omkopplaren snarare än en. Jag har använt PB3 och PB4 här. PB3 definieras som input och PB4 som output med en intern INPUT_PULLUP på PB3. Normalt hålls PB4 HÖG när ATtiny är i viloläge. Detta säkerställer att det inte finns något strömflöde genom ingångsdragningsmotståndet oberoende av läget för vassomkopplaren. dvs. Om omkopplaren är stängd är både PB3 och PB4 HÖG och det rinner därför ingen ström mellan dem. Om omkopplaren är öppen finns det ingen väg mellan dem och strömmen är alltså noll. När ATtiny vaknar skriver den en LÅG på PB4 och kontrollerar sedan tillståndet för PB3. Om PB3 är HIGH är reed -omkopplaren ÖPPEN, annars är den STÄNGD. Den skriver sedan tillbaka en HIGH på PB4.
Kommunikationen mellan ATtiny & ESP sker via två stift PB1 / PB2 anslutna till Tx / RX på ESP. Jag har definierat signalen som
PB1 PB2 ====== Tx Rx
0 0 ====== WAKE_UP (hälsokontroll)
0 1 ====== SENSOR_OPEN
1 0 ====== SENSOR_CLOSED
1 1 ====== oanvänd
Förutom att skicka signalen till ESP skickar den också en HÖG puls på PB0 som är ansluten till ESP CH_PD -stiftet. Detta väcker ESP. Det första ESP gör för att hålla GPIO0 HIGH som är ansluten till CH_PD och därmed säkerställa att dess krafter stiger även om ATTiny tar bort PB0 HIGH. Kontrollen är nu med ESP för att avgöra när den vill stänga av.
Den ansluter sedan till WiFi, MQTT, lägger ut meddelandet och slår av sig själv genom att skriva LOW på GPIO0.
ESP 01 Arbetsflöde:
ESP -flödet är rakt fram. Den vaknar och läser värdena på Tx/Rx -stiften för att avgöra vilken typ av meddelande som ska postas. Ansluter till WiFi och MQTT, lägger ut meddelandet och stänger av sig själv.
Innan den stängs av kontrollerar den igen värdena på ingångsstiften för att se om de har ändrats sedan den lästes senast. Detta för att ta hand om en snabb öppning och stängning av dörren. Om du inte har den här kontrollen är det några fall du kan missa stängningen av dörren om den är stängd inom 5-6 sekunder efter öppnandet. Ett praktiskt scenario med att dörren öppnas och stängs inom 2 sekunder eller så fångas väl av medan loop som fortsätter att posta meddelandena så länge dörrens nuvarande tillstånd är annorlunda än det föregående. Det enda scenariot det kan missa att spela in alla öppna/stänga händelser är när dörren öppnas/stängs upprepade gånger inom 4-5 sek fönster vilket är ett mycket osannolikt fall - förmodligen ett barn som leker med dörren.
Steg 3: Hälsokontroll
Jag behövde också ett sätt att få ett hälsokontrollmeddelande från ESP där det också skickar batterinivån på ESP för att säkerställa att sensorn fungerar bra utan manuell inspektion. För detta skickar ATTiny en WAKE_UP -signal var 12: e timme. Den kan konfigureras via variabeln WAKEUP_COUNT i ATtiny -koden. Detta är mycket användbart för dörrar eller fönster som sällan öppnas och så du kanske inte får veta om något är fel med sensorn eller dess batteri någonsin.
Om du inte behöver hälsokontrollfunktionen behövs inte hela konceptet med att använda ATTiny. I så fall kan du hitta andra mönster som människor har skapat där försörjningen till ESP matas via en MOSFET och så kan du uppnå nollströmdragning när dörren inte används. Det finns andra saker att ta hand om, som att den nuvarande dragningen är densamma i dörröppning och dörrstängning - för det såg jag någonstans en design som använde en 3 -statig reed -switch istället för den vanliga 2 -staten.
Steg 4: Effektmätningar och batteritid
Jag har mätt strömförbrukningen i kretsen och det tar ~ 30uA när jag sover och runt. Baserat på databladen för ATTiny, bör det vara omkring 1-4 uA för hela kretsen inklusive stillastående ström för LDO men sedan visar mina mätningar 30. MOSFET och LDO förbrukar obetydlig ström.
Så ett 800mAH -batteri ska hålla länge. Jag har inte exakt statistik men jag har använt den på 2 av mina dörrar i mer än ett år nu och varje 18650 cell med cirka 800mAH kvar i dem håller i cirka 5-6 månader på min huvuddörr som öppnas och stängs kl. minst 30 gånger om dagen. Den på takdörren som öppnas bara några gånger i veckan, den varar 7-8 månader.
Steg 5: Framtida förbättringar
1. ESP godkänner inte leveransen av MQTT -meddelandet. Programmet kan förbättras genom att prenumerera på ämnet som det publicerar meddelandet för att bekräfta leverans eller ett Async MQTT -bibliotek kan användas för att lägga upp ett meddelande med QoS 1.
2. OTA -uppdatering: ESP -koden kan ändras för att läsa ett MQTT -ämne för en uppdatering och så gå in i ett OTA -läge för att ta emot en fil.
3. ESP01 kan ersättas med ESP-12 för att få åtkomst till fler inmatade PIN-koder och så kan ansluta fler sensorer till samma. I så fall är kommunikation via 2 bitars metoden inte möjlig. Detta kan sedan förbättras för att implementera I2C -kommunikation mellan ATtiny & ESP. Detta är lite komplicerat men fungerande. Jag har det som fungerar i en annan uppsättning där en ATTiny skickar roterande kodarvärden till ESP över I2C -linjen.
4. Den aktuella kretsen övervakar ESP: s interna Vcc. Om vi använder ESP12 kan denna modifieras för att läsa den faktiska batterinivån via ADC -stiftet.
5. I framtiden kommer jag också att lägga upp en ändring av denna som kan användas som en fristående sensor utan att behöva en MQTT eller något hemautomatiseringssystem. Sensorn fungerar fristående och kan ringa ett samtal när den utlöses - självklart behöver den en internetanslutning för detta.
6. Och listan fortsätter …
7. Omvänd batteriskydd - KLAR (Faktiska enhetsbilder är gamla och återspeglar alltså inte MOSFET)
Rekommenderad:
DIY dörrsensor för säkerhet med ESP8266: 3 steg
DIY dörrsensor för säkerhet med ESP8266: Skydda ditt hem med en smart dörrsensor helt designad med öppen källkodsteknologi. I den här videon kommer vi att göra en enhet som upptäcker om dörren är öppen eller stängd och känner av informationen till din smartphone med hjälp av BLYNK -servern, w
IOT Dörrsensor - Wi -Fi -baserad, Driven av 2xAAA -batterier: 6 steg
IOT-dörrsensor-Wi-Fi-baserad, påslagen 2xAAA-batterier: I den här instruktionsboken presenterar vi hur du enkelt kan bygga en batteridriven Wi-Fi-dörrsensor med IOT Cricket Wi-Fi-modul. Vi visar också hur man integrerar Cricket -meddelanden med IFTTT (eller andra tjänster inklusive Home Assistant, MQTT eller Webhooks
Trådlös Arduino -robot med HC12 trådlös modul: 7 steg
Trådlös Arduino -robot som använder HC12 trådlös modul: Hej killar, välkommen tillbaka. I mitt förra inlägg förklarade jag vad en H Bridge Circuit är, L293D motorförare IC, piggybacking L293D Motorförare IC för att köra högströmsmotordrivrutiner och hur du kan designa och göra din egen L293D -motorförarkort,
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian -stretch: 6 steg
Femtio meter trådlös åtkomstpunkt med TP Link WN7200ND trådlös USB -adapter på Raspbian Stretch: Raspberry Pi är bra att skapa säkra trådlösa åtkomstpunkter men det har inte ett bra utbud, jag använde en TP Link WN7200ND trådlös adapter för att förlänga den. Jag vill dela hur jag gör det Varför vill jag använda en hallon pi istället för en router? T
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: 4 steg
Hacka en trådlös dörrklocka till en trådlös larmströmbrytare eller strömbrytare: Jag byggde nyligen ett larmsystem och installerade det i mitt hus. Jag använde magnetbrytare på dörrarna och kopplade dem via vinden. Fönstren var en annan historia och hårda kablar var inte ett alternativ. Jag behövde en trådlös lösning och det här är