Sisällysluettelo:

IoT -vesihälytys: 5 vaihetta (kuvilla)
IoT -vesihälytys: 5 vaihetta (kuvilla)

Video: IoT -vesihälytys: 5 vaihetta (kuvilla)

Video: IoT -vesihälytys: 5 vaihetta (kuvilla)
Video: Ilmainen videovalvonta Toimiiko kamera ilman Cloudia? 2024, Heinäkuu
Anonim
IoT -vesihälytys
IoT -vesihälytys

Olen kokenut äskettäin keittiön tyhjennyksen varmuuskopioinnin. Jos en olisi ollut kotona tuolloin, se olisi aiheuttanut asunnossani lattia- ja kipsilevyvaurioita. Onneksi olin tietoinen ongelmasta ja olin valmis kaivamaan veden kauhalla. Tämä sai minut ajattelemaan tulvahälytyksen ostamista. Löysin Amazonista paljon edullisia tuotteita, mutta Internet -yhteydellä varustetuilla tuotteilla oli merkittävä prosenttiosuus negatiivisia arvosteluja, lähinnä omien ilmoituspalvelujen ongelmien vuoksi. Siksi päätin tehdä oman IoT -vesihälytyksen, joka käyttää valitsemiani luotettavia ilmoituskeinoja.

Vaihe 1: Toimintaperiaate

Toimintaperiaate
Toimintaperiaate

Hälytyksen aivot ovat AVR ATtiny85 -mikro -ohjain. Se ottaa jännitteen lukemat akusta ja vesianturista ja vertaa niitä ennalta määritettyyn arvoon havaitakseen veden läsnäolon tai alhaisen akun tilan.

Vesianturi on yksinkertaisesti kaksi johtoa, jotka on sijoitettu noin 1 mm: n päähän toisistaan. Toinen johdoista on kytketty 3,3 V: n jännitteeseen ja toinen mikrokontrollerin antotappiin, joka on myös kytketty maahan 0,5 MOhm: n vastuksen kautta. Normaalisti vastus anturijohtojen välillä on erittäin korkea (reilusti yli 10 MOhm), joten anturitappi vedetään kokonaan 0 V: iin asti. Kuitenkin, kun johtojen välissä on vettä, vastus laskee alle 1 MOhm, ja tunnistustappi näkee jonkin verran jännitettä (minun tapauksessani noin 1,5 V). Kun ATtiny85 havaitsee tämän jännitteen tunnistustapissa, se aktivoi MOSFET-laitteen summerin kytkemiseksi päälle ja lähettää herätyssignaalin ESP8266-moduulille, joka vastaa hälytysten (sähköposti- ja push-ilmoitukset) lähettämisestä. Minuutin surina jälkeen hälytys kytketään pois päältä, ja se voidaan nollata vain virtakytkimellä.

Tämä yksikkö käyttää kahta alkali- tai NiMH -kennoa. Mikro -ohjain on lepotilassa suurimman osan ajasta säästääkseen paristoja ja herää ajoittain tarkistaakseen vesi -anturin ja paristojen jännitteen. Jos paristojen varaus on vähissä, mikro -ohjain herättää ESP8266 -moduulin ja lähettää varoituksen alhaisesta paristosta. Varoituksen jälkeen hälytys kytketään pois päältä estääkseen akun ylipurkautumisen.

Koska ESP8266 -moduuli on vastuussa sekä alhaisen akun varoitusten että tulvahälytysten lähettämisestä, se vaatii ohjaussignaalin ATiny85: ltä. Käytettävissä olevien nastojen rajoitetun määrän vuoksi tämä ohjaussignaali generoidaan samalla tapilla, joka vastaa akun LED -ilmaisusta. Normaalikäytön aikana (hälytys on kytketty päälle ja akut on ladattu) LED vilkkuu ajoittain. Kun akun varaustila on heikko, LED -valo syttyy ja antaa korkean signaalin ESP -moduulin RX -nastaan. Jos vettä havaitaan, akun merkkivalo sammuu, kun ESP8266 on hereillä.

Vaihe 2: Suunnittelu ja kokoonpano

Suunnittelu ja kokoonpano
Suunnittelu ja kokoonpano
Suunnittelu ja kokoonpano
Suunnittelu ja kokoonpano
Suunnittelu ja kokoonpano
Suunnittelu ja kokoonpano

Suunnittelin piirin rakennettavaksi kaksipuoliselle 4x6 cm: n protoboardille käyttäen enimmäkseen 0805 SMD -osia. Esitetyt kaaviot perustuvat tähän rakenteeseen, mutta sitä voidaan helposti sovittaa läpireikakomponentteihin (kärki: tilan minimoimiseksi, juota reikävastukset pystysuoraan).

Seuraavat osat ovat pakollisia:

- Vastukset: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - yksi 10 µF keraaminen kondensaattori- yksi logiikkatasoinen N-kanavainen MOSFET (esim. RFP30N06LE tai AO3400)- yksi punainen ja yksi keltainen LED (tai muita värejä, jos haluat).- Kaksijohtiminen ruuviliittimet x 3 (ne eivät ole ehdottoman välttämätöntä, mutta ne helpottavat oheislaitteiden liittämistä ja irrottamista testauksen aikana)- voimakas pietsosummeri, joka sopii 3,3 V: lle- ATtiny85-mikrokontrolleri (PDIP-versio)- 8-nastainen PDIP-liitäntä mikrokontrollerille- ESP-01-moduuli (se voidaan korvata toisella ESP8266-pohjaisella moduulilla, mutta asettelussa tapahtuu paljon muutoksia)-3,3 V DC-DC-tehomuunnin, joka pystyy tuottamaan 200 mA (500 mA purske) -virtoja 2,2 V tulo. (Suosittelen https://www.canton-electronics.com/power-converter … sen erittäin pienen lepovirran vuoksi)-Yksi 3-nastainen naarasliitin-Kaksi 4-napaista naarasliitintä tai yksi 2x4-otsikko-22 AWG-johdinta vesianturille- 22 AWG-kierrelanka (tai muuntyyppinen ohut paljastettu lanka jälkien luomiseksi)

Suosittelen yllä lueteltuja vastuksen arvoja, mutta voit korvata useimmat niistä vastaavilla arvoilla. Käytettävien LED-valojen tyypistä riippuen saatat joutua säätämään virranrajoitusvastuksen arvoja halutun kirkkauden saavuttamiseksi. MOSFET voi olla joko läpireikäinen tai SMT (SOT23). Ainoastaan 330 ohmin vastuksen suunta vaikuttaa MOSFETin tyyppiin. PTC -sulaketta (esim. 1 A) suositellaan, jos aiot käyttää tätä piiriä NiMH -akkujen kanssa. Alkaliparistojen kanssa sitä ei kuitenkaan tarvita. Vinkki: tähän hälytykseen tarvittavat osat voi ostaa halvalla ebaystä tai aliexpressistä.

Lisäksi tarvitset leipälevyn, useita 10-reikäisiä reikiä, useita uros-uros- ja naaras-uros-hyppyjohtimia ("dupont") ja USB-UART-sovittimen ESP-01-moduulin ohjelmoimiseksi.

Vesianturi voidaan valmistaa monella eri tavalla, mutta yksinkertaisin on kaksi 22 AWG: n johtoa, joiden päät (1 cm) ovat noin 1 mm: n päässä toisistaan. Tavoitteena on, että anturin koskettimien välinen vastus on alle 5 MΩ, kun vettä on läsnä.

Piiri on suunniteltu maksimoimaan akun säästö. Se kuluttaa vain 40-60 µA valvontajärjestelmässä (kun virran merkkivalo on poistettu ESP-01-moduulista). Kun hälytys on lauennut, piiri ottaa 300-500 mA (2,4 V: n tulolla) sekunniksi tai vähemmän, ja sen jälkeen virta laskee alle 180 mA. Kun ESP -moduuli on lähettänyt ilmoitukset, virrankulutus laskee alle 70 mA, kunnes summeri sammuu. Sitten hälytys kytkeytyy pois päältä ja virrankulutus on alle 30 µA. Niinpä joukko AA -paristoja pystyy toimittamaan virtapiirin monta kuukautta (todennäköisesti yli vuoden). Jos käytät eri tehostinmuunninta, esimerkiksi 500 µA lepovirralla, paristot on vaihdettava paljon useammin.

Kokoonpanovinkit:

Merkitse kaikki protoboardin jäljet ja komponentit pysyvällä merkillä juottamisen helpottamiseksi. Suosittelen jatkamaan seuraavassa järjestyksessä:

- yläpuolen SMT -LEDit ja eristetyt johtosillat

-yläosan MOSFET (Huomaa: jos sinulla on SOT-23 MOSFET, aseta se vinottain kuten kuvassa. Jos käytät läpireikäistä MOSFETia, aseta se vaakasuoraan porttitappi asentoon I3.)

- yläreunan reiät (huomautus: summeri ei ole juotettu eikä sitä tarvitse edes asentaa piirilevyyn)

- kääntöpuolen SMT -osat ja jäljet (esim. yksittäiset säikeet AWG22 -langasta)

Vaihe 3: Laiteohjelmisto

ATtiny85: n C -koodi

Main.c sisältää koodin, joka on koottava ja ladattava mikro -ohjaimeen. Jos aiot käyttää Arduino -korttia ohjelmoijana, löydät kytkentäkaavion tästä opetusohjelmasta. Sinun on noudatettava vain seuraavia osia (ohita loput):

-Arduino Unon määrittäminen Internet-palveluntarjoajaksi (järjestelmän sisäinen ohjelmointi)

- ATtiny85: n yhdistäminen Arduino Unoon.

Laiteohjelmiston kääntämiseen ja lataamiseen tarvitaan joko CrossPack (Mac OS) tai AVR -työkaluketju (Windows). Seuraava komento on suoritettava koodin kääntämiseksi:

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

Lataa laiteohjelmisto suorittamalla seuraava:

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

"/Dev/cu.usbmodem1411": n sijasta sinun on todennäköisesti asennettava sarjaportti, johon Arduino on liitetty (löydät sen Arduino IDE: Tools -portista).

Koodi sisältää useita toimintoja. deep_sleep () saa mikrokontrollerin siirtymään erittäin pienitehoiseen tilaan noin 8 sekunniksi. read_volt () käytetään akun ja anturin jännitteiden mittaamiseen. Akun jännite mitataan suhteessa sisäiseen jänniteohjeeseen (2,56 V plus tai miinus muutama prosentti), kun taas anturin jännite mitataan suhteessa Vcc = 3,3 V. Lukemia verrataan BATT_THRESHOLD- ja SENSOR_THRESHOLD -arvoihin 932 ja 102, jotka vastaavat ~ 2,3 ja 0,3 V. Voit ehkä pienentää akun kynnysarvoa pidentääksesi akun käyttöikää, mutta sitä ei suositella (katso lisätietoja kohdasta Akkuhuomautukset).

activ_alarm () ilmoittaa ESP -moduulille veden havaitsemisesta ja antaa summerin. low_batt_notification () ilmoittaa ESP -moduulille, että akku on vähissä ja antaa myös summerin. Jos et halua herätä keskellä yötä vaihtamaan paristoa, poista "| 1 <" -merkistä low_batt_notification ().

Arduino-luonnos ESP-01: lle

Päätin ohjelmoida ESP -moduulin Arduino HAL -ohjelmalla (seuraa asennusohjeita). Lisäksi käytin seuraavia kahta kirjastoa:

ESP8266 Lähetä sähköposti Górász Péter

ESP8266 Arduino Hannover -tiimin pusero

Ensimmäinen kirjasto muodostaa yhteyden SMTP -palvelimeen ja lähettää hälytyksen sähköpostiosoitteeseesi. Luo vain gmail -tili ESP: lle ja lisää tunnistetiedot koodiin. Toinen kirjasto lähettää push -ilmoituksia Pushover -palvelun kautta (ilmoitukset ovat ilmaisia, mutta sinun on maksettava kerran sovelluksen asentamiseksi puhelimeesi/tablettiisi). Lataa molemmat kirjastot. Laita Lähetä sähköpostikirjaston sisältö luonnoskansioosi (arduino luo sen, kun avaat arduino -luonnoksen ensimmäistä kertaa). Asenna Pushover -kirjasto IDE: n kautta (Luonnos -> Sisällytä kirjasto -> Lisää. ZIP -kirjasto).

Voit ohjelmoida ESP-01-moduulin noudattamalla seuraavaa opetusohjelmaa: https://www.allaboutcircuits.com/projects/breadbo… Ei tarvitse huolehtia yhden nastarivin uudelleenasentamisesta oppaan mukaisesti-käytä vain naaras-uros-dupontia johdot moduulin nastojen liittämiseksi leipälevyyn. Älä unohda, että tehostinmuuntimen ja USB-UART-sovittimen on jaettava maata (huom: saatat pystyä käyttämään USB-UART-sovittimen 3,3 V: n lähtöä tehostusmuuntimen sijaan, mutta todennäköisesti se ei pystyä tuottamaan tarpeeksi virtaa).

Vaihe 4: Akkuja koskevat näkökohdat

Toimitettu laiteohjelmistokoodi on esiasetettu lähettämään varoitus alhaisesta akusta ja sammumaan ~ 2,3 V: n virralla. Tämä kynnys perustuu oletukseen, että kahta NiMH -akkua käytetään sarjassa. Ei ole suositeltavaa purkaa yksittäisiä NiMH -kennoja alle 1 V. Jos oletetaan, että molemmilla kennoilla on sama kapasiteetti ja purkausominaisuudet, molemmat katkaistaan ~ 1,15 V: n jännitteellä - hyvin turvallisella alueella. NiMH -kennoilla, joita on käytetty useiden purkausjaksojen aikana, on kuitenkin ero kapasiteetissa. Jopa 30%: n ero kapasiteetissa voidaan sietää, koska se johtaisi silti alimpaan jännitesolun katkaisupisteeseen noin 1 V.

Vaikka laiteohjelmiston akun alhaista kynnystä on mahdollista alentaa, se poistaisi turvamarginaalin ja voi johtaa akun ylipurkautumiseen ja vaurioihin, vaikka akun käyttöikää on odotettavissa vain vähän (NiMH-kenno on> 85% purkautunut 1,15 V: n jännitteellä).

Toinen tekijä, joka on otettava huomioon, on tehostinmuuntimen kyky tarjota vähintään 3,0 V (2,5 V anekdoottisten todisteiden mukaan) 300-500 mA huippuvirralla alhaisilla paristoilla. NiMH -akkujen alhainen sisäinen vastus aiheuttaa vain vähäisen 0,1 V: n pudotuksen huippuvirroissa, joten pari NiMH -kennoa, jotka on purettu 2,3 V: n jännitteeseen (avoin piiri), pystyvät tarjoamaan vähintään 2,2 V: n tehonmuuntimelle. Alkaliparistojen kanssa se on kuitenkin monimutkaisempaa. Kun paristot AA-paristoja ovat 2,2-2,3 V (avoin piiri), jännitehäviö on odotettavissa 0,2-0,4 V huippuvirtojen aikana. Vaikka olen tarkistanut, että piiri toimii suositellulla tehonmuuntimella, jossa on vain 1,8 V huippuvirta, tämä todennäköisesti aiheuttaa lähtöjännitteen laskemisen hetkellisesti Espressiffin ehdottaman arvon alapuolelle. Siten 2,3 V: n katkaisukynnys ei jätä juurikaan turvamarginaalia alkaliparistoille (muista, että mikrokontrollerin suorittama jännitteen mittaus on tarkka vain muutaman tai useamman prosentin sisällä). Jotta ESP-moduuli ei häiriisi, kun alkaliparistot ovat vähissä, suosittelen nostamaan katkaisujännitteen 2,4 V: iin (#define BATT_THRESHOLD 973). 1,2 V: n jännitteellä (avoin piiri) emäksinen kenno purkautuu noin 70%, mikä on vain 5-10 prosenttiyksikköä pienempi kuin purkausaste 1,15 V kennoa kohden.

Sekä NiMH- että alkalisoluilla on etuja ja haittoja tähän sovellukseen. Alkaliparistot ovat turvallisempia (eivät syty palamaan, jos ne ovat oikosulussa), ja niiden itsepurkautumisnopeus on paljon pienempi. NiMH-akut takaavat kuitenkin ESP8266: n luotettavan toiminnan alemmalla katkaisupisteellä alhaisen sisäisen vastuksensa ansiosta. Mutta lopulta kumpaakin tyyppiä voidaan käyttää tietyillä varotoimilla, joten se on vain henkilökohtainen mieltymys.

Vaihe 5: Vastuuvapauslauseke

Tämän piirin on suunnitellut ei-ammattimainen harrastaja vain harrastussovelluksiin. Tämä malli on jaettu hyvässä uskossa, mutta sillä ei ole minkäänlaista takuuta. Käytä sitä ja jaa se muiden kanssa omalla vastuullasi. Uudistamalla piirin uudelleen hyväksyt, että keksijä ei ole vastuussa mistään vahingoista (mukaan lukien, mutta ei rajoittuen omaisuuden arvonalentumiseen ja henkilövahinkoihin), jotka voivat ilmetä suoraan tai välillisesti tämän piirin toimintahäiriön tai tavanomaisen käytön vuoksi. Jos maasi lait mitätöivät tai kieltävät tämän vastuuvapautuksen, et saa käyttää tätä mallia. Jos jaat tämän mallin tai tähän rakenteeseen perustuvan muokatun piirin, sinun on kunnioitettava alkuperäistä keksijää ilmoittamalla tämän ohjeen URL -osoite.

Suositeltava: