Turinys:

ESP-01 judesio jutiklis su giliu miegu: 5 žingsniai
ESP-01 judesio jutiklis su giliu miegu: 5 žingsniai

Video: ESP-01 judesio jutiklis su giliu miegu: 5 žingsniai

Video: ESP-01 judesio jutiklis su giliu miegu: 5 žingsniai
Video: Программирование модуля датчика температуры и влажности ESP8266 ESP01 DHT11 | удаленныйXY | ФЛПрог 2024, Lapkritis
Anonim
Image
Image

Aš dirbau kurdamas naminius judesio jutiklius, kurie suaktyvinę siunčia el. Laišką. Yra daug pavyzdinių nurodymų ir kitų pavyzdžių, kaip tai padaryti. Neseniai man reikėjo tai padaryti naudojant baterijomis valdomą PIR judesio jutiklį ir ESP-01. ESP-01 yra labai funkcionalus ir turi visas reikalingas funkcijas, tad kodėl gi nepasinaudojus mažiausiomis ir pigiausiomis būtinomis priemonėmis? Prie mišinio buvo pridėtas dar vienas atskiras ir nuotolinis ESP-01 modulis, kuris suveikė, kai suveikė judesio jutiklis.

Kodas ir galimas grandinės išdėstymas buvo surinkti iš daugelio žiniatinklio šaltinių ir nemanau, kad galiu juos konkrečiai identifikuoti. El. Laiškų siuntimo per „Gmail“idėja kilo iš nurodomų ir kitų šaltinių, o galutinis kodas yra šių šaltinių junginys. Giliai išsimiegojus pradėjau dirbti, vedžiau daugybę kelių, kurie dažnai pasirodė bevaisiai. Juokinga tai, kad kai kelias pasirodo vaisingas, nustoji ieškoti daugiau kelių. Taigi sakau ačiū visiems, kurie prisidėjo prie mano sėkmės ir dar nežinomi.

Aš turėjau tą pačią problemą, kad PIR jutiklis veiktų, kad suaktyvintų ESP-01 gilų miegą. Daug kelių, kol buvo vienas, kuris veikė.

Nereikia nė sakyti, kad buvo keletas įdomių kliūčių ar galbūt svarbesnių dalykų, geriau supratau reikalingą elektroniką. Jūs mokotės tol, kol kažkas veikia, ir tada jums nebereikia mokytis.

ESP-01 atlieka gilų miegą, kaip ir bet kuris kitas ESP8266 modulis, kol jums nereikia miego pagal laiką. Jei norite, kad modulis pažadintų praėjus nustatytam laikui, ESP-01 nėra modulis, kurį reikia naudoti. Bet aš ne to norėjau. Praėjęs laikas yra beprasmis naudojant PIR. Norėjau, kad ESP-01 pažadintų tik tada, kai jį suaktyvintų PIR juntamas judesys. Jei valandų ar dienų judesių nejaučiate, ESP-01 miega, naudodamas minimalią baterijos energiją.

Pamatysite daug grandinių, kuriose naudojamas GPIO16, prijungtas prie ESP8266 Reset, nes GPIO16 yra pažadinimo signalas. Tai tiesa, tačiau tai yra budėjimo signalas iš miego laiko. Mes galime ignoruoti šį PIN kodą, o tai yra gerai, nes jo nėra ESP-01.

Iš esmės viskas, ko mums reikia, yra gauti signalą iš PIR, kad suaktyvintų ESP-01 atstatymo kaištį. Pirmasis sunkumas, kurį įtariate, yra tai, kad atstatymas suaktyvinamas esant žemam signalui, o PIR siunčia AUKŠTĄ signalą. Atstatymas taip pat turi būti HIGH arba plaukiojantis įkrovos metu. Taigi, kad tai būtų trumpa, išbandęs keletą skirtingų grandinių nusprendžiau naudoti NPN tranzistorių su ištraukiamuoju rezistoriumi, kad įkrovos metu išlaikytumėte AUKŠTĄ kaištį. Išėjimas iš PIR yra minimalus, tačiau jis suteikia pakankamai bazinės srovės, įjungiant tranzistorių.

Kaip matysite žemiau esančioje schemoje, ESP-01 buvo pažadintas iš gilaus miego kiekvieną kartą, kai PIR juto judesį.

Tačiau buvo ir kita problema. ESP-01 atstatymas įvyko tik po to, kai PIR nustojo jausti judesį ir grįžo prie žemo signalo, išjungiančio tranzistorių ir atkūrimo kaiščio grąžinimą į HIGH dėl pritraukimo rezistoriaus. Tai reikštų, kad el. Laiškas nebus siunčiamas ir garsinis signalas nebus suaktyvintas tol, kol po to, kai PIR nustojo jausti judesį. Aš norėjau, kad trigeris įvyktų iškart, kai tik pajusite judesį.

Iš šio elgesio nusprendžiau, kad ESP-01 iš tikrųjų suveikia kylančiame signalo krašte. Laikant atstatymo kaištį prie žemės, ESP-01 neišsijungia iš gilaus miego režimo, bet tuo metu, kai įtampa pakyla iki HIGH signalo, atstatymas įvyksta.

Mano labai paprastas atsakymas į šį elgesį buvo pridėti kondensatorių prie linijos tarp PIR išvesties ir tranzistoriaus bazės. Dėl to tranzistorius įsijungė tik tada, kai įkraunamas kondensatorius. Įkrovus, nebuvo srovės, o tranzistorius išjungtas. 5k rezistorius leidžia srovei nutekėti į žemę. Aš išbandžiau tai su šviesos diodu vietoje ESP-01 ir galėjau matyti, kaip LED blykstė įjungta sekundės dalį prieš išjungiant. Šio mažo pulso pakako, kad akimirksniu ir pakankamai ilgai ištrauktų atstatymo kaištį į žemę, kad pajudintų atstatymą iš gilaus miego.

1 žingsnis: ESP-01 gilaus miego modulis

ESP-01 gilaus miego modulis
ESP-01 gilaus miego modulis
ESP-01 gilaus miego modulis
ESP-01 gilaus miego modulis

Giliojo miego modulis naudoja dvi darbines įtampas. Atsitiktinis 5 V+ akumuliatoriaus paketas PIR, taip pat 3,3 voltų reguliatoriaus plokštė ESP-01. Aš taip pat įtraukiu diodą į grandinę, kad apsaugotų pažeistas dalis nuo atvirkštinės įtampos. Tai sunaudoja šiek tiek papildomos energijos ir sumažina akumuliatoriaus įtampą 0,7 volto. Diodas gali būti pašalintas iš grandinės, jei esate tikri, kad niekada nepakeisite akumuliatoriaus laidų. Jungiklis taip pat pridėtas iš patogumo.

Šis modulis yra nedidelis mano pradinio ne gilaus miego išdėstymo atnaujinimas. Esant ne gilaus miego konfigūracijai, PIR yra tiesiogiai prijungtas prie ESP-01 RX kaiščio. Aš naudoju ESP-01 RX kaištį kaip PIR įvesties kaištį dėl kelių priežasčių. GPIO0 neveikė, nes paleidžiant PIR išvesties PIN kodas būtų LOW, todėl ESP-01 įjungs blykstės režimą. Aš nenaudojau GPIO2, nes tada negalėjau naudoti įmontuoto šviesos diodo vizualiam grįžtamam ryšiui. RX ir TX kaiščiai dažnai apibūdinami kaip papildomi IO kaiščiai, tačiau mano patirtis rodo, kad RX yra papildomas įvesties kaištis, o TX - papildomas išvesties kaištis.

Esant gilaus miego konfigūracijai, RX ryšys nėra būtinas. Aš naudoju jį tik norėdamas stebėti, kiek laiko suaktyvinamas PIR, įjungiant šviesos diodą, kai įvestis yra HIGH. Kaip minėta anksčiau, jei pašalinsite ciklo funkciją ir naudosite tik sąrankos procedūrą, tada RX ryšys nereikalingas.

Čia yra ESP-01 gilaus miego modulio dalių sąrašas:

1 - 5 x 7 cm PCB prototipo plokštė

1-2 kontaktų jungtis

2 - 1 x 3 moterų antraštės

1 - AMS1117 - 3.3 įtampos reguliatoriaus plokštė

1 - 1 x 3 Stačias kampas

1 - 1 x 3 kištukinio lizdo kaištis

1 - 1 x 4 kištukinio lizdo kaištis

1 - 2 x 4 moterų antraštė

1 - 1uf kondensatorius

1 - PIR judesio jutiklis HC -SR501

1 - 2N2222 tranzistorius

1-10k rezistorius

1 - 4.7k rezistorius

1-1k rezistorius

1 - 1N4148 diodas

1 - jungiklis SS12D00G4 SPDT

1 - ESP -01

1 - 4AA baterijos

Atkreipkite dėmesį, kad vaizdo įraše plokštės vietoj 2 x 4 antraštės naudoja duonos plokštės adapterį ESP-01. Nors šį adapterį lengviau lituoti, 2 x 4 antraštė veikia gerai ir iš tikrųjų geriau tinka.

2 žingsnis: ESP-01 gilaus miego kodas

Giliojo miego kodas atlieka dvi funkcijas. Siųskite el. Pašto pranešimą (kaip numatytąjį „gmail“) ir išsiųskite http žiniatinklio užklausą į susietą ESP-01 garsinio signalo modulį, kad suaktyvintų garso signalą.

Suaktyvinus šį modulį pateikiamos dvi pranešimo parinktys ir jis gali būti ypač naudingas, kai nekreipiate dėmesio į el.

Kad eskizas veiktų, turėsite atnaujinti šešias kodo eilutes su konkrečiomis reikšmėmis:

const char* ssid = "xxxxx"; // Jūsų „WiFi“SSIDstūris char* password = "xxxxx"; // Jūsų „WiFi“slaptažodžio eilutė Senders_Login = "xxxxx"; // jūsų el. pašto teikėjo prisijungimo eilutė Senders_Password = "xxxxx"; // jūsų el. pašto teikėjo slaptažodis

Kam = "xxxxxx"; Nuo = "xxxxxx"; // „Gmail“paprastai nori, kad tai būtų tas pats, kas „Senders_Login“, ir gali pakeisti

Radau, kad gilaus miego modulis veikia nenuspėjamai, kai PIR jutiklis buvo nustatytas žemiau 10 sek. Aš turiu nustatęs 20 sek. Tai pasirodė labai patikima, tačiau tai taip pat reiškia, kad tokiu dažnumu gali įvykti įvykiai.

Aš taip pat pridėjau kodą prie ciklo funkcijos, kad ESP-01 būtų įjungtas tol, kol PIR vis dar jaučia judesį. Visas ciklo funkcijos kodas gali būti pašalintas, o skambutis į gilų miegą perkeliamas į sąrankos funkcijos pabaigą.

Aš naudoju mirksėjimo funkciją vizualiam veiklos rodikliui su ESP-01 moduliu.

Nors naudojau ir išbandžiau ryšį su „Gmail“, veikia ir kiti el. Esu išbandžiusi porą. Tiesą sakant, man pasirodė, kad „Gmail“yra labiau varginantis. „Gmail“reikalauja, kad jūsų paskyra būtų sukonfigūruota pasiekti mažiau saugias programas. Šis paskyros nustatymas pagal numatytuosius nustatymus yra IŠJUNGTAS, todėl būtinai jį suraskite ir pakeiskite į mažiau saugų. „Gmail“kitaip neveiks.

Jei nuspręsite turėti daugiau nei vieną garso signalų modulį, tiesiog pridėkite papildomų „http“kliento skambučių (pakartokite tris kodo eilutes, bet pakeiskite naudojamą IP adresą ir taip pat apibrėžkite „httpCode“kintamąjį kaip int tik vieną kartą!

Atminkite, kad garso signalo IP adresas šiame modulyje yra užkoduotas. Jums nereikia naudoti mano pasirinkto IP adreso, tačiau jūs turite suderinti šio modulio interneto skambučio IP adresą su kito modulio žiniatinklio serverio sąrankos IP adresu.

3 žingsnis: ESP-01 garsinio signalo modulis

ESP-01 garsinio signalo modulis
ESP-01 garsinio signalo modulis
ESP-01 garsinio signalo modulis
ESP-01 garsinio signalo modulis
ESP-01 garsinio signalo modulis
ESP-01 garsinio signalo modulis

Signalizacijos modulio sąranka yra gana paprasta. Jis naudoja USB jungtį, o ne akumuliatorių, nes nemanau, kad šis modulis tinka akumuliatoriui. Jis visada turi būti įjungtas ir prijungtas prie „Nework“/„Wi -Fi“, nes niekada nežino, kada bus pateikta žiniatinklio užklausa. Tam reikia daugiau nuolatinės energijos, nei naudinga baterijoms.

„Buzzer“modulius galima patogiai išdėstyti keliose vietose, pranešant apie judesio jutiklio suveikimo įvykį, nesvarbu, kur esate!

Garsinis signalas yra prijungtas prie 5 V USB jungties ir yra dar viena 3,3 V reguliavimo plokštė, kuri tiekia energiją ESP-01.

Signalizacijos modulis išvestyje veiks naudojant TX, GPIO0 arba GPIO2. Savo konfigūracijoje naudoju GPIO0. (Modulio paveikslėlyje laidas yra prijungtas prie GPIO2, bet nuo to laiko jį perkėliau.) Nors GPIO0 neveikė gilaus miego modulio (kaip INPUT), jis gerai veikia su šiuo išdėstymu kaip OUTPUT. Jis nėra traukiamas į žemę ant bagažinės, o tai sukels problemų. Aš naudoju GPIO2, bet tada negalėjau naudoti įmontuoto šviesos diodo bet kokiam atsiliepimui, bet naudojant GPIO0 išėjimui galiu naudoti įmontuotą šviesos diodą.

Bandžiau naudoti NPN tranzistorių, kad įjungčiau grandinės garsinį signalą, kai ESP-01 perdavė HIGH signalą ant GPIO0 kaiščio, tačiau rezultatai buvo siaubingai nenuoseklūs. Atrodė, kad garsinis signalas visada nori skambėti, net ir turėdamas labai mažai galios. Taigi aš naudoju N kanalo MOSFET (2n7000) ir rezultatas buvo puikus. IO kaištis vairuoja vartus, kaip reikalaujama.

Nors mums reikia tik dviejų kaiščių iš USB jungties Vcc (+) ir Gnd (-), aš naudoju 5 kontaktų antraštę, kad prisijungčiau prie PCB plokštės, kad būtų užtikrintas didesnis stabilumas ir litavimas prieš prijungiant USB prie reguliatoriaus. Mano 3.3v reguliatoriaus plokštė buvo su iš anksto sumontuotais kaiščiais ir, mano galva, aukštyn kojom. Taigi, norėdami įdėti reguliatorių į antraštės kaiščius, galite pamatyti, kad plokštė yra paslėpta, tačiau dar blogiau, kad reguliatoriaus vcc ir gnd yra atvirkščiai nuo vcc ir gnd USB jungtyje. Taigi laidai kerta.

Taip pat atkreipkite dėmesį, kad + maitinimas aktyviam garsiniam signalui gaunamas iš 5 V USB. Be to, 4 kontaktų moteriško lizdo antraštė puikiai veikia su garsiakalbio kaiščių išdėstymu.

ESP-01 garsinio signalo modulio dalių sąrašas:

1 - 5 x 7 PCB plokštė

1 - USB mini jungtis su kaiščių antraštėmis (7 kaiščiai)

2 - 1 x 3 moterų antraštės

1 - AMS1117-3,3 v įtampos reguliatoriaus plokštė

1 - 2 x 4 moterų antraštė

2 - 1 x 4 moterų lizdų antgaliai

1 - 2N7000 N kanalų MOSFET

1-10 omų rezistorius

1 - 5 V aktyvus garsinis signalas

4 veiksmas: ESP-01 garsinio signalo modulio kodas

Signalizacijos modulis veikia kaip paprastas ESP-01 žiniatinklio serveris. Jis atsako paprastu pranešimu į pagrindinę užklausą ir, gavęs „Buzz“užklausą, suaktyvina signalą. GPIO0 naudojamas GPIO kaiščiui, kuris yra garso signalo signalas.

Atminkite, kad ESP-01 yra sukonfigūruotas su kietu koduotu IP adresu. Tai būtina, kad gilaus miego modulis būtų prijungtas prie garsinio signalo adreso.

Kaip ir ankstesnį modulį, turėsite atnaujinti dvi kodo eilutes su konkrečiomis reikšmėmis:

// „WiFi“maršrutizatoriaus SSID ir slaptažodisconst char* ssid = "xxxxxxx";

const char* slaptažodis = "xxxxxxxx";

Jei sukūrėte kelis garsinio signalo modulius, kiekvienas iš jų turėtų būti įkeltas unikaliu IP adresu.

Taip pat galite pridėti įvairių „buzz“metodų, kurie sukuria skirtingas skambėjimo melodijas. Pvz., Jei turite PIR jutiklį prie priekinių ir vieną prie galinių durų, kiekvienas gali pateikti žiniatinklio užklausą kiekvienam jūsų garsinio signalo moduliui, tačiau vienas jutiklis gali turėti eskizą, kuris skambina „buzz“, o kitas eskizas gali skambėti „buzz2“kad iš garso galėtumėte pasakyti, kuris jutiklis buvo suaktyvintas. Ir taip toliau, ir taip toliau! Funkcijos „buzz2“nėra, bet tiesiog nukopijuokite „buzz“funkciją ir pakeiskite atidėjimo vertes.

Jei naudojate žiniatinklio serverį, turėsite pridėti tokią kodo eilutę:

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

5 žingsnis: paskutinės mintys

Tai mano pirmasis pamokomas dalykas, todėl galbūt praleidau keletą praktinių dalykų, kuriuos turėjau įtraukti. Mano naudojamoje AMS1117-3.3 reguliatoriaus plokštėje yra nedidelis šviesos diodas, kuris užsidega įjungus. Giliojo miego moduliui nenorėjau, kad tai įjungtų ir be reikalo išsikrautų energija. Taigi aš nepardaviau, ką galėjau vienoje lentos pusėje, o tada naudoju peilį pjaustyti pėdsakų liniją. Tai buvo lengviau, nei maniau, ir neleidžia šviesos diodui užsidegti. Aš negalėjau nustatyti, kas yra energijos suvartojimas, kai ESP-01 miega, bet galiu atsakyti po kelių savaičių. Mano kolega paleido jutiklį (ne giliai miegodamas) ir nustatė, kad baterijos išsikrovė (5AA) maždaug per savaitę. Manau, kad ši sąranka turėtų duoti mėnesį ar net daugiau. Matysime.

Giliojo miego modulis dalimis kainavo apie 8 USD (baterijos neįskaičiuotos!), O garsinis signalas - 5 USD.

Rekomenduojamas: