Sisällysluettelo:
- Vaihe 1: ESP-01 Deep Sleep Module
- Vaihe 2: ESP-01 Deep Sleep Code
- Vaihe 3: ESP-01-summerimoduuli
- Vaihe 4: ESP-01-summerimoduulin koodi
- Vaihe 5: Viimeiset ajatukset
Video: ESP-01-liiketunnistin syvällä unella: 5 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Olen työskennellyt kotitekoisten liikeanturien valmistamiseksi, jotka lähettävät sähköpostiviestin, kun ne laukaistaan. On monia esimerkkejä ohjeista ja muita esimerkkejä tästä. Minun piti äskettäin tehdä tämä paristokäyttöisellä PIR-liiketunnistimella ja ESP-01: llä. ESP-01 on erittäin toimiva ja siinä on kaikki tarvittavat ominaisuudet, joten miksi et käytä vähimmäis- ja halvinta tarvittavaa? Sekoitteeseen lisättiin toinen erillinen ja etäinen ESP-01-moduuli, joka laukaisi summerin liiketunnistimen lauetessa.
Koodi ja mahdollinen piirin asettelu on kerätty lukuisista lähteistä verkossa, enkä mielestäni pysty tunnistamaan niitä erityisesti. Ajatus sähköpostien lähettämisestä Gmailin kautta tuli ohjeellisista ja muista lähteistä, ja lopullinen koodi on näiden lähteiden yhdistelmä. Syväunen saaminen töihin johti minut monille poluille, jotka usein osoittautuivat tuloksettomiksi. Hassua on, että kun polku osoittautuu hedelmälliseksi, lopetat uusien polkujen etsimisen. Joten haluan kiittää kaikkia niitä, jotka ovat osallistuneet menestykseeni ja ovat vielä tuntemattomia.
Minulla oli sama ongelma saada PIR-anturi toimimaan ESP-01-syvän unen käynnistämisessä. Monia polkuja, kunnes yksi toimi.
Tarpeetonta sanoa, että oli joitain mielenkiintoisia esteitä tai ehkä tärkeämpiä, parempi käsitys vaaditusta elektroniikasta. Jatkat oppimista, kunnes jokin toimii ja sitten sinun ei tarvitse oppia enää.
ESP-01 tekee syvää unta samoin kuin mikä tahansa muu ESP8266-moduuli, kunhan et tarvitse ajastettua unta. Jos haluat moduulin heräävän tietyn ajan kuluttua, ESP-01 ei ole käytettävä moduuli. Mutta sitä en halunnut. Kulunut aika on turhaa käytettäessä PIR: ää. Halusin, että ESP-01 herää vasta, kun PIR havaitsee liikkeen. Jos liikettä ei tunneta tuntikausiin tai päiviin, ESP-01 nukkuu vähällä akkuvirralla.
Näet monet piirit, jotka käyttävät GPIO16: ta yhdistettynä ESP8266 Reset -toimintoon, koska GPIO16 on herätyssignaali. Tämä on totta, mutta se on ajastetun unen herätyssignaali. Voimme jättää tämän PIN-koodin huomiotta, mikä on hyvä asia, koska se ei ole käytettävissä ESP-01: ssä.
Periaatteessa kaikki mitä tarvitsemme, on saada signaali PIR: stä ESP-01 Reset -tapin laukaisemiseksi. Ensimmäinen vaikeus, jonka oletat, on se, että nollaus käynnistyy LOW -signaalilla ja PIR lähettää HIGH -signaalin, kun se laukaistaan. Resetin on myös oltava HIGH tai kelluva käynnistyksen yhteydessä. Joten pitääkseni tämän lyhyenä, kokeillessani joitain eri piirejä päätin käyttää NPN-transistoria, jossa on vetovastus, jotta RESET-nasta pysyisi korkeana käynnistyksen aikana. Lähtö PIR on minimaalinen, mutta se tarjoaa tarpeeksi perusvirtaa kytkeä transistori päälle.
Kuten alla olevasta piirikaaviosta näet, ESP-01 herätettiin syvästä unesta joka kerta, kun PIR havaitsi liikkeen.
Mutta oli toinen ongelma. ESP-01: n nollaus tapahtui vasta sen jälkeen, kun PIR lakkasi tunnistamasta liikettä ja palasi matalalle signaalille, joka sammutti transistorin ja palautti nollausnavan HIGH: iin vetovoiman vuoksi. Tämä tarkoittaisi sitä, että sähköpostia ei lähetetä eikä summeri aktivoidu ennen kuin PIR lakkaa tunnistamasta liikettä. Halusin liipaisimen tapahtuvan heti, kun liike havaittiin.
Päätin tästä käyttäytymisestä, että ESP-01 laukaisee itse asiassa signaalin nousevalla reunalla. Reset-nastan pitäminen maassa ei itse asiassa laukaise ESP-01: tä syvästä unesta, mutta heti, kun jännite nousee HIGH-signaaliin, nollaus tapahtuu.
Hyvin yksinkertainen vastaukseni tähän käyttäytymiseen oli kondensaattorin lisääminen PIR -lähdön ja transistorikannan väliseen linjaan. Tämä aiheutti transistorin käynnistymisen vain kondensaattorin latauksen aikana. Latauksen jälkeen ei ollut enää virtaa ja transistori sammutettiin. 5k vastus mahdollistaa virran valumisen maahan. Testasin tämän LEDillä ESP-01: n sijasta ja näin LED-salaman palavan sekunnin murto-osan ajan ennen sammutusta. Tämä pieni pulssi riitti vetämään Reset -nastan maahan hetkellisesti ja riittävän kauan laukaistakseen Reset pois syvästä unesta.
Vaihe 1: ESP-01 Deep Sleep Module
Syvä lepomoduuli käyttää kahta käyttöjännitettä. Satunnainen 5 V+ akku PIR: lle ja myös 3,3 voltin säätökortti ESP-01: lle. Sisällytän myös diodin piiriin estääkseni vaurioituneet osat käänteisjännitteiltä. Tämä kuluttaa hieman lisävirtaa ja laskee akun jännitteen 0,7 voltilla. Diodi voidaan jättää pois piiristä, jos olet varma, ettet koskaan käännä akkujohtoja. Kytkin on myös lisätty mukavuuden vuoksi.
Tämä moduuli on pieni päivitys alkuperäiseen ei-syvän unen asetteluihini. Ei-syvässä lepotilassa PIR on kytketty suoraan ESP-01: n RX-nastaan. Käytän ESP-01: n RX-nastaa PIR: n tulonappina muutamasta syystä. GPIO0 ei toiminut, koska käynnistyksen yhteydessä PIR-ulostulon PIN-koodi olisi LOW, jolloin ESP-01 siirtyy salamatilaan. En käyttänyt GPIO2: ta, koska silloin en voinut käyttää sisäänrakennettua LED-valoa visuaaliseen palautteeseen. RX- ja TX -tapit kuvataan usein ylimääräisiksi IO -nastoiksi, mutta kokemukseni mukaan RX on ylimääräinen INPUT -nasta ja TX on ylimääräinen OUTPUT -nasta.
Syvä lepotilassa RX -liitäntä ei ole ehdottoman välttämätön. Käytän sitä vain seuratakseni kuinka kauan PIR aktivoituu kääntämällä LED päälle, kun tulo on HIGH. Kuten aiemmin mainittiin, jos poistat silmukkatoiminnon käytöstä ja käytät vain asennusohjelmaa, RX -yhteys ei ole tarpeellinen.
Tässä on ESP-01-syvän lepomoduulin osaluettelo:
1 - 5 x 7 cm PCB -prototyyppilevy
1-2 -nastainen liitin
2 - 1 x 3 naarasotsikkoa
1 - AMS1117 - 3.3 jännitesäätimen piirilevy
1 - 1 x 3 suorakulmainen urospistoke
1 - 1 x 3 naarasliitäntätulppaa
1 - 1 x 4 naarasliitäntätulppaa
1-2 x 4 naarasliitintä
1 - 1uf kondensaattori
1 - HC -SR501 PIR -liiketunnistin
1 - 2N2222 Transistori
1-10k vastus
1 - 4.7k vastus
1-1k vastus
1 - 1N4148 diodi
1 - kytkin SS12D00G4 SPDT
1 - ESP -01
1 - 4 AA -paristo
Huomaa, että videossa piirilevy käyttää ESP-01-leipälevyn sovitinta 2 x 4-otsikon sijaan. Vaikka tämä sovitin on helpompi juottaa, 2 x 4 -otsikko toimii hyvin ja sopii paremmin.
Vaihe 2: ESP-01 Deep Sleep Code
Deep Sleep -koodi suorittaa kaksi toimintoa. Lähetä sähköpostiviesti (oletusarvoisesti gmailin kautta) ja lähetä http-verkkopyyntö asiaankuuluvaan ESP-01-summerimoduuliin summerin laukaisemiseksi.
Kun tämä moduuli käynnistyy, se tarjoaa kaksi ilmoitusvaihtoehtoa ja voi olla erityisen hyödyllinen, kun et kiinnitä huomiota sähköpostiviesteihin.
Sinun on päivitettävä kuusi koodiriviä omilla arvoillasi, jotta luonnos toimisi:
const char* ssid = "xxxxx"; // WiFi -SSID -tunnuksesi char* password = "xxxxx"; // WiFi -salasanasi merkkijono Senders_Login = "xxxxx"; // sähköpostipalveluntarjoajasi kirjautumistunnus String Senders_Password = "xxxxx"; // sähköpostipalveluntarjoajasi salasana
Vastaanottaja = "xxxxxx"; Lähettäjä = "xxxxxx"; // Gmail yleensä haluaa tämän olevan sama kuin Senders_Login ja voi korvata sen
Huomasin, että syvän unen moduuli toimii arvaamattomasti, kun PIR -anturi oli asetettu alle 10 sekuntia laukaisutapahtuman pituudeksi. Minulla on asetettu 20 sekuntia. Tämä on osoittautunut erittäin luotettavaksi, mutta se tarkoittaa myös sitä, että tapahtumia voi tapahtua tällä taajuudella.
Olen myös lisännyt koodin silmukkatoimintoon, jotta ESP-01-merkkivalo pysyy päällä niin kauan kuin PIR havaitsee vielä liikettä. Kaikki silmukkatoiminnon koodi voidaan poistaa ja kutsu syvään uneen siirtää asetustoiminnon loppuun.
Käytän vilkkua ESP-01-moduulin visuaalisen toiminnan ilmaisimena.
Vaikka olen käyttänyt ja testannut yhteyttä gmailiin, toimivat myös muut sähköpostipalveluntarjoajat. Olen kokeillut paria. Itse olen kokenut gmailin hankalammaksi. Gmail edellyttää, että tilisi on määritetty käyttämään vähemmän turvallisia sovelluksia. Tämä tiliasetus on oletusarvoisesti POIS PÄÄLTÄ, joten varmista, että löydät sen ja muutat sen vähemmän turvalliseksi. Gmail EI toimi muuten.
Jos päätät käyttää useampaa kuin yhtä summerimoduulia, lisää vain http -asiakkaan lisäkutsuja (toista kolme koodiriviä, mutta vaihda käytetty IP -osoite ja määritä httpCode -muuttuja vain kerran int!
Huomaa, että summerin ip -osoite on koodattu tässä moduulissa. Sinun ei tarvitse käyttää valitsemaani IP -osoitetta, mutta sinun on vastattava tämän moduulin verkkopuhelun IP -osoite seuraavan moduulin verkkopalvelimen asennuksen IP -osoitteeseen.
Vaihe 3: ESP-01-summerimoduuli
Summerimoduulissa on melko yksinkertainen asennus. Se käyttää USB -liitintä akun sijaan, koska en usko, että tämä moduuli sopii akkuun. Sen on oltava päällä ja nework/wifi yhdistetty koko ajan, koska se ei koskaan tiedä, milloin verkkopyyntö tehdään. Tämä vaatii enemmän jatkuvaa virtaa kuin akut ovat hyödyllisiä.
Summerimoduulit voidaan sijoittaa kätevästi useisiin paikkoihin, mikä ilmoittaa liiketunnistimen laukaisutapahtumasta missä tahansa!
Äänimerkki on kytketty USB-liittimen 5 V: iin ja toinen 3.3 V: n säätökortti antaa virran ESP-01: lle.
Summerimoduuli toimii TX: n, GPIO0: n tai GPIO2: n avulla. Kokoonpanossani käytän GPIO0: ta. (Moduulin kuvassa johto on kytketty GPIO2: een, mutta olen sittemmin siirtänyt sitä.) Vaikka GPIO0 ei toiminut syvän lepomoduulin kohdalla (INPUT), se toimii hyvin tällä asettelulla OUTPUT. Sitä ei vedetä maahan bootissa, mikä aiheuttaa ongelmia. Käytin GPIO2: ta, mutta en voinut käyttää sisäistä LEDiä palautteen saamiseen, mutta käyttämällä GPIO0: ta OUTPUT: lle voin käyttää sisäistä LEDiä.
Yritin käyttää NPN-transistoria virtapiirin summerin syöttämiseen, kun ESP-01 laittoi HIGH-signaalin GPIO0-nastaan, mutta tulokset olivat kauhean epäjohdonmukaisia. Summeri näytti haluavan soida koko ajan, jopa hyvin pienellä teholla. Joten sen sijaan käytin N -kanavan MOSFETia (2n7000) ja tulos oli loistava. IO -nasta ajaa porttia tarpeen mukaan.
Vaikka tarvitsemme vain kaksi nastaa USB-liittimestä Vcc (+) ja Gnd (-), käytän 5-nastaista otsikkoa PCB-levyn liittämiseen, mikä lisää vakautta ja juottaa ennen USB: n liittämistä säätimeen. 3.3v: n säätökorttini mukana tuli nastat esiasennettuna ja mielessäni ylösalaisin. Joten säätimen asettamiseksi otsikkotappeihin näet, että piirilevy on piilotettu, mutta mikä pahempaa, säätimen vcc ja gnd ovat päinvastaisia USB -liittimen vcc ja gnd välillä. Joten johdot menevät ristiin.
Huomaa myös, että aktiivisen summerin + virta tulee USB: n 5 voltista. Lisäksi 4 -napainen naarasliitin toimii hienosti summerin tapin sijoittelun kanssa.
ESP-01 summerimoduulien osaluettelo:
1 - 5 x 7 piirilevyä
1 - USB -miniliitin, jossa nastatunnisteet (7 nastaa)
2 - 1 x 3 naarasotsikkoa
1 - AMS1117-3.3 V jännitesäätimen kortti
1-2 x 4 naarasliitintä
2 - 1 x 4 naarasliitintä
1 - 2N7000 N -kanavainen MOSFET
1-10 ohmin vastus
1-5 V aktiivinen summeri
Vaihe 4: ESP-01-summerimoduulin koodi
Summerimoduuli toimii yksinkertaisena ESP-01-verkkopalvelimena. Se vastaa yksinkertaisella viestillä juuripyyntöön ja kun se saa buzz -pyynnön, se laukaisee summerin. GPIO0: ta käytetään summerisignaalin GPIO -nastaan.
Huomaa, että ESP-01 on määritetty kovakoodatulla IP-osoitteella. Tämä on tarpeen, jotta syväunimoduuli kytketään summerin osoitteeseen.
Kuten edellinen moduuli, sinun on päivitettävä kaksi koodiriviä omilla arvoillasi:
// WiFi -reitittimen SSID ja salasanaconst char* ssid = "xxxxxxx";
const char* password = "xxxxxxxx";
Jos sinulla on useita summerimoduuleja, jokainen niistä on ladattava omalla yksilöllisellä IP -osoitteellaan.
Voit myös lisätä erilaisia buzz -menetelmiä, jotka tuottavat erilaisia summerimelodioita. Jos sinulla on esimerkiksi PIR -anturi etuovessa ja yksi takaovessa, he voivat kukin tehdä verkkopyynnön kullekin summerimoduulillesi, mutta toisella anturilla voi olla luonnos, joka kutsuu buzzia ja toinen luonnos voi kutsua buzz2 jotta voit kertoa äänestä, mikä anturi laukaisi. Ja niin edelleen ja niin edelleen! Buzz2 -toimintoa ei ole olemassa, mutta kopioi buzz -toiminto ja muuta viivearvoja.
Verkkopalvelimelle sinun tarvitsee vain lisätä seuraavanlainen koodirivi:
server.on ("/buzz2", buzz2);
Vaihe 5: Viimeiset ajatukset
Tämä on ensimmäinen ohjeeni, joten olen saattanut jättää väliin joitakin käytännön asioita, jotka minun olisi pitänyt sisällyttää. Käyttämässäni AMS1117-3.3-säätökortissa on pieni ledi, joka syttyy, kun siihen kytketään virta. Syväunimoduulissa en halunnut tämän johtavan päälle ja tyhjentävän virtaa tarpeettomasti. Joten olen juottanut sen, mitä pystyin, taululla olevan ledin toiselle puolelle ja leikkasin sitten jäljen viivan työkalulla. Tämä oli helpompaa kuin luulin ja estää LED -valon syttymisen. En ole pystynyt määrittämään voimansiirtoa, kun ESP-01 on syvässä unessa, mutta saatan saada vastauksen muutaman viikon kuluttua. Kollegani käytti anturia (ei syvässä unessa) ja löysi paristot tyhjiksi (5AA) noin viikossa. Mielestäni tämän asennuksen pitäisi antaa kuukausi tai jopa enemmän. Tulemme näkemään.
Syvä lepomoduuli maksoi noin 8 dollaria CDN osissa (paristot eivät sisälly hintaan!) Ja summerimoduuli 5 dollaria.
Suositeltava:
Useiden ESP-keskustelujen tekeminen ESP-NOW: n avulla ESP32: n ja ESP8266: n avulla: 8 vaihetta
Useiden ESP-keskustelujen tekeminen ESP-NYT: n avulla ESP32: n ja ESP8266: n avulla: Käynnissä olevassa projektissani tarvitsen useita ESP: itä puhuakseni keskenään ilman reititintä. Tätä varten käytän ESP-NOW-ohjelmaa langattoman viestinnän tekemiseen keskenään ilman ESP: n reititintä
ESP 32 -kameran suoratoistovideo WiFi: n kautta - ESP 32 CAM Boardin käytön aloittaminen: 8 vaihetta
ESP 32 -kameran suoratoistovideo WiFi-yhteydellä | ESP 32 CAM Boardin käytön aloittaminen: ESP32-CAM on hyvin pieni kameramoduuli, jossa on ESP32-S-siru ja joka maksaa noin 10 dollaria. OV2640 -kameran ja useiden oheislaitteiden liittämiseen tarkoitettujen GPIO -laitteiden lisäksi siinä on myös microSD -korttipaikka, joka voi olla hyödyllinen t
Esp 8266 Esp-01: n käytön aloittaminen Arduino IDE: n kanssa Esp -levyjen asentaminen Arduino Ide -ohjelmaan ja Esp -ohjelmointi: 4 vaihetta
Esp 8266 Esp-01: n käytön aloittaminen Arduino IDE: n kanssa Esp-levyjen asentaminen Arduino Ide -ohjelmaan ja Esp-ohjelmointi: Tässä ohjeessa opimme asentamaan esp8266-levyt Arduino IDE: hen ja kuinka ohjelmoida esp-01 ja ladata koodi siihen. tämä ja useimmat ihmiset kohtaavat ongelmia
ESP – ESP -viestintä: 4 vaihetta
ESP – ESP -viestintä: Tämä opetusohjelma auttaa sinua korvaamaan muut lähetin -vastaanotinmoduulit mihin tahansa muuhun projektiin, joka sisältää langattoman viestinnän. Käytämme ESP8266 -pohjaista korttia, toinen WiFi -STA -tilassa ja toinen WiFi -AP -tilassa, NodeMCU V3 on valintani tähän projektiin
ESP-12E- ja ESP-12F-ohjelmointi- ja kehityslautakunta: 3 vaihetta (kuvilla)
ESP-12E- ja ESP-12F-ohjelmointi- ja kehityslautakunta: Tämän kortin tehtävät olivat yksinkertaiset: Pystyt ohjelmoimaan ESP-12E- ja ESP-12F-moduulit yhtä helposti kuin NodeMCU-levyt (eli ei tarvitse painaa painikkeita). Käytä leipälautaystävällisiä tappeja, joilla on käyttökelpoinen IO. Käytä erillistä USB -sarjaliitäntää