
Ding-dong! Jeg er sikker på at du har en klassisk ringeklokke hjemme som gjør jobben sin, men vi hører den ikke alltid: vi kan være i et hjørne, støvsuge på full guffe, bruke hodetelefoner, eller rett og slett omgitt av så mye støy at vi går glipp av budpersonens varsling. Ideen om å gjøre den ringeklokken om til en smart ringeklokke som varsler deg på telefonen din (og klokken din, hvis du bruker en) er en strålende plan for å sikre at du aldri går glipp av leveranser eller besøkende igjen.
Videre ønsker noen å gå et skritt videre og be om at ringeklokken spiller av sin tradisjonelle ringetone, lyser opp en indikator-LED , og ​​ideelt sett sender en SMS-melding når noen trykker på knappen. Dette reiser noen rimelige spørsmål: bør du bruke to mikrokontrollere koblet til via Wi-Fi (for eksempel to ESP32-er) eller velge noe enklere som en radiofrekvenskobling? Bør du bruke den eksisterende ringeklokken med 230V strømforsyning eller bygge en helt ny? I de følgende avsnittene vil jeg forklare ulike tilnærminger, komponenter, sikker montering og en foreslått programvareløsning ved hjelp av MQTT, OpenHAB og Pushbullet , slik at prosjektet blir polert, attraktivt og funksjonelt uten å overvelde deg.
Arkitektur: fra to MCU-er til RF, via WiFi
Når man vurderer designet, er det første som slår en å bruke to MCU-er på samme hjemmenettverk: én modul inne, én ute, som kommuniserer via Wi-Fi. Det fungerer ja, men det kan bli litt overdrevent og dyrt hvis du bruker to ESP32-er bare til en ringeklokke. Det virkelige målet er veldig grunnleggende: en ekstern trykknapp som utløser den interne logikken, som deretter håndterer alt annet (lyd, LED, mobilvarsling, til og med SMS).
Et lettere alternativ er å plassere en enkel radiofrekvenssender og -mottaker mellom den eksterne knappen og den interne mikrokontrolleren. Fordelen er at knappsiden ikke trenger en full MCU: med en rimelig RF-modul , et batteri og en godt designet krets sender du signalet når det trykkes på. Inne i huset mottar en Wi-Fi-aktivert MCU varselet fra RF-mottakeren og håndterer resten: å gi «ding-dong», aktivere en LED, sende varselet og, om ønskelig, utløse SMS-meldinger via en ekstern tjeneste.
Hvis du foretrekker å beholde den eksisterende ledningen og bruke 230V-ringeklokken , finnes det en annen utmerket metode: å oppdage spenning når den ringer. Denne deteksjonen, utført med galvanisk isolasjon, mater logikken til en Wi-Fi-mikrokontroller som kringkaster hendelsen og varsler deg. På denne måten bytter du ikke ut ringeklokken , du bare forbedrer den.
For brukere som er nølende med gjør-det-selv-prosjekter, finnes det også muligheten til å kjøpe et alt-i-ett-system. Trådløse smarte videoporttelefoner med IP65-beskyttelse og 1080P-kameraer er tilgjengelige på markedet, og fungerer som videoringeklokker og toveis talesystemer. Noen butikker inkluderer til og med "Del"-kontroller på produktsiden, og mange tilbyr "Har du sett en lavere pris?"-skjemaer der du blir bedt om å angi om det var i en fysisk butikk , regionen og andre detaljer for å avgjøre om de kan matche prisen. Kort sagt, det finnes svært komplette kommersielle løsninger , men hvis du liker å fikle, vil en gjør-det-selv-løsning være billigere og mer tilpassbar.
Trygg registrering av 230V: optokobler til unnsetning
Mange konvensjonelle dørklokker drives kun av 230 V mens noen trykker på knappen. Nøkkelen til å «lytte» til denne hendelsen på en sikker måte er å isolere strømforsyningen fullstendig fra logikkkretsene. Det er her optokoblere kommer inn i bildet : enheter som overfører signalet via lys mellom to separate kretser, slik at det ikke er noen direkte elektrisk forbindelse mellom strømnettet og 3,3 V-elektronikken din.
For å gjøre det enklere kan du kjøpe et ferdiglaget kretskort som registrerer 230 V og gir en sikker utgang for mikrokontrolleren din. Disse kortene inkluderer vanligvis optokobleren og riktig motstand, som beskytter mikrokontrolleren din. Det er en rask og robust løsning hvis du ikke vil designe den fra bunnen av. Hvis du liker å bygge, er det andre alternativet å kopiere kretsen selv med en håndfull lett tilgjengelige komponenter , og samtidig opprettholde prinsippet om å fysisk skille strøm og logikk.
Vær oppmerksom på kablingen og avstanden: det anbefales å la det være en god klaring på kortet mellom 230V-skinnen og mikrokontrollerens strømforsyning. Hvis du jobber på et perforert kretskort, sørg for god klaring, og om mulig, pakk alt inn i et godt designet kabinett for å forhindre uønsket kontakt. Optokoblere gir i sin natur et lag med trygghet som lar deg sove godt.
En annen viktig komponent er strømforsyningen: mikrokontrolleren vi skal bruke opererer på 3,3 V. Hvis du ikke har en 3,3 V strømforsyning tilgjengelig, kan du redusere spenningen fra 5 V ved hjelp av en LM317T -regulator , og justere den riktig for å levere stabile 3,3 V. Denne kombinasjonen (5 V strømforsyning + regulator) er veldig vanlig i gjør-det-selv-prosjekter; den er billig og effektiv.
Praktisk maskinvare: ESP-01, 3D-deksel og ledningsnett
For å legge til WiFi-tilkobling til systemet, er ESP-01 et klassisk og velkjent alternativ . Den er liten, rimelig, enkel å programmere, og fremfor alt perfekt tilstrekkelig for en ringeklokke . Sammenlignet med en ESP32, som er et beist for større prosjekter, dekker ESP-01 mer enn bare hendelsesavlesning, nettverkstilkobling, MQTT-publisering og utløsing av varsler.
I den fysiske monteringen kan det være nyttig å legge alt i en 3D-printet boks for et kompakt og sikkert oppsett. Når du kombinerer ESP-01-kretskortet og strømforsyningskortet (pluss et spor for en terminalblokk), får det hele noen ganger plass til nesten perfekt i en tradisjonell ringeklokke. Dette lar deg plassere elektronikken nær selve ringeklokken og opprettholde utseendet og følelsen til hjemmet ditt uten noen skjemmende innretninger.
Ledningene er også viktige. Det anbefales å koble ringeklokkens strømførende ledning , strømførende ledning for elektronikken (som må være separat slik at mikrofonen alltid har strøm, selv om ringeklokken ikke er trykket inn), og nøytralledningene til en tydelig merket terminalblokk. På denne måten kan du oppdage når strømmen når ringeklokken, og samtidig holde det smarte systemet online for å sende hendelser og varsler. Husk reglene: alt på sin rette plass , og med fysisk separasjon mellom strøm og logikk.
For gjør-det-selv-entusiaster fungerer det utmerket å sette sammen kretsen på et perfboard , så lenge du holder trygge avstander. Noen lover at de en dag vil bytte til spesiallagde PCB-er, men i mellomtiden er et godt laget perfboard utmerket . Hvis du vil dokumentere designet, kan du lagre skjemaet i favorittverktøyet ditt (for eksempel en EAGLE-fil), noe som gjør det mye enklere å dele og gjennomgå det.
Programvare og varsler: avbrudd, MQTT, OpenHAB og Pushbullet
La oss gå videre til «hjernen». I firmware-delen for ESP-01 er en effektiv måte å oppdage hendelsen på å bruke et kantutløst avbrudd . En praktisk detalj: definer pin 3 (serieportens RX-pin) som en avbruddspin, slik at når detektoren (eller den optiske sensoren) indikerer tilstedeværelsen av spenning, utløses en rutine som markerer summerens tilstand.
Den typiske konfigurasjonen bruker i mange eksempler en linje som: `attachInterrupt(digitalPinToInterrupt(sensePin), onDoorbellStateChange, FALLING); `. Rutinen, dekorert med `ICACHE_RAM_ATTR` på ESP8266/ESP-01 firmware, kan se omtrent slik ut: `void ICACHE_RAM_ATTR onDoorbellStateChange() { lastTrueState = millis(); doorbellState = true; }` . Dette sparer utløsertiden og setter tilstanden "noen har ringt" til sann.
I hovedløkken, etter en rimelig tid, tilbakestilles flagget for å tillate nye varsler. Dette innebærer en tidssjekk som `if (doorbellState && (now – lastTrueState) > 5000) { doorbellState = false; isStateSent = false; }` . Dette sikrer at hvis det har gått 5 sekunder siden siste anrop, anses hendelsen som avsluttet, og varsler kan sendes på nytt hvis noen trykker på knappen. Dette forhindrer spamvarsler fra et enkelt langt trykk eller avvisninger.
MQTT er utrolig praktisk for integrering med hjemmeautomasjon og smarthusstandarder . Du kan sette opp megleren din og integrere den i OpenHAB , hvor du oppretter en «Ting» og den tilhørende «Elementet» som representerer ringeklokkens status (for eksempel AV/PÅ). Derfra konfigurerer du varsler med din foretrukne tjeneste: Pushbullet er en klassiker, og du utløser varselet med en regel som aktiveres når elementet endres fra AV til PÅ.
Skjelettet til den regelen i OpenHAB kan se slik ut: `rule "RuleName" when Item ItemName changed from OFF to ON then val actions = getActions("pushbullet", "ItemNamePushbulletBot") if (actions !== null) { actions.sendPushbulletNote("Main doorbell", "Main doorbell", "Someone is at the head door") } end` . Enklere sagt: så snart elementet slås PÅ, sender du et notat til enhetene dine. Hvis du trenger SMS, kan du erstatte `Pushbullet` med en SMS-tjeneste eller en gateway som har binding tilgjengelig på hjemmeautomatiseringsplattformen din.
For de som foretrekker å ikke røre den originale ringeklokken og ønsker å se den på mobiltelefonen sin, husk at det finnes trådløse videoringeklokker med 1080P-kameraer og IP65-beskyttelsesgrader tilgjengelig på markedet. Disse tilbyr innebygd visuell intercom-funksjonalitet, og i mange butikker inkluderer de til og med " Del "-knapper på produktsiden og det populære "Fant du en lavere pris?" -skjemaet for å opprettholde konkurransedyktige priser. De kan til og med spørre om du så den i en fysisk butikk og din provins for å vurdere forespørselen. De er et praktisk alternativ , selv om prisen vanligvis ikke er sammenlignbar med en godt utført gjør-det-selv-installasjon.
Et annet praktisk programvaretips: enheten bør opprettholde en stabil Wi-Fi-tilkobling og automatisk koble til MQTT-megleren på nytt hvis den faller fra. ESP-er inkluderer vanligvis en "koble til igjen hvis ingen kobling"-rutine og bruker en timer for å forhindre at den setter seg fast i det uendelige ved å prøve å koble til igjen. En programvarevakthund kan redde deg fra mer enn ett reelt problem.
For indikator-LED-en kan du stille den inn til å blinke synkront med hendelsen (for eksempel i 5 sekunder etter at samtalen utløses) og deretter slå den av. For en mer subtil berøring kan du bruke en PWM- blink for å indikere "samtale pågår" og et kort, fast lys for "samtale logget". Disse visuelle signalene, selv om de ikke er viktige, er nyttige når du ikke har telefonen for hånden.
For de som vurderer å sende SMS-meldinger, husk at det finnes tjenester og API-er som lar deg sende meldinger med et enkelt HTTP-kall fra MCU-en din, eller enda bedre, fra hjemmeautomatiseringsserveren din . Sistnevnte reduserer belastningen på mikrokontrolleren og sentraliserer logikken (for eksempel bare sending av SMS-meldinger hvis huset er i "borte"-modus). Videre medfører SMS-meldinger vanligvis en kostnad per overføring, så det er lurt å implementere en enkel anti-spam-regel for å forhindre at du sender mer enn én melding hvert X minutt.
Forresten, hvis du integrerer alt med OpenHAB (eller lignende plattformer), vil du skille «oppdagelse og publisering» (MCU) fra «automatisering og varsling» (server). Denne ansvarsfordelingen gjør systemet enklere å vedlikeholde: mikrokontrolleren fokuserer på én enkelt oppgave, mens den mer fleksible serveren håndterer varsler, filtre, regler og historiske samtalelogger.
Når kablingen er ferdig og testet på bordet, er det tid for installasjon: du må kanskje legge en ny ledning til ringeklokken for å gi kontinuerlig strøm til smartenheten. I mange hjem tillater det eksisterende røret dette, og krever bare en mindre justering av nærmeste koblingsboks. Det er viktig å jobbe trygt: koble fra strømmen, identifiser lederne , sjekk forskriftene, og hvis du er i tvil, ring en fagperson.
Hvis du føler at du mangler noe ekstra, kan neste steg være å måle hvor mange ganger dørklokken trykkes (grunnleggende telemetri), bruke en PIR-bevegelsessensor , eksponere målinger for systemet ditt (for eksempel via MQTT til en tidsseriedatabase), eller til og med spille inn et klipp med et IP-kamera når dørklokken utløses. Det er ikke strengt tatt en del av kjerneprosjektet, men automatisering gir disse fordelene.
Når det gjelder finishen, prøv å sørge for at det 3D-printede kabinettet er godt ventilert, slik at regulatoren (hvis du bruker en LM317T) ikke overopphetes. En liten kjøleribbe og god plass mellom komponentene vil hjelpe. I tillegg vil merking av innsiden som «ringefase», «strømfase» og «nøytral» gjøre fremtidige revisjoner eller utvidelser mye enklere, og forhindre gjetting når du kommer tilbake til prosjektet måneder senere.
For å gå tilbake til den innledende debatten (to MCU-er vs. RF), hvis du er bekymret for strømforbruket ved utendørsknappen og ønsker å forenkle ting så mye som mulig , vinner RF + innendørs MCU-kombinasjonen: utendørssenderen kan være minimal og bruke lite strøm, og du holder alt "klart" inne, med en stabil strømforsyning. Hvis du foretrekker å unngå radiolinken og allerede har kabling til dørklokken , er 230V-deteksjon med en optokobler og en enkelt MCU enkel, robust og ren.
Til slutt, et par gode fremgangsmåter: dokumenter skjemaet (selv om det bare er et bilde av prototypen med merknader), last opp koden til repositoriet ditt , og legg til en README-fil med pinout-en. Små detaljer som å indikere at pin 3 (RX) brukes som et avbrudd vil forhindre problemer hvis noen, eller til og med du, bestemmer seg for å aktivere serieporten uten å sjekke. Og hvis du deler prosjektet, enda bedre : andre vil kunne kopiere det, forbedre det eller gi deg ideer.
Det er tydelig at det finnes en løsning for både produsenten som ønsker å beholde sin "ding-dong" og motta varsler, og for de som foretrekker et komplett kommersielt system med kamera og IP65-sertifisering. Hvis du er klar for gjør-det-selv , vil kombinasjonen av en sikker detektor, ESP-01, 3,3 V strømforsyning med LM317T, 3D-kabinett, kantavbrudd, MQTT, OpenHAB og Pushbullet gi deg en pålitelig, utvidbar og fremfor alt tilpasset smart ringeklokke, med mulighet for å legge til SMS eller en hvilken som helst annen kanal uten å måtte bygge systemet på nytt.




