Innholdsfortegnelse:
- Rekvisita
- Trinn 1: Skjematikk og kildekode
- Trinn 2: Arbeid av kretsen
- Trinn 3: Helsekontroll
- Trinn 4: Strømmålinger og batterilevetid
- Trinn 5: Fremtidige forbedringer
Video: Trådløs dørsensor - Ultra Low Power: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Nok en dør sensor !! Motiveringen for meg for å lage denne sensoren var at mange jeg så på internett hadde den ene eller den andre begrensningen. Noen av målene med sensoren for meg er:
1. Sensoren skal være veldig rask - helst mindre enn 5 sek
2. Sensoren skal kjøre av et 3,7V Li-ion-batteri ettersom jeg har dusinvis av dem liggende
3. Sensoren skal kjøre i mange måneder på en enkelt lading av batteriet. Det bør forbruke <10uA i hvilemodus
4. Sensoren skal kunne våkne for å overføre kritiske data, for eksempel batteristatus, selv når døren ikke er betjent på lenge.
5. Sensoren skal overføre data til et MQTT -emne når døren åpnes så vel som når døren er lukket
6. Sensoren bør bruke samme mengde strøm uavhengig av dørens tilstand
Sensorens arbeid:
Sensoren har 2 hovedkontroller. Den første er liten mikrokontroller ATiny 13A. Den andre er ESP som vanligvis er i hvilemodus og først våkner når ATiny gjør det mulig. Hele kretsen kan også lages av bare ESP ved å bruke den i hvilemodus, men strømmen den bruker er langt større enn nødvendig for at et batteri skal vare i flere måneder, så ATTiny kommer til unnsetning. Det tjener bare formålet med å våkne hvert N sekund, se etter en dørhendelse eller en helsekontrollhendelse, hvis det er en, holder den CH_PD -pinnen til ESP til HIGH og sender det passende signalet om hendelsestypen til ESP. Dens rolle ender der.
ESP tar deretter over, leser signaltypen, kobler seg til WiFi/MQTT, publiserer de nødvendige meldingene inkludert batterinivå og slår seg deretter AV ved å bringe EN -pinnen tilbake til LAV.
Ved å bruke disse sjetongene på denne måten drar jeg fordel av den lave søvnstrømmen til ATtiny og null tomgangsstrøm for ESP når brikken er deaktivert via CH_PD -pin.
Rekvisita
Forhåndskrav:
- Kunnskap om programmering av ATTiny & ESP 01
- Kunnskap om loddingskomponenter på en PCB
ESP-01 (eller hvilken som helst ESP)
ATTiny 13A - AVR
LDO 7333 -A - Lavt frafallsspenningsregulator
Motstander - 1K, 10K, 3K3
Kondensatorer: 100uF, 0,1 uF
Trykknappbryter, mikro PÅ/AV -bryter - (begge valgfrie)
Diode - IN4148 (eller tilsvarende)
Li-ion batteri
Reed Switch
En sak for å huse alt
Lodding, PCB osv
Trinn 1: Skjematikk og kildekode
Skjematikk er som vist i vedlagte diagram.
Jeg har inkludert en P Channel MOSFET for beskyttelse mot omvendt polaritet. Hvis du ikke trenger dette, kan du utelate det. Enhver P Channel MOSFET med lav Rds ON vil gjøre.
For øyeblikket har ESP ikke OTA, men det er for fremtidig forbedring.
Kildekode smart-door-sensor
Trinn 2: Arbeid av kretsen
ATTiny Arbeidsflyt
Magien her skjer i hvordan ATTiny overvåker posisjonen til dørbryteren.
Det vanlige alternativet ville være å feste en opptrekksmotstand til bryteren og fortsette å overvåke tilstanden. Dette har ulempen ved konstant strøm som forbrukes av trekkmotstanden. Måten dette er unngått her på er at jeg har brukt to pinner til å overvåke bryteren i stedet for en. Jeg har brukt PB3 og PB4 her inne. PB3 er definert som input og PB4 som output med en intern INPUT_PULLUP på PB3. Normalt holdes PB4 HØY når ATtiny er i dvalemodus. Dette sikrer at det ikke er noen strøm gjennom inngangsmotstanden uavhengig av posisjonen til sivbryteren. dvs. Hvis bryteren er lukket, er både PB3 og PB4 HØY, og det strømmer derfor ingen strøm mellom dem. Hvis bryteren er åpen, er det ingen vei mellom dem, og strømmen er derfor null. Når ATtiny våkner, skriver den en LAV på PB4 og kontrollerer deretter tilstanden til PB3. Hvis PB3 er HIGH, er reed -bryteren Åpen, ellers er den STENGT. Den skriver deretter tilbake en HØY på PB4.
Kommunikasjonen mellom ATtiny og ESP skjer via to pinner PB1 / PB2 koblet til Tx / RX på ESP. Jeg har definert signalet som
PB1 PB2 ====== Tx Rx
0 0 ====== WAKE_UP (helsesjekk)
0 1 ====== SENSOR_OPEN
1 0 ====== SENSOR_CLOSED
1 1 ====== UBRUKT
Bortsett fra å sende signalet til ESP sender den også en HØY puls på PB0 som er koblet til ESP CH_PD -pinnen. Dette vekker ESP. Det første ESP gjør det for å holde GPIO0 HIGH som er koblet til CH_PD og derved sikre kraften opp selv om ATTiny tar bort PB0 HIGH. Kontrollen er nå hos ESP for å avgjøre når den vil slå av.
Den kobles deretter til WiFi, MQTT, legger ut meldingen og slår seg av ved å skrive LOW på GPIO0.
ESP 01 Arbeidsflyt:
ESP -strømmen er rett frem. Den våkner og leser verdiene til Tx/Rx -pinnene for å bestemme hvilken type melding som skal legges ut. Kobler til WiFi og MQTT, legger ut meldingen og slår seg av.
Før den slås av, sjekker den igjen verdiene til inngangspinnene for å se om de har endret seg siden den sist ble lest. Dette er for å ta vare på en rask åpning og lukking av døren. Hvis du ikke har denne sjekken, er det noen tilfeller du kan gå glipp av lukningen av døren hvis den er lukket innen 5-6 sekunder etter åpning. Et praktisk scenario med at døren åpnes og lukkes innen 2 sekunder eller så, blir godt fanget opp av mens loop som fortsetter å legge ut meldingene så lenge dørens nåværende tilstand er forskjellig fra den forrige. Det eneste scenariet det kan gå glipp av å registrere alle åpne/lukke hendelser er når døren gjentatte ganger åpnes/lukkes i løpet av 4-5 sek vindu, noe som er et svært usannsynlig tilfelle - sannsynligvis et tilfelle av et barn som leker med døren.
Trinn 3: Helsekontroll
Jeg trengte også en måte å få en helsemelding fra ESP der den sender batterinivået til ESP også for å sikre at sensoren fungerer fint uten manuell inspeksjon. For dette sender ATTiny et WAKE_UP -signal hver 12. time. Den kan konfigureres via variabelen WAKEUP_COUNT i ATtiny -koden. Dette er veldig nyttig for dører eller vinduer som sjelden åpnes, så du kan ikke få vite om det er noe galt med sensoren eller batteriet.
Hvis du ikke trenger helsesjekkfunksjonaliteten, er ikke hele konseptet med å bruke ATTiny nødvendig. I så fall kan du finne andre design folk har laget der forsyningen til ESP mates via en MOSFET, og slik at du kan oppnå nullstrømstrekk når døren ikke blir betjent. Det er andre ting som skal tas vare på, for eksempel den nåværende trekningen for å være den samme i døråpning og dørlukkeposisjon - for det så jeg et sted et design som gjorde bruk av en 3 -statig sivbryter i stedet for den vanlige 2 -tilstanden.
Trinn 4: Strømmålinger og batterilevetid
Jeg har målt strømforbruket til kretsen, og det tar ~ 30uA når jeg sover og rundt. Når vi går etter databladene til ATTiny, bør det være rundt 1-4 uA for hele kretsen, inkludert hvilestrøm for LDO, men da viser målingene mine 30. MOSFET og LDO bruker ubetydelig strøm.
Så et 800mAH batteri skal vare lenge. Jeg har ikke nøyaktig statistikk, men jeg har brukt den på 2 av dørene mine i mer enn et år nå, og hver 18650 celle med rundt 800 mAH igjen i dem varer i omtrent 5-6 måneder på hoveddøren min som åpnes og lukkes kl. minst 30 ganger om dagen. Den på takdøren som åpnes bare noen få ganger i uken, den varer 7-8 måneder.
Trinn 5: Fremtidige forbedringer
1. ESP godkjenner ikke levering av MQTT -meldingen. Programmet kan forbedres ved å abonnere på emnet det publiserer meldingen for å bekrefte levering eller et Async MQTT -bibliotek kan brukes til å legge ut en melding med QoS 1.
2. OTA -oppdatering: ESP -koden kan endres for å lese et MQTT -emne for en oppdatering, og så gå inn i en OTA -modus for å motta en fil.
3. ESP01 kan erstattes med ESP-12 for å få tilgang til flere PIN-koder, og dermed kan flere sensorer festes til det samme. I så fall er kommunikasjon via 2 -bit -metoden ikke mulig. Dette kan deretter forbedres for å implementere I2C -kommunikasjon mellom ATtiny og ESP. Dette er litt komplisert, men gjennomførbart. Jeg har det til å fungere i et annet oppsett der en ATTiny sender roterende koderverdier til ESP over I2C -linjen.
4. Den nåværende kretsen overvåker den interne Vcc i ESP. Hvis vi bruker ESP12, kan dette endres for å lese det faktiske batterinivået via ADC -pinnen.
5. I fremtiden vil jeg også legge ut en modifikasjon av denne som kan brukes som en frittstående sensor uten behov for en MQTT eller noe hjemmeautomatiseringssystem. Sensoren fungerer frittstående og kan ringe når den utløses - selvfølgelig trenger den en internettforbindelse for dette.
6. Og listen fortsetter …
7. Omvendt batteribeskyttelse - FERDIG (Faktiske enhetsbilder er gamle og gjenspeiler derfor ikke MOSFET)
Anbefalt:
DIY Dørsensor for sikkerhet ved bruk av ESP8266: 3 trinn
DIY Dørsensor for sikkerhet ved bruk av ESP8266: Sikre hjemmet ditt ved hjelp av en smart dørsensor som er fullstendig designet ved hjelp av åpen kildekode -teknologi. I denne videoen lager vi en enhet som vil oppdage om døren er åpen eller lukket og føle informasjonen til smarttelefonen din ved hjelp av BLYNK -serveren, w
IOT Dørsensor - Wi -Fi -basert, drevet av 2xAAA -batterier: 6 trinn
IOT Dørsensor-Wi-Fi-basert, drevet av 2xAAA-batterier: I denne instruksen presenterer vi hvordan du enkelt kan bygge en batteridrevet Wi-Fi-dørsensor med IOT Cricket Wi-Fi-modul. Vi viser også hvordan du integrerer Cricket -meldinger med IFTTT (eller andre tjenester, inkludert hjemmeassistent, MQTT eller Webhooks
Trådløs Arduino -robot ved bruk av HC12 trådløs modul: 7 trinn
Trådløs Arduino -robot som bruker HC12 trådløs modul: Hei folkens, velkommen tilbake. I mitt forrige innlegg forklarte jeg hva en H Bridge Circuit er, L293D motordriver IC, piggybacking L293D Motordriver IC for å kjøre motorer med høy strøm og hvordan du kan designe og lage ditt eget L293D motorførerkort
Batteridrevet dørsensor med integrering av hjemmeautomatisering, WiFi og ESP-NÅ: 5 trinn (med bilder)
Batteridrevet dørsensor med hjemmeautomatiseringsintegrasjon, WiFi og ESP-NÅ: I denne instruksjonsfilen viser jeg deg hvordan jeg lagde en batteridrevet dørsensor med hjemmeautomatiseringsintegrasjon. Jeg har sett noen andre fine sensorer og alarmsystemer, men jeg ville lage en selv. Mine mål: En sensor som oppdager og rapporterer en doo
LEIDS - Low Energy IOT Dørsensor: 8 trinn (med bilder)
LEIDS - Low Energy IOT Dørsensor: Hva er LEIDS? LEIDS er en IOT -sensor som er basert rundt ESP8266. Denne sensoren bruker dette kortet, en myk låsekrets, en sivbryter og noen magneter for å lage en dørsensor som sender deg et varsel når døren din åpnes og lukkes