Tartalomjegyzék:

IoT vízriasztás: 5 lépés (képekkel)
IoT vízriasztás: 5 lépés (képekkel)

Videó: IoT vízriasztás: 5 lépés (képekkel)

Videó: IoT vízriasztás: 5 lépés (képekkel)
Videó: Что Такое IoT (Internet Of Things) ? 2024, Július
Anonim
IoT vízriasztás
IoT vízriasztás

Nemrég tapasztaltam a konyhai lefolyó biztonsági mentését. Ha nem voltam otthon akkor, padló és gipszkarton kárt okozott volna a lakásomban. Szerencsére tisztában voltam a problémával, és kész voltam vödörrel kivenni a vizet. Ez elgondolkodtatott azon, hogy árvízriasztót vásároljak. Rengeteg megfizethető terméket fedeztem fel az Amazonon, de az internetkapcsolattal rendelkező termékek jelentős százalékban kaptak negatív véleményeket, elsősorban a saját értesítési szolgáltatásokkal kapcsolatos problémák miatt. Ezért úgy döntöttem, hogy saját IoT vízriasztót készítek, amely az általam választott megbízható értesítési eszközöket használja.

1. lépés: Működési elv

Működés elve
Működés elve

A riasztó agya egy AVR ATtiny85 mikrokontroller. Feszültség-leolvasást végez az akkumulátorból és a vízérzékelőből, és összehasonlítja azokat az előre meghatározott értékkel, hogy érzékelje a víz jelenlétét vagy az alacsony elemállapotot.

A vízérzékelő egyszerűen két vezeték, körülbelül 1 mm -re egymástól. Az egyik vezeték 3,3 V feszültségre van kötve, a másik pedig a mikrokontroller érzékelőcsapjához, amely szintén 0,5 MOhm ellenálláson keresztül csatlakozik a földhöz. Általában az érzékelő vezetékei közötti ellenállás nagyon magas (jóval több mint 10 MOhm), ezért az érzékelőcsapot teljesen le kell húzni 0 V -ra. Ha azonban a vezetékek között víz van, az ellenállás 1 MOhm alá csökken, és az érzékelő csap lát valamilyen feszültséget (az én esetemben kb. 1,5 V). Amikor az ATtiny85 észleli ezt a feszültséget az érzékelő tüskén, aktivál egy MOSFET-et a zümmögő bekapcsolásához, és elküldi az ébresztő jelet az ESP8266 modulnak, amely felelős a riasztások (e-mail és push értesítések) küldéséért. Egy perces zümmögés után a riasztó hatástalanodik, és csak bekapcsolással kapcsolható vissza.

Ez az egység két alkáli vagy NiMH cellából fut le. A mikrokontroller a legtöbb időt alszik, hogy kímélje az elemeket, időnként felébred, hogy ellenőrizze a vízérzékelőt és az elemek feszültségét. Ha az elemek lemerültek, a mikrokontroller felébreszti az ESP8266 modult, és figyelmeztetést küld az alacsony töltöttségi szintre. A figyelmeztetés után a riasztó hatástalanítva van, hogy megakadályozza az akkumulátor lemerülését.

Mivel az ESP8266 modul felelős az alacsony töltöttségi figyelmeztetések és az árvízriasztások küldéséért, vezérlőjelet igényel az ATiny85 -től. A rendelkezésre álló csapok korlátozott száma miatt ezt a vezérlőjelet ugyanaz a csap generálja, amely felelős az akkumulátor LED -jelzéséért. Normál működés közben (a riasztó élesítve van, és az akkumulátorok fel vannak töltve), a LED időnként villog. Ha az akkumulátor töltöttségi szintjét észleli, a LED bekapcsol, hogy magas jelet küldjön az ESP modul RX érintkezőjének. Ha vizet észlel, az akkumulátor LED -je kialszik, amíg az ESP8266 ébren van.

2. lépés: Tervezés és összeszerelés

Tervezés és összeszerelés
Tervezés és összeszerelés
Tervezés és összeszerelés
Tervezés és összeszerelés
Tervezés és összeszerelés
Tervezés és összeszerelés

Az áramkört kétoldalas 4x6 cm-es protoboardra terveztem, többnyire 0805 SMD alkatrészek felhasználásával. A bemutatott vázlatok ezen a felépítésen alapulnak, de könnyen illeszthetők az átmenő lyukú alkatrészekhez (tipp: a hely minimalizálása érdekében, az átmenő lyukak ellenállásait függőlegesen forrasztják).

A következő részekre van szükség:

- Ellenállások: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Egy 10 µF kerámia kondenzátor- Egy logikai szintű N-csatornás MOSFET (pl. RFP30N06LE vagy AO3400)- Egy piros és egy sárga LED (vagy más színű, ha úgy tetszik).- Kétvezetékes csavaros csatlakozó x 3 (ezek nem feltétlenül szükséges, de megkönnyítik a periféria csatlakoztatását és leválasztását a tesztelés során)- Hangos piezo-zümmögő, amely jó 3,3 V feszültséghez- ATtiny85 mikrokontroller (PDIP verzió)- 8 tűs PDIP aljzat a mikrovezérlőhöz- ESP-01 modul (helyettesíthető egy másik ESP8266-alapú modullal, de ebben az esetben sok változás lesz az elrendezésben)-3,3 V DC-DC erősítő átalakító, amely 2,2 V-os 200 mA-es (500 mA-es sorozatú) áramot képes leadni. bemenet. (Ajánlom a https://www.canton-electronics.com/power-converter… -t az ultra alacsony nyugalmi árama miatt)-Egy 3 tűs női fej- Két 4 tűs női fej vagy egy 2x4 fejléc-22 AWG szilárd vezeték a vízérzékelőhöz- 22 AWG sodrott huzal (vagy más típusú vékony, szabad huzal nyomok létrehozásához)

Javaslom a fent felsorolt ellenállásértékeket, de a legtöbbet helyettesítheti hasonló értékekkel. A használni kívánt LED-ek típusától függően előfordulhat, hogy a kívánt fényerő eléréséhez módosítani kell az áramkorlátozó ellenállás értékeit. A MOSFET lehet átmenő furat vagy SMT (SOT23). A MOSFET típusa csak a 330 ohmos ellenállás irányát befolyásolja. PTC biztosíték (pl. 1 A névleges) ajánlott, ha ezt az áramkört NiMH akkumulátorokkal tervezi használni. Erre azonban nincs szükség alkáli elemekkel. Tipp: az ehhez a riasztáshoz szükséges alkatrészek olcsón megvásárolhatók az ebayről vagy az aliexpressről.

Ezenkívül szüksége lesz egy kenyérsütő deszkára, több átmenő 10 k ellenállásra, több férfi-férfi és női-férfi jumper ("dupont") vezetékre és egy USB-UART adapterre az ESP-01 modul programozásához.

A vízérzékelő többféle módon is elkészíthető, de a legegyszerűbb két 22 AWG vezeték, amelyeknek a végei (1 cm hosszúak) körülbelül 1 mm -re vannak egymástól. A cél az, hogy 5 MΩ -nál kisebb ellenállás legyen az érzékelő érintkezői között, ha víz van jelen.

Az áramkört a maximális akkumulátor -megtakarításra tervezték. Csak 40-60 µA-t vesz fel a felügyeleti rendszerben (az ESP-01 modulon lévő tápellátás LED eltávolításával). A riasztás bekapcsolása után az áramkör 300-500 mA-t (2,4 V-os bemenetnél) húz le egy másodpercig vagy kevesebb ideig, majd ezt követően az áram 180 mA alá csökken. Miután az ESP modul befejezte az értesítések küldését, az áramfelvétel 70 mA alá csökken, amíg a hangjelző ki nem kapcsol. Ekkor a riasztó hatástalanítja magát, és az áramfelvétel 30 µA alatt lesz. Így egy sor AA elemmel több hónapig (valószínűleg több mint egy évig) lehet táplálni az áramkört. Ha más erősítő átalakítót használ, például 500 µA nyugalmi áram mellett, az elemeket sokkal gyakrabban kell cserélni.

Összeszerelési tippek:

Használjon állandó jelölőt a protoboard összes nyomának és alkatrészének feliratozásához a könnyebb forrasztás érdekében. Javaslom, hogy a következő sorrendben folytassa:

- felső oldali SMT LED -ek és szigetelt dróthidak

-felső oldali MOSFET (megjegyzés: ha SOT-23 MOSFET-je van, helyezze átlósan, mint a képen. Ha átmenő lyukú MOSFET-et használ, helyezze vízszintesen, a kaputűvel az I3 helyzetbe.)

- a felső oldalon lévő lyukrészek (megjegyzés: a zümmögő nincs forrasztva, és nem is kell a NYÁK -ra szerelni)

- hátoldali SMT alkatrészek és nyomok (pl. egyes szálak az AWG22 huzalból)

3. lépés: Firmware

Az ATtiny85 C kódja

A Main.c tartalmazza a kódot, amelyet le kell fordítani és fel kell tölteni a mikrokontrollerre. Ha Arduino táblát fog használni programozóként, ebben az oktatóanyagban megtalálja a kapcsolási rajzot. Csak a következő szakaszokat kell követnie (a többit figyelmen kívül hagyja):

-Az Arduino Uno konfigurálása internetszolgáltatóként (rendszeren belüli programozás)

- Az ATtiny85 csatlakoztatása az Arduino Uno -val.

A firmware összeállításához és feltöltéséhez vagy CrossPack (Mac OS), vagy AVR toolchain (Windows) szükséges. A kód fordításához a következő parancsot kell végrehajtani:

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j.data -O ihex main.elf main.hex

A firmware feltöltéséhez futtassa a következőt:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

A "/dev/cu.usbmodem1411" helyett valószínűleg be kell illesztenie azt a soros portot, amelyhez az Arduino csatlakozik (az Arduino IDE: Tools Portban található).

A kód több funkciót tartalmaz. A deep_sleep () segítségével a mikrokontroller nagyon alacsony fogyasztású állapotba lép körülbelül 8 másodpercre. A read_volt () az akkumulátor és az érzékelő feszültségének mérésére szolgál. Az akkumulátor feszültségét a belső feszültségreferencia alapján mérik (2,56 V plusz vagy mínusz néhány százalék), míg az érzékelő feszültségét Vcc = 3,3 V ellenében mérik. ~ 2,3 és 0,3 V. Lehetséges, hogy csökkentheti az akkumulátor küszöbértékét az akkumulátor élettartamának növelése érdekében, de ez nem ajánlott (részletes információért lásd az Akkumulátorra vonatkozó szempontokat).

Az activ_alarm () értesíti az ESP modult a vízérzékelésről, és megszólaltatja a csengőt. low_batt_notification () értesíti az ESP modult, hogy lemerült az akkumulátor, és hangjelzést is ad. Ha nem szeretné, hogy az éjszaka közepén felébresszék az elem cseréjéhez, távolítsa el az "| 1 <" elemet a low_batt_notification () mezőből.

Arduino vázlat az ESP-01 számára

Úgy döntöttem, hogy az ESP modult az Arduino HAL segítségével programozom (kövesse a beállítási utasításokat). Ezen kívül a következő két könyvtárat használtam:

ESP8266 Górász Péter e -mail küldése

ESP8266 Pushover az Arduino Hannover csapatától

Az első könyvtár csatlakozik egy SMTP szerverhez, és figyelmeztetést küld az e -mail címére. Csak hozzon létre egy Gmail -fiókot az ESP -hez, és adja hozzá a hitelesítő adatokat a kódhoz. A második könyvtár push értesítéseket küld a Pushover szolgáltatáson keresztül (az értesítések ingyenesek, de egyszer fizetnie kell az alkalmazás telefonra/táblagépre történő telepítéséhez). Töltse le mindkét könyvtárat. Tegye az E -mail küldése könyvtár tartalmát a vázlatmappájába (az arduino létrehozza azt az arduino vázlat első megnyitásakor). Telepítse a Pushover könyvtárat az IDE -n keresztül (Sketch -> Include Library -> Add. ZIP library).

Az ESP-01 modul programozásához kövesse az alábbi oktatóanyagot: https://www.allaboutcircuits.com/projects/breadbo… Nem kell bajlódnia egy sor tű újraforrasztásával, ahogy az útmutatóban látható-csak nő-férfi dupontot használjon vezetékek a modul csapjainak a kenyértáblához való csatlakoztatásához. Ne felejtse el, hogy a boost konverternek és az USB-UART adapternek meg kell osztoznia a földön (megjegyzés: előfordulhat, hogy az USB-UART adapter 3,3 V-os kimenetét használhatja a boost konverter helyett, de valószínűleg nem elegendő áramot tudjon kiadni).

4. lépés: Az akkumulátorra vonatkozó szempontok

A mellékelt firmware -kód előre beállított, hogy figyelmeztetést küldjön az alacsony töltöttségi szintről, és leáll ~ 2,3 V. Nem ajánlott egyetlen NiMH cella 1 V alatti lemerítése. Feltételezve, hogy mindkét cella azonos kapacitású és kisülési jellemzőkkel rendelkezik, mindkettő ~ 1,15 V feszültség mellett lekapcsol - a biztonságos tartományon belül. A sok kisülési ciklusban használt NiMH cellák azonban kapacitásukban eltérnek. Akár 30% -os kapacitáskülönbség is elviselhető, mivel ez továbbra is a legalacsonyabb feszültségű cella-levágási pontot eredményezné 1 V körül.

Bár a firmware-ben csökkenteni lehet az alacsony akkumulátor küszöbértéket, ez eltávolítaná a biztonsági tartalékot, és az akkumulátor túltöltését és károsodását okozhatná, miközben az akkumulátor élettartamának csak csekély növekedése várható (NiMH cella> 85% kisül 1,15 V -on).

Egy másik tényező, amelyet figyelembe kell venni, az, hogy a boost konverter képes legalább 3,0 V-ot (anekdotikus bizonyítékok szerint 2,5 V-ot) biztosítani 300-500 mA csúcsáram mellett alacsony akkumulátorok esetén. A NiMH akkumulátorok alacsony belső ellenállása csak elhanyagolható 0,1 V -os csökkenést okoz a csúcsáramoknál, így egy pár NiMH cella, amely 2,3 V -ra (nyitott áramkör) kisül, képes lesz legalább 2,2 V feszültséget biztosítani a boost konverternek. Az alkáli elemekkel azonban bonyolultabb a helyzet. 2,2-2,3 V (nyitott áramkör) feszültségű pár AA elem esetén 0,2-0,4 V feszültségcsökkenésre kell számítani a csúcsáramoknál. Annak ellenére, hogy ellenőriztem, hogy az áramkör az ajánlott erősítő átalakítóval működik -e, 1,8 V -os csúcsáram mellett, ez valószínűleg azt eredményezi, hogy a kimeneti feszültség pillanatnyilag az Espressiff által javasolt érték alá süllyed. Így a 2,3 V-os küszöbérték kevés biztonsági tartalékot hagy az alkáli elemeknél (ne feledje, hogy a mikrokontroller által végzett feszültségmérés csak plusz vagy mínusz néhány százalékon belül pontos). Annak érdekében, hogy az ESP modul ne hibásodjon meg, ha az alkáli elemek alacsonyak, javaslom, hogy növelje a lekapcsolási feszültséget 2,4 V-ra (#define BATT_THRESHOLD 973). 1,2 V (nyitott áramkör) esetén az alkáli cella körülbelül 70% -ban kisül, ami csak 5-10 százalékponttal alacsonyabb, mint a kisütés mértéke cellánként 1,15 V-nál.

Mind a NiMH, mind az alkáli celláknak vannak előnyei és hátrányai ehhez az alkalmazáshoz. Az alkáli elemek biztonságosabbak (rövidzárlat esetén nem gyulladnak ki), és sokkal alacsonyabb az önkisülésük. A NiMH akkumulátorok azonban alacsony belső ellenállásuknak köszönhetően garantálják az ESP8266 megbízható működését alacsonyabb határértéknél. De végső soron bármelyik típus használható bizonyos óvintézkedésekkel, tehát ez csak személyes preferencia kérdése.

5. lépés: Jogi nyilatkozat

Ezt az áramkört nem professzionális hobbi tervezte, csak hobbi alkalmazásokhoz. Ezt a kialakítást jóhiszeműen megosztják, de semmilyen garancia nélkül. Használja és ossza meg másokkal saját felelősségére. Az áramkör újbóli létrehozásával Ön elfogadja, hogy a feltalálót nem terheli felelősség semmilyen kárért (beleértve, de nem kizárólagosan az eszközök értékvesztését és személyi sérülést), amelyek közvetlenül vagy közvetve az áramkör hibás működése vagy szokásos használata miatt merülhetnek fel. Ha az ország törvényei semmissé teszik vagy tiltják ezt a felelősség alóli mentességet, akkor nem használhatja ezt a mintát. Ha megosztja ezt a konstrukciót vagy ezen a konstrukción alapuló módosított áramkört, akkor az eredeti feltalálót kell jóváírnia az utasítás utasításának URL -címének megadásával.

Ajánlott: