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, Juli
Anonim
IoT alarm za vodu
IoT alarm za vodu

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

Korak 1: Princip rada

Princip rada
Princip rada

Alarm kao svoj mozak ima AVR ATtiny85 mikrokontroler. Uzima očitanja napona iz baterije i senzora vode i uspoređuje ih 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 visok (znatno iznad 10 MOhm), pa se osjetni pin povlači 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). Kada ATtiny85 detektira ovaj napon na osjetljivoj iglici, aktivira MOSFET za napajanje 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 ćelije. Mikrokontroler spava većinu vremena radi očuvanja baterija, s prekidima se budi radi provjere senzora 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 poplavama, 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. Tokom normalnog rada (alarm je uključen i baterije su napunjene) LED dioda treperi povremeno. Kada se otkrije prazna baterija, LED se uključuje kako bi pružio visok signal RX pinu ESP modula. Ako se otkrije voda, LED dioda baterije će se isključiti 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 kolo 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 sledeći delovi:

- 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čkom nivou (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 povezivanje 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 zasnovanim na ESP8266, ali će u tom slučaju biti dosta promjena u rasporedu)-3,3 V DC-DC pretvarač sposoban za isporuku 200 mA (500 mA rafalnih) struja pri 2,2 V ulaz. (Preporučujem https://www.canton-electronics.com/power-converter… zbog njegove izuzetno niske struje mirovanja)-Jedno 3-polno žensko zaglavlje-Dva 4-pinska ženska zaglavlja ili jedno 2x4 zaglavlje-22 AWG pune žice za senzor 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 za ograničavanje struje 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. 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 otpornika kroz 10 rupa, 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 je dvije žice od 22 AWG sa izloženim krajevima (dugim 1 cm) razmaknutim približno 1 mm jedan od drugog. 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) na sekundu ili manje, a nakon toga će struja pasti ispod 180 mA. Nakon što ESP modul završi slanje obavijesti, trenutna potrošnja će pasti na ispod 70 mA dok se zujalica 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 (vjerovatno više od godinu dana). Ako koristite neki drugi pretvarač, recimo sa strujom mirovanja 500 µA, baterije će se morati mijenjati mnogo češće.

Savjeti za montažu:

Koristite trajni marker za označavanje svih tragova i komponenti na protoboru radi lakšeg lemljenja. Preporučujem da nastavite sljedećim redoslijedom:

- SMT LED sa 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 sa otvorima, postavite ga vodoravno s zatičem u položaju I3.)

- gornji dijelovi 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 pramenovi od žice AWG22)

Korak 3: Firmware

C kod za ATtiny85

Main.c sadrži kôd koji je potrebno sastaviti i postaviti 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 sistema)

- Povezivanje ATtiny85 s Arduino Uno.

Za sastavljanje i učitavanje 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 blic: w: main.hex

Umjesto "/dev/cu.usbmodem1411" vjerojatno ćete morati umetnuti serijski port na koji je vaš Arduino povezan (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 potrošnje približno 8 sekundi. read_volt () se koristi 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 vijeka 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 se zvučnim signalom. low_batt_notification () obavještava ESP modul da je baterija pri kraju i takođe se oglašava zvučnim signalom. 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 biblioteke:

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

ESP8266 Pushover od strane tima Arduino Hannover

Prva biblioteka se povezuje sa SMTP serverom 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 platiti jednom za instaliranje aplikacije na telefon/tablet). Preuzmite obje biblioteke. 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 biblioteku putem IDE -a (Sketch -> Include Library -> Add. ZIP library).

Za programiranje ESP-01 modula možete slijediti sljedeće uputstvo: https://www.allaboutcircuits.com/projects/breadbo… Nema potrebe za gnjavažom s ponovnim lemljenjem jednog reda pinova kako 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 uzemljenje (napomena: možda ćete moći koristiti 3.3 V izlaz USB-UART adaptera umjesto pretvarača za pojačavanje, ali najvjerojatnije neće biti u mogućnosti ispisati dovoljno struje).

Korak 4: Razmatranje baterije

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

Iako je moguće smanjiti niski prag baterije u firmveru, to bi uklonilo sigurnosnu granicu i 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% ispražnjeno na 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č pojačanja najmanje 2,2 V. Međutim, složenije je kod alkalnih baterija. S parom AA baterija na 2,2-2,3 V (otvoreni krug) pri najvećim strujama očekuje se pad napona od 0,2-0,4 V. Iako sam provjerio radi li krug s preporučenim pretvaračem pojačanja sa samo 1,8 V koje se napaja pri vršnim strujama, to vjerojatno uzrokuje da izlazni napon na trenutak padne ispod vrijednosti koju predlaže Espressiff. Stoga granični prag od 2,3 V ostavlja malu sigurnosnu granicu za alkalne baterije (imajte na umu da je mjerenje napona koje vrši mikrokontroler tačan samo unutar plus ili minus nekoliko posto). Kako biste osigurali 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 se isprazni oko 70%, što je samo 5-10 postotnih bodova niže od stupnja pražnjenja pri 1,15 V po ćeliji.

NiMH i alkalne ćelije 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 garantiraju pouzdan rad ESP8266 na nižoj graničnoj tački zahvaljujući niskom unutrašnjem otporu. No, na kraju krajeva, bilo koji tip se može koristiti s određenim mjerama opreza, pa je samo pitanje osobnih preferencija.

Korak 5: Odricanje od odgovornosti

Ovo kolo je dizajnirao neprofesionalni hobist samo za hobi aplikacije. Ovaj dizajn dijeli se u dobroj namjeri, ali bez ikakvog jamstva. Koristite ga i podijelite s drugima na vlastitu odgovornost. Ponovnim stvaranjem kola slažete se da izumitelj neće biti odgovoran za bilo kakvu štetu (uključujući, ali ne ograničavajući se na oštećenje imovine i tjelesne ozljede) koja može nastati izravno ili neizravno zbog kvara ili normalne uporabe ovog kola. Ako zakoni vaše zemlje poništavaju ili zabranjuju ovo odricanje od odgovornosti, ne smijete koristiti ovaj dizajn. Ako dijelite ovaj dizajn ili modificirano kolo zasnovano na ovom dizajnu, morate priznati originalnog izumitelja navođenjem URL -a ovog uputstva.

Preporučuje se: