Sadržaj:

IoT alarm za vodu: 5 koraka (sa slikama)
IoT alarm za vodu: 5 koraka (sa slikama)

Video: IoT alarm za vodu: 5 koraka (sa slikama)

Video: IoT alarm za vodu: 5 koraka (sa slikama)
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Srpanj
Anonim
IoT alarm za vodu
IoT alarm za vodu

Nedavno sam iskusio sigurnosno kopiranje kuhinjskog odvoda. Da tada nisam bio kod kuće, to bi prouzročilo oštećenje poda i suhozida u mom stanu. Srećom, bio sam svjestan problema i bio sam spreman izvaditi vodu kantom. Ovo me navelo na razmišljanje o kupnji alarma za poplavu. Otkrio sam dosta pristupačnih proizvoda na Amazonu, ali oni s internetskom vezom imali su značajan postotak negativnih recenzija, prvenstveno zbog problema s vlasničkim uslugama obavijesti. Zato sam odlučio napraviti svoj vlastiti IoT alarm za vodu koji će koristiti pouzdana sredstva obavijesti po mom izboru.

Korak 1: Načelo rada

Načelo rada
Načelo rada

Alarm ima AVR ATtiny85 mikrokontroler kao mozak. Uzima očitanja napona iz baterije i senzora vode te ih uspoređuje s unaprijed definiranom vrijednošću kako bi otkrio prisutnost vode ili stanje slabe baterije.

Senzor vode je jednostavno dvije žice postavljene približno 1 mm jedna od druge. Jedna od žica spojena je na 3,3 V, a druga je spojena na osjetljivi pin na mikrokontroleru, koji je također spojen na masu kroz otpornik od 0,5 MOhm. Uobičajeno, otpor između žica senzora je vrlo velik (znatno iznad 10 MOhm), pa se osjetni zatik povuče skroz do 0 V. Međutim, kada postoji voda između žica, otpor pada na manje od 1 MOhm, i osjetljivi pin vidi neki napon (u mom slučaju oko 1,5 V). Kad ATtiny85 detektira ovaj napon na osjetljivoj iglici, aktivira MOSFET za uključivanje zujalice i šalje signal za buđenje modulu ESP8266 koji je odgovoran za slanje upozorenja (e-poruka i push obavijesti). Nakon minute zujanja alarm se deaktivira i može se poništiti samo uključivanjem napajanja.

Ova jedinica radi od dvije alkalne ili NiMH stanice. Mikrokontroler spava većinu vremena radi očuvanja baterija, s prekidima se budi radi provjere osjetnika vode, kao i napona baterija. Ako su baterije prazne, mikrokontroler će probuditi modul ESP8266 kako bi poslao upozorenje o pražnjenju baterije. Nakon upozorenja alarm se deaktivira kako bi se spriječilo prekomjerno pražnjenje baterije.

Budući da je modul ESP8266 odgovoran za slanje upozorenja o niskoj napunjenosti baterije i upozorenja o poplavi, potreban mu je kontrolni signal iz ATiny85. Zbog ograničenog broja dostupnih pinova, ovaj upravljački signal generira isti pin koji je odgovoran za LED indikaciju baterije. Tijekom normalnog rada (alarm je uključen i baterije su napunjene) LED dioda treperi povremeno. Kad se otkrije prazna baterija, LED se uključuje kako bi pružio visok signal RX pinu ESP modula. Ako se detektira voda, LED dioda baterije bit će isključena dok je ESP8266 budan.

Korak 2: Dizajn i montaža

Dizajn i montaža
Dizajn i montaža
Dizajn i montaža
Dizajn i montaža
Dizajn i montaža
Dizajn i montaža

Dizajnirao sam krug za izradu dvostrane protokole 4x6 cm koristeći uglavnom 0805 SMD dijelova. Prikazane sheme temelje se na ovoj konstrukciji, ali se mogu lako prilagoditi komponentama kroz rupe (savjet: kako biste smanjili prostor, lemite otpornike kroz rupe okomito).

Potrebni su sljedeći dijelovi:

- Otpornici: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Jedan keramički kondenzator od 10 µF- Jedan N-kanalni MOSFET na logičkoj razini (npr. RFP30N06LE ili AO3400)- Jedna crvena i jedna žuta LED (ili druge boje ako želite).- Dvožilne vijčane stezaljke x 3 (nisu apsolutno je potrebno, ali olakšavaju spajanje i isključivanje periferije tijekom testiranja)- Glasno piezo zvučni signal koji je dobar za 3,3 V- ATtiny85 mikrokontroler (verzija PDIP)- 8-pinska PDIP utičnica za mikrokontroler- ESP-01 modul (može se zamijeniti drugim modulom temeljenim na ESP8266, ali će u tom slučaju biti puno promjena u rasporedu)-3,3 V DC-DC pretvarač sposoban za isporuku 200 mA (500 mA rafalnih) struja pri 2,2 V ulazni. (Preporučujem https://www.canton-electronics.com/power-converter… zbog iznimno niske struje mirovanja)-Jedno 3-polno žensko zaglavlje-Dva 4-pinska ženska zaglavlja ili jedno 2x4 zaglavlje-22 AWG pune žice za osjetnik vode- 22 AWG nasukana žica (ili druga vrsta tanke izložene žice za stvaranje tragova)

Preporučujem gore navedene vrijednosti otpornika, ali većinu njih možete zamijeniti sličnim vrijednostima. Ovisno o vrsti LED dioda koje želite koristiti, možda ćete morati prilagoditi vrijednosti otpornika koji ograničavaju struju kako biste postigli željenu svjetlinu. MOSFET može biti kroz otvor ili SMT (SOT23). Vrsta MOSFET -a utječe samo na orijentaciju otpornika od 330 Ohma. PTC osigurač (npr. Ocijenjen za 1 A) preporučuje se ako planirate koristiti ovaj krug s NiMH baterijama. Međutim, to nije potrebno s alkalnim baterijama. Savjet: dijelovi potrebni za ovaj alarm mogu se jeftino kupiti na ebayu ili aliexpressu.

Osim toga, za programiranje modula ESP-01 trebat će vam matična ploča, nekoliko 10k otpornika kroz rupe, više žica muško-muško i žensko-muško ("dupont") i USB-UART adapter.

Senzor za vodu može se izraditi na različite načine, ali najjednostavniji su dvije žice od 22 AWG s izloženim krajevima (duljine 1 cm) razmaknutima otprilike 1 mm. Cilj je imati otpor manji od 5 MΩ između kontakata senzora kada je prisutna voda.

Krug je dizajniran za maksimalnu ekonomičnost baterije. U režimu praćenja troši samo 40-60 µA (sa uklonjenom LED diodom za napajanje na modulu ESP-01). Nakon što se alarm aktivira, krug će napajati 300-500 mA (na ulazu od 2,4 V) sekundu ili manje, a nakon toga će struja pasti ispod 180 mA. Nakon što ESP modul završi s slanjem obavijesti, trenutna potrošnja padat će na ispod 70 mA dok se zvučni signal ne isključi. Tada će se alarm sam deaktivirati, a trenutna potrošnja bit će ispod 30 µA. Tako će set AA baterija moći napajati krug mnogo mjeseci (vjerojatno više od godinu dana). Ako koristite neki drugi pretvarač, recimo sa strujom mirovanja od 500 µA, baterije će se morati mijenjati mnogo češće.

Savjeti za montažu:

Pomoću trajnog markera označite sve tragove i komponente na protoboru radi lakšeg lemljenja. Preporučujem da nastavite ovim redoslijedom:

- SMT LED s gornje strane i izolirani žičani mostovi

-gornji bočni MOSFET (napomena: ako imate SOT-23 MOSFET, postavite ga dijagonalno kao na fotografiji. Ako koristite MOSFET s probijanjem, postavite ga vodoravno s zatičem u položaju I3.)

- dijelovi s gornje strane kroz rupe (napomena: zujalica nije lemljena i čak se ne mora montirati na PCB)

- SMT dijelovi i tragovi na stražnjoj strani (npr. pojedinačni niti iz žice AWG22)

Korak 3: Firmware

C kod za ATtiny85

Main.c sadrži kôd koji je potrebno sastaviti i prenijeti na mikrokontroler. Ako ćete Arduino ploču koristiti kao programer, shemu ožičenja možete pronaći u ovom vodiču. Morate slijediti samo sljedeće odjeljke (zanemarite ostalo):

-Konfiguriranje Arduino Uno kao ISP-a (programiranje unutar sustava)

- Povezivanje ATtiny85 s Arduino Uno.

Za sastavljanje i prijenos firmvera trebat će vam CrossPack (za Mac OS) ili AVR lanac alata (za Windows). Za sastavljanje koda potrebno je izvršiti sljedeću naredbu:

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

Da biste učitali firmver, pokrenite sljedeće:

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

Umjesto "/dev/cu.usbmodem1411" vjerojatno ćete morati umetnuti serijski port na koji je spojen vaš Arduino (možete ga pronaći u Arduino IDE -u: Port za alate).

Kod sadrži više funkcija. deep_sleep () čini da mikrokontroler ulazi u stanje vrlo niske snage približno 8 sekundi. read_volt () koristi se za mjerenje napona baterije i senzora. Napon baterije mjeri se prema referentnom internom naponu (2,56 V plus ili minus nekoliko posto) dok se napon senzora mjeri prema Vcc = 3,3 V. Očitavanja se uspoređuju s BATT_THRESHOLD i SENSOR_THRESHOLD definiranim kao 932 i 102, što odgovara ~ 2,3 i 0,3 V. Možda ćete moći smanjiti vrijednost praga baterije radi poboljšanja trajanja baterije, ali se to ne preporučuje (za detaljne informacije pogledajte razmatranja o bateriji).

enable_alarm () obavještava ESP modul o otkrivanju vode i oglašava zvučni signal. low_batt_notification () obavještava ESP modul da je baterija pri kraju i također oglašava zvučni signal. Ako ne želite da se probudite usred noći radi zamjene baterije, uklonite "| 1 <" u low_batt_notification ().

Arduino skica za ESP-01

Odlučio sam programirati ESP modul pomoću Arduino HAL -a (slijedite vezu za upute za postavljanje). Osim toga, koristio sam sljedeće dvije knjižnice:

ESP8266 Pošalji e -poruku Górász Péter

ESP8266 Pushover od strane tima Arduino Hannover

Prva biblioteka povezuje se s SMTP poslužiteljem i šalje upozorenje na vašu adresu e -pošte. Samo stvorite gmail račun za svoj ESP i dodajte vjerodajnice kodu. Druga biblioteka šalje push obavijesti putem usluge Pushover (obavijesti su besplatne, ali morate jednom platiti za instaliranje aplikacije na telefon/tablet). Preuzmite obje knjižnice. Stavite sadržaj biblioteke za slanje e -pošte u mapu sa skicama (arduino će je stvoriti kada prvi put otvorite arduino skicu). Instalirajte Pushover knjižnicu putem IDE -a (Sketch -> Include Library -> Add. ZIP library).

Za programiranje modula ESP-01 slijedite sljedeće uputstvo: https://www.allaboutcircuits.com/projects/breadbo… Ne morate se zamarati ponovnim lemljenjem jednog reda igala kao što je prikazano u vodiču-samo upotrijebite žensko-muški dupont žice za spajanje pinova modula na matičnu ploču. Ne zaboravite da pretvarač pojačanja i USB-UART adapter moraju dijeliti masu (napomena: možda ćete umjesto pretvarača za pojačanje moći koristiti 3,3 V izlaz USB-UART adaptera, ali najvjerojatnije neće moći izlaziti dovoljno struje).

Korak 4: Razmatranja baterije

Isporučeni kôd firmvera unaprijed je konfiguriran za slanje upozorenja o pražnjenju baterije i isključivanje na ~ 2,3 V. Taj se prag temelji na pretpostavci da se dvije NiMH baterije koriste u seriji. Ne preporučuje se ispuštanje bilo koje pojedinačne NiMH ćelije ispod 1 V. Pod pretpostavkom da obje ćelije imaju jednaki kapacitet i karakteristike pražnjenja, obje će biti odsječene na ~ 1,15 V - što je unutar sigurnog raspona. Međutim, NiMH stanice koje su bile u uporabi tijekom mnogih ciklusa pražnjenja imaju tendenciju da se razlikuju po kapacitetu. Može se tolerirati do 30% razlike u kapacitetu jer bi to i dalje rezultiralo najnižim naponom granične točke ćelije oko 1 V.

Iako je moguće smanjiti niski prag baterije u firmveru, to bi uklonilo sigurnosnu granicu, a moglo bi dovesti do prekomjernog pražnjenja i oštećenja baterije, dok se očekuje samo neznatno povećanje trajanja baterije (NiMH ćelija je> 85% prazni pri 1,15 V).

Drugi faktor koji treba uzeti u obzir je sposobnost pretvarača pojačanja da daje najmanje 3,0 V (2,5 V prema anegdotskim dokazima) pri vršnoj struji od 300-500 mA na niskim baterijama. Nizak unutarnji otpor NiMH baterija uzrokuje samo zanemariv pad od 0,1 V pri vršnim strujama, pa će par NiMH ćelija ispražnjenih na 2,3 V (otvoreni krug) moći napajati pretvarač za pojačanje najmanje 2,2 V. Međutim, složenije je s alkalnim baterijama. S parom AA baterija na 2,2-2,3 V (otvoreni krug) pri vršnim strujama očekuje se pad napona od 0,2-0,4 V. Premda sam provjerio radi li krug s preporučenim pretvaračem pojačanja koji ima samo 1.8 V pri najvećim strujama, to vjerojatno uzrokuje da izlazni napon na trenutak padne ispod vrijednosti koju predlaže Espressiff. Tako granični prag od 2,3 V ostavlja malu sigurnosnu granicu s alkalnim baterijama (imajte na umu da je mjerenje napona koje vrši mikrokontroler točno samo unutar plus ili minus nekoliko posto). Kako bi se osiguralo da ESP modul ne kvari kada su alkalne baterije prazne, preporučujem povećanje graničnog napona na 2,4 V (#define BATT_THRESHOLD 973). Pri 1,2 V (otvoreni krug) alkalna ćelija ispušta se oko 70%, što je samo 5-10 postotnih bodova niže od stupnja pražnjenja pri 1,15 V po ćeliji.

NiMH i alkalne stanice imaju prednosti i nedostatke za ovu primjenu. Alkalne baterije su sigurnije (ne zapale se ako su u kratkom spoju) i imaju mnogo nižu stopu samopražnjenja. Međutim, NiMH baterije jamče pouzdan rad ESP8266 na nižoj graničnoj točki zahvaljujući niskom unutarnjem otporu. No, u konačnici, bilo koja se vrsta može koristiti s određenim mjerama opreza, pa je samo pitanje osobnih preferencija.

Korak 5: Odricanje od odgovornosti

Ovaj sklop dizajnirao je neprofesionalni hobist samo za hobi aplikacije. Ovaj se dizajn dijeli u dobroj vjeri, ali bez ikakvog jamstva. Koristite ga i dijelite s drugima na vlastitu odgovornost. Ponovnim stvaranjem kruga slažete se da izumitelj neće biti odgovoran za bilo kakvu štetu (uključujući, ali ne ograničavajući se na umanjenje imovine i osobne ozljede) koja može nastati izravno ili neizravno zbog kvara ili normalne uporabe ovog kruga. Ako zakoni vaše zemlje poništavaju ili zabranjuju ovo odricanje od odgovornosti, ne smijete koristiti ovaj dizajn. Ako dijelite ovaj dizajn ili izmijenjeni sklop temeljen na ovom dizajnu, morate priznati izvornog izumitelja navođenjem URL -a ove upute.

Preporučeni: