Përmbajtje:

Sensori i lëvizjes ESP-01 me gjumë të thellë: 5 hapa
Sensori i lëvizjes ESP-01 me gjumë të thellë: 5 hapa

Video: Sensori i lëvizjes ESP-01 me gjumë të thellë: 5 hapa

Video: Sensori i lëvizjes ESP-01 me gjumë të thellë: 5 hapa
Video: Скидывай друзьям, пускай пользуются! #тюнинг #авто #машина 2024, Nëntor
Anonim
Image
Image

Unë kam punuar në krijimin e sensorëve të lëvizjes të bërë në shtëpi që dërgojnë një mesazh me email kur aktivizohen. Ka shumë shembuj udhëzues dhe shembuj të tjerë për ta bërë këtë. Kohët e fundit më duhej ta bëja këtë me një sensor lëvizjeje PIR të funksionuar me bateri dhe një ESP-01. ESP-01 është shumë funksional dhe ka të gjitha aftësitë e kërkuara, përse të mos përdorni minimumin dhe më së paku të shtrenjtë të nevojshëm? Përzierjes iu shtua një modul tjetër i veçantë dhe i largët ESP-01 që shkaktoi një zile kur u aktivizua sensori i lëvizjes.

Kodi dhe paraqitja përfundimtare e qarkut janë mbledhur nga burime të shumta në internet dhe nuk mendoj se mund t'i identifikoj ato në mënyrë specifike. Ideja e dërgimit të postës elektronike përmes gmail erdhi nga një burim i udhëzueshëm dhe i tjerë dhe kodi përfundimtar është një amalgamë nga ato burime. Fjetja e thellë në punë më çoi në shumë rrugë që shpesh rezultuan të pafrytshme. Gjëja qesharake është, pasi një rrugë të rezultojë e frytshme, ju ndaloni së kërkuari më shumë shtigje. Kështu që unë falënderoj të gjithë ata që kanë kontribuar në suksesin tim dhe ende nuk janë të njohur.

Unë kisha të njëjtën çështje që sensori PIR të punonte për të shkaktuar gjumin e thellë ESP-01. Shumë rrugë derisa kishte një që funksionoi.

Eshtë e panevojshme të thuhet, kishte disa pengesa interesante ose ndoshta më të rëndësishme, një kuptim më të mirë të elektronikës që kërkoja. Vazhdoni të mësoni derisa diçka të funksionojë dhe atëherë nuk keni pse të mësoni më.

ESP-01 bën gjumë të thellë, si dhe çdo modul tjetër ESP8266 për sa kohë që nuk keni nevojë për gjumë të caktuar. Nëse dëshironi që moduli të zgjohet pas një kohe të caktuar, ESP-01 nuk është moduli për t'u përdorur. Por kjo nuk është ajo që doja. Koha e kaluar është e pakuptimtë kur përdorni një PIR. Doja që ESP-01 të zgjohej vetëm kur nxitej nga lëvizja e ndjerë nga PIR. Nëse nuk ka lëvizje të ndjerë për orë ose ditë, ESP-01 qëndron në gjumë duke përdorur fuqi minimale të baterisë.

Do të shihni shumë qarqe që përdorin GPIO16 të lidhur me ESP8266 Reset sepse GPIO16 është sinjali i zgjimit. Kjo është e vërtetë, por është sinjali i zgjimit nga gjumi i caktuar. Ne mund ta injorojmë këtë PIN, i cili është i mirë sepse nuk është i disponueshëm në ESP-01.

Në thelb, gjithçka që na nevojitet është të marrim sinjalin nga PIR për të shkaktuar pinin e Rivendosjes ESP-01. Vështirësia e parë që do të supozoni është se Reset aktivizohet në një sinjal LOW dhe PIR dërgon një sinjal të lartë kur ndizet. Rivendosja gjithashtu duhet të jetë e Lartë ose të lundrojë në boot. Pra, për ta mbajtur këtë të shkurtër, pasi provova disa qarqe të ndryshme, u vendosa duke përdorur një transistor NPN me një rezistencë tërheqëse për të mbajtur pinin RESET LART HIGH gjatë nisjes. Dalja nga PIR është minimale, por siguron një rrymë bazë të mjaftueshme për të ndezur tranzistorin.

Siç do ta shihni në diagramin e qarkut më poshtë, ESP-01 zgjohej nga gjumi i thellë sa herë që PIR ndjente lëvizjen.

Por kishte një problem tjetër. Rivendosja e ESP-01 ndodhi vetëm pasi PIR ndaloi ndjesinë e lëvizjes dhe u kthye në një sinjal të ulët që fikte transistorin dhe kthente kunjin e Rivendosjes në HIGH për shkak të rezistencës tërheqëse. Kjo do të thotë që emaili nuk do të dërgohet, as zile nuk do të aktivizohet derisa PAS PIR -it të mos ndiejë lëvizjen. Doja që shkaktari të ndodhte sapo të ndihej lëvizja.

Ajo që përcaktova nga kjo sjellje është se ESP-01 në fakt shkakton në skajin në rritje të sinjalit. Mbajtja e kunjit të Rivendosjes në tokë nuk e nxit ESP-01 nga gjumi i thellë, por në momentin që tensioni rritet në sinjalin LART, atëherë ndodh rivendosja.

Përgjigja ime shumë e thjeshtë ndaj kësaj sjelljeje ishte të shtoja një kondensator në vijën midis daljes PIR dhe bazës së tranzistorit. Kjo bëri që tranzistori të ndizet vetëm kur kondensatori ishte duke u ngarkuar. Pasi u karikua, nuk kishte më rrymë dhe tranzistori u fik. Rezistenca 5k lejon që rryma të derdhet në tokë. E testova këtë me një LED në vend të ESP-01 dhe mund ta shihja ndezjen LED për një pjesë të sekondës para se të fiket. Ky puls i vogël ishte i mjaftueshëm për të tërhequr kunjin e Rivendosjes në tokë për një çast dhe mjaftueshëm për të nxitur Rivendosjen nga gjumi i thellë.

Hapi 1: Moduli i gjumit të thellë ESP-01

ESP-01 Moduli i gjumit të thellë
ESP-01 Moduli i gjumit të thellë
ESP-01 Moduli i gjumit të thellë
ESP-01 Moduli i gjumit të thellë

Moduli i gjumit të thellë përdor dy tensione pune. 5v+ e rastësishme e paketës së baterisë për PIR dhe gjithashtu një bord rregullator 3.3 volt për ESP-01. Unë gjithashtu përfshij një diodë në qark për të parandaluar pjesët e dëmtuara nga tensionet e kundërt. Kjo përdor pak energji shtesë dhe bie tensionin e baterisë me 0.7 volt. Dioda mund të lihet jashtë qarkut nëse jeni të sigurt që nuk do të ndryshoni kurrë rrymat e baterisë. Një çelës shtohet gjithashtu nga lehtësia.

Ky modul është një azhurnim i vogël në paraqitjen time origjinale të gjumit jo të thellë. Në konfigurimin e gjumit jo të thellë, PIR është i lidhur drejtpërdrejt me kunjin RX të ESP-01. Unë jam duke përdorur pinin RX të ESP-01 si kunjin hyrës për PIR për disa arsye. GPIO0 nuk funksionoi sepse gjatë nisjes PIN-i i daljes PIR do të ishte I LART duke bërë që ESP-01 të hynte në modalitetin e blicit. Unë nuk kam përdorur GPIO2 sepse atëherë nuk mund të përdorja LED-in e integruar për kthimin vizual. Kunjat RX dhe TX shpesh përshkruhen si kunja shtesë IO, por përvoja ime është se RX është një kunjë shtesë INPUT dhe TX është një kunj shtesë OUTPUT.

Në konfigurimin e gjumit të thellë, lidhja RX nuk është rreptësisht e nevojshme. Unë e përdor atë vetëm për të monitoruar sa kohë aktivizohet PIR duke ndezur LED ndërsa hyrja është e Lartë. Siç u përmend më parë, nëse pastroni funksionin e lakut dhe përdorni vetëm rutinën e konfigurimit, atëherë lidhja RX është e panevojshme.

Këtu është lista e pjesëve për modulin e gjumit të thellë ESP-01:

Pllakë Prototipi 1 - 5 x 7 cm PCB

Lidhës 1 - 2 pin

2 - 1 x 3 kokë femra

1 - AMS1117 - 3.3 bordi i qarkut të rregullatorit të tensionit

1 - 1 x 3 Kunja e kokës për meshkuj me kënd të drejtë

1 - 1 x 3 kunja e kokës së prizës femërore

1 - 1 x 4 kunja e kokës së prizës femërore

1 - 2 x 4 kokë femre

Kondensator 1 - 1uf

1 - HC -SR501 PIR Sensori i Lëvizjes

1 - 2N2222 Transistor

Rezistencë 1 - 10k

Rezistencë 1 - 4.7k

Rezistencë 1 - 1k

1 - 1N4148 diodë

1 - kaloni SS12D00G4 SPDT

1 - ESP -01

Paketa e baterisë 1 - 4AA

Ju lutemi vini re se në video bordi qark përdor një përshtatës të Eboard-01 të tabelës së bukës në vend të kokës 2 x 4. Ndërsa ky përshtatës është më i lehtë për t'u bashkuar, titulli 2 x 4 funksionon mirë dhe në të vërtetë përshtatet më mirë.

Hapi 2: Kodi i gjumit të thellë ESP-01

Kodi Deep Sleep kryen dy funksione. Dërgoni një mesazh me email (përmes gmail si parazgjedhje) dhe dërgoni një kërkesë në internet http në modulin e lidhur të zhurmës ESP-01 për të shkaktuar zile.

Kur aktivizohet, ky modul ofron dy mundësi njoftimi dhe mund të jetë veçanërisht i dobishëm kur nuk i kushtoni vëmendje mesazheve të postës elektronike.

Ju do të duhet të azhurnoni gjashtë rreshta të kodit me vlerat tuaja specifike për ta bërë skicën të funksionojë:

const char* ssid = "xxxxx"; // WiFi juaj SSIDconst char* password = "xxxxx"; // Fjalëkalimi juaj WiFi String Senders_Login = "xxxxx"; // hyrja e ofruesit tuaj të postës elektronike String Senders_Password = "xxxxx"; // fjalëkalimi i ofruesit tuaj të postës elektronike

Për = "xxxxxx"; Nga = "xxxxxx"; // Gmail në përgjithësi preferon që kjo të jetë e njëjtë me Senders_Login dhe mund të zëvendësohet

Kam gjetur se moduli i gjumit të thellë funksiononte në mënyrë të paparashikueshme kur sensori PIR ishte vendosur në nën 10 sekonda për gjatësinë e ngjarjes së shkaktimit. Unë e kam vendosur timen në 20 sekonda. Kjo është provuar shumë e besueshme, por gjithashtu do të thotë që ngjarjet e shkaktuara mund të ndodhin me atë frekuencë.

Unë gjithashtu kam shtuar kodin në funksionin e lakut për ta mbajtur ESP-01 të ndezur për aq kohë sa PIR është ende duke ndjerë lëvizjen. I gjithë kodi në funksionin e lakut mund të hiqet dhe thirrja për gjumë të thellë të zhvendoset në fund të funksionit të konfigurimit.

Unë përdor funksionin blink për një tregues vizual të aktivitetit me modulin ESP-01.

Ndërsa kam përdorur dhe testuar lidhjen me gmail, ofruesit e tjerë të postës elektronike funksionojnë gjithashtu. Kam provuar një çift. Në fakt, unë e kam gjetur gmail më shqetësues. Gmail kërkon që të keni llogarinë tuaj të konfiguruar për qasje nga aplikacione më pak të sigurta. Ky cilësim i llogarisë është OFF si parazgjedhje, prandaj sigurohuni që ta gjeni dhe ta ndryshoni në më pak të sigurt. Gmail NUK do të funksionojë ndryshe.

Nëse zgjidhni të keni më shumë se një modul zile vetëm shtoni thirrje shtesë të klientit http (përsëritni tre rreshtat e kodit por ndryshoni adresën IP të përdorur dhe gjithashtu përcaktoni vetëm ndryshoren httpCode si int një herë!

Vini re se adresa IP e ziles është e koduar në këtë modul. Ju nuk keni pse të përdorni adresën IP që kam zgjedhur, por duhet të përputheni me adresën IP të thirrjes në internet në këtë modul me adresën ip të konfigurimit të serverit në internet në modulin tjetër.

Hapi 3: Moduli i Zhurmës ESP-01

ESP-01 Moduli i Zhurmës
ESP-01 Moduli i Zhurmës
ESP-01 Moduli i Zhurmës
ESP-01 Moduli i Zhurmës
ESP-01 Moduli i Zhurmës
ESP-01 Moduli i Zhurmës

Moduli i zhurmës ka një konfigurim mjaft të thjeshtë. Ai përdor një lidhës USB në vend të një pakete baterie sepse nuk mendoj se ky modul është i përshtatshëm për një paketë baterie. Duhet të mbetet i ndezur dhe nework/wifi i lidhur gjatë gjithë kohës, sepse nuk e di kur do të bëhet një kërkesë në internet. Kjo kërkon energji më të vazhdueshme sesa paketat e baterisë janë të dobishme për të.

Modulet e zhurmës mund të vendosen në mënyrë të përshtatshme në vende të shumta duke siguruar njoftim për një ngjarje të shkaktimit të sensorit të lëvizjes, pavarësisht se ku jeni!

Zileja është e lidhur me 5v të lidhësit USB dhe ka një bord tjetër rregullator 3.3v që siguron energji për ESP-01.

Moduli i ziles do të funksionojë duke përdorur TX, GPIO0 ose GPIO2 për daljen. Në konfigurimin tim unë jam duke përdorur GPIO0. (Në figurën e modulit tela është e lidhur me GPIO2 por që atëherë e kam lëvizur atë.) Ndërsa GPIO0 nuk funksionoi për modulin e gjumit të thellë (si INPUT) funksionon mirë me këtë paraqitje si OUTPUT. Nuk tërhiqet në tokë në bagazhin që do të shkaktojë probleme. Unë vërtet përdor GPIO2, por më pas nuk mund të përdor LED në bord për ndonjë reagim, por duke përdorur GPIO0 për OUTPUT mund të përdor LED në bord.

Unë u përpoqa të përdor një transistor NPN për të fuqizuar zilen në qark kur ESP-01 vendosi një sinjal të lartë në kunjin GPIO0, por rezultatet ishin jashtëzakonisht të paqëndrueshme. Zileja dukej se donte të tingëllojë në çdo kohë, madje edhe me shumë pak fuqi. Kështu që në vend të kësaj kam përdorur një kanal N MOSFET (2n7000) dhe rezultati ishte i mrekullueshëm. Kunja IO drejton Portën sipas kërkesës.

Ndërsa na duhen vetëm dy kunja nga lidhësi USB Vcc (+) dhe Gnd (-) unë përdor një kokë me 5 kunja për t'u lidhur me tabelën e PCB për stabilitet shtesë dhe për bashkim para se të lidhni USB me rregullatorin. Bordi im rregullator 3.3v erdhi me kunjat e parainstaluar dhe në mendjen time, me kokë poshtë. Pra, për të futur rregullatorin në kunjat e kokës mund të shihni se bordi i qarkut është i fshehur, por më keq se kaq, vcc dhe gnd në rregullator janë të kundërt nga vcc dhe gnd në lidhësin USB. Kështu që telat kryqëzohen.

Gjithashtu vini re se + fuqia për zilen aktive vjen nga 5v e USB. Gjithashtu, një kokë me prizë me 4 kunja femra funksionon mirë me vendosjen e kunjave të ziles.

ESP-01 Lista e Pjesëve të Modulit të Buzzer:

1 - 5 x 7 Bordi i PCB

1 - Mini lidhës USB me tituj pin (7 kunja)

2 - 1 x 3 kokë femra

1 - bordi rregullator i tensionit AMS1117-3.3 v

1 - 2 x 4 kokë femre

2 - 1 x 4 kokë fole femërore

1 - 2N7000 N -kanal MOSFET

Rezistencë 1 - 10 ohm

Zile aktive 1 - 5v

Hapi 4: Kodi i Modulit ESP-01 Buzzer

Moduli i zhurmës vepron si një server i thjeshtë në internet ESP-01. Ai përgjigjet me një mesazh të thjeshtë ndaj një kërkese rrënjësore dhe kur merr kërkesën e zhurmës, do të shkaktojë zile. GPIO0 përdoret për pinin GPIO për sinjalin e ziles.

Vini re se ESP-01 është konfiguruar me një adresë IP të koduar fort. Kjo kërkohet në mënyrë që moduli i gjumit të thellë të lidhet me adresën e ziles.

Ashtu si moduli i mëparshëm, do t'ju duhet të azhurnoni dy rreshta të kodit me vlerat tuaja specifike:

// SSID dhe fjalëkalimi i routerit tuaj WiFi char* ssid = "xxxxxxx";

const char* fjalëkalim = "xxxxxxxx";

Nëse keni krijuar module të shumta zile, secili duhet të ngarkohet me adresën e tij unike IP.

Ju gjithashtu mund të shtoni metoda të ndryshme lëvizjeje të cilat prodhojnë melodi të ndryshme zile. Për shembull, nëse keni një sensor PIR në derën e përparme dhe një në derën e pasme, secili mund të bëjë një kërkesë në internet për secilin nga modulet tuaja të zhurmës, por një sensor mund të ketë një skicë që thërret zhurmë dhe skica tjetër mund të thërrasë buzz2 në mënyrë që të kuptoni nga zëri se cili sensor është shkaktuar. Dhe kështu me radhë dhe kështu me radhë! Funksioni buzz2 nuk ekziston, por thjesht kopjoni funksionin e lëvizjes dhe ndryshoni vlerat e vonesës.

Për serverin në internet ju vetëm duhet të shtoni një linjë kodi si kjo:

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

Hapi 5: Mendimet përfundimtare

Ky është udhëzimi im i parë kështu që mund të kem humbur disa gjëra praktike që duhet të kem përfshirë. Bordi rregullator AMS1117-3.3 që kam përdorur përfshin një led të vogël që ndizet kur ndizet. Për modulin e gjumit të thellë nuk doja që kjo të ndizte dhe të kullonte fuqinë pa nevojë. Kështu që unë nuk kam shitur atë që munda në njërën anë të pllakës në tabelë dhe më pas kam përdorur një thikë të dobishme për të prerë vijën e gjurmës. Kjo ishte më e lehtë nga sa mendoja dhe parandalon që LED të ndizet. Unë nuk kam qenë në gjendje të përcaktoj se çfarë është tërheqja e energjisë kur ESP-01 është në gjumë të thellë, por mund të kem një përgjigje brenda pak javësh. Një koleg i imi po drejtonte sensorin (jo në gjumë të thellë) dhe gjeti që bateritë ishin të mbaruara (5AA) për rreth një javë. Unë mendoj se ky konfigurim duhet të japë një muaj apo edhe më shumë. Ne do të shohim.

Moduli i gjumit të thellë kushtoi rreth 8 dollarë CDN në pjesë (bateritë nuk përfshihen!) Dhe moduli i ziles 5 dollarë.

Recommended: