Mündəricat:

Dərin Yuxuda ESP-01 Hərəkət Sensoru: 5 addım
Dərin Yuxuda ESP-01 Hərəkət Sensoru: 5 addım

Video: Dərin Yuxuda ESP-01 Hərəkət Sensoru: 5 addım

Video: Dərin Yuxuda ESP-01 Hərəkət Sensoru: 5 addım
Video: PSI ARAŞDIRMA: İSPANYADA PARAPSİXOLOGİYA | MANUEL CARBALLAL 2024, Noyabr
Anonim
Image
Image

Tetiklendiğinde e -poçt mesajı göndərən ev istehsalı sensorlar hazırlamaq üzərində işləyirəm. Bunun üçün bir çox nümunə göstərici və digər nümunələr var. Bu yaxınlarda bunu batareyalı PIR hərəkət sensoru və ESP-01 ilə etməliydim. ESP-01 çox işləkdir və lazım olan bütün imkanlara malikdir, buna görə minimumu və ən bahalısını niyə istifadə etməyəsiniz? Qarışığa, hərəkət sensoru işə salındıqda səs siqnalı tetikleyen ayrı bir uzaq və uzaq ESP-01 modulu əlavə edildi.

Kod və son dövrə düzeni İnternetdəki çoxsaylı mənbələrdən toplanmışdır və bunları xüsusi olaraq tanıya biləcəyimi düşünmürəm. Gmail vasitəsilə e -poçt göndərmək fikri təlimat verən və digər mənbələrdən gəldi və son kod bu mənbələrdən alınan bir birləşməsidir. İşləmək üçün dərin yuxuya getməyim məni çox vaxt nəticəsiz qalan bir çox yola apardı. Maraqlısı budur ki, bir yol məhsuldar olduqdan sonra daha çox yol axtarmağı dayandırırsan. Bu səbəbdən uğurumda əməyi olan və hələ də tanınmayanlara təşəkkürümü bildirirəm.

ESP-01 dərin yuxu rejimini işə salmaq üçün PIR sensorunu işə salmaqla eyni problemim var idi. İşləyənə qədər bir çox yol.

Deməyə ehtiyac yoxdur, tələb etdiyim elektronikanı daha yaxşı başa düşmək üçün bəzi maraqlı maneələr və ya bəlkə də daha aktual idi. Bir şey işləyənə qədər öyrənməyə davam edirsən və sonra daha çox öyrənmək məcburiyyətində deyilsən.

ESP-01, vaxtlı yuxuya ehtiyacınız olmadığı müddətcə digər ESP8266 modulları kimi dərin yuxu da görür. Modulun müəyyən bir müddətdən sonra oyanmasını istəyirsinizsə, ESP-01 istifadə ediləcək modul deyil. Amma mənim istədiyim bu deyildi. PIR istifadə edərkən keçən vaxt mənasızdır. ESP-01-in yalnız PIR tərəfindən hiss edilən hərəkətlə tetiklendiğinde oyanmasını istədim. Saatlar və ya günlər ərzində heç bir hərəkət hiss edilmirsə, ESP-01 minimum batareya gücündən istifadə edərək yuxuda qalır.

GPIO16 oyanma siqnalı olduğu üçün ESP8266 Sıfırlamasına bağlı GPIO16 istifadə edən bir çox dövrə görəcəksiniz. Bu doğrudur, ancaq vaxtlı yuxudan oyanış siqnalıdır. Bu PİN kodu gözardı edə bilərik, bu yaxşıdır, çünki ESP-01-də yoxdur.

Əsasən, ehtiyac duyduğumuz şey, ESP-01 Sıfırlama pinini işə salmaq üçün PIR-dən siqnal almaqdır. Təsəvvür edə biləcəyiniz ilk çətinlik, Sıfırlamanın LOW siqnalında tetiklenmesidir və PIR tetiklendiğinde YÜKSƏK siqnal göndərir. Sıfırlama da YÜKSƏK və ya açılışda üzən olmalıdır. Bunu qısa saxlamaq üçün, bəzi fərqli sxemləri sınadıqdan sonra açılış zamanı RESET pinini YÜKSƏK saxlamaq üçün çəkmə müqaviməti olan bir NPN tranzistorundan istifadə etməyə qərar verdim. PIR -dən çıxış minimaldır, lakin tranzistoru işə salmaq üçün kifayət qədər əsas cərəyan verir.

Aşağıdakı dövrə diaqramında gördüyünüz kimi, ESP-01 hər dəfə PIR hərəkəti hiss etdikdə dərin yuxudan oyandı.

Ancaq başqa bir problem var idi. ESP-01-in sıfırlanması yalnız PIR hərəkəti hiss etməyi dayandırdıqdan və aşağı çəkilən bir siqnala qayıtdıqdan sonra baş verdi, çəkmə müqaviməti səbəbindən Sıfırlama pinini YÜKSƏK vəziyyətinə qaytardı. Bu, e -poçtun göndərilməyəcəyi və ya SES SONRA hərəkəti hiss etməyi dayandırana qədər siqnalın işə salınmayacağı anlamına gəlir. Hərəkət hiss edilən kimi tətikin olmasını istədim.

Bu davranışdan müəyyən etdiyim şey, ESP-01-in əslində siqnalın yüksələn kənarında tetiklemesidir. Sıfırlama pinini yerə tutmaq əslində ESP-01-i dərin yuxudan tətik etmir, ancaq gərginliyin YÜKSƏ siqnalına yüksəldiyi anda sıfırlama baş verir.

Bu davranışa çox sadə cavabım, PIR çıxışı ilə tranzistor bazası arasındakı xəttə bir kondansatör əlavə etmək idi. Bu, tranzistorun yalnız kondansatör doldurularkən açılmasına səbəb oldu. Şarj edildikdən sonra başqa bir cərəyan olmadı və tranzistor söndü. 5k müqavimət, cərəyanın yerə axmasına imkan verir. Bunu ESP-01 yerinə bir LED ilə sınadım və sönməzdən əvvəl bir saniyə ərzində LED flaşını görə bildim. Bu kiçik nəbz, Sıfırlama pinini dərin yuxudan çıxarmaq üçün bir anlıq və kifayət qədər uzun müddət yerə çəkmək üçün kifayət idi.

Addım 1: ESP-01 Dərin Yuxu Modulu

ESP-01 Dərin Yuxu Modulu
ESP-01 Dərin Yuxu Modulu
ESP-01 Dərin Yuxu Modulu
ESP-01 Dərin Yuxu Modulu

Dərin yuxu modulu iki iş gərginliyindən istifadə edir. PIR üçün təsadüfi 5v+ batareya paketi və ESP-01 üçün 3.3 volt tənzimləyici lövhə. Zədələnmiş hissələri tərs gərginlikdən qorumaq üçün dövrəyə bir diod da əlavə edirəm. Bu, bir az əlavə güc sərf edir və batareya paketinin gərginliyini 0,7 volt azaldır. Batareya paketini heç vaxt geri çevirməyəcəyinizə əminsinizsə, diod dövrə xaricində qala bilər. Rahatlıq üçün bir keçid də əlavə olunur.

Bu modul, orijinal dərin olmayan yuxu planımda kiçik bir yeniləmədir. Qeyri-dərin yuxu konfiqurasiyasında, PIR birbaşa ESP-01-in RX pininə qoşulur. ESP-01-in RX pinini bir neçə səbəbdən PIR üçün giriş pin olaraq istifadə edirəm. GPIO0 işləmədi, çünki açılışda PIR çıxış PIN-i LOW olacaq və ESP-01-in flaş rejiminə keçməsinə səbəb olacaq. GPIO2 istifadə etmədim, çünki o vaxt vizual geri ötürmə üçün quraşdırılmış LED-dən istifadə edə bilmədim. RX və TX sancaqları tez -tez əlavə IO pinləri kimi təsvir olunur, lakin mənim təcrübəm RX -in əlavə INPUT pin və TX -in əlavə Çıxış pin olmasıdır.

Dərin yuxu konfiqurasiyasında RX bağlantısı ciddi şəkildə lazım deyil. Mən yalnız giriş YÜK ikən LED -i yandırmaqla PIR -in nə qədər tətikləndiyini izləmək üçün istifadə edirəm. Daha əvvəl qeyd edildiyi kimi, loop funksiyasını silsəniz və yalnız quraşdırma qaydasını istifadə etsəniz, RX bağlantısı lazımsızdır.

ESP-01 dərin yuxu modulunun hissə siyahısı budur:

1 - 5 x 7 sm ölçülü PCB prototip lövhəsi

1-2 pinli bağlayıcı

2 - 1 x 3 qadın başlıqları

1 - AMS1117 - 3.3 gərginlik tənzimləyicisinin elektron lövhəsi

1 - 1 x 3 Sağ Açılı Kişi baş pin

1 - 1 x 3 dişi yuva başlıq pimi

1 - 1 x 4 dişi yuva başlıq pimi

1-2 x 4 qadın başlıq

1 - 1uf kondansatör

1 - HC -SR501 PIR Hərəkət Sensoru

1 - 2N2222 Transistor

1 - 10k rezistor

1 - 4.7k rezistor

1-1k rezistor

1 - 1N4148 diod

1 - SS12D00G4 SPDT keçid

1 - ESP -01

1 - 4AA Batareya Paketi

Videoda, dövrə lövhəsində 2 x 4 başlıq yerinə ESP-01 çörək taxtası adapteri istifadə edildiyini unutmayın. Bu adapterin lehimlənməsi daha asan olsa da, 2 x 4 başlıq yaxşı işləyir və əslində daha yaxşı uyğun gəlir.

Addım 2: ESP-01 Dərin Yuxu Kodu

Dərin Yuxu kodu iki funksiyanı yerinə yetirir. Bir e-poçt mesajı göndərin (standart olaraq gmail vasitəsi ilə) və səs siqnalı tetiklemek üçün əlaqəli ESP-01 buzzer moduluna bir http veb sorğusu göndərin.

Tetiklendiğinde, bu modul iki bildiriş seçimi təmin edir və e -poçt mesajlarına diqqət etmədiyiniz zaman xüsusilə faydalı ola bilər.

Eskizin işləməsi üçün xüsusi dəyərlərinizlə altı kod satırını yeniləməlisiniz:

const char* ssid = "xxxxx"; // WiFi SSIDconst char* parol = "xxxxx"; // WiFi Şifrə String Senders_Login = "xxxxx"; // e -poçt provayderinizə giriş String Senders_Password = "xxxxx"; // e -poçt provayderi parolunuz

To = "xxxxxx"; From "xxxxxx"; // Gmail ümumiyyətlə bunun Senders_Login ilə eyni olmasını üstün tutur və əvəz edə bilər

PIR sensoru tətik hadisəsinin uzunluğu üçün 10 saniyənin altına qoyulduqda dərin yuxu modulunun gözlənilmədən işlədiyini gördüm. Mənim 20 saniyəlik vaxtım var. Bu çox etibarlı olduğunu sübut etdi, lakin eyni zamanda hadisələrin tetiklenmesinin bu tezliklə baş verə biləcəyi mənasına gəlir.

ESP-01-in PIR hələ də hərəkəti hiss etdiyi müddətdə açıq qalması üçün loop funksiyasına kod da əlavə etdim. Döngü funksiyasındakı bütün kodlar silinə bilər və dərin yuxuya çağırma qurma funksiyasının sonuna köçürülür.

ESP-01 modulu ilə fəaliyyətin əyani göstəricisi üçün yanıb sönmə funksiyasından istifadə edirəm.

Gmail ilə əlaqəni istifadə etsəm və sınasam da, digər e -poçt təminatçıları da işləyir. Bir cüt sınadım. Əslində gmail -i daha əziyyətli gördüm. Gmail, hesabınızın daha az təhlükəsiz tətbiqlərə daxil olmaq üçün konfiqurasiya edilməsini tələb edir. Bu hesab ayarı varsayılan olaraq KAPALIDIR, buna görə onu tapdığınızdan və daha az etibarlı hala gətirdiyinizdən əmin olun. Gmail başqa cür işləməyəcək.

Birdən çox səs siqnalı moduluna sahib olmağı seçsəniz, sadəcə http müştərisinin əlavə zənglərini əlavə edin (kodun üç sətrini təkrarlayın, lakin istifadə olunan ip ünvanını dəyişdirin və yalnız httpCode dəyişənini int olaraq təyin edin!

Qeyd edək ki, səs siqnalının ip ünvanı bu modulda sərt kodlaşdırılmışdır. Seçdiyim ip ünvanından istifadə etməyinizə ehtiyac yoxdur, ancaq bu moduldakı veb zənginin ip ünvanı ilə növbəti moduldakı veb server qurulmasının ip ünvanı ilə uyğun gəlməlisiniz.

Addım 3: ESP-01 Buzzer Modulu

ESP-01 Buzzer Modulu
ESP-01 Buzzer Modulu
ESP-01 Buzzer Modulu
ESP-01 Buzzer Modulu
ESP-01 Buzzer Modulu
ESP-01 Buzzer Modulu

Zəng modulu olduqca sadə bir quruluşa malikdir. Batareya paketi yerinə USB konnektoru istifadə edir, çünki bu modulun batareya paketinə uyğun olduğunu düşünmürəm. Veb sorğusunun nə vaxt ediləcəyini heç vaxt bilmədiyi üçün daim işləməli və nework/wifi ilə bağlı olmalıdır. Bu, batareya paketlərinin faydalı olandan daha çox davamlı güc tələb edir.

Buzzer modulları, harada olmağınızdan asılı olmayaraq bir hərəkət sensoru tətik hadisəsi barədə bildiriş verən bir çox yerə rahat yerləşdirilə bilər!

Səs siqnalı USB konnektorunun 5v-ə qoşulur və ESP-01-ə enerji verən başqa bir 3.3v tənzimləyici lövhəsi var.

Zil modulu çıxış üçün TX, GPIO0 və ya GPIO2 istifadə edərək işləyəcək. Konfiqurasiyamda GPIO0 istifadə edirəm. (Modulun şəklində tel GPIO2 -yə bağlıdır, amma o vaxtdan bəri onu köçürdüm.) GPIO0 dərin yuxu modulu üçün işləməsə də (GİRİŞ olaraq) bu nizamla ÇIXIŞ olaraq yaxşı işləyir. Çəkmədən yerə çəkilmir ki, bu da problemlərə səbəb olacaq. GPIO2 -dən istifadə etdim, amma sonra heç bir rəy üçün təyyarədəki LED -dən istifadə edə bilmədim, ancaq ÇIXIŞ üçün GPIO0 -dan istifadə edərək bortdakı LED -dən istifadə edə bilərəm.

ESP-01 GPIO0 pininə YÜKSƏK siqnal verəndə nəticələr olduqca ziddiyyətli olduqda dövrədəki səs siqnalı üçün NPN tranzistorundan istifadə etməyə çalışdım. Səs siqnalı çox az gücdə olsa belə hər zaman səslənmək istəyirdi. Bunun əvəzinə bir N kanalı MOSFET (2n7000) istifadə etdim və nəticə çox gözəl oldu. IO pin qapını lazım olduğu kimi idarə edir.

Vcc (+) və Gnd (-) USB konnektorundan yalnız iki sancağa ehtiyacımız olsa da, əlavə sabitlik üçün və USB-ni tənzimləyiciyə bağlamadan əvvəl lehimləmə üçün PCB lövhəsinə qoşulmaq üçün 5 pinli başlıqdan istifadə edirəm. 3.3v tənzimləyici lövhəm əvvəlcədən quraşdırılmış pinlərlə və ağlımda tərsinə gəldi. Beləliklə, tənzimləyicini başlıq sancaqlarına qoymaq üçün, devre kartının gizləndiyini görə bilərsiniz, amma bundan da pis olanı, tənzimləyicidəki vcc və gnd USB konnektorunda vcc və gnd -dən tərsinə çevrilir. Beləliklə, tellər bir -birindən keçir.

Həm də unutmayın ki, aktiv səs siqnalı üçün + güc USB -nin 5v -dən gəlir. Ayrıca, 4 pinli qadın yuva başlığı, səs siqnalının pin yerləşdirilməsi ilə yaxşı işləyir.

ESP-01 Buzzer Modulu Parça siyahısı:

1 - 5 x 7 PCB lövhəsi

1 - pin başlıqları olan USB mini konnektoru (7 pin)

2 - 1 x 3 qadın başlıqları

1 - AMS1117-3.3 v gərginlik tənzimləyici lövhəsi

1-2 x 4 qadın başlıq

2 - 1 x 4 qadın yuva başlıqları

1 - 2N7000 N kanallı MOSFET

1 - 10 ohm müqavimət

1 - 5v Aktiv Buzzer

Addım 4: ESP-01 Buzzer Modulu Kodu

Zəng modulu sadə bir ESP-01 veb serveri kimi çıxış edir. Kök istəyinə sadə bir mesajla cavab verir və səs -küy tələbi gəldikdə səs siqnalı tetikleyecek. GPIO0, siqnal siqnalı üçün GPIO pin üçün istifadə olunur.

Qeyd edək ki, ESP-01 sərt kodlu bir ip ünvanı ilə konfiqurasiya edilmişdir. Bu, dərin yuxu modulunun səs siqnalı ünvanına qoşulması üçün lazımdır.

Əvvəlki modul kimi, xüsusi dəyərlərinizlə iki kod satırını yeniləməlisiniz:

// WiFi routerinizin SSID və Şifrəsi char* ssid = "xxxxxxx";

const char* parol = "xxxxxxxx";

Yaradılmış birdən çox səs modulu varsa, hər biri özünəməxsus ip ünvanı ilə yüklənməlidir.

Fərqli buzzer melodiyaları istehsal edən fərqli səs -küy üsulları da əlavə edə bilərsiniz. Məsələn, ön qapıda və arxa qapıda bir PIR sensoru varsa, hər biri səs siqnal modullarınıza hər biri veb sorğu göndərə bilər, ancaq bir sensorda vızıltı və digər eskizdə buzz2 -ə zəng edə biləcək bir eskiz ola bilər. Hansı sensorun işə salındığını səsdən ayırd edə bilərsiniz. Və sair və sair! Buzz2 funksiyası yoxdur, ancaq buzz funksiyasını kopyalayın və gecikmə dəyərlərini dəyişdirin.

Veb server üçün sadəcə belə bir kod xətti əlavə etməlisiniz:

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

Addım 5: Son Fikirlər

Bu mənim ilk təlimatımdır, ona görə də daxil etməli olduğum bəzi praktik şeyləri qaçırmışam. İstifadə etdiyim AMS1117-3.3 tənzimləyici lövhədə, açıldıqda yanan kiçik bir led var. Dərin yuxu modulu üçün bunun lazımsız yerə gücünü boşaltmasını istəmirdim. Beləliklə, lövhədəki ledin bir tərəfində əlimdən gələni satdım və sonra iz xəttini kəsmək üçün bir bıçaq istifadə etdim. Bu düşündüyümdən daha asan idi və LED -in yanmasını maneə törədirdi. ESP-01 dərin yuxuda olduğunda gücün nə olduğunu müəyyən edə bilmədim, amma bir neçə həftə ərzində cavabım ola bilər. Bir həmkarım sensoru işə saldı (dərin yuxuda deyil) və təxminən bir həftə ərzində batareyaların (5AA) boşaldığını tapdı. Düşünürəm ki, bu quruluş bir ay və ya daha çox vaxt verməlidir. Görəcəyik.

Dərin yuxu modulunun hissələri təxminən 8 dollar CDN (batareyalar daxil deyil!) Və səs siqnalı modulu 5 dollara başa gəlir.

Tövsiyə: