Cuprins:

Senzor de ușă și blocare alimentat de baterie, solar, ESP8266, ESP-Now, MQTT: 4 pași (cu imagini)
Senzor de ușă și blocare alimentat de baterie, solar, ESP8266, ESP-Now, MQTT: 4 pași (cu imagini)

Video: Senzor de ușă și blocare alimentat de baterie, solar, ESP8266, ESP-Now, MQTT: 4 pași (cu imagini)

Video: Senzor de ușă și blocare alimentat de baterie, solar, ESP8266, ESP-Now, MQTT: 4 pași (cu imagini)
Video: #383 Cheap and simple Solar Power for our small Projects (ESP32, ESP8266, Arduino) 2024, Noiembrie
Anonim
Senzor de ușă și blocare alimentat de baterie, Solar, ESP8266, ESP-Now, MQTT
Senzor de ușă și blocare alimentat de baterie, Solar, ESP8266, ESP-Now, MQTT
Senzor de ușă și blocare alimentat de baterie, Solar, ESP8266, ESP-Now, MQTT
Senzor de ușă și blocare alimentat de baterie, Solar, ESP8266, ESP-Now, MQTT
Senzor de ușă și blocare alimentat de baterie, Solar, ESP8266, ESP-Now, MQTT
Senzor de ușă și blocare alimentat de baterie, Solar, ESP8266, ESP-Now, MQTT

În acest Instructable vă arăt cum am realizat un senzor alimentat cu baterie pentru a monitoriza starea ușii și a blocării magaziei de biciclete la distanță. Am alimentare cu rețea electrică, de aceea am alimentat cu baterie. Bateria este încărcată de un mic panou solar.

Modulul este proiectat pentru funcționare cu putere redusă și rulează pe un ESP-07S în somn profund care se trezește și verifică poziția ușii și a blocării în fiecare minut. Cu toate acestea, când ușa este deschisă, modulul este trezit de un simplu circuit hardware pentru a trimite imediat informațiile despre „ușa deschisă”. Modulul comunică prin ESP-Now, în care timpul de transmisie este foarte scurt, necesitând doar o cantitate mică de energie.

Domotica mea care rulează pe Openhab și Mosquitto gestionează mesajele și îmi trimite un mesaj alarmant prin Telegram dacă alarma este pornită.

Provizii

Toate componentele sunt cumpărate de la Aliexpress.

  • Modulul ESP-07S este ales pentru conectarea ușoară a unei antene externe pentru a crește gama ESP-Now.
  • Placă de încărcare TP4056 cu protecție a bateriei
  • 18650 baterie LiPo
  • Comutator Reed (NU pentru a monitoriza poziția ușii)
  • Comutator de contact (poziția de blocare a monitorului)
  • Panou solar (6V, 0,6W)
  • Tranzistoare, rezistențe, diode, conectori (vezi schema)

Pasul 1: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Schema așa cum este construită este inclusă ca imagine. În primul rând am prototipat circuitul pe o placă de calcul. Apoi am lipit toate componentele pe o placă de perf.

Folosesc un modul ESP-07S ESP8266 deoarece are o conexiune pentru o antenă externă. Deoarece magazia pentru biciclete este afară, semnalul WiFi trebuie să treacă printr-un perete de beton. Am aflat că o antenă externă mărește puternic autonomia ESP-Now. Destul de logic, deoarece este un semnal WiFi.

Pentru senzorul ușii am folosit un comutator reed cu conexiuni botn NO și NC. Când ușa este închisă, un magnet atașat la comutator deschide comutatorul. Modulul verifică starea ușii și a blocării la fiecare 60 de secunde, totuși, când ușa este deschisă, vreau să fiu informat imediat, de aceea am implementat un circuit de resetare, vezi mai jos.

Pentru senzorul de blocare am folosit un comutator de contact cu conexiuni botn NO și NC. Când blocarea este închisă, știftul de blocare deschide comutatorul. Deci, atât senzorul ușii, cât și senzorul de blocare sunt normal deschise (NU).

Bateria se încarcă printr-o placă de încărcare TP4056 cu protecție a bateriei atașată la un mic panou solar de 6V.

Voi explica mai jos câteva părți ale circuitului.

Resetați circuitul

Circuitul de resetare cu 2N7000 Mosfet este conectat la pinul de resetare al ESP8266. Dacă ușa este închisă, contactul este deschis, atât poarta, cât și sursa tranzistorului sunt înalte, iar mosfetul este oprit. Condensatorul conectat la poartă are o încărcare pozitivă. ESP8266 stabilește GPIO12 ca HIGH = închis.

Când ușa este deschisă, sursa mosfetului este conectată la masă. Deoarece poarta este înaltă, mosfetul este pornit și trage pinul de resetare la sol, rezultând o resetare a ESP8266. Condensatorul este descărcat prin R7 și apoi oprește mosfetul. Vedeți captura de ecran a osciloscopului meu pentru pulsul scăzut de 50 ms. După puls, ESP8266 pornește. ESP8266 stabilește GPIO12 ca LOW = deschis.

Când ușa este închisă din nou, rezistența R6 trage sursa și GPIO12 în sus.

Monitorizarea bateriei

Tensiunea bateriei este citită printr-un divizor de tensiune între VBat și GND. Cu toate acestea, nu vreau o conexiune permanentă între VBat și GND, deoarece aceasta descarcă bateria. Prin urmare, am pus un MOSFET canal P în partea înaltă a divizorului de tensiune și poarta MOSFET este trasă, astfel încât MOSFETUL este oprit. Numai când GPIO14 este scăzut, MOSFET este pornit, iar ESP8266 poate reda tensiunea cu ADC.

Pasul 2: Software

Modulul ESP8266 este în cea mai mare parte în modul de repaus profund pentru a economisi energie.

La fiecare 60 de secunde, modulul pornește cu WiFi dezactivat și măsoară poziția de blocare și ușă și verifică dacă aceste poziții s-au schimbat în comparație cu valorile stocate în memoria RTC. Dacă s-a schimbat o poziție, modulul doarme un timp minim și se trezește cu WiFi activat pentru a trimite noua poziție prin ESP-Now. Și, desigur, noile poziții sunt stocate în memoria RTC. Dacă nu s-a schimbat nimic, modulul doarme din nou și se trezește cu WiFi oprit.

Vedeți celălalt Instructable în care vă explic cum folosesc ESP-Now pentru a transmite mesajul și pentru a le transforma în mesaje MQTT.

Dacă „circuitul OTA” este închis manual printr-un jumper, modulul se trezește și se conectează la rețeaua mea WiFi pentru a aștepta o actualizare OTA prin ESP8266HTTPUpdateServer.

La fiecare 30 de minute, tensiunea bateriei este măsurată și publicată.

Funcționează ca o mașină de stat. Stările sunt definite în programul care este publicat pe Github.

STATE_CHECK: trezește-te cu Radio off (WiFi oprit), verifică doar dacă s-a schimbat ceva

STATE_INIT: treziți-vă cu Radio pornit (WiFi activat) și transmiteți starea ușii și a blocării

STATE_DOOR: trezește-te cu Radio pornit, publică doorstate data viitoare când pornește

STATE_LOCK: trezește-te cu Radio pornit, publică lockstate data viitoare când pornește

STATE_VOLTAGE: treziți-vă cu Radio pornit, publicați tensiunea data viitoare când pornește

STATE_OTA 5: trezește-te cu Radio pornit, mergi la modul OTA

Pasul 3: Asamblați

Asambla
Asambla
Asambla
Asambla
Asambla
Asambla
Asambla
Asambla

Folosesc terminale cu șurub și conectori DC tată / mamă pentru a putea asambla și dezasambla proiectul meu. Am pus toate piesele într-o cutie mică din ABS, vezi pozele. Am încapsulat piesele în banda Kapton pentru izolarea electrică

Conectez panoul solar printr-o priză DC tată (5,5 x 2,1) cu o diodă 1N5817 care are o tensiune redusă înainte.

Comutatorul reed este lipit în cutie și un magnet este lipit pe ușă în poziția corectă.

Contactul de blocare este introdus din lateral, vezi imaginea.

Pasul 4: Modul de lucru

Modul de lucru
Modul de lucru
Modul de lucru
Modul de lucru

Datele primite sunt citite de automatizarea mea de acasă Openhab. Îmi place, pot posta fișierele Openhab.

Monitorizez:

  • Tensiunea bateriei (cu persistență, așa că văd tensiunea în timp într-un grafic).
  • Pozițiile ușii și încuietorii.
  • Momentele în care s-a schimbat poziția.

În acest fel, când mă culc, pot vedea cu ușurință dacă toate magaziile sunt încuiate.

La începutul utilizării, bateria a fost încărcată într-o zi luminoasă și, după aproximativ o săptămână, bateria a fost complet încărcată. Acum toamna, bateria rămâne încărcată. Aparent modulul este foarte economic și folosește mult mai puțină energie decât generează un mic panou solar. Bateria puternică are, probabil, energie pentru câteva luni de întuneric. Să vedem cum funcționează modulul în această iarnă, când temperatura din magazie este mult mai scăzută.

Recomandat: