Talaan ng mga Nilalaman:

ESP-01 Motion Sensor Na May Malalim na Pagtulog: 5 Hakbang
ESP-01 Motion Sensor Na May Malalim na Pagtulog: 5 Hakbang

Video: ESP-01 Motion Sensor Na May Malalim na Pagtulog: 5 Hakbang

Video: ESP-01 Motion Sensor Na May Malalim na Pagtulog: 5 Hakbang
Video: Камера-ЛАМПА со слежением и определением человека. 2024, Nobyembre
Anonim
Image
Image

Nagtatrabaho ako sa paggawa ng mga lutong bahay na sensor ng paggalaw na nagpapadala ng isang mensahe sa email kapag na-trigger. Maraming mga halimbawa ng itinuturo at iba pang mga halimbawa ng paggawa nito. Kamakailan ko kailangan itong gawin sa isang baterya na pinatatakbo ng PIR na galaw sensor at isang ESP-01. Ang ESP-01 ay napaka-functional at mayroong lahat ng mga kakayahan na kinakailangan kaya bakit hindi gamitin ang minimum at pinakamababang mahal na kinakailangan? Idinagdag sa halo ay isa pang magkahiwalay at remote na module ng ESP-01 na nag-trigger ng isang buzzer nang ma-trigger ang sensor ng paggalaw.

Ang code at sa kalaunan layout ng circuit ay natipon mula sa maraming mga mapagkukunan sa buong web at sa palagay ko hindi ko ito partikular na makikilala. Ang ideya ng pagpapadala ng mga email sa pamamagitan ng gmail ay nagmula sa isang itinuro at iba pang mga mapagkukunan at ang pangwakas na code ay isang pagsasama-sama mula sa mga mapagkukunang iyon. Ang pagkuha ng malalim na pagtulog upang gumana ay humantong sa akin sa maraming mga landas na madalas na napatunayan na walang bunga. Nakakatawang bagay ay, kapag ang isang landas ay nagpapatunay na mabunga, huminto ka sa paghahanap ng higit pang mga landas. Kaya't sinasabi ko salamat sa lahat ng mga nag-ambag sa aking tagumpay at hindi pa kilala.

Nagkaroon ako ng parehong isyu sa pagkuha ng sensor ng PIR upang magtrabaho sa pagpapalitaw ng malalim na pagtulog ng ESP-01. Maraming mga landas hanggang sa may isa na gumana.

Hindi na kailangang sabihin, mayroong ilang mga kagiliw-giliw na hadlang o marahil ay mas may kaugnayan, isang mas mahusay na pag-unawa sa mga electronics na kinakailangan ko. Patuloy kang natututo hanggang sa may gumana at pagkatapos ay hindi mo na kailangang malaman pa.

Ang ESP-01 ay nakakatulog ng malalim pati na rin ang anumang iba pang module ng ESP8266 hangga't hindi mo nangangailangan ng oras na pagtulog. Kung nais mong magising ang module pagkatapos ng isang itinakdang dami ng lumipas na oras, Ang ESP-01 ay hindi ang module na gagamitin. Ngunit hindi iyon ang gusto ko. Ang lumipas na oras ay walang kabuluhan kapag gumagamit ng isang PIR. Nais kong magising lamang ang ESP-01 kapag na-trigger ng paggalaw na naramdaman ng PIR. Kung walang paggalaw na nadama para sa mga oras o araw, ang ESP-01 ay mananatiling tulog gamit ang kaunting lakas ng baterya.

Makakakita ka ng maraming mga circuit na gumagamit ng GPIO16 na konektado sa ESP8266 Reset dahil ang GPIO16 ay ang signal ng paggising. Ito ay totoo, ngunit ito ang signal ng paggising mula sa oras na pagtulog. Maaari naming balewalain ang PIN na ito, na mabuti dahil hindi ito magagamit sa ESP-01.

Talaga, ang kailangan lang namin ay upang makuha ang signal mula sa PIR upang ma-trigger ang ESP-01 Reset pin. Ang unang paghihirap na susuriin mo ay ang Pag-reset ay na-trigger sa isang LOW signal at ang PIR ay nagpapadala ng isang HIGH signal kapag na-trigger. Ang pag-reset ay kailangan ding maging TAAS o lumulutang sa boot. Kaya't upang mapanatili itong maikli, pagkatapos subukan ang ilang iba't ibang mga circuit ay naayos ko ang paggamit ng isang NPN transistor na may isang pull-up risistor upang mapanatili ang RESET pin na TAAS sa panahon ng boot. Ang output mula sa PIR ay minimal ngunit nagbibigay ito ng sapat na kasalukuyang pangkasalukuyan na buksan ang transistor.

Tulad ng makikita mo sa circuit diagram sa ibaba, ang ESP-01 ay ginising mula sa malalim na pagtulog sa tuwing may kilos ang PIR.

Ngunit may isa pang problema. Ang Reset ng ESP-01 ay nangyari lamang pagkatapos tumigil ang PIR sa paggalaw ng sensasyon at bumalik sa isang mababang signal na pinapatay ang transistor at ibabalik ang Reset pin sa TAAS dahil sa pullup resistor. Mangangahulugan ito na hindi maipapadala ang email, at hindi rin maaaktibo ang buzzer hanggang MATAPOS tumigil ang PIR sa paggalaw ng pakiramdam. Nais kong mangyari ang gatilyo sa lalong madaling kilos ang paggalaw.

Ang natutukoy ko mula sa pag-uugaling ito ay ang tunay na pag-trigger ng ESP-01 sa tumataas na gilid ng signal. Ang paghawak ng Reset pin sa lupa ay hindi aktwal na nagpapalitaw ng ESP-01 mula sa mahimbing na pagtulog ngunit sa sandaling ang boltahe ay tumataas sa HIGH signal, pagkatapos ay maganap ang pag-reset.

Ang aking napaka-simpleng tugon sa pag-uugali na ito ay upang magdagdag ng isang kapasitor sa linya sa pagitan ng output ng PIR at ng base ng transistor. Ito ay sanhi ng pag-on lamang ng transistor habang nagcha-charge ang capacitor. Kapag nasingil, wala nang kasalukuyang kasalukuyang at ang transistor ay naka-off. Pinapayagan ng resistor na 5k ang kasalukuyang umagos sa lupa. Sinubukan ko ito sa isang LED kapalit ng ESP-01 at makikita ang LED flash sa para sa isang maliit na bahagi ng isang segundo bago patayin. Ang maliit na pulso na ito ay sapat upang hilahin ang Reset pin sa lupa sandali at sapat na mahaba upang ma-trigger ang Reset mula sa mahimbing na pagtulog.

Hakbang 1: Modyul ng Malalim na Pagtulog ng ESP-01

ESP-01 Malalim na Modyul sa Pagtulog
ESP-01 Malalim na Modyul sa Pagtulog
ESP-01 Malalim na Modyul sa Pagtulog
ESP-01 Malalim na Modyul sa Pagtulog

Ang malalim na module ng pagtulog ay gumagamit ng dalawang nagtatrabaho voltages. Ang random 5v + ng baterya pack para sa PIR at din isang 3.3 volt regulator board para sa ESP-01. Isinasama ko rin ang isang diode sa circuit upang maiwasan ang mga nasirang bahagi mula sa mga pabalik na boltahe. Gumagamit ito ng kaunting sobrang lakas at ihuhulog ang boltahe ng pack ng baterya ng 0.7 volts. Ang diode ay maaaring iwanan sa labas ng circuit kung sigurado ka na hindi mo kailanman ibabaligtad ang mga lead ng baterya pack. Ang isang switch ay idinagdag din sa labas ng kaginhawaan.

Ang modyul na ito ay isang menor de edad na pag-update sa aking orihinal na hindi malalim na layout ng pagtulog. Sa hindi malalim na pagsasaayos ng pagtulog, ang PIR ay direktang konektado sa RX pin ng ESP-01. Ginagamit ko ang RX pin ng ESP-01 bilang input pin para sa PIR para sa ilang kadahilanan. Ang GPIO0 ay hindi gumana sapagkat sa boot ang PIR output PIN ay LOW na sanhi ng ESP-01 na ipasok ang flash mode. Hindi ako gumamit ng GPIO2 dahil hindi ko na magamit ang built-in na LED para sa visual feed pabalik. Ang mga pin ng RX at TX ay madalas na inilarawan bilang labis na mga IO pin ngunit ang aking karanasan ay ang RX ay isang labis na INPUT pin at ang TX ay isang labis na OUTPUT pin.

Sa malalim na pagsasaayos ng pagtulog, ang koneksyon sa RX ay hindi mahigpit na kinakailangan. Ginagamit ko lang ito upang subaybayan kung gaano katagal na-trigger ang PIR sa pamamagitan ng pag-on ng LED habang ang pag-input ay TAAS. Tulad ng nabanggit dati, kung tatanggalin mo ang pagpapaandar ng loop at gagamitin lamang ang pag-setup na gawain kung gayon ang koneksyon sa RX ay hindi kinakailangan.

Narito ang listahan ng mga bahagi para sa module ng malalim na pagtulog ng ESP-01:

1 - 5 x 7 cm PCB Prototype Board

1 - 2 pin na konektor

2 - 1 x 3 mga babaeng header

1 - AMS1117 - 3.3 boltahe regulator circuit board

1 - 1 x 3 Tamang Angle Lalaki na header pin

1 - 1 x 3 babaeng socket header pin

1 - 1 x 4 na female socket header pin

1 - 2 x 4 na babaeng header

1 - 1uf capacitor

1 - HC-SR501 PIR Motion Sensor

1 - 2N2222 Transistor

1 - 10k Resistor

1 - 4.7k Resistor

1 - 1k Resistor

1 - 1N4148 diode

1 - ilipat ang SS12D00G4 SPDT

1 - ESP-01

1 - 4AA Battery Pack

Mangyaring tandaan na sa video ang circuit board ay gumagamit ng isang adapter ng tinapay na ESP-01 sa halip na ang 2 x 4 na header. Habang ang adapter na ito ay mas madaling maghinang ang 2 x 4 header ay gumagana nang maayos at talagang mas umaangkop.

Hakbang 2: Malalim na Code ng Pagtulog sa ESP-01

Gumagawa ang Deep Sleep code ng dalawang pagpapaandar. Magpadala ng isang mensahe sa email (sa pamamagitan ng gmail bilang default) at magpadala ng isang kahilingan sa http sa web sa nauugnay na module ng buzzer ng ESP-01 upang ma-trigger ang buzzer.

Kapag na-trigger, nagbibigay ang modyul na ito ng dalawang pagpipilian sa pag-abiso at maaaring maging lalong kapaki-pakinabang kapag hindi mo binibigyang pansin ang mga mensahe sa email.

Kakailanganin mong i-update ang anim na linya ng code sa iyong mga tukoy na halaga upang gumana ang sketch:

const char * ssid = "xxxxx"; // Your WiFi SSIDconst char * password = "xxxxx"; // Your WiFi Password String Senders_Login = "xxxxx"; // your email provider login String Senders_Password = "xxxxx"; // ang iyong email provider password

To = "xxxxxx"; Mula sa = "xxxxxx"; // Sa pangkalahatan ginusto ng Gmail na ito ay kapareho ng Senders_Login at maaaring kapalit

Natagpuan ko ang malalim na module ng pagtulog na hindi mahulaan nang ang sensor ng PIR ay nakatakda sa ibaba 10 seg para sa haba ng kaganapan ng pag-trigger. Nakatakda ang aking sa 20 secs. Napatunayan nito ang napaka maaasahan ngunit nangangahulugan din ito na maaaring maganap ang mga nagti-trigger na kaganapan sa dalas na iyon.

Nagdagdag din ako ng code sa pag-andar ng loop upang mapanatili ang ESP-01 na humantong hangga't ang PIR ay nararamdaman pa rin ang paggalaw. Ang lahat ng mga code sa pag-andar ng loop ay maaaring alisin at ang tawag sa mahimbing na pagtulog ay inilipat sa dulo ng pag-andar ng pag-setup.

Ginagamit ko ang blink function para sa isang visual na tagapagpahiwatig ng aktibidad na may module na ESP-01.

Habang ginamit ko at nasubukan ko na ang pagkakakonekta sa gmail, gumagana rin ang ibang mga provider ng email. Sinubukan ko ang isang pares. Sa katunayan, nakita kong mas mahirap ang gmail. Kinakailangan ng Gmail na i-configure mo ang iyong account para sa pag-access ng hindi gaanong ligtas na mga app. Ang setting ng account na ito ay NAKA-OFF bilang default kaya tiyaking nakita mo ito at binago ito sa hindi gaanong ligtas. HINDI gagana ang Gmail kung hindi man.

Kung pipiliin mong magkaroon ng higit sa isang module ng buzzer magdagdag lamang ng mga sobrang tawag ng http client (ulitin ang tatlong linya ng code ngunit baguhin ang ginamit na ip address at tukuyin din lamang ang variable ng httpCode bilang int once!

Tandaan na ang ip address ng buzzer ay mahirap naka-code sa modyul na ito. Hindi mo kailangang gamitin ang ip address na pinili ko, ngunit kailangan mong itugma ang ip address ng web call sa modyul na ito sa ip address ng pag-setup ng web server sa susunod na module.

Hakbang 3: Modyul ng Buzzer ng ESP-01

Module ng Buzzer ng ESP-01
Module ng Buzzer ng ESP-01
Module ng Buzzer ng ESP-01
Module ng Buzzer ng ESP-01
Module ng Buzzer ng ESP-01
Module ng Buzzer ng ESP-01

Ang module ng buzzer ay may isang simpleng pag-setup. Gumagamit ito ng isang USB konektor sa halip na isang baterya pack dahil sa palagay ko ang modyul na ito ay hindi angkop para sa isang pack ng baterya. Dapat itong manatili sa at nework / wifi na konektado sa lahat ng oras dahil hindi nito alam kung kailan gagawin ang isang hiling sa web. Nangangailangan ito ng mas tuluy-tuloy na lakas kaysa sa kapaki-pakinabang para sa mga pack ng baterya.

Ang mga module ng buzzer ay maaaring mailagay nang madali sa maraming mga lokasyon na nagbibigay ng abiso ng isang kaganapan na nag-uudyok ng sensor ng paggalaw kahit nasaan ka man!

Ang buzzer ay konektado sa 5v ng USB konektor at mayroong isa pang 3.3v regulator board na nagbibigay ng lakas sa ESP-01.

Gagana ang module ng buzzer gamit ang TX, GPIO0 o GPIO2 para sa output. Sa aking pagsasaayos ay gumagamit ako ng GPIO0. (Sa larawan ng module ang kawad ay konektado sa GPIO2 ngunit inilipat ko ito.) Habang ang GPIO0 ay hindi gumana para sa malalim na module ng pagtulog (bilang INPUT) gumagana ito ng maayos sa layout na ito bilang OUTPUT. Hindi ito hinihila sa lupa sa boot na magdudulot ng mga problema. Gumamit ako ng GPIO2 ngunit pagkatapos ay hindi ko magamit ang onboard LED para sa anumang feedback ngunit sa pamamagitan ng paggamit ng GPIO0 para sa OUTPUT maaari kong gamitin ang on board LED.

Sinubukan kong gumamit ng isang transistor ng NPN upang paandarin ang buzzer sa circuit nang maglagay ang ESP-01 ng isang HIGH signal sa GPIO0 pin ngunit ang mga resulta ay napakasindak. Ang buzzer ay tila nais na tumunog sa lahat ng oras, kahit na may napakakaunting lakas. Kaya sa halip ay gumamit ako ng isang N channel MOSFET (2n7000) at ang resulta ay napakasindak. Ang pin na IO ay nagtutulak ng Gate kung kinakailangan.

Habang kailangan lamang namin ng dalawang mga pin mula sa USB konektor Vcc (+) at Gnd (-) Gumagamit ako ng isang 5 pin header upang kumonekta sa PCB board para sa labis na katatagan at para sa paghihinang bago kumonekta sa USB sa regulator. Ang aking 3.3v regulator board ay dumating na may paunang naka-install na mga pin at nasa isip ko, baligtad. Kaya't upang ilagay ang regulator sa mga header pin maaari mong makita na ang circuit board ay nakatago, ngunit mas masahol pa kaysa doon, ang vcc at gnd sa regulator ay nababaligtad mula sa vcc at gnd sa konektor ng USB. Kaya't tumawid ang mga wire.

Tandaan din na ang + lakas para sa aktibong buzzer ay nagmula sa 5v ng USB. Gayundin, ang isang 4 pin na babaeng header ng socket ay gumagana nang maayos sa pagkakalagay ng pin ng buzzer.

Listahan ng Mga Bahagi ng Module ng ESP-01 Buzzer:

1 - 5 x 7 Lupon ng PCB

1 - USB mini konektor na may mga header ng pin (7 pin)

2 - 1 x 3 mga babaeng header

1 - AMS1117-3.3 v boltahe na regulator board

1 - 2 x 4 na babaeng header

2 - 1 x 4 na mga header ng babae na socket

1 - 2N7000 N-channel MOSFET

1 - 10 ohm risistor

1 - 5v Aktibong Buzzer

Hakbang 4: Code ng Modyul ng Buzzer ng ESP-01

Ang module ng buzzer ay kumikilos bilang isang simpleng web server ng ESP-01. Tumutugon ito gamit ang isang simpleng mensahe sa isang root request at kapag nakuha nito ang kahilingan sa buzz, ito ay magpapalitaw sa buzzer. Ginagamit ang GPIO0 para sa GPIO pin para sa buzzer signal.

Tandaan na ang ESP-01 ay naka-configure gamit ang isang hard coded ip address. Kinakailangan ito upang ang malalim na module ng pagtulog ay isinama sa buzzer address.

Tulad ng nakaraang module, kakailanganin mong i-update ang dalawang linya ng code sa iyong mga tukoy na halaga:

// SSID at Password ng iyong WiFi routerconst char * ssid = "xxxxxxx";

const char * password = "xxxxxxxx";

Kung mayroon kang maraming mga module ng buzzer na nilikha, ang bawat isa ay dapat na lulan ng sarili nitong natatanging ip address.

Maaari ka ring magdagdag ng iba't ibang mga pamamaraan ng buzz na gumagawa ng iba't ibang mga himig ng buzzer. Halimbawa, kung mayroon kang sensor ng PIR sa pintuan sa harap at isa sa pintuan sa likuran, maaari silang gumawa ng isang kahilingan sa web sa bawat isa sa iyong mga module ng buzzer ngunit ang isang sensor ay maaaring magkaroon ng isang sketch na tumatawag sa buzz at ang iba pang sketch ay maaaring tumawag sa buzz2 upang masabi mo mula sa tunog kung aling sensor ang na-trigger. At iba pa at iba pa! Ang buzz2 function ay hindi mayroon ngunit kopyahin lamang ang buzz function at baguhin ang mga halaga ng pagkaantala.

Para sa web server kakailanganin mong magdagdag ng isang linya ng code tulad nito:

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

Hakbang 5: Pangwakas na Mga Saloobin

Ito ang aking kauna-unahang itinuturo kaya't maaaring napalampas ko ang ilang mga praktikal na bagay na dapat kong isama. Ang AMS1117-3.3 regulator board na ginamit ko ay nagsasama ng isang maliit na humantong na ilaw up kapag pinapagana. Para sa malalim na module ng pagtulog ay hindi ko nais na humantong ito sa at pag-draining ng lakas nang hindi kinakailangan. Kaya't inalis ko kung ano ang magagawa ko sa isang gilid ng led sa board at pagkatapos ay gumamit ng isang kutsilyo ng utility upang putulin ang linya ng bakas. Ito ay mas madali kaysa sa naisip ko at pinipigilan ang LED mula sa pag-iilaw. Hindi ko matukoy kung ano ang kapangyarihan na gumuhit kapag ang ESP-01 ay mahimbing na natutulog ngunit maaaring may sagot ako sa loob ng ilang linggo. Ang isang kasamahan ko ay nagpapatakbo ng sensor (wala sa mahimbing na tulog) at natagpuan ang mga baterya na pinatuyo (5AA) sa halos isang linggo. Sa palagay ko ang setup na ito ay dapat magbigay ng isang buwan o higit pa. Makikita natin.

Ang malalim na module ng pagtulog ay nagkakahalaga ng halos $ 8 CDN sa mga bahagi (hindi kasama ang mga baterya!) At ang buzzer module na $ 5.

Inirerekumendang: