Obsah:

Senzor pohybu ESP-01 s hlbokým spánkom: 5 krokov
Senzor pohybu ESP-01 s hlbokým spánkom: 5 krokov

Video: Senzor pohybu ESP-01 s hlbokým spánkom: 5 krokov

Video: Senzor pohybu ESP-01 s hlbokým spánkom: 5 krokov
Video: Sonoff Ihost - Центр управления умным домом без доступа к интернет с Zigbee и Matter 2024, November
Anonim
Image
Image

Pracoval som na výrobe domácich pohybových senzorov, ktoré pri spustení odošlú e -mailovú správu. Existuje mnoho príkladov pokynov a ďalších príkladov, ako to urobiť. Nedávno som to potreboval urobiť s batériovým snímačom pohybu PIR a ESP-01. ESP-01 je veľmi funkčný a má všetky požadované funkcie, prečo nevyužiť nevyhnutné a minimálne náklady? Do mixu bol pridaný ďalší samostatný a vzdialený modul ESP-01, ktorý pri spustení pohybového senzora spustil bzučiak.

Kód a prípadné rozloženie obvodov boli zhromaždené z mnohých zdrojov na internete a nemyslím si, že ich môžem konkrétne identifikovať. Myšlienka odosielania e -mailov prostredníctvom služby Gmail pochádza z inštrukcií a z iných zdrojov a konečný kód je kombináciou týchto zdrojov. Hlboký spánok do práce ma priviedol k mnohým cestám, ktoré sa často ukázali ako neúspešné. Zábavné je, že akonáhle je cesta plodná, prestanete hľadať ďalšie cesty. Preto ďakujem všetkým, ktorí prispeli k môjmu úspechu a zatiaľ nie sú známi.

Mal som rovnaký problém, keď snímač PIR fungoval pri spustení hlbokého spánku ESP-01. Mnoho ciest, kým nebola jedna, ktorá fungovala.

Netreba dodávať, že existovalo niekoľko zaujímavých prekážok alebo možno relevantnejších, lepšie pochopenie elektroniky, ktorú som potreboval. Učíte sa, kým niečo nefunguje, a potom sa už nemusíte učiť.

ESP-01 má hlboký spánok, ako aj všetky ostatné moduly ESP8266, pokiaľ nevyžadujete časovaný spánok. Ak chcete, aby sa modul zobudil po uplynutí nastaveného času, ESP-01 nie je modul, ktorý by ste mali použiť. Ale nie o tom som chcel. Uplynulý čas je pri použití PIR zbytočný. Chcel som, aby sa ESP-01 prebudil iba vtedy, keď je spustený pohybom vnímaným PIR. Ak hodiny alebo dni nie je vnímaný žiadny pohyb, ESP-01 zostane spať s minimálnym napájaním z batérie.

Uvidíte veľa obvodov, ktoré používajú GPIO16, pripojené k ESP8266 Reset, pretože GPIO16 je signál budenia. To je pravda, ale je to signál prebudenia z načasovaného spánku. Tento PIN môžeme ignorovať, čo je dobré, pretože nie je k dispozícii na ESP-01.

V zásade všetko, čo potrebujeme, je získať signál z PIR na spustenie resetovacieho kolíka ESP-01. Prvá obtiažnosť, ktorú budete tušiť, je, že Reset sa spustí na NÍZKOM signáli a PIR pri spustení vyšle signál VYSOKÝ. Reset tiež musí byť VYSOKÝ alebo plávajúci pri zavádzaní. Aby som to skrátil, po vyskúšaní niekoľkých rôznych obvodov som sa rozhodol použiť tranzistor NPN so zdvíhacím odporom, aby počas štartu bol pin RESET HIGH. Výstup z PIR je minimálny, ale poskytuje dostatok základného prúdu na zapnutie tranzistora.

Ako vidíte na schéme zapojenia nižšie, ESP-01 sa prebudil z hlbokého spánku zakaždým, keď PIR zaznamenal pohyb.

Ale bol tu ďalší problém. Resetovanie ESP-01 nastalo až potom, čo PIR prestal vnímať pohyb a vrátil sa na nízky signál, pričom vypol tranzistor a vrátil resetovací kolík na HIGH kvôli vyťahovaciemu odporu. To by znamenalo, že e -mail nebude odoslaný, ani bzučiak sa neaktivuje, kým PIR neprestane vnímať pohyb. Chcel som, aby sa spúšť spustila hneď, ako bolo cítiť pohyb.

Z tohto správania som určil, že ESP-01 sa skutočne spúšťa na stúpajúcej hrane signálu. Držanie resetovacieho kolíka na zemi v skutočnosti nespúšťa ESP-01 z hlbokého spánku, ale v okamihu, keď napätie stúpne na signál HIGH, potom dôjde k resetovaniu.

Moja veľmi jednoduchá reakcia na toto správanie bola pridanie kondenzátora do vedenia medzi výstup PIR a tranzistorovú základňu. To spôsobilo, že tranzistor sa zapol iba počas nabíjania kondenzátora. Po nabití už nebol žiadny prúd a tranzistor sa vypol. Rezistor 5k umožňuje prúdeniu prúdu k zemi. Testoval som to pomocou LED diódy namiesto ESP-01 a pred vypnutím som na zlomok sekundy videl LED diódu zapnutú. Tento malý impulz stačil na chvíľu stiahnuť kolík Reset na zem a bol dostatočne dlhý na to, aby reset resetoval z hlbokého spánku.

Krok 1: Modul hlbokého spánku ESP-01

Modul hlbokého spánku ESP-01
Modul hlbokého spánku ESP-01
Modul hlbokého spánku ESP-01
Modul hlbokého spánku ESP-01

Modul hlbokého spánku používa dve pracovné napätia. Náhodných 5 V+ akumulátora pre PIR a tiež 3,3 V regulátora pre ESP-01. Do obvodu tiež zapájam diódu, aby sa zabránilo poškodeniu súčiastok reverzným napätím. To spotrebuje trochu viac energie a zníži napätie batérie o 0,7 voltu. Diódu je možné vynechať z obvodu, ak ste si istí, že nikdy neotočíte vodiče batérie. Z pohodlnosti je tiež pridaný prepínač.

Tento modul je menšou aktualizáciou môjho pôvodného rozloženia mimo hlbokého spánku. V konfigurácii bez hlbokého spánku je PIR priamo pripojený k kolíku RX na ESP-01. Ako vstupný kolík pre PIR používam pin RX na ESP-01 z niekoľkých dôvodov. GPIO0 nefungoval, pretože pri štarte by bol výstupný PIN PIR NÍZKY, čo spôsobilo, že ESP-01 prejde do režimu blesku. Nepoužíval som GPIO2, pretože potom som nemohol použiť vstavanú LED na vizuálnu spätnú väzbu. Kolíky RX a TX sú často popisované ako extra IO piny, ale moja skúsenosť je taká, že RX je ďalší vstupný pin a TX je ďalší výstupný pin.

V konfigurácii hlbokého spánku nie je pripojenie RX nevyhnutné. Používam ho iba na monitorovanie toho, ako dlho je PIR spustený zapnutím LED diódy, keď je vstup VYSOKÝ. Ako už bolo spomenuté, ak zrušíte funkciu slučky a použijete iba rutinu nastavenia, pripojenie RX nie je potrebné.

Tu je zoznam dielov pre modul hlbokého spánku ESP-01:

Prototypová doska plošných spojov 1 - 5 x 7 cm

1 - 2 kolíkový konektor

2 - 1 x 3 ženské hlavičky

1 - doska obvodu regulátora napätia AMS1117 - 3,3

1 - 1 x 3 kolíkový kolíkový konektor s pravým uhlom

1 - 1 x 3 zásuvkový kolíkový konektor

1 - 1 x 4 zásuvkový kolíkový konektor

1 - 2 x 4 hlavička

1 - 1uf kondenzátor

1 - PIR snímač pohybu HC -SR501

1 - 2N2222 Tranzistor

Odpor 1 - 10 k

Odpor 1 - 4,7k

1 - 1k odpor

1 - 1N4148 dióda

1 - prepínač SS12D00G4 SPDT

1 - ESP -01

Batéria 1 - 4AA

Upozorňujeme, že vo videu používa doska s plošnými spojmi namiesto záhlavia 2 x 4 nepájivý adaptér ESP-01. Aj keď sa tento adaptér ľahšie spájkuje, hlavička 2 x 4 funguje dobre a skutočne lepšie sedí.

Krok 2: Kód hlbokého spánku ESP-01

Kód hlbokého spánku plní dve funkcie. Odošlite e-mailovú správu (štandardne prostredníctvom služby Gmail) a odošlite webovú požiadavku http na príslušný modul bzučiaka ESP-01, aby sa spustil bzučiak.

Keď je tento modul spustený, ponúka dve možnosti upozornení a môže byť obzvlášť užitočný, keď nevenujete pozornosť e -mailovým správam.

Aby skica fungovala, budete musieť aktualizovať šesť riadkov kódu svojimi konkrétnymi hodnotami:

const char* ssid = "xxxxx"; // Vaše WiFi SSIDconst char* heslo = "xxxxx"; // Váš reťazec hesla WiFi Senders_Login = "xxxxx"; // prihlasovací reťazec vášho poskytovateľa e -mailu Reťazec Senders_Password = "xxxxx"; // heslo vášho poskytovateľa e -mailu

Komu = "xxxxxx"; Od = "xxxxxx"; // Gmail vo všeobecnosti uprednostňuje, aby bolo totožné s odoslaním odosielateľa a môže ho nahradiť

Zistil som, že modul hlbokého spánku funguje nepredvídateľne, keď bol snímač PIR nastavený na menej ako 10 sekúnd na dĺžku spúšťacej udalosti. Nastavil som svoj na 20 sekúnd. Ukázalo sa to ako veľmi spoľahlivé, ale tiež to znamená, že s touto frekvenciou sa môžu vyskytnúť spúšťacie udalosti.

Do funkcie slučky som tiež pridal kód, aby ESP-01 svietil, pokiaľ PIR stále sníma pohyb. Všetok kód vo funkcii slučky je možné odstrániť a volanie do hlbokého spánku sa presunie na koniec funkcie nastavenia.

Na vizuálny indikátor aktivity modulu ESP-01 používam funkciu blikania.

Aj keď som použil a testoval konektivitu s gmailom, fungujú aj iní poskytovatelia e -mailu. Skúsil som pár. V skutočnosti som považoval gmail za problematickejší. Gmail vyžaduje, aby ste mali svoj účet nakonfigurovaný na prístup pre menej bezpečné aplikácie. Toto nastavenie účtu je predvolene VYPNUTÉ, takže ho nájdite a zmeňte na menej bezpečné. Gmail nebude inak fungovať.

Ak sa rozhodnete mať viac ako jeden modul bzučiaka, stačí pridať ďalšie volania klienta http (zopakujte tri riadky kódu, ale zmeňte použitú adresu IP a tiež definujte premennú httpCode ako int iba raz!

Všimnite si toho, že ip adresa bzučiaka je v tomto module naprogramovaná napevno. Nemusíte používať adresu IP, ktorú som si vybral, ale musíte priradiť adresu IP webového hovoru v tomto module k adrese IP nastavenia webového servera v nasledujúcom module.

Krok 3: Modul bzučiaka ESP-01

Modul bzučiaka ESP-01
Modul bzučiaka ESP-01
Modul bzučiaka ESP-01
Modul bzučiaka ESP-01
Modul bzučiaka ESP-01
Modul bzučiaka ESP-01

Modul bzučiaka má veľmi jednoduché nastavenie. Namiesto batérie používa konektor USB, pretože si myslím, že tento modul nie je vhodný pre batériu. Musí zostať neustále zapnutý a nework/wifi pripojený, pretože nikdy nevie, kedy bude odoslaná webová požiadavka. To vyžaduje viac nepretržitého napájania, než pre aké sú batérie užitočné.

Moduly bzučiakov je možné umiestniť pohodlne na viac miest a poskytovať upozornenie na udalosť spustenia snímača pohybu bez ohľadu na to, kde sa nachádzate!

Bzučiak je pripojený k 5 V konektora USB a je tu ešte jedna 3,3 V doska regulátora, ktorá napája ESP-01.

Modul bzučiaka bude na výstupe fungovať s použitím TX, GPIO0 alebo GPIO2. V mojej konfigurácii používam GPIO0. (Na obrázku modulu je vodič pripojený k GPIO2, ale odvtedy som ho presunul.) Aj keď GPIO0 nefungoval pre modul hlbokého spánku (ako VSTUP), funguje dobre s týmto rozložením ako VÝSTUP. Pri bootovaní nie je vytiahnutý na zem, čo spôsobuje problémy. Použil som GPIO2, ale potom som nemohol použiť integrovanú LED na žiadnu spätnú väzbu, ale pomocou GPIO0 na VÝSTUP môžem použiť integrovanú LED.

Skúsil som použiť NPN tranzistor na napájanie bzučiaka v obvode, keď ESP-01 umiestnil na pin GPIO0 signál HIGH, ale výsledky boli strašne nekonzistentné. Zdá sa, že bzučiak chce znieť vždy, aj keď má veľmi malú silu. Namiesto toho som použil N -kanálový MOSFET (2n7000) a výsledok bol úžasný. IO pin poháňa bránu podľa potreby.

Aj keď potrebujeme iba dva piny z konektora USB Vcc (+) a Gnd (-), na pripojenie k doske plošných spojov používam 5-kolíkový konektor na zaistenie extra stability a na spájkovanie pred pripojením USB k regulátoru. Moja doska regulátora 3,3 V sa dodávala s predinštalovanými kolíkmi a v mojej mysli hore nohami. Aby ste regulátor vložili do kolíkov záhlavia, vidíte, že obvodová doska je skrytá, ale čo je horšie, vcc a gnd na regulátore sú obrátené z vcc a gnd na konektore USB. Drôty sa teda krížia.

Všimnite si tiež, že + napájanie aktívneho bzučiaka pochádza z 5 V USB. 4 -kolíková zásuvka so zásuvkou tiež funguje dobre s umiestnením pinov bzučiaka.

Zoznam častí modulu bzučiaka ESP-01:

Doska plošných spojov 1 - 5 x 7

1 - minikonektor USB s kolíkovými konektormi (7 pinov)

2 - 1 x 3 ženské hlavičky

1 - doska regulátora napätia AMS1117-3,3 v

1 - 2 x 4 hlavička

2 - 1 x 4 zásuvkové zásuvky

1 - 2N7000 N -kanálový MOSFET

Odpor 1 - 10 ohmov

1 - 5v aktívny bzučiak

Krok 4: Kód modulu bzučiaka ESP-01

Modul bzučiaka funguje ako jednoduchý webový server ESP-01. Odpovie jednoduchou správou na požiadavku root a keď dostane požiadavku na buzz, spustí bzučiak. GPIO0 sa používa pre kolík GPIO pre signál bzučiaka.

Všimnite si toho, že ESP-01 je nakonfigurovaný s pevne zakódovanou IP adresou. Je to potrebné, aby bol modul hlbokého spánku spojený s adresou bzučiaka.

Rovnako ako predchádzajúci modul budete musieť aktualizovať dva riadky kódu svojimi konkrétnymi hodnotami:

// SSID a heslo vášho smerovača WiFiconst char* ssid = "xxxxxxx";

const char* heslo = "xxxxxxxx";

Ak máte vytvorených viac modulov bzučiaka, každý z nich by mal mať načítanú vlastnú jedinečnú adresu IP.

Môžete tiež pridať rôzne metódy bzučania, ktoré produkujú rôzne melódie bzučiaka. Ak máte napríklad snímač PIR na predných dverách a jeden na zadných dverách, môžu každý odoslať webovú požiadavku na každý z vašich modulov bzučiaka, ale jeden snímač môže mať skicu, ktorá volá bzučiak, a druhá skica môže volať buzz2. aby ste zo zvuku zistili, ktorý senzor bol spustený. A tak ďalej a tak ďalej! Funkcia buzz2 neexistuje, stačí skopírovať funkciu buzz a zmeniť hodnoty oneskorenia.

Pre webový server stačí pridať riadok kódu takto:

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

Krok 5: Záverečné myšlienky

Toto je môj prvý návod, takže mi možno unikli niektoré praktické veci, ktoré som mal zahrnúť. Doska regulátora AMS1117-3.3, ktorú som použil, obsahuje malú LED diódu, ktorá sa rozsvieti pri zapnutí. V prípade modulu hlbokého spánku som nechcel, aby to zbytočne zapínalo a vybíjalo energiu. Odpájkoval som teda, čo sa dalo, na jednej strane diódy na doske a potom som nožom prestrihol stopovú čiaru. Bolo to jednoduchšie, ako som si myslel, a zabránilo sa rozsvieteniu diódy LED. Nedokázal som určiť, aký je odber energie, keď je ESP-01 v hlbokom spánku, ale možno budem mať odpoveď o niekoľko týždňov. Môj kolega spustil senzor (nie je v hlbokom spánku) a zistil, že batérie sú vybité (5AA) asi za týždeň. Myslím si, že toto nastavenie by malo dať mesiac alebo aj viac. Uvidíme.

Modul hlbokého spánku stál asi 8 dolárov CDN po častiach (batérie nie sú súčasťou balenia!) A modul bzučiaka 5 dolárov.

Odporúča: