Tartalomjegyzék:

Vezeték nélküli ajtóérzékelő - rendkívül alacsony teljesítmény: 5 lépés
Vezeték nélküli ajtóérzékelő - rendkívül alacsony teljesítmény: 5 lépés

Videó: Vezeték nélküli ajtóérzékelő - rendkívül alacsony teljesítmény: 5 lépés

Videó: Vezeték nélküli ajtóérzékelő - rendkívül alacsony teljesítmény: 5 lépés
Videó: 52. Emiatt lustul el az autó 2024, November
Anonim
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású
Vezeték nélküli ajtóérzékelő - rendkívül alacsony fogyasztású

Még egy ajtóérzékelő !! Nos, a motiváció számomra, hogy megalkossam ezt az érzékelőt, az volt, hogy sok interneten láttam egyik vagy másik korlátozást. Az érzékelő néhány célja számomra:

1. Az érzékelőnek nagyon gyorsnak kell lennie - lehetőleg kevesebb, mint 5 másodperc

2. Az érzékelőnek le kell töltenie egy 3,7 V-os Li-ion akkumulátort, mivel tucatnyian hevernek

3. Az érzékelőnek sok hónapig kell működnie az akkumulátor egyetlen feltöltésével. Alvó üzemmódban <10uA -t kell fogyasztania

4. Az érzékelőnek képesnek kell lennie arra, hogy felébressze a kritikus adatokat, például az akkumulátor állapotát, még akkor is, ha az ajtót hosszú ideig nem használja.

5. Az érzékelőnek adatokat kell továbbítania az MQTT témakörbe, amikor az ajtót kinyitják, valamint amikor az ajtót becsukják

6. Az érzékelőnek ugyanannyi energiát kell fogyasztania, függetlenül az ajtó állapotától

Az érzékelő működése:

Az érzékelő 2 fő vezérlővel rendelkezik. Az első az apró ATiny 13A mikrovezérlő. A második az ESP, amely általában alvó üzemmódban van, és csak akkor ébred fel, amikor az ATiny engedélyezi. Az egész áramkört az ESP is létrehozhatja alvó üzemmódban, de az általunk fogyasztott áram sokkal nagyobb, mint amennyi egy hónap hónapig tartó akkumulátorhoz szükséges, így az ATTiny megment. Csak azt a célt szolgálja, hogy minden N másodpercben felébredjen, keressen egy ajtóeseményt vagy egy állapotfelmérési eseményt, ha van ilyen, akkor az ESP CH_PD csapját tartja a HIGH -ig, és az esemény típusának megfelelő jelet küld az ESP -nek. Szerepe ezzel véget ér.

Az ESP ekkor átveszi az irányítást, beolvassa a jeltípust, csatlakozik a WiFi/MQTT -hez, közzéteszi a szükséges üzeneteket, beleértve az akkumulátor töltöttségi szintjét, majd kikapcsolja magát, ha visszaállítja az EN -tűt LOW -ra.

Ha ezeket a chipeket így használom, kihasználom az ATtiny alacsony alvó áramát és az ESP nulla üresjárati áramát, amikor a chip le van tiltva a CH_PD tűn keresztül.

Kellékek

Előzetes követelmények:

- Az ATTiny & ESP 01 programozásának ismerete

- Forrasztó alkatrészek ismerete a NYÁK -on

ESP-01 (vagy bármilyen ESP)

ATTiny 13A - AVR

LDO 7333 -A - Alacsony kiesésű feszültségszabályozó

Ellenállások - 1K, 10K, 3K3

Kondenzátorok: 100uF, 0,1 uF

Nyomógombos kapcsoló, mikro BE/KI kapcsoló - (mindkettő opcionális)

Dióda - IN4148 (vagy bármely más egyenértékű)

Li-ion akkumulátor

Reed kapcsoló

Ügy az egész ház elhelyezésére

Forrasztó, NYÁK stb

1. lépés: Sémák és forráskód

Vázlatok és forráskód
Vázlatok és forráskód

A rajzok a mellékelt diagramon láthatók.

A fordított polaritás elleni védelemhez mellékeltem egy P -csatorna MOSFET -et. Ha erre nincs szüksége, kihagyhatja. Bármely P csatorna MOSFET alacsony RDS BE -vel megteszi.

Jelenleg az ESP nem rendelkezik OTA képességgel, de ez a jövőbeli javulás érdekében történik.

Forráskód intelligens ajtó-érzékelő

2. lépés: Az áramkör működése

ATTiny Working flow

A varázslat abban rejlik, hogy az ATTiny figyeli az ajtókapcsoló helyzetét.

A normál lehetőség az lenne, ha egy felhúzó ellenállást csatlakoztatna a kapcsolóhoz, és folyamatosan figyelemmel kísérné annak állapotát. Ennek az a hátránya, hogy a felhúzó ellenállás állandó áramot fogyaszt. Ezt itt elkerülték úgy, hogy két kapcsot használtam a kapcsoló figyelésére, nem pedig egyet. Itt használtam a PB3 -at és a PB4 -et. A PB3 bemenetként, a PB4 pedig kimenetként van definiálva a PB3 belső INPUT_PULLUP -jával. Általában a PB4 MAGAS, amikor az ATtiny alvó üzemmódban van. Ez biztosítja, hogy a bemeneti felhúzó ellenálláson ne folyjon áram a nádkapcsoló helyzetétől függetlenül. azaz. Ha a kapcsoló zárva van, akkor a PB3 és a PB4 is MAGAS, így nem áramlik közöttük. Ha a kapcsoló nyitva van, akkor nincs út közöttük, és így az áram nulla. Amikor az ATtiny felébred, LOW -t ír a PB4 -re, majd ellenőrzi a PB3 állapotát. Ha a PB3 MAGAS, akkor a nádkapcsoló NYITVA van, különben ZÁRVA van. Ezután visszaír egy HIGH -t a PB4 -re.

Az ATtiny és ESP közötti kommunikáció két PB1 / PB2 tűn keresztül történik, amelyek az ESP Tx / RX -hez vannak csatlakoztatva. A jelet úgy definiáltam

PB1 PB2 ====== Tx Rx

0 0 ====== WAKE_UP (állapotfelmérés)

0 1 ====== SENSOR_OPEN

1 0 ====== ÉRZÉKELŐ_ZÁRVA

1 1 ====== FELHASZNÁLT

Amellett, hogy a jelet az ESP -hez küldi, HIGH impulzust is küld a PB0 -n, amely az ESP CH_PD csaphoz van csatlakoztatva. Ez felébreszti az ESP -t. Az első dolog, amit az ESP tesz, hogy GPIO0 HIGH -t tart, amely a CH_PD -hez van csatlakoztatva, ezáltal biztosítva annak teljesítményét akkor is, ha az ATTiny elveszi a PB0 HIGH -t. A vezérlés most az ESP -vel van meghatározva, hogy mikor akar kikapcsolni.

Ezután csatlakozik a WiFi -hez, az MQTT -hez, közzéteszi az üzenetet, és kikapcsolja magát, ha a GPIO0 -ra LOW -t ír.

ESP 01 Munkafolyamat:

Az ESP áramlása egyenesen előre halad. Felébred, és beolvassa a Tx/Rx csapok értékeit, hogy meghatározza, milyen típusú üzenetet kell közzétenni. Csatlakozik a WiFi -hez és az MQTT -hez, közzéteszi az üzenetet, és kikapcsolja magát.

Kikapcsolás előtt ismét ellenőrzi a bemeneti érintkezők értékeit, hogy nem változtak -e az utolsó olvasás óta. Ennek célja az ajtó gyors kinyitása és zárása. Ha nem rendelkezik ezzel az ellenőrzéssel, akkor bizonyos esetekben előfordulhat, hogy hiányzik az ajtó bezárása, ha azt 5-6 másodpercen belül bezárják. Egy gyakorlati forgatókönyvet, amikor az ajtót körülbelül 2 másodpercen belül kinyitják és becsukják, jól érzékelteti a while hurok, amely mindaddig közzéteszi az üzeneteket, amíg az ajtó jelenlegi állapota eltér az előzőtől. Az egyetlen forgatókönyv, amely elmulaszthatja az összes nyitott/záró esemény rögzítését, az, amikor az ajtót 4-5 másodpercen belül többször kinyitják/bezárják, ami nagyon valószínűtlen eset - valószínűleg néhány gyermek játszott az ajtóval.

3. lépés: Egészségügyi ellenőrzés

Szükségem volt arra is, hogy az ESP állapot -ellenőrző üzenetet kapjon, ahol az ESP akkumulátorának töltöttségi szintjét is elküldi annak érdekében, hogy az érzékelő kézi ellenőrzés nélkül is megfelelően működjön. Ehhez az ATTiny 12 óránként WAKE_UP jelet küld. Az ATtiny kód WAKEUP_COUNT változójával konfigurálható. Ez nagyon hasznos ajtók vagy ablakok esetében, amelyeket ritkán nyitnak ki, így előfordulhat, hogy nem fogja megtudni, ha valami nincs rendben az érzékelővel vagy annak akkumulátorával.

Abban az esetben, ha nincs szüksége az állapotfelmérő funkcióra, akkor nincs szükség az ATTiny használatának teljes koncepciójára. Ebben az esetben találhat más terveket is, amelyeket emberek készítettek, ahol az ESP tápellátását MOSFET -en keresztül táplálják, és így elérheti a nulla áramfelvételt, amikor az ajtót nem működtetik. Vannak más dolgok is, amelyekre vigyázni kell, mint például a jelenlegi húzás, hogy ugyanaz legyen az ajtó nyitva és az ajtó bezárása helyzetben - erre valahol láttam egy olyan konstrukciót, amely a szokásos 2 állapot helyett 3 állapotú nádkapcsolót használt.

4. lépés: Teljesítménymérés és akkumulátor -élettartam

Megmértem az áramkör áramfelvételét, és alvás közben és környékén ~ 30uA kell. Az ATTiny adatlapjait tekintve 1-4 uA körül kell lennie a teljes áramkörnek, beleértve az LDO nyugalmi áramát is, de akkor a méréseim 30. mutatót mutatnak. A MOSFET és az LDO jelentéktelen áramot fogyaszt.

Tehát egy 800 mAh -s akkumulátornak sokáig kell tartania. Nincsenek pontos statisztikáim, de már több mint egy éve használom két ajtómon, és minden 18650-es cella, körülbelül 800 mAh-val, körülbelül 5-6 hónapig tart a főajtómon, amely kinyílik és bezár legalább napi 30 alkalommal. A tetőn lévő ajtó, amely hetente csak néhányszor nyílik, 7-8 hónapig tart.

5. lépés: Jövőbeli fejlesztések

1. Az ESP nem nyugtázza az MQTT üzenet kézbesítését. A program továbbfejleszthető, ha feliratkozik a témára, amelyben közzéteszi az üzenetet a kézbesítés megerősítésére, vagy Async MQTT könyvtárral lehet üzenetet küldeni QoS 1 -el.

2. OTA frissítés: Az ESP kód módosítható úgy, hogy a frissítéshez MQTT témát olvasson, és így OTA módba léphet a fájl fogadásához.

3. Az ESP01 lecserélhető ESP-12-re, hogy több bemeneti PIN-kódhoz férhessen hozzá, és így több érzékelőt csatlakoztathat ugyanahhoz. Ebben az esetben a 2 bites módszerrel történő kommunikáció nem lehetséges. Ezt tovább lehet fejleszteni az I2C kommunikáció megvalósításához az ATtiny és az ESP között. Ez egy kicsit bonyolult, de működőképes. Egy másik beállításban működik, ahol az ATTiny rotációs kódoló értékeket küld az ESP -nek az I2C vonalon keresztül.

4. Az áramkör figyeli az ESP belső Vcc -jét. Ha ESP12 -et használunk, akkor ezt módosíthatjuk, hogy leolvassuk az akkumulátor tényleges töltöttségi szintjét az ADC -n keresztül.

5. A jövőben ennek egy módosítását is közzéteszem, amely önálló szenzorként használható MQTT vagy bármilyen otthoni automatizálási rendszer nélkül. Az érzékelő önállóan fog működni, és indításkor telefonálni tud - természetesen ehhez internetkapcsolat szükséges.

6. És a lista folytatódik…

7. Fordított akkumulátorvédelem - KÉSZ (A készülék tényleges képei régiek, ezért nem tükrözik a MOSFET -et)

Ajánlott: