Taula de continguts:

Sensor de moviment ESP-01 amb son profund: 5 passos
Sensor de moviment ESP-01 amb son profund: 5 passos

Vídeo: Sensor de moviment ESP-01 amb son profund: 5 passos

Vídeo: Sensor de moviment ESP-01 amb son profund: 5 passos
Vídeo: Aprendendo sobre ESP32 | Primeiros passos, IDF e Arduino IDE 2024, De novembre
Anonim
Image
Image

He estat treballant en la creació de sensors de moviment casolans que envien un missatge de correu electrònic quan s’activa. Hi ha molts exemples instructius i altres exemples de fer-ho. Fa poc havia de fer-ho amb un sensor de moviment PIR amb bateria i un ESP-01. L’ESP-01 és molt funcional i disposa de totes les capacitats necessàries, per què no s’utilitza el mínim i el mínim costós necessari? A la barreja es va afegir un altre mòdul ESP-01 separat i remot que va activar un brunzidor quan es va activar el sensor de moviment.

El codi i el disseny eventual del circuit s’han recopilat de nombroses fonts del web i crec que no les puc identificar específicament. La idea d’enviar correus electrònics a través de Gmail va sorgir d’una font instructiva i d’altres fonts i el codi final és una amalgama d’aquestes fonts. Dormir profundament a la feina em va portar a molts camins que sovint resultaven infructuosos. El més curiós és que, un cop un camí resulta fructífer, deixeu de buscar més camins. Així doncs, dono les gràcies a tots aquells que han contribuït al meu èxit i encara són desconeguts.

Vaig tenir el mateix problema en aconseguir que el sensor PIR funcionés a l’hora d’activar el son profund de l’ESP-01. Molts camins fins que n’hi va haver un que va funcionar.

No cal dir que hi havia alguns obstacles interessants o potser més rellevants, una millor comprensió de l’electrònica que necessitava. Segueixes aprenent fins que alguna cosa funciona i després no n’has d’aprendre més.

L'ESP-01 fa un son profund, així com qualsevol altre mòdul ESP8266, sempre que no necessiteu un son temporitzat. Si voleu que el mòdul es desperti després d'una determinada quantitat de temps transcorregut, l'ESP-01 no és el mòdul a utilitzar. Però això no és el que volia. El temps transcorregut no té sentit quan s’utilitza un PIR. Volia que l’ESP-01 només despertés quan es desencadenés pel moviment detectat pel PIR. Si no es detecta cap moviment durant hores o dies, l’ESP-01 es queda adormit amb una bateria mínima.

Veureu molts circuits que fan servir GPIO16 connectats a l’ESP8266 Reset perquè GPIO16 és el senyal de vigília. Això és cert, però és el senyal de vigília del son temporitzat. Podem ignorar aquest PIN, que és bo perquè no està disponible a l’ESP-01.

Bàsicament, tot el que necessitem és obtenir el senyal del PIR per activar el pin de restabliment ESP-01. La primera dificultat que suposareu és que Reset s’activa en un senyal BAIX i el PIR envia un senyal HIGH quan s’activa. El restabliment també ha de ser ALTA o flotant a l'arrencada. Per fer-ho curt, després d’haver provat alguns circuits diferents, vaig decidir utilitzar un transistor NPN amb una resistència de tracció per mantenir el PIN RESET ALTA durant l’arrencada. La sortida del PIR és mínima, però proporciona prou corrent base per encendre el transistor.

Com veureu al diagrama de circuits següent, l’ESP-01 es despertava del son profund cada vegada que el PIR detectava el moviment.

Però hi va haver un altre problema. El restabliment de l'ESP-01 només es va produir després que el PIR va deixar de detectar moviment i va tornar a un senyal baix apagant el transistor i tornant el pin de restabliment a HIGH a causa de la resistència de tracció. Això significaria que el missatge de correu electrònic no s'enviaria, ni el brunzidor s'activaria fins que DESPRÉS que el PIR deixés de detectar el moviment. Volia que el disparador es produís tan bon punt es notés el moviment.

El que he determinat a partir d’aquest comportament és que l’ESP-01 realment s’activa a la vora ascendent del senyal. Si manteniu el pin de restabliment a terra, en realitat no s’activa l’ESP-01 des del somni profund, però en el moment que la tensió puja al senyal HIGH, es produeix el restabliment.

La meva resposta molt senzilla a aquest comportament va ser afegir un condensador a la línia entre la sortida PIR i la base del transistor. Això va provocar que el transistor només s'encengui mentre es carregava el condensador. Un cop carregat, no hi havia més corrent i el transistor es va apagar. La resistència de 5 k permet que el corrent s'escorri a terra. Vaig provar-ho amb un LED en lloc de l’ESP-01 i vaig poder veure el LED flaix durant una fracció de segon abans d’apagar-lo. Aquest petit pols va ser suficient per treure el pin de reinicialització a terra momentàniament i el temps suficient per activar el reinici del son profund.

Pas 1: mòdul de son profund ESP-01

Mòdul ESP-01 Deep Sleep
Mòdul ESP-01 Deep Sleep
Mòdul ESP-01 Deep Sleep
Mòdul ESP-01 Deep Sleep

El mòdul de son profund utilitza dues tensions de treball. El 5v + aleatori de la bateria del PIR i també una placa reguladora de 3,3 volts per a l’ESP-01. També incorporo un díode al circuit per evitar que les parts danyades provinin tensions inverses. Això fa servir una mica d’energia addicional i fa caure el voltatge de la bateria 0,7 volts. El díode es pot deixar fora del circuit si esteu segur que mai invertireu els cables de la bateria. També s’afegeix un commutador per comoditat.

Aquest mòdul és una actualització menor del meu disseny original de son no profund. En la configuració de son no profund, el PIR està connectat directament al pin RX de l'ESP-01. Estic fent servir el pin RX de l'ESP-01 com a pin d'entrada per al PIR per alguns motius. GPIO0 no va funcionar perquè en arrencar el PIN de sortida PIR seria BAIX i provocaria que l’ESP-01 entrés en mode flash. No he utilitzat GPIO2 perquè llavors no he pogut utilitzar el LED incorporat per a la retroalimentació visual. Els pins RX i TX sovint es descriuen com a pins IO extra, però la meva experiència és que RX és un pin INPUT addicional i el TX és un pin OUTPUT addicional.

En configuració de son profund, la connexió RX no és estrictament necessària. L’utilitzo només per controlar quant de temps s’activa el PIR en encendre el LED mentre l’entrada és ALTA. Com es va esmentar abans, si esborreu la funció de bucle i només utilitzeu la rutina de configuració, la connexió RX no serà necessària.

Aquí teniu la llista de parts del mòdul de son profund ESP-01:

Tauler prototip de PCB d’1-5 x 7 cm

Connector d'1 - 2 pins

2 - 1 x 3 capçaleres femenines

1 - AMS1117 - 3.3 placa de circuit regulador de voltatge

1 - 1 x 3 Angle recte Pas de capçalera masculí

1 - 1 x 3 passador de capçal femella femella

1 - 1 x 4 passador femella de capçalera

1 - 2 x 4 capçalera femenina

Condensador 1 - 1uf

1 - Sensor de moviment HC-SR501 PIR

1 - 2N2222 Transistor

Resistència 1-10k

Resistència d'1 a 4,7 k

Resistència 1 - 1k

1 - 1N4148 díode

1 - commutador SS12D00G4 SPDT

1 - ESP-01

Bateria 1 - 4AA

Tingueu en compte que al vídeo la placa de circuit utilitza un adaptador ESP-01 per a taulers de suport en lloc de la capçalera de 2 x 4. Tot i que aquest adaptador és més fàcil de soldar, la capçalera de 2 x 4 funciona bé i en realitat s’adapta millor.

Pas 2: Codi ESP-01 Deep Sleep

El codi Deep Sleep realitza dues funcions. Envieu un missatge de correu electrònic (per gmail per defecte) i envieu una sol·licitud web http al mòdul de timbre ESP-01 associat per activar-lo.

Quan s’activa, aquest mòdul proporciona dues opcions de notificació i pot ser especialment útil quan no esteu atents als missatges de correu electrònic.

Haureu d’actualitzar sis línies de codi amb els vostres valors específics per fer que l’esbós funcioni:

const char * ssid = "xxxxx"; // El vostre SSIDconst char WiFi * password = "xxxxx"; // La vostra cadena de contrasenya WiFi Senders_Login = "xxxxx"; // sessió del vostre proveïdor de correu electrònic String Senders_Password = "xxxxx"; // la contrasenya del vostre proveïdor de correu electrònic

To = "xxxxxx"; From = "xxxxxx"; // Generalment, Gmail prefereix que sigui el mateix que Senders_Login i que pugui substituir-lo

Vaig trobar que el mòdul de son profund funcionava de manera imprevisible quan el sensor PIR es va configurar per sota de 10 segons durant la durada de l’esdeveniment activador. Tinc el meu ajustat a 20 segons. Això s’ha demostrat molt fiable, però també vol dir que es podrien produir esdeveniments desencadenants amb aquesta freqüència.

També he afegit codi a la funció de bucle per mantenir l'ESP-01 encès sempre que el PIR encara detecti moviment. Es pot eliminar tot el codi de la funció de bucle i es pot traslladar la trucada a son profund fins al final de la funció de configuració.

Utilitzo la funció de parpelleig per a un indicador visual d’activitat amb el mòdul ESP-01.

Tot i que he utilitzat i provat la connectivitat amb Gmail, també funcionen altres proveïdors de correu electrònic. He provat un parell. De fet, he trobat el Gmail més problemàtic. Gmail requereix que el vostre compte estigui configurat per accedir a aplicacions menys segures. Aquesta configuració del compte està DESACTIVADA de manera predeterminada, així que assegureu-vos de trobar-la i canvieu-la a menys segura. Gmail NO funcionarà d’una altra manera.

Si decidiu tenir més d’un mòdul de brunzidor, només cal afegir trucades addicionals del client http (repetiu les tres línies de codi, però canvieu l’adreça IP utilitzada i també definiu la variable httpCode com a int una vegada!).

Tingueu en compte que l'adreça IP del brunzidor està codificada en aquest mòdul. No heu d’utilitzar l’adreça IP que he triat, però sí que heu de fer coincidir l’adreça IP de la trucada web d’aquest mòdul amb l’adreça IP de la configuració del servidor web al mòdul següent.

Pas 3: mòdul de timbre ESP-01

Mòdul Buzzer ESP-01
Mòdul Buzzer ESP-01
Mòdul Buzzer ESP-01
Mòdul Buzzer ESP-01
Mòdul Buzzer ESP-01
Mòdul Buzzer ESP-01

El mòdul de brunzidor té una configuració bastant senzilla. Utilitza un connector USB en lloc d’un paquet de bateries perquè no crec que aquest mòdul sigui adequat per a un paquet de bateries. Ha de romandre connectat i connectat a la xarxa wifi / wifi en tot moment perquè mai no sap quan es farà una sol·licitud web. Això requereix una alimentació contínua més gran que la de les bateries.

Els mòduls Buzzer es poden col·locar còmodament en diverses ubicacions, proporcionant la notificació d’un esdeveniment d’activació del sensor de moviment, independentment d’on es trobi.

El brunzidor està connectat als 5v del connector USB i hi ha una altra placa reguladora de 3,3v que proporciona alimentació a l’ESP-01.

El mòdul zumbador funcionarà amb TX, GPIO0 o GPIO2 per a la sortida. A la meva configuració estic fent servir GPIO0. (A la imatge del mòdul, el cable està connectat a GPIO2, però des de llavors l'he mogut.) Tot i que GPIO0 no funcionava per al mòdul de son profund (com INPUT), funciona bé amb aquest disseny com a OUTPUT. No s’arrenca a terra a l’arrencada, cosa que provocarà problemes. Vaig fer servir GPIO2, però després no vaig poder utilitzar el LED incorporat per obtenir cap comentari, però mitjançant GPIO0 per a OUTPUT puc utilitzar el LED de bord.

Vaig provar d’utilitzar un transistor NPN per alimentar el brunzidor del circuit quan l’ESP-01 va posar un senyal ALTA al pin GPIO0, però els resultats van ser terriblement inconsistents. Sembla que el timbre volia sonar en tot moment, fins i tot amb molt poca potència. Per tant, he utilitzat un MOSFET de canal N (2n7000) i el resultat ha estat fantàstic. El pin IO condueix el Gate segons calgui.

Tot i que només necessitem dos pins del connector USB Vcc (+) i Gnd (-), faig servir una capçalera de 5 pins per connectar-me a la placa PCB per obtenir més estabilitat i soldar abans de connectar l’USB al regulador. La meva placa reguladora de 3,3 V venia amb els pins preinstal·lats i al meu cap, cap per avall. Per posar el regulador als pins de capçalera, podeu veure que la placa de circuit està oculta, però pitjor que això, vcc i gnd al regulador s’inverteixen de vcc i gnd al connector USB. Així, els cables es creuen.

Tingueu en compte també que l'alimentació + del brunzidor actiu prové dels 5v de l'USB. A més, una capçalera femella de 4 pins funciona bé amb la col·locació del pin del zumbador.

Llista de peces del mòdul zumbador ESP-01:

Tauler PCB 1-5 x 7

1 - Mini connector USB amb capçaleres de pins (7 pins)

2 - 1 x 3 capçaleres femenines

1 - placa reguladora de tensió AMS1117-3,3 v

1 - 2 x 4 capçalera femenina

2 - 1 x 4 capçals de sòcol femella

1 - 2N7000 MOSFET de canal N

Resistència d'1-10 ohms

1 - 5v zumbador actiu

Pas 4: Codi del mòdul de timbre ESP-01

El mòdul de brunzidor actua com un simple servidor web ESP-01. Respon amb un missatge senzill a una sol·licitud root i, quan rep la sol·licitud de buzz, activarà el buzzer. GPIO0 s’utilitza per al pin GPIO per al senyal del brunzidor.

Tingueu en compte que l’ESP-01 està configurat amb una adreça IP codificada de manera dura. Això és necessari perquè el mòdul de son profund estigui acoblat a l'adreça del brunzidor.

Igual que el mòdul anterior, haureu d’actualitzar dues línies de codi amb els vostres valors específics:

// SSID i contrasenya del vostre router WiFi const char * ssid = "xxxxxxx";

const char * password = "xxxxxxxx";

Si heu creat diversos mòduls de brunzidors, cadascun hauria de carregar-se amb la seva pròpia adreça IP única.

També podeu afegir diferents mètodes de buzz que produeixen melodies de buzzer diferents. Per exemple, si teniu un sensor PIR a la porta principal i un a la porta del darrere, cadascun pot fer una sol·licitud web a cadascun dels vostres mòduls de buzzer, però un sensor pot tenir un esbós que crida buzz i l’altre esbós pot trucar a buzz2 de manera que es pugui saber pel so quin sensor s'ha activat. I així successivament! La funció buzz2 no existeix, però només cal copiar-la i canviar els valors de retard.

Per al servidor web, només haureu d'afegir una línia de codi com aquesta:

server.on ("/ buzz2", buzz2);

Pas 5: Pensaments finals

Aquesta és la meva primera instrucció, de manera que potser m’hauria perdut algunes coses pràctiques que hauria d’haver inclòs. La placa reguladora AMS1117-3.3 que he utilitzat inclou un petit LED que s’encén quan s’encén. Per al mòdul de son profund, no volia que aquest dispositiu s'encengués i esgotés l'alimentació innecessàriament. Així que vaig desoldar el que podia en un costat del led del tauler i després vaig utilitzar un ganivet utilitzat per tallar la línia de traça. Això va ser més fàcil del que pensava i evita que el LED s’encengui. No he estat capaç de determinar quin és el consum d’energia quan l’ESP-01 està en un somni profund, però és possible que tingui una resposta en poques setmanes. Un company meu feia funcionar el sensor (no en son profund) i va trobar les bateries esgotades (5AA) en aproximadament una setmana. Crec que aquesta configuració hauria de donar un mes o més. Veurem.

El mòdul de son profund costa uns 8 CDN per parts (les bateries no s’inclouen) i el mòdul de sonor de 5 USD.

Recomanat: