INHOUDSOPGAWE:

ESP-01 bewegingsensor met diep slaap: 5 stappe
ESP-01 bewegingsensor met diep slaap: 5 stappe

Video: ESP-01 bewegingsensor met diep slaap: 5 stappe

Video: ESP-01 bewegingsensor met diep slaap: 5 stappe
Video: 5 TIPS OM BETER TE SLAPEN | SLAAP EXPERT MARK SCHADENBERG 2024, November
Anonim
Image
Image

Ek het gewerk aan die maak van tuisgemaakte bewegingsensors wat 'n e -pos stuur wanneer dit geaktiveer word. Daar is baie instruksies en ander voorbeelde om dit te doen. Ek moes dit onlangs doen met 'n battery-aangedrewe PIR-bewegingsensor en 'n ESP-01. Die ESP-01 is baie funksioneel en beskik oor al die nodige vermoëns, so gebruik dan nie die minimum en goedkoopste wat nodig is nie? By die mengsel is nog 'n aparte en afgeleë ESP-01-module bygevoeg wat 'n zoemer veroorsaak het toe die bewegingsensor geaktiveer is.

Die kode en uiteindelike stroombaanuitleg is uit talle bronne op die internet versamel, en ek dink nie ek kan dit spesifiek identifiseer nie. Die idee om e -posse via gmail te stuur, kom uit instruksies en ander bronne, en die finale kode is 'n samevoeging van hierdie bronne. Deur diep aan die slaap te raak, het ek baie paaie gelei wat dikwels vrugteloos was. Die snaakse ding is dat as 'n pad vrugbaar is, jy ophou om meer paaie te soek. Daarom sê ek dankie aan almal wat bygedra het tot my sukses en nog onbekend is.

Ek het dieselfde probleem gehad om die PIR-sensor te laat werk om die diep slaap van die ESP-01 aan die gang te sit. Baie paaie totdat daar een was wat gewerk het.

Nodeloos om te sê, daar was 'n paar interessante struikelblokke of miskien meer relevant, 'n beter begrip van die elektronika wat ek benodig het. U bly leer totdat iets werk, en dan hoef u nie meer te leer nie.

Die ESP-01 slaap diep sowel as enige ander ESP8266-module, solank u nie tydsaam benodig nie. As u wil hê dat die module moet wakker word na 'n vasgestelde tyd, is die ESP-01 nie die module wat u moet gebruik nie. Maar dit is nie wat ek wou hê nie. Verstreke tyd is nutteloos as u 'n PIR gebruik. Ek wou hê dat die ESP-01 eers wakker moet word wanneer dit geaktiveer word deur beweging wat deur die PIR waargeneem word. As daar ure of dae lank geen beweging is nie, bly die ESP-01 aan die slaap met minimale batterykrag.

U sal baie stroombane sien wat GPIO16 gebruik wat gekoppel is aan die ESP8266 Reset omdat GPIO16 die weksein is. Dit is waar, maar dit is die weksein van 'n tydige slaap. Ons kan hierdie PIN ignoreer, wat goed is omdat dit nie op die ESP-01 beskikbaar is nie.

Eintlik is al wat ons nodig het om die sein van die PIR te kry om die ESP-01-resetpen te aktiveer. Die eerste probleem wat u sal vermoed, is dat Reset op 'n LAE sein veroorsaak word en die PIR 'n HOOG sein stuur wanneer dit geaktiveer word. Herstel moet ook HOOG wees of op die laai dryf. Om dit kort te hou, het ek na 'n paar verskillende stroombane probeer om 'n NPN-transistor met 'n optrekweerstand te gebruik om die RESET-pen HOOG te hou tydens die opstart. Die uitset van die PIR is minimaal, maar dit bied genoeg basisstroom om die transistor aan te skakel.

Soos u in die onderstaande kringdiagram sal sien, is die ESP-01 elke keer as die PIR beweging gewaar het uit diepe slaap wakker gemaak.

Maar daar was 'n ander probleem. Die reset van die ESP-01 het eers plaasgevind nadat die PIR opgehou het om beweging te waarneem en teruggekeer het na 'n lae sein wat die transistor afskakel en die Reset-pen na HOOG terugkeer as gevolg van die pullup-weerstand. Dit sou beteken dat die e -pos nie gestuur sou word nie, en die gonser sou ook nie geaktiveer word nadat die PIR opgehou het om beweging te sien nie. Ek wou hê die sneller moet gebeur sodra daar beweging gemerk word.

Wat ek uit hierdie gedrag bepaal het, is dat die ESP-01 eintlik op die stygende rand van die sein lei. Deur die Reset-pen op die grond te hou, veroorsaak die ESP-01 nie eintlik uit diepe slaap nie, maar op die oomblik dat die spanning na die HIGH-sein styg, gebeur die reset.

My baie eenvoudige reaksie op hierdie gedrag was om 'n kondensator by die lyn tussen die PIR -uitset en die transistorbasis te voeg. Dit het veroorsaak dat die transistor net aanskakel terwyl die kapasitor laai. Nadat dit gelaai was, was daar geen verdere stroom nie en die transistor is afgeskakel. Die 5k -weerstand laat die stroom na die grond toe dreineer. Ek het dit met 'n LED in die plek van die ESP-01 getoets en ek kon die LED vir 'n breukdeel van 'n sekonde sien flikker voordat ek dit uitskakel. Hierdie klein polsslag was genoeg om die Reset -pen kort -kort grond toe te trek en lank genoeg om die Reset uit diepe slaap te veroorsaak.

Stap 1: ESP-01 Diep slaapmodule

ESP-01 Diep slaapmodule
ESP-01 Diep slaapmodule
ESP-01 Diep slaapmodule
ESP-01 Diep slaapmodule

Die diep slaapmodule gebruik twee werkspannings. Die ewekansige 5v+ van die battery pack vir die PIR en ook 'n 3.3 volt regulator board vir die ESP-01. Ek sluit ook 'n diode in die stroombaan in om te voorkom dat beskadigde dele van omgekeerde spanning voorkom. Dit gebruik wel 'n bietjie ekstra krag en laat die batteryspanning met 0,7 volt daal. Die diode kan uit die kring gelaat word as u seker is dat u nooit die batterykabels sal omkeer nie. 'N Skakelaar word ook gerieflik bygevoeg.

Hierdie module is 'n geringe opdatering van my oorspronklike, nie-diep slaapuitleg. In die nie-diep slaap-konfigurasie is die PIR direk gekoppel aan die RX-pen van die ESP-01. Ek gebruik die RX-pen van die ESP-01 as 'n invoerpen vir die PIR om 'n paar redes. GPIO0 het nie gewerk nie, want tydens die opstart sou die PIR-uitvoer-PIN LAAG wees, wat veroorsaak dat die ESP-01 in die flitsmodus gaan. Ek het nie GPIO2 gebruik nie, want dan kon ek nie die ingeboude LED vir visuele terugvoer gebruik nie. Die RX- en TX -penne word dikwels beskryf as ekstra IO -penne, maar my ervaring is dat RX 'n ekstra INPUT -pen is en TX 'n ekstra OUTPUT -pen.

In diepe slaap -konfigurasie is die RX -verbinding nie streng nodig nie. Ek gebruik dit slegs om te monitor hoe lank die PIR geaktiveer word deur die LED aan te skakel terwyl die invoer HOOG is. Soos voorheen genoem, is die RX -verbinding onnodig as u die lusfunksie uitvee en slegs die opstelroetine gebruik.

Hier is die onderdele lys vir die ESP-01 diepe slaap module:

1 - 5 x 7 cm PCB prototipe bord

1 - 2 pen aansluiting

2 - 1 x 3 vroulike opskrifte

1 - AMS1117 - 3.3 spanningsreguleerder printplaat

1 - 1 x 3 Reghoekige manlike koppen

1 - 1 x 3 vroulike voetstukkoppen

1 - 1 x 4 vroulike voetstukkoppen

1 - 2 x 4 vroulike kop

1 - 1uf kapasitor

1 - HC -SR501 PIR Bewegingsensor

1 - 2N2222 Transistor

1 - 10k weerstand

1 - 4.7k Weerstand

1 - 1k Weerstand

1 - 1N4148 diode

1 - skakelaar SS12D00G4 SPDT

1 - ESP -01

1 - 4AA battery

Let daarop dat die bord in die video 'n ESP-01-broodbordadapter gebruik in plaas van die 2 x 4-kopstuk. Alhoewel hierdie adapter makliker is om te soldeer, werk die 2 x 4 kopstuk goed en pas dit eintlik beter.

Stap 2: ESP-01 Diepe slaapkode

Die Deep Sleep -kode verrig twee funksies. Stuur 'n e-posboodskap (as standaard via gmail) en stuur 'n http-webversoek na die gepaardgaande ESP-01-zoemermodule om die zoemer te aktiveer.

As dit geaktiveer word, bied hierdie module twee kennisgewingsopsies en kan dit veral handig wees as u nie aandag gee aan e -posboodskappe nie.

U sal ses reëls kode moet opdateer met u spesifieke waardes om die skets te laat werk:

const char* ssid = "xxxxx"; // U WiFi SSIDconst char* wagwoord = "xxxxx"; // U WiFi Password String Senders_Login = "xxxxx"; // u e -posverskaffer se aanmelding String Senders_Password = "xxxxx"; // u e -posverskaffer se wagwoord

Aan = "xxxxxx"; Van = "xxxxxx"; // Gmail verkies gewoonlik dat dit dieselfde is as Senders_Login en kan vervang word

Ek het gevind dat die diepe slaapmodule onvoorspelbaar werk toe die PIR -sensor vir die lengte van die snellergebeurtenis op minder as 10 sekondes was. Ek het myne op 20 sekondes gestel. Dit is baie betroubaar, maar dit beteken ook dat gebeurtenisse met die frekwensie kan plaasvind.

Ek het ook kode by die lusfunksie gevoeg om die ESP-01 aan te hou solank die PIR nog steeds bewegings waarneem. Al die kode in die lusfunksie kan verwyder word en die oproep tot diepe slaap na die einde van die opstelfunksie verskuif word.

Ek gebruik die knipfunksie vir 'n visuele aanduiding van aktiwiteit met die ESP-01-module.

Alhoewel ek verbinding met gmail gebruik en getoets het, werk ander e -posverskaffers ook. Ek het 'n paar probeer. Eintlik vind ek gmail meer lastig. Gmail vereis dat u rekening opgestel is vir toegang deur minder veilige programme. Hierdie rekeninginstelling is standaard UIT, dus maak seker dat u dit vind en verander dit na minder veilig. Gmail werk NIE anders nie.

As u kies om meer as een zoemer -module te hê, voeg net ekstra oproepe van die http -kliënt by (herhaal die drie reëls kode, maar verander die gebruikte ip -adres en definieer ook slegs die httpCode -veranderlike as int een keer!

Let daarop dat die ip -adres van die zoemer hard gekodeer is in hierdie module. U hoef nie die gekose ip -adres te gebruik nie, maar u moet wel die ip -adres van die weboproep in hierdie module pas by die ip -adres van die opstel van die webbediener in die volgende module.

Stap 3: ESP-01-zoemermodule

ESP-01 Gonser Module
ESP-01 Gonser Module
ESP-01 Gonser Module
ESP-01 Gonser Module
ESP-01 Gonser Module
ESP-01 Gonser Module

Die zoemer module het 'n redelik eenvoudige opstelling. Dit gebruik 'n USB -aansluiting in plaas van 'n battery, want ek dink nie hierdie module is geskik vir 'n battery nie. Dit moet te alle tye aan wees en nework/wifi verbind, want dit weet nooit wanneer 'n webversoek gemaak sal word nie. Dit verg meer deurlopende krag as waarvoor batterypakke nuttig is.

Gonsmodules kan gerieflik op verskeie plekke geplaas word, met 'n kennisgewing van 'n bewegingsensor -sneller, ongeag waar u is!

Die gonser is gekoppel aan die 5v van die USB-aansluiting en daar is nog 'n 3.3v-regulatorbord wat die ESP-01 van krag voorsien.

Die zoemer module werk met TX, GPIO0 of GPIO2 vir die uitset. In my opset gebruik ek GPIO0. (Op die foto van die module is die draad gekoppel aan GPIO2, maar ek het dit sedertdien verskuif.) Terwyl GPIO0 nie vir die diepe slaapmodule werk nie (as INPUT), werk dit goed met hierdie uitleg as OUTPUT. Dit word nie op die grond neergetrek nie, wat probleme kan veroorsaak. Ek het wel GPIO2 gebruik, maar toe kon ek nie die ingeboude LED vir terugvoer gebruik nie, maar deur GPIO0 vir OUTPUT te gebruik, kan ek die LED aan boord gebruik.

Ek het probeer om 'n NPN-transistor te gebruik om die zoemer in die stroombaan aan te dryf toe die ESP-01 'n HOOG sein op die GPIO0-pen plaas, maar die resultate was vreeslik inkonsekwent. Dit lyk asof die gonser te alle tye wou klink, selfs met baie min krag. Dus gebruik ek eerder 'n N -kanaal MOSFET (2n7000) en die resultaat was fantasties. Die IO -pen dryf die Gate soos benodig.

Alhoewel ons slegs twee penne van die USB-aansluiting Vcc (+) en Gnd (-) benodig, gebruik ek 'n 5-pins kop om aan die PCB-bord te koppel vir ekstra stabiliteit en vir soldeer voordat die USB aan die reguleerder gekoppel word. My 3.3v -regulatorbord kom met die penne vooraf geïnstalleer en in my gedagtes onderstebo. Om die reguleerder in die koppenne te plaas, kan u sien dat die printplaat versteek is, maar erger as dit, word vcc en gnd op die regulator omgekeer van vcc en gnd op die USB -aansluiting. So steek die drade oor.

Let ook daarop dat + krag vir die aktiewe zoemer afkomstig is van die 5v van die USB. 'N 4 -pins vroulike aansluitkop werk ook goed met die pen se plasing van die zoemer.

ESP-01 Buzzer Module Parts List:

1 - 5 x 7 PCB -bord

1 - USB mini -aansluiting met penkoppe (7 penne)

2 - 1 x 3 vroulike opskrifte

1 - AMS1117-3.3 v spanningsreguleerderbord

1 - 2 x 4 vroulike kop

2 - 1 x 4 vroulike voetstukke

1 - 2N7000 N -kanaal MOSFET

1 - 10 ohm weerstand

1 - 5v aktiewe gonser

Stap 4: ESP-01-zoemer-modulekode

Die zoemer module dien as 'n eenvoudige ESP-01 webbediener. Dit reageer met 'n eenvoudige boodskap op 'n wortelversoek, en as dit 'n buzz -versoek kry, sal dit die gonser veroorsaak. GPIO0 word gebruik vir die GPIO -pen vir die gonsignaal.

Let daarop dat die ESP-01 gekonfigureer is met 'n hardgekodeerde ip-adres. Dit is nodig sodat die diepe slaapmodule gekoppel is aan die zoemeradres.

Net soos die vorige module, moet u twee reëls kode bywerk met u spesifieke waardes:

// SSID en wagwoord van u WiFi -roeteerder char* ssid = "xxxxxxx";

const char* wagwoord = "xxxxxxxx";

As u verskeie gonsmodules geskep het, moet elkeen sy eie unieke ip -adres laai.

U kan ook verskillende gonsmetodes byvoeg wat verskillende gonsmelodieë produseer. As u byvoorbeeld 'n PIR -sensor by die voordeur en een by die agterdeur het, kan hulle elkeen 'n webversoek aan u buzzer -modules rig, maar een sensor kan 'n skets hê wat buzz noem en die ander skets kan buzz2 noem sodat u aan die klank kan sien watter sensor geaktiveer is. En so aan en so aan! Die buzz2 -funksie bestaan nie, maar kopieer die buzz -funksie en verander die vertragingswaardes.

Vir die webbediener moet u net 'n kode kode soos volg byvoeg:

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

Stap 5: Laaste gedagtes

Dit is my eerste opdrag, sodat ek dalk 'n paar praktiese dinge wat ek moes ingesluit het, gemis het. Die AMS1117-3.3-regulatorbord wat ek gebruik het, bevat 'n klein ledjie wat brand wanneer dit aangeskakel word. Vir die diepe slaapmodule wou ek nie hê dat hierdie krag onnodig moet aangespoor word nie. Ek het dus aan die een kant van die led op die bord gesoldeer wat ek kon, en toe 'n mes gebruik om die spoorlyn af te sny. Dit was makliker as wat ek gedink het en verhoed dat die LED brand. Ek kon nie vasstel wat die kragopwekking is as die ESP-01 diep slaap nie, maar ek kan binne 'n paar weke 'n antwoord hê. 'N Kollega van my werk met die sensor (nie in diep slaap nie) en vind die batterye binne ongeveer 'n week leeg (5AA). Ek dink hierdie opstelling behoort 'n maand of selfs meer te gee. Ons sal sien.

Die diepe slaapmodule kos ongeveer $ 8 CDN in dele (batterye nie ingesluit nie!) En die gonser -module $ 5.

Aanbeveel: