Satura rādītājs:

ESP-01 kustības sensors ar dziļu miegu: 5 soļi
ESP-01 kustības sensors ar dziļu miegu: 5 soļi
Anonim
Image
Image

Esmu strādājis pie pašdarinātu kustības sensoru izgatavošanas, kas aktivizējot nosūta e -pasta ziņojumu. Ir daudz pamācību piemēru un citu piemēru, kā to izdarīt. Nesen man tas bija jādara, izmantojot ar akumulatoru darbināmu PIR kustības sensoru un ESP-01. ESP-01 ir ļoti funkcionāls un tam ir visas nepieciešamās iespējas, tad kāpēc neizmantot minimālo un lētāko nepieciešamo? Maisījumam tika pievienots vēl viens atsevišķs un attāls ESP-01 modulis, kas iedarbināja skaņas signālu, kad tika iedarbināts kustības sensors.

Kods un iespējamais shēmas izkārtojums ir apkopoti no daudziem avotiem tīmeklī, un es nedomāju, ka varu tos īpaši identificēt. Ideja sūtīt e -pastus, izmantojot Gmail, nāca no pamācāmiem un citiem avotiem, un galīgais kods ir šo avotu apvienojums. Dziļa miega sākšana darbā noveda mani pie daudziem ceļiem, kas bieži izrādījās neauglīgi. Smieklīgi ir tas, ka, tiklīdz ceļš izrādās auglīgs, jūs pārstājat meklēt vairāk ceļu. Tāpēc es saku paldies visiem tiem, kas ir veicinājuši manus panākumus un vēl nav zināmi.

Man bija tāda pati problēma, kā panākt, lai PIR sensors iedarbinātu ESP-01 dziļo miegu. Daudzi ceļi, līdz atradās viens, kas darbojās.

Lieki piebilst, ka man bija vajadzīgi daži interesanti šķēršļi vai, iespējams, atbilstošāka, labāka elektronikas izpratne. Tu turpini mācīties, līdz kaut kas izdodas, un tad tev vairs nav jāmācās.

ESP-01 nodrošina dziļu miegu, kā arī jebkurš cits ESP8266 modulis, ja vien jums nav nepieciešams miega laiks. Ja vēlaties, lai modulis pamodinātos pēc noteikta laika, ESP-01 nav izmantojamais modulis. Bet tas nav tas, ko es gribēju. Pagājušais laiks ir bezjēdzīgs, lietojot PIR. Es gribēju, lai ESP-01 pamostos tikai tad, kad to iedarbinātu kustība, ko uztver PIR. Ja stundas vai dienas netiek uztverta kustība, ESP-01 turpina gulēt, izmantojot minimālu akumulatora enerģiju.

Jūs redzēsiet daudzas shēmas, kurās tiek izmantots GPIO16, kas savienots ar ESP8266 Reset, jo GPIO16 ir modināšanas signāls. Tā ir taisnība, taču tas ir modināšanas signāls no miega, kas noteikts laikā. Mēs varam ignorēt šo PIN, kas ir labi, jo tas nav pieejams ESP-01.

Būtībā viss, kas mums nepieciešams, ir iegūt signālu no PIR, lai aktivizētu ESP-01 atiestatīšanas tapu. Pirmās grūtības, kuras jūs domājat, ir tas, ka atiestatīšana tiek aktivizēta ar LOW signālu un PIR nosūta HIGH signālu, kad tas tiek iedarbināts. Atiestatīšanai jābūt arī AUGSTAI vai peldošai sāknēšanas laikā. Tātad, lai tas būtu īss, pēc dažu dažādu ķēžu izmēģināšanas es nolēmu izmantot NPN tranzistoru ar pievilkšanas rezistoru, lai sāknēšanas laikā saglabātu RESET PIN HIGH. PIR izeja ir minimāla, taču tā nodrošina pietiekamu bāzes strāvu, ieslēdzot tranzistoru.

Kā redzēsit zemāk esošajā shēmā, ESP-01 tika pamodināts no dziļa miega katru reizi, kad PIR uztvēra kustību.

Bet bija vēl viena problēma. ESP-01 atiestatīšana notika tikai pēc tam, kad PIR pārtrauca uztvert kustību un atgriezās pie zema signāla, izslēdzot tranzistoru un atgriežot tapu uz HIGH, pateicoties pievilkšanas rezistoram. Tas nozīmētu, ka e -pasts netiks nosūtīts, kā arī skaņas signāls netiks aktivizēts, kamēr PĒC PIR nebūs pārtraucis kustības uztveršanu. Es gribēju, lai sprūda notiktu, tiklīdz tika uztverta kustība.

No šīs uzvedības es noskaidroju, ka ESP-01 faktiski iedarbojas uz signāla augšupejošo malu. Atiestatīšanas tapas turēšana pie zemes faktiski neizraisa ESP-01 no dziļā miega, bet brīdī, kad spriegums paaugstinās līdz HIGH signālam, notiek atiestatīšana.

Mana ļoti vienkāršā atbilde uz šo uzvedību bija pievienot kondensatoru līnijai starp PIR izeju un tranzistora bāzi. Tas izraisīja tranzistora ieslēgšanos tikai kondensatora uzlādes laikā. Pēc uzlādes vairs nebija strāvas, un tranzistors izslēdzās. 5k rezistors ļauj strāvai izplūst zemē. Es to pārbaudīju ar gaismas diodi ESP-01 vietā un pirms izslēgšanas redzēju, ka LED zibspuldze tiek ieslēgta sekundes daļu. Ar šo mazo impulsu pietika, lai īslaicīgi un pietiekami ilgi novilktu atiestatīšanas tapu pie zemes, lai aktivizētu atiestatīšanu no dziļā miega.

1. darbība: ESP-01 Deep Sleep Module

ESP-01 dziļā miega modulis
ESP-01 dziļā miega modulis
ESP-01 dziļā miega modulis
ESP-01 dziļā miega modulis

Dziļā miega modulī tiek izmantoti divi darba spriegumi. Nejauša 5 V+ akumulatora pakete PIR un arī 3,3 voltu regulatora plāksne ESP-01. Es arī iekļauju ķēdē diodi, lai novērstu bojātās daļas no pretējā sprieguma. Tas patērē nedaudz papildu enerģijas un samazina akumulatora spriegumu par 0,7 voltiem. Diodi var atstāt ārpus ķēdes, ja esat pārliecināts, ka nekad neatgriezīsit akumulatora bloka vadus. Ērtības labad ir pievienots arī slēdzis.

Šis modulis ir neliels atjauninājums manam sākotnējam ne-dziļā miega izkārtojumam. Ne dziļā miega konfigurācijā PIR ir tieši savienots ar ESP-01 RX tapu. Dažu iemeslu dēļ es izmantoju ESP-01 RX tapu kā PIR ievades tapu. GPIO0 nedarbojās, jo sāknēšanas laikā PIR izvades PIN kods būtu LOW, tāpēc ESP-01 pāries zibspuldzes režīmā. Es neizmantoju GPIO2, jo tad es nevarēju izmantot iebūvēto gaismas diodi vizuālai atgriezeniskajai saitei. RX un TX tapas bieži tiek aprakstītas kā papildu IO tapas, taču mana pieredze rāda, ka RX ir papildu IEEJAS tapa un TX ir papildu OUTPUT tapa.

Dziļā miega konfigurācijā RX savienojums nav absolūti nepieciešams. Es to izmantoju tikai, lai uzraudzītu, cik ilgi tiek aktivizēts PIR, ieslēdzot LED, kamēr ievade ir HIGH. Kā minēts iepriekš, ja izdzēšat cilpas funkciju un izmantojat tikai iestatīšanas rutīnu, RX savienojums nav nepieciešams.

Šeit ir ESP-01 dziļā miega moduļa detaļu saraksts:

1 - 5 x 7 cm PCB prototipa plāksne

1-2 kontaktu savienotājs

2 - 1 x 3 sieviešu galvenes

1 - AMS1117 - 3.3 sprieguma regulatora shēmas plate

1 - 1 x 3 taisna leņķa tēviņa galvenes tapa

1 - 1 x 3 sieviešu ligzdas uzgalis

1 - 1 x 4 sieviešu ligzdas uzgalis

1 - 2 x 4 sieviešu galvene

1 - 1uf kondensators

1 - HC -SR501 PIR kustības sensors

1 - 2N2222 Tranzistors

1 - 10 k rezistors

1 - 4.7k rezistors

1 - 1 k rezistors

1 - 1N4148 diode

1 - slēdzis SS12D00G4 SPDT

1 - ESP -01

1 - 4AA bateriju komplekts

Lūdzu, ņemiet vērā, ka video shēmas plates 2 x 4 galvenes vietā izmanto maizes dēļa adapteri ESP-01. Lai gan šo adapteri ir vieglāk lodēt, 2 x 4 galvene darbojas labi un faktiski labāk iederas.

2. darbība: ESP-01 Deep Sleep Code

Deep Sleep kods veic divas funkcijas. Nosūtiet e-pasta ziņojumu (izmantojot Gmail kā noklusējumu) un nosūtiet http tīmekļa pieprasījumu saistītajam ESP-01 skaņas signāla modulim, lai aktivizētu skaņas signālu.

Kad šis modulis tiek aktivizēts, tas nodrošina divas paziņojumu iespējas un var būt īpaši noderīgs, ja nepievēršat uzmanību e -pasta ziņojumiem.

Lai skice darbotos, jums būs jāatjaunina sešas koda rindas ar savām īpašajām vērtībām:

const char* ssid = "xxxxx"; // Jūsu WiFi SSIDconst char* password = "xxxxx"; // Jūsu WiFi paroles virkne Senders_Login = "xxxxx"; // jūsu e -pasta pakalpojumu sniedzēja pieteikšanās String Senders_Password = "xxxxx"; // jūsu e -pasta pakalpojumu sniedzēja parole

Kam = "xxxxxx"; No = "xxxxxx"; // Gmail parasti dod priekšroku tam, lai tas būtu tāds pats kā Senders_Login, un to var aizstāt

Es atklāju, ka dziļā miega modulis darbojas neparedzami, kad PIR sensors bija iestatīts zem 10 sekundēm sprūda notikuma garumā. Man ir iestatīts uz 20 sekundēm. Tas ir izrādījies ļoti uzticams, taču tas nozīmē arī to, ka notikumu izraisīšana var notikt ar šādu biežumu.

Es arī pievienoju kodu cilpas funkcijai, lai ESP-01 būtu ieslēgts, kamēr PIR joprojām uztver kustību. Visu cilpas funkcijas kodu var noņemt un zvanu uz dziļo miegu pārvietot uz iestatīšanas funkcijas beigām.

Es izmantoju mirgošanas funkciju, lai vizuāli parādītu aktivitāti ar moduli ESP-01.

Lai gan esmu izmantojis un pārbaudījis savienojumu ar gmail, darbojas arī citi e -pasta pakalpojumu sniedzēji. Esmu izmēģinājis pāris. Patiesībā man gmail ir šķitis apgrūtinošāks. Lai izmantotu pakalpojumu Gmail, jūsu kontam jābūt konfigurētam, lai piekļūtu mazāk drošām lietotnēm. Šis konta iestatījums pēc noklusējuma ir IZSLĒGTS, tāpēc noteikti atrodiet to un nomainiet to uz mazāk drošu. Citādi Gmail nedarbosies.

Ja izvēlaties vairāk nekā vienu modinātāja moduli, vienkārši pievienojiet papildu http klienta zvanus (atkārtojiet trīs koda rindiņas, bet mainiet izmantoto ip adresi, kā arī tikai vienreiz definējiet mainīgo httpCode kā int!

Ņemiet vērā, ka šajā modulī skaņas signāla ip adrese ir kodēta. Jums nav jāizmanto mana izvēlētā ip adrese, bet jums ir jāatbilst šī moduļa tīmekļa zvana IP adresei ar tīmekļa moduļa iestatīšanas ip adresi nākamajā modulī.

3. darbība: ESP-01 skaņas signāla modulis

ESP-01 skaņas signāla modulis
ESP-01 skaņas signāla modulis
ESP-01 skaņas signāla modulis
ESP-01 skaņas signāla modulis
ESP-01 skaņas signāla modulis
ESP-01 skaņas signāla modulis

Signāla modulim ir diezgan vienkārša iestatīšana. Tas izmanto USB savienotāju, nevis akumulatoru, jo, manuprāt, šis modulis nav piemērots akumulatoram. Tam ir jāpaliek ieslēgtam un vienmēr ir jāpievieno Ņujorkas/wifi, jo tas nekad nezina, kad tiks veikts tīmekļa pieprasījums. Tas prasa vairāk nepārtrauktas enerģijas, nekā akumulatori ir noderīgi.

Buzzer moduļus var ērti novietot vairākās vietās, paziņojot par kustības sensora aktivizēšanas notikumu neatkarīgi no jūsu atrašanās vietas!

Signāls ir savienots ar USB savienotāja 5V, un ir vēl viena 3.3v regulatora plate, kas nodrošina ESP-01 barošanu.

Signāla modulis darbosies, izmantojot izvadi TX, GPIO0 vai GPIO2. Manā konfigurācijā es izmantoju GPIO0. (Moduļa attēlā vads ir pievienots GPIO2, bet kopš tā laika esmu to pārvietojis.) Lai gan GPIO0 nedarbojās dziļā miega modulī (kā INPUT), tas darbojas labi ar šo izkārtojumu kā OUTPUT. Tas nav velkams pie zemes uz boot, kas radīs problēmas. Es izmantoju GPIO2, bet tad es nevarēju izmantot iebūvēto gaismas diodi nekādai atgriezeniskajai saitei, bet, izmantojot GPIO0 izejai, es varu izmantot iebūvēto LED.

Es mēģināju izmantot NPN tranzistoru, lai ieslēgtu skaņas signālu ķēdē, kad ESP-01 GPIO0 tapai uzlika HIGH signālu, bet rezultāti bija šausmīgi pretrunīgi. Šķiet, ka skaņas signāls visu laiku vēlas skanēt, pat ar ļoti mazu jaudu. Tā vietā es izmantoju N kanāla MOSFET (2n7000), un rezultāts bija drausmīgs. IO tapa virza vārtus pēc nepieciešamības.

Lai gan mums ir vajadzīgas tikai divas tapas no USB savienotāja Vcc (+) un Gnd (-), es izmantoju 5 kontaktu galveni, lai izveidotu savienojumu ar PCB plati, lai iegūtu papildu stabilitāti un lodētu pirms USB pievienošanas regulatoram. Mana 3.3v regulatora plāksne nāca ar tapām, kas bija iepriekš instalētas, un, manuprāt, otrādi. Tātad, lai ievietotu regulatoru galvenes tapās, jūs varat redzēt, ka shēmas plate ir paslēpta, bet vēl ļaunāk ir tas, ka regulatora vcc un gnd ir mainīti pretēji vcc un gnd uz USB savienotāja. Tātad vadi šķērso.

Ņemiet vērā arī to, ka + strāvas padeve aktīvajam skaņas signālam nāk no USB 5V. Arī 4 kontaktu ligzdas ligzda labi darbojas ar skaņas signāla izvietojumu.

ESP-01 skaņas signāla moduļa detaļu saraksts:

1 - 5 x 7 PCB plāksne

1 - USB mini savienotājs ar tapu galviņām (7 tapas)

2 - 1 x 3 sieviešu galvenes

1 - AMS1117-3,3 v sprieguma regulatora plate

1 - 2 x 4 sieviešu galvene

2 - 1 x 4 sieviešu ligzdas galvenes

1 - 2N7000 N -kanālu MOSFET

1 - 10 omu rezistors

1 - 5 V aktīvais zvana signāls

4. solis: ESP-01 skaņas signāla moduļa kods

Signāla modulis darbojas kā vienkāršs ESP-01 tīmekļa serveris. Tas atbild ar vienkāršu ziņojumu uz saknes pieprasījumu, un, saņemot buzz pieprasījumu, tas aktivizēs skaņas signālu. GPIO0 tiek izmantots zvana signāla GPIO tapai.

Ņemiet vērā, ka ESP-01 ir konfigurēts ar grūti kodētu IP adresi. Tas ir nepieciešams, lai dziļā miega modulis būtu savienots ar skaņas signāla adresi.

Tāpat kā iepriekšējais modulis, jums būs jāatjaunina divas koda rindas ar savām īpašajām vērtībām:

// Jūsu WiFi maršrutētāja SSID un paroleconst char* ssid = "xxxxxxx";

const char* parole = "xxxxxxxx";

Ja esat izveidojis vairākus skaņas signāla moduļus, katram no tiem jābūt ielādētam ar savu unikālo IP adresi.

Varat arī pievienot dažādas buzz metodes, kas rada dažādas zvana melodijas. Piemēram, ja jums ir PIR sensors pie priekšējām durvīm un viens pie aizmugurējām durvīm, katrs var iesniegt tīmekļa pieprasījumu katram jūsu signāla modulim, bet vienam sensoram var būt skice, kas izsauc buzz, bet otra skice var izsaukt buzz2 lai pēc skaņas varētu pateikt, kurš sensors tika iedarbināts. Un tā tālāk un tā tālāk! Funkcija buzz2 neeksistē, bet vienkārši kopējiet buzz funkciju un mainiet aizkaves vērtības.

Tīmekļa serverim jums vienkārši jāpievieno šāda koda rindiņa:

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

5. solis: pēdējās domas

Šī ir mana pirmā pamācība, tāpēc, iespējams, esmu palaidis garām dažas praktiskas lietas, kas man būtu jāiekļauj. AMS1117-3.3 regulatora panelī, kuru izmantoju, ir neliels LED, kas iedegas, kad tiek ieslēgts. Dziļā miega modulim es negribēju, lai tas tiktu ieslēgts un nevajadzīgi iztukšotu enerģiju. Tāpēc es nepārdevu to, ko es varētu vienā pusē uz tāfeles, un pēc tam ar komunālo nazi nogriezu izsekošanas līniju. Tas bija vieglāk, nekā es domāju, un neļauj LED iedegties. Es neesmu varējis noteikt, kāds ir enerģijas patēriņš, kad ESP-01 ir dziļā miega režīmā, bet pēc dažām nedēļām man varētu būt atbilde. Mans kolēģis darbināja sensoru (nevis dziļā miegā) un konstatēja, ka aptuveni nedēļas laikā izlādējās baterijas (5AA). Es domāju, ka šim iestatījumam vajadzētu dot mēnesi vai pat vairāk. Mēs redzēsim.

Dziļās miega modulis pa daļām maksāja apmēram USD 8 (baterijas nav iekļautas!), Bet skaņas signāla modulis - 5 USD.

Ieteicams: