Kazalo:

IoT alarm za vodo: 5 korakov (s slikami)
IoT alarm za vodo: 5 korakov (s slikami)

Video: IoT alarm za vodo: 5 korakov (s slikami)

Video: IoT alarm za vodo: 5 korakov (s slikami)
Video: НЕ ВЗДУМАЙ снимать аккумулятор с машины. Делай это ПРАВИЛЬНО ! 2024, Julij
Anonim
IoT vodni alarm
IoT vodni alarm

Pred kratkim sem doživel varnostno kopiranje kuhinjskega odtoka. Če ne bi bil takrat doma, bi to povzročilo poškodbe tal in suhozidov v mojem stanovanju. Na srečo sem se zavedal težave in sem bil pripravljen zajemati vodo z vedrom. To me je spravilo v razmišljanje o nakupu alarma za poplavo. Na Amazonu sem odkril veliko cenovno dostopnih izdelkov, toda tisti z internetno povezavo so imeli precejšen odstotek negativnih ocen, predvsem zaradi težav z lastniškimi storitvami obveščanja. Zato sem se odločil, da naredim lasten alarm za vodo IoT, ki bi uporabljal zaupanja vredna sredstva obveščanja po moji izbiri.

1. korak: Načelo delovanja

Načelo delovanja
Načelo delovanja

Alarm ima kot možgane mikrokrmilnik AVR ATtiny85. Odčita vrednosti napetosti iz akumulatorja in senzorja vode ter jih primerja z vnaprej določeno vrednostjo, da zazna prisotnost vode ali stanje prazne baterije.

Senzor za vodo sta preprosto dve žici, nameščeni približno 1 mm narazen. Ena od žic je priključena na 3,3 V, druga pa na zaznavalni zatič na mikrokrmilniku, ki je prav tako povezan z ozemljitvijo preko upora 0,5 MOhm. Običajno je upor med žicami senzorja zelo visok (precej nad 10 MOhm), zato je senzorski zatič potegnjen vse do 0 V. Če pa je med žicami prisotna voda, upor pade na manj kot 1 MOhm, in zaznavalni zatič vidi nekaj napetosti (v mojem primeru približno 1,5 V). Ko ATtiny85 zazna to napetost na zaznavalnem zatiču, aktivira MOSFET za vklop brenčalnika in pošlje signal za prebujanje v modul ESP8266, ki je odgovoren za pošiljanje opozoril (e-poštna in potisna obvestila). Po minuti brenčanja je alarm razorožen in ga je mogoče ponastaviti le z vklopom napajanja.

Ta enota deluje iz dveh alkalnih ali NiMH celic. Mikrokrmilnik večino časa spi, da ohrani baterije, občasno se zbudi, da preveri senzor vode in napetost baterij. Če so baterije prazne, mikrokrmilnik prebudi modul ESP8266 in pošlje opozorilo o nizki bateriji. Po opozorilu se alarm izklopi, da se prepreči prekomerno praznjenje baterije.

Ker je modul ESP8266 odgovoren za pošiljanje opozoril o nizki bateriji in opozorila o poplavah, zahteva nadzorni signal iz ATiny85. Zaradi omejenega števila razpoložljivih zatičev ta kontrolni signal generira isti pin, ki je odgovoren za LED indikacijo baterije. Med normalnim delovanjem (alarm je aktiviran in baterije napolnjene) LED utripa občasno. Ko se zazna nizko stanje baterije, se LED prižge, da zagotovi visok signal na RX pin modula ESP. Če zazna vodo, LED dioda baterije ne sveti, ko je ESP8266 buden.

2. korak: Oblikovanje in montaža

Oblikovanje in montaža
Oblikovanje in montaža
Oblikovanje in montaža
Oblikovanje in montaža
Oblikovanje in montaža
Oblikovanje in montaža

Zasnoval sem vezje za dvostransko 4x6 cm protoboard z uporabo večinoma 0805 SMD delov. Predstavljene sheme temeljijo na tej konstrukciji, vendar jih je mogoče enostavno prilagoditi komponentam skozi luknje (namig: za čim manj prostora, navpično spajkajte upornike skozi luknje).

Potrebni so naslednji deli:

- upori: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - en 10 µF keramični kondenzator- en N-kanalni MOSFET na logični ravni (npr. RFP30N06LE ali AO3400)- ena rdeča in ena rumena LED (ali druge barve, če želite).- dvožični vijačni spojni priključki x 3 (niso nujno, vendar med preskušanjem olajšajo priključitev in odklop periferije)- glasen piezo brenčalec, primeren za 3,3 V- mikrokrmilnik ATtiny85 (različica PDIP)- 8-polna vtičnica PDIP za mikrokrmilnik- modul ESP-01 (lahko ga nadomestimo z drugim modulom, ki temelji na ESP8266, vendar bo v tem primeru veliko sprememb v postavitvi)-3.3 V DC-DC ojačevalni pretvornik, ki lahko oddaja 200 mA (500 mA burst) tokov pri 2,2 V vnos. (Priporočam https://www.canton-electronics.com/power-converter… zaradi izjemno nizkega toka mirovanja)-en 3-polni ženski priključek-dva 4-polna ženska priključka ali ena glava 2x4-22 polnih žic AWG za senzor vode- 22 AWG žica (ali druga vrsta tanke izpostavljene žice za ustvarjanje sledi)

Priporočam zgoraj navedene vrednosti upora, vendar jih lahko večino zamenjate za podobne vrednosti. Odvisno od vrste LED, ki jih želite uporabiti, boste morda morali prilagoditi vrednosti upora, ki omejujejo tok, da dosežete želeno svetlost. MOSFET je lahko skozi luknjo ali SMT (SOT23). Vrsta MOSFET -a vpliva le na orientacijo upora 330 Ohmov. Če nameravate to vezje uporabljati z NiMH baterijami, priporočamo varovalko PTC (npr. Ocenjeno na 1 A). Pri alkalnih baterijah pa to ni potrebno. Nasvet: dele, potrebne za ta alarm, lahko poceni kupite na ebayu ali aliexpressu.

Poleg tega boste za programiranje modula ESP-01 potrebovali ploščico, več 10k uporov skozi luknje, več žic moški-samica in ženska-moški ("dupont") in adapter USB-UART.

Senzor za vodo je mogoče izdelati na različne načine, najpreprostejši pa sta dve žici 22 AWG z odprtimi konci (dolžine 1 cm), ki sta na razdalji približno 1 mm narazen. Cilj je, da je med kontakti senzorja med prisotnostjo vode manj kot 5 MΩ upor.

Vezje je zasnovano za največjo porabo baterije. V režimu spremljanja porabi le 40-60 µA (z odstranjeno LED za napajanje na modulu ESP-01). Ko se sproži alarm, bo vezje za sekundo ali manj porabilo 300-500 mA (pri vhodu 2,4 V), nato pa bo tok padel pod 180 mA. Ko ESP modul konča s pošiljanjem obvestil, bo trenutna poraba padla pod 70 mA, dokler se zvočni signal ne izklopi. Nato se alarm sam razoroži in trenutna poraba bo manjša od 30 µA. Tako bo niz baterij AA lahko napajal vezje več mesecev (verjetno več kot eno leto). Če uporabljate drug ojačevalni pretvornik, recimo pri mirujočem toku 500 µA, bo treba baterije menjati veliko pogosteje.

Nasveti za montažo:

Za lažje spajkanje uporabite trajni marker za označevanje vseh sledi in komponent na protoboardu. Priporočam, da nadaljujete v naslednjem vrstnem redu:

- LED na vrhu SMT in izolirani žični mostovi

-MOSFET na zgornji strani (opomba: če imate MOTFET SOT-23, ga postavite diagonalno, kot je na fotografiji. Če uporabljate MOSFET s skoznjo luknjo, ga postavite vodoravno z zatičem v položaju I3.)

- zgornji deli skozi odprtine (opomba: zvočni signal ni spajkan in ga niti ni treba namestiti na tiskano vezje)

- deli in sledi SMT na hrbtni strani (npr. posamezni prameni iz žice AWG22)

3. korak: Vdelana programska oprema

Koda C za ATtiny85

Main.c vsebuje kodo, ki jo je treba sestaviti in naložiti v mikrokrmilnik. Če boste kot programer uporabljali ploščo Arduino, lahko v tej vadnici najdete shemo ožičenja. Upoštevati morate le naslednje razdelke (ostalo prezrite):

-Konfiguriranje Arduino Uno kot ponudnika internetnih storitev (programiranje v sistemu)

- Povezovanje ATtiny85 z Arduino Uno.

Za sestavljanje in nalaganje vdelane programske opreme potrebujete CrossPack (za Mac OS) ali orodno verigo AVR (za Windows). Za sestavljanje kode je treba izvesti naslednji ukaz:

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

Če želite naložiti vdelano programsko opremo, zaženite naslednje:

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

Namesto "/dev/cu.usbmodem1411" boste verjetno morali vstaviti serijska vrata, na katera je povezan vaš Arduino (najdete ga v Arduino IDE: Orodja Port).

Koda vsebuje več funkcij. deep_sleep () povzroči, da mikrokrmilnik za približno 8 sekund vstopi v stanje zelo nizke porabe. read_volt () se uporablja za merjenje napetosti baterije in senzorja. Napetost akumulatorja se meri glede na referenco notranje napetosti (2,56 V plus ali minus nekaj odstotkov), medtem ko se napetost senzorja meri v Vcc = 3,3 V. Odčitki se primerjajo z BATT_THRESHOLD in SENSOR_THRESHOLD, opredeljenima kot 932 oziroma 102, kar ustreza ~ 2,3 in 0,3 V. Morda boste lahko zmanjšali mejno vrednost baterije za podaljšanje življenjske dobe baterije, vendar to ni priporočljivo (za podrobnejše informacije glejte poglavje Baterija).

enable_alarm () obvesti modul ESP o zaznavanju vode in oglasi zvočni signal. low_batt_notification () obvesti modul ESP, da je baterija skoraj prazna, in oglasi tudi zvočni signal. Če ne želite, da vas sredi noči zbudi, da zamenjate baterijo, odstranite "| 1 <" v nizkem_batt_notification ().

Skica Arduino za ESP-01

Odločil sem se za programiranje modula ESP z uporabo Arduino HAL (sledite povezavi za navodila za nastavitev). Poleg tega sem uporabil naslednje dve knjižnici:

ESP8266 Pošlji e -pošto avtorja Górász Péter

ESP8266 Pushover ekipe Arduino Hannover

Prva knjižnica se poveže s strežnikom SMTP in pošlje opozorilo na vaš e -poštni naslov. Ustvarite gmail račun za svoj ESP in v kodo dodajte poverilnice. Druga knjižnica pošilja potisna obvestila prek storitve Pushover (obvestila so brezplačna, vendar morate za namestitev aplikacije v telefon/tablični računalnik plačati enkrat). Prenesite obe knjižnici. Vstavite vsebino knjižnice Pošlji e -pošto v mapo s skicami (arduino jo bo ustvaril, ko prvič odprete skico arduino). Knjižnico Pushover namestite prek IDE (Sketch -> Include Library -> Add. ZIP library).

Za programiranje modula ESP-01 lahko sledite naslednji vadnici: https://www.allaboutcircuits.com/projects/breadbo… Ni potrebe po dodatnem spajkanju ene vrste zatičev, kot je prikazano v priročniku-uporabite samo samico-samico dupont žice za priključitev zatičev modula na ploščo. Ne pozabite, da morata ojačevalni pretvornik in adapter USB-UART deliti ozemljitev (opomba: morda boste namesto ojačevalnega pretvornika lahko uporabili 3,3 V izhod adapterja USB-UART, vendar najverjetneje ne bo lahko oddaja dovolj toka).

4. korak: Upoštevajte baterijo

Priložena koda vdelane programske opreme je vnaprej konfigurirana za pošiljanje opozorila o prazni bateriji in izklop pri ~ 2,3 V. Ta prag temelji na predpostavki, da se dve bateriji NiMH uporabljata zaporedno. Ni priporočljivo prazniti nobene posamezne celice NiMH pod 1 V. Ob predpostavki, da imata obe celici enako zmogljivost in značilnosti praznjenja, bosta obe odrezani pri ~ 1,15 V - kar je v varnem območju. Vendar pa se celice NiMH, ki so bile v uporabi že več ciklov praznjenja, razlikujejo po zmogljivosti. Dopustimo lahko do 30% razlike v zmogljivosti, saj bi to še vedno povzročilo najnižjo napetostno mejo prekinitve celice okoli 1 V.

Čeprav je v vdelani programski opremi mogoče znižati prag nizkega nivoja baterije, bi s tem odstranili varnostno mejo in povzročili prekomerno praznjenje in poškodbe baterije, medtem ko je pričakovati le neznatno podaljšanje življenjske dobe baterije (celica NiMH je> 85% izpraznjeno pri 1,15 V).

Drugi dejavnik, ki ga je treba upoštevati, je zmožnost ojačevalnega pretvornika zagotoviti vsaj 3,0 V (2,5 V glede na anekdotske dokaze) pri najvišjem toku 300-500 mA pri nizkih baterijah. Nizek notranji upor NiMH baterij povzroči le zanemarljiv padec 0,1 V pri največjih tokovih, zato bo par NiMH celic, izpraznjenih na 2,3 V (odprto vezje), lahko zagonilnemu pretvorniku zagotovil vsaj 2,2 V. Z alkalnimi baterijami pa je bolj zapleteno. Pri parih baterij AA pri 2,2-2,3 V (odprto vezje) je pri največjih tokovih pričakovan padec napetosti 0,2-0,4 V. Čeprav sem preveril, ali vezje deluje s priporočenim ojačevalnim pretvornikom, ki ima pri največjih tokovih napajano le 1,8 V, to verjetno povzroči, da se izhodna napetost za trenutek spusti pod vrednost, ki jo predlaga Espressiff. Tako mejni prag 2,3 V pušča majhno varnostno mejo pri alkalnih baterijah (ne pozabite, da je meritev napetosti, ki jo izvede mikrokrmilnik, natančna le v nekaj plus ali minus nekaj odstotkih). Da bi zagotovili, da modul ESP ne bo prišlo do napak pri nizkih alkalnih baterijah, priporočam, da povečate prekinitveno napetost na 2,4 V (#define BATT_THRESHOLD 973). Pri 1,2 V (odprto vezje) se alkalna celica izprazni približno 70%, kar je le 5-10 odstotnih točk nižje od stopnje praznjenja pri 1,15 V na celico.

Tako NiMH kot alkalne celice imajo za to uporabo prednosti in slabosti. Alkalne baterije so varnejše (pri kratkem stiku se ne vnamejo) in imajo veliko nižjo stopnjo samopraznjenja. Vendar pa baterije NiMH zaradi nizkega notranjega upora zagotavljajo zanesljivo delovanje ESP8266 na nižji mejni vrednosti. Navsezadnje je mogoče katero koli vrsto uporabiti z nekaterimi previdnostnimi ukrepi, zato gre le za osebne želje.

5. korak: Pravna omejitev odgovornosti

To vezje je oblikoval nepoklicni hobist samo za hobi aplikacije. Ta oblika se deli v dobri veri, vendar brez kakršne koli garancije. Uporabite ga in delite z drugimi na lastno odgovornost. S ponovnim ustvarjanjem vezja se strinjate, da izumitelj ne bo odgovoren za kakršno koli škodo (vključno, vendar ne omejeno na oslabitev premoženja in telesne poškodbe), ki bi lahko nastala neposredno ali posredno zaradi okvare ali običajne uporabe tega vezja. Če zakonodaja vaše države izniči ali prepoveduje to opustitev odgovornosti, te zasnove ne smete uporabljati. Če delite to zasnovo ali spremenjeno vezje, ki temelji na tej zasnovi, morate pripisati zasluge prvotnemu izumitelju tako, da navedete URL tega navodila.

Priporočena: