Tartalomjegyzék:
- Kellékek
- 1. lépés: Sémák és forráskód
- 2. lépés: Az áramkör működése
- 3. lépés: Egészségügyi ellenőrzés
- 4. lépés: Teljesítménymérés és akkumulátor -élettartam
- 5. lépés: Jövőbeli fejlesztések
Videó: Vezeték nélküli ajtóérzékelő - rendkívül alacsony teljesítmény: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
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
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:
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: 7 lépés
Vezeték nélküli Arduino robot a HC12 vezeték nélküli modul használatával: Hé srácok, üdv újra. Korábbi hozzászólásomban elmagyaráztam, hogy mi az a H -híd áramkör, az L293D motorvezérlő IC, a malackalapú L293D motorvezérlő IC a nagyáramú motorvezérlők vezetéséhez, és hogyan tervezheti meg és készítheti el saját L293D motorvezérlő tábláját
Távirányítású autó - Vezeték nélküli vezeték nélküli Xbox 360 vezérlővel: 5 lépés
Távirányítású autó - vezérelhető a vezeték nélküli Xbox 360 vezérlő használatával: Ezek az utasítások saját távirányítású autó létrehozásához, vezeték nélküli Xbox 360 vezérlővel vezérelhetők
Ötven méter hatótávolságú vezeték nélküli hozzáférési pont TP Link WN7200ND USB vezeték nélküli adapterrel Raspbian Stretch -en: 6 lépés
Ötven méter hatótávolságú vezeték nélküli hozzáférési pont TP Link WN7200ND USB vezeték nélküli adapterrel a Raspbian Stretch -en: A Raspberry Pi kiválóan alkalmas biztonságos vezeték nélküli hozzáférési pontok létrehozására, de nem rendelkezik jó hatótávolsággal, TP Link WN7200ND USB vezeték nélküli adaptert használtam annak kiterjesztéséhez. Szeretném megosztani, hogyan kell csinálniMiért akarok málna pi -t használni router helyett? T
DIY vezeték nélküli mikrofon vezeték nélküli gitárrendszerhez: 4 lépés
DIY Wireless Mic to Wireless Guitar System: Néztem néhány videót és néhány zenekart, és szinte közülük vezeték nélküli rendszert használ a gitáron. Megőrülök, mozogok, sétálok, és azt csinálok, amit akarnak, anélkül, hogy a zsinórt használnám, ezért arról álmodozom, hogy lesz egy .. De .. nekem ez most túl drága, ezért erre jutottam
Hackeljen be egy vezeték nélküli kaputelefont egy vezeték nélküli riasztókapcsolóba vagy be/ki kapcsolóba: 4 lépés
Hackeljen be egy vezeték nélküli kaputelefont egy vezeték nélküli riasztókapcsolóba vagy be/ki kapcsolóba: Nemrég építettem egy riasztórendszert, és telepítettem a házamba. Mágneses kapcsolókat használtam az ajtókon, és bekötöttem a padláson. Az ablakok egy másik történet, és a kemény huzalozás nem volt lehetőség. Szükségem volt egy vezeték nélküli megoldásra, és ez