Obsah:

Alarm vody IoT: 5 kroků (s obrázky)
Alarm vody IoT: 5 kroků (s obrázky)

Video: Alarm vody IoT: 5 kroků (s obrázky)

Video: Alarm vody IoT: 5 kroků (s obrázky)
Video: TOP 10 Tajné funkce mobilu o kterých 90% lidí neví 2024, Červenec
Anonim
IoT vodní alarm
IoT vodní alarm

Nedávno jsem zažil zálohu kuchyňského odtoku. Kdybych v té době nebyl doma, způsobilo by to v mém bytě poškození podlahy a sádrokartonu. Naštěstí jsem si byl tohoto problému vědom a připravený nabrat vodu kbelíkem. Přemýšlel jsem o koupi povodňového alarmu. Na Amazonu jsem objevil spoustu cenově dostupných produktů, ale ty s internetovým připojením měly značné procento negativních recenzí, především kvůli problémům s proprietárními oznamovacími službami. Proto jsem se rozhodl vyrobit vlastní vodní alarm IoT, který bude používat důvěryhodné oznamovací prostředky dle mého výběru.

Krok 1: Princip činnosti

Princip činnosti
Princip činnosti

Alarm má jako mozek mikrokontrolér AVR ATtiny85. Odečte napětí z baterie a vodního senzoru a porovná je s předem definovanou hodnotou, aby detekoval přítomnost vody nebo stav vybité baterie.

Čidlo vody je jednoduše dva vodiče umístěné přibližně 1 mm od sebe. Jeden z vodičů je připojen na 3,3 V a druhý je připojen ke snímacímu kolíku na mikrokontroléru, který je také spojen se zemí přes odpor 0,5 MOhm. Normálně je odpor mezi vodiči senzoru velmi vysoký (hodně přes 10 MOhm), takže je snímací kolík vytažen až na 0 V. Pokud je však mezi vodiči voda, odpor klesne na méně než 1 MOhm, a snímací kolík vidí nějaké napětí (v mém případě asi 1,5 V). Když ATtiny85 detekuje toto napětí na snímacím pinu, aktivuje MOSFET pro zapnutí bzučáku a odešle signál probuzení do modulu ESP8266, který je zodpovědný za odesílání výstrah (e-mailové a push notifikace). Po minutě bzučení se alarm deaktivuje a lze jej resetovat pouze vypnutím a zapnutím.

Tato jednotka vytéká ze dvou alkalických nebo NiMH článků. Mikrokontrolér většinu času spí, aby šetřil baterie, a občas se probouzí, aby zkontroloval vodní senzor a napětí baterií. Pokud jsou baterie téměř vybité, mikrokontrolér probudí modul ESP8266 a odešle varování o vybití baterie. Po varování se alarm deaktivuje, aby se zabránilo nadměrnému vybití baterie.

Vzhledem k tomu, že modul ESP8266 je zodpovědný za odesílání upozornění na vybití baterie i výstrah před povodněmi, vyžaduje řídicí signál od ATiny85. Vzhledem k omezenému počtu pinů, které jsou k dispozici, je tento řídicí signál generován stejným kolíkem zodpovědným za indikaci LED baterie. Během normálního provozu (alarm je aktivován a baterie jsou nabité), LED bliká přerušovaně. Když je detekován stav vybité baterie, LED se rozsvítí, aby poskytla vysoký signál na pinu RX modulu ESP. Pokud je detekována voda, LED baterie zhasne, když je ESP8266 vzhůru.

Krok 2: Návrh a montáž

Návrh a montáž
Návrh a montáž
Návrh a montáž
Návrh a montáž
Návrh a montáž
Návrh a montáž

Obvod jsem navrhl tak, aby byl postaven na oboustranném protoboardu 4x6 cm s použitím převážně dílů SMD 0805. Uvedená schémata vycházejí z této konstrukce, ale lze ji snadno přizpůsobit komponentám s průchozími otvory (tip: pro minimalizaci prostoru pájet odpory skrz otvor svisle).

Jsou vyžadovány následující díly:

- Rezistory: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Jeden 10 µF keramický kondenzátor- Jeden logický N-kanálový MOSFET (např. RFP30N06LE nebo AO3400)- Jedna červená a jedna žlutá LED (nebo jiné barvy, pokud chcete).- Dvouvodičové šroubové svorky x 3 (nejsou nezbytně nutné, ale usnadňují připojení a odpojování periferií během testování)- hlasitý piezoelektrický bzučák, který je vhodný pro 3,3 V- mikrokontrolér ATtiny85 (verze PDIP)- 8pinový konektor PDIP pro mikrokontrolér- modul ESP-01, vstup. (Doporučuji https://www.canton-electronics.com/power-converter… kvůli jeho extrémně nízkému klidovému proudu)-Jeden 3kolíkový samičí konektor-Dva 4kolíkové zásuvkové konektory nebo jeden 2x4 konektor-22 AWG pevných vodičů pro vodní senzor- splétaný drát 22 AWG (nebo jiný typ tenkého odhaleného drátu pro vytvoření stop)

Doporučuji výše uvedené hodnoty odporů, ale většinu z nich můžete nahradit podobnými hodnotami. V závislosti na typu LED diod, které chcete použít, budete možná muset upravit hodnoty odporu omezující proud, abyste získali požadovaný jas. MOSFET může být buď průchozí, nebo SMT (SOT23). Typ MOSFET ovlivňuje pouze orientaci odporu 330 Ohm. Pokud plánujete používat tento obvod s bateriemi NiMH, doporučujeme použít pojistku PTC (např. Dimenzovanou na 1 A). U alkalických baterií to však není nutné. Tip: díly potřebné pro tento alarm lze levně zakoupit na ebay nebo aliexpress.

Kromě toho budete k programování modulu ESP-01 potřebovat prkénko, několik 10k rezistorů s průchozím otvorem, několik propojovacích kabelů typu „male-male“a „female-male“(„dupont“) a adaptér USB-UART.

Vodní senzor může být vyroben různými způsoby, ale nejjednodušší jsou dva dráty 22 AWG s odkrytými konci (1 cm dlouhými) vzdálenými přibližně 1 mm od sebe. Cílem je mít mezi kontakty senzoru odpor menší než 5 MΩ, pokud je přítomna voda.

Obvod je navržen pro maximální úsporu baterie. V monitorovacím režimu odebírá pouze 40-60 µA (s odpojenou LED diodou napájení na modulu ESP-01). Jakmile je spuštěn alarm, obvod odebírá 300–500 mA (na vstupu 2,4 V) na sekundu nebo méně a poté proud klesne pod 180 mA. Jakmile modul ESP odešle upozornění, aktuální spotřeba klesne pod 70 mA, dokud se bzučák nevypne. Poté se alarm sám deaktivuje a aktuální spotřeba bude nižší než 30 µA. Sada baterií AA tak bude schopna napájet obvod po mnoho měsíců (pravděpodobně více než rok). Pokud použijete jiný zesilovač, řekněme s klidovým proudem 500 µA, bude třeba baterie měnit mnohem častěji.

Montážní tipy:

Pro snadnější pájení použijte k označení všech stop a komponent na protoboardu trvalou značku. Doporučuji postupovat v následujícím pořadí:

- LED diody SMT na horní straně a izolované drátové můstky

-horní strana MOSFET (poznámka: pokud máte MOSFET SOT-23, umístěte jej diagonálně jako na fotografii. Pokud používáte MOSFET s průchozím otvorem, umístěte jej vodorovně s hradlovým čepem v poloze I3.)

- horní část průchozích dírek (poznámka: bzučák není připájen a nemusí být ani namontován na desku plošných spojů)

- SMT díly a stopy na zadní straně (např. jednotlivé prameny z drátu AWG22)

Krok 3: Firmware

C kód pro ATtiny85

Main.c obsahuje kód, který je třeba zkompilovat a nahrát do mikrokontroléru. Pokud se chystáte použít desku Arduino jako programátor, schéma zapojení najdete v tomto tutoriálu. Musíte dodržovat pouze následující části (ostatní ignorovat):

-Konfigurace Arduino Uno jako ISP (In-System Programming)

- Propojení ATtiny85 s Arduino Uno.

Ke kompilaci a nahrání firmwaru budete potřebovat buď CrossPack (pro Mac OS), nebo AVR toolchain (pro Windows). Ke kompilaci kódu je třeba provést následující příkaz:

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

Chcete -li nahrát firmware, spusťte následující:

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

Místo „/dev/cu.usbmodem1411“budete pravděpodobně muset vložit sériový port, ke kterému je připojeno vaše Arduino (najdete ho v Arduino IDE: Port nástroje).

Kód obsahuje více funkcí. deep_sleep () uvede mikrokontrolér do stavu velmi nízké spotřeby na přibližně 8 sekund. read_volt () se používá k měření napětí baterie a čidel. Napětí baterie je měřeno proti vnitřní referenční hodnotě napětí (2,56 V plus nebo mínus několik procent), zatímco napětí senzoru je měřeno proti Vcc = 3,3 V. Odečty jsou porovnávány s BATT_THRESHOLD a SENSOR_THRESHOLD definovanými jako 932 a 102, které odpovídají ~ 2,3 a 0,3 V. Prahovou hodnotu baterie můžete snížit, aby se prodloužila životnost baterie, ale nedoporučuje se to (podrobné informace najdete v části Pokyny k baterii).

activ_alarm () upozorní modul ESP na detekci vody a zazní bzučák. low_batt_notification () upozorní modul ESP na vybitou baterii a také zazní bzučák. Pokud si nepřejete, aby vás probudila uprostřed noci výměna baterie, odeberte „| 1 <“v low_batt_notification ().

Skica Arduino pro ESP-01

Rozhodl jsem se programovat modul ESP pomocí Arduino HAL (pokyny k nastavení najdete v odkazu). Kromě toho jsem použil následující dvě knihovny:

ESP8266 Poslat e -mail Górászem Péterem

ESP8266 Pushover od týmu Arduino Hannover

První knihovna se připojí k serveru SMTP a odešle upozornění na vaši e -mailovou adresu. Stačí vytvořit účet gmail pro váš ESP a přidat přihlašovací údaje do kódu. Druhá knihovna zasílá push notifikace prostřednictvím služby Pushover (upozornění jsou zdarma, ale za instalaci aplikace do telefonu/tabletu musíte zaplatit jednou). Stáhněte si obě knihovny. Vložte obsah knihovny Odeslat e -mail do složky skici (arduino ji vytvoří při prvním otevření skici arduino). Nainstalujte knihovnu Pushover prostřednictvím IDE (Sketch -> Include Library -> Add. ZIP library).

Chcete-li naprogramovat modul ESP-01, můžete postupovat podle následujícího tutoriálu: https://www.allaboutcircuits.com/projects/breadbo… Není třeba se obtěžovat s překódováním jedné řady kolíků, jak ukazuje průvodce-stačí použít dupont mezi ženami a muži dráty pro připojení pinů modulu k prkénku. Nezapomeňte, že převodník zesilovače a adaptér USB-UART musí sdílet uzemnění (poznámka: místo převaděče zesilovače můžete použít výstup 3,3 V adaptéru USB-UART, ale s největší pravděpodobností to nebude být schopen vydávat dostatek proudu).

Krok 4: Úvahy o baterii

Dodaný kód firmwaru je předkonfigurován tak, aby odeslal varování o vybité baterii, a vypne se při ~ 2,3 V. Tato prahová hodnota vychází z předpokladu, že jsou v sérii použity dvě baterie NiMH. Nedoporučuje se vybíjet jednotlivé články NiMH pod 1 V. Za předpokladu, že oba články mají stejnou kapacitu a charakteristiky vybíjení, budou oba odpojeny při ~ 1,15 V - v bezpečném rozsahu. Články NiMH, které se používají v mnoha vybíjecích cyklech, se však liší v kapacitě. Lze tolerovat až 30% rozdíl v kapacitě, protože by to stále vedlo k bodu odpojení článků nejnižšího napětí kolem 1 V.

I když je možné snížit prahovou hodnotu nízké baterie ve firmwaru, odstranilo by to bezpečnostní rezervu a mohlo by to mít za následek nadměrné vybití a poškození baterie, přičemž lze očekávat pouze okrajové prodloužení životnosti baterie (článek NiMH je> 85% vybito při 1,15 V).

Dalším faktorem, který je třeba vzít v úvahu, je schopnost boostovacího měniče poskytovat alespoň 3,0 V (2,5 V podle neoficiálních důkazů) při špičkovém proudu 300-500 mA na slabé baterie. Nízký vnitřní odpor NiMH baterií způsobuje při špičkových proudech jen zanedbatelný pokles 0,1 V, takže dvojice NiMH článků vybitých na 2,3 V (otevřený obvod) bude schopna poskytnout posilovači převodníku minimálně 2,2 V. S alkalickými bateriemi je to však složitější. U dvojice baterií AA s napětím 2,2 až 2,3 V (otevřený obvod) lze při špičkových proudech očekávat pokles napětí o 0,2 až 0,4 V. Přestože jsem ověřil, že obvod pracuje s doporučeným zesilovačem s podporou pouze 1,8 V dodávaným při špičkových proudech, pravděpodobně to způsobí, že výstupní napětí na okamžik klesne pod hodnotu navrhovanou espressiffem. Mezní prahová hodnota 2,3 V tedy ponechává malou bezpečnostní rezervu u alkalických baterií (mějte na paměti, že měření napětí prováděné mikrokontrolérem je přesné pouze v rozmezí plus mínus několik procent). Aby se zajistilo, že modul ESP nebude vadit, když jsou alkalické baterie slabé, doporučuji zvýšit mezní napětí na 2,4 V (#define BATT_THRESHOLD 973). Při 1,2 V (otevřený obvod) je alkalický článek vybitý přibližně ze 70%, což je pouze o 5–10 procentních bodů nižší než stupeň výboje při 1,15 V na článek.

NiMH i alkalické články mají pro tuto aplikaci výhody a nevýhody. Alkalické baterie jsou bezpečnější (v případě zkratu se nespalují) a mají mnohem nižší rychlost samovybíjení. Baterie NiMH však díky nízkému vnitřnímu odporu zaručují spolehlivý provoz ESP8266 v nižším bodě vypnutí. Ale nakonec lze oba typy použít s určitými opatřeními, takže je to jen otázka osobních preferencí.

Krok 5: Právní prohlášení

Tento obvod byl navržen neprofesionálním fandou pouze pro hobby aplikace. Tento design je sdílen v dobré víře, ale bez jakékoli záruky. Použijte jej a sdílejte s ostatními na vlastní riziko. Obnovením okruhu souhlasíte s tím, že vynálezce nebude odpovědný za žádné škody (včetně, ale nikoli pouze, snížení hodnoty majetku a zranění osob), ke kterým může dojít přímo nebo nepřímo v důsledku nesprávné funkce nebo běžného používání tohoto okruhu. Pokud zákony vaší země ruší nebo zakazují toto vzdání se odpovědnosti, nesmíte tento design používat. Pokud sdílíte tento návrh nebo upravený obvod na základě tohoto návrhu, musíte původnímu vynálezci připsat uvedení adresy URL tohoto pokynu.

Doporučuje: