Sisukord:

IoT veealarm: 5 sammu (piltidega)
IoT veealarm: 5 sammu (piltidega)

Video: IoT veealarm: 5 sammu (piltidega)

Video: IoT veealarm: 5 sammu (piltidega)
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, November
Anonim
IoT veealarm
IoT veealarm

Olen hiljuti kogenud köögi äravoolu varundamist. Kui ma poleks sel ajal kodus olnud, oleks see tekitanud minu korteris põranda- ja kipsplaadikahjustusi. Õnneks olin probleemist teadlik ja valmis ämbriga vett välja kraapima. See pani mind mõtlema üleujutusalarmi ostmisele. Avastasin Amazonist palju taskukohaseid tooteid, kuid Interneti -ühendusega toodetel oli märkimisväärne osa negatiivsetest arvustustest, peamiselt omandiõigusega teavitusteenuste tõttu. Seetõttu otsustasin teha oma IoT veealarmi, mis kasutaks minu valitud usaldusväärseid teavitusvahendeid.

Samm: toimimispõhimõte

Toimimispõhimõte
Toimimispõhimõte

Alarmi aju on AVR ATtiny85 mikrokontroller. See võtab aku ja veeanduri pinge näidud ning võrdleb neid eelnevalt määratud väärtusega, et tuvastada vee olemasolu või aku tühjenemine.

Veeandur on lihtsalt kaks juhtmest, mis on paigutatud umbes 1 mm kaugusele. Üks juhtmetest on ühendatud 3,3 V pingega ja teine on ühendatud mikrokontrolleri anduriga, mis on samuti ühendatud maandusega 0,5 MOhm takisti kaudu. Tavaliselt on andurite juhtmete vaheline takistus väga kõrge (üle 10 MOhm), nii et anduri tihvt tõmmatakse lõpuni alla 0 V. Kui aga juhtmete vahel on vett, langeb takistus alla 1 MOhm, ja anduri tihvt näeb pinget (minu puhul umbes 1,5 V). Kui ATtiny85 tuvastab selle pinge anduril, aktiveerib see MOSFET-i, et lülitada sisse sumin ja saadab äratussignaali ESP8266 moodulile, mis vastutab hoiatuste (e-posti ja tõukemärguannete) saatmise eest. Pärast minutilist sumisemist lülitatakse alarm välja ja seda saab lähtestada ainult toitenupu abil.

See seade töötab kahest aluselisest või NiMH -elemendist. Mikrokontroller magab enamiku ajast patareide säästmiseks, ärkab vahetevahel, et kontrollida veeandurit ja patareide pinget. Kui patareid on tühjad, ärkab mikrokontroller ESP8266 mooduli üles, et saata aku tühjenemise hoiatus. Pärast hoiatust lülitatakse alarm välja, et vältida aku ülelaadimist.

Kuna ESP8266 moodul vastutab nii aku tühjenemise hoiatuste kui ka üleujutushoiatuste saatmise eest, nõuab see ATiny85 juhtsignaali. Kuna saadaval on piiratud arv tihvte, genereerib selle juhtsignaali sama tihvt, mis vastutab aku LED -indikaatori eest. Normaalse töö ajal (alarm on sisse lülitatud ja akud laetud) vilgub LED vahelduvalt. Kui tuvastatakse aku tühjenemine, süttib LED, andes ESP -mooduli RX -kontaktile kõrge signaali. Kui tuvastatakse vesi, siis aku LED kustub, kui ESP8266 on ärkvel.

2. etapp: projekteerimine ja kokkupanek

Disain ja kokkupanek
Disain ja kokkupanek
Disain ja kokkupanek
Disain ja kokkupanek
Disain ja kokkupanek
Disain ja kokkupanek

Kavandasin vooluringi ehitamiseks kahepoolsele 4x6 cm protoboardile, kasutades enamasti 0805 SMD osi. Esitatud skeemid põhinevad sellel konstruktsioonil, kuid seda saab hõlpsasti kohandada läbivate aukude komponentide jaoks (näpunäide: ruumi minimeerimiseks jootke läbi aukude takistid vertikaalselt).

Vajalikud on järgmised osad:

- takistid: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - üks 10 µF keraamiline kondensaator- üks loogilise taseme N-kanaliga MOSFET (nt RFP30N06LE või AO3400)- üks punane ja üks kollane LED (või soovi korral ka teisi värve).- kahejuhtmelised kruviklemmliidesed 3 absoluutselt vajalik, kuid need hõlbustavad välisseadmete ühendamist ja lahtiühendamist testimise ajal)- Valju pieso-sumin, mis sobib 3,3 V jaoks- mikrokontroller ATtiny85 (PDIP-versioon)- 8-kontaktiline PDIP-pesa mikrokontrollerile- ESP-01 moodul (seda saab asendada mõne teise ESP8266-põhise mooduliga, kuid sel juhul on paigutuses palju muudatusi)-3,3 V alalisvoolu alalisvoolu muundur, mis suudab edastada 200 mA (500 mA purske) voolu 2,2 V juures sisend. (Soovitan https://www.canton-electronics.com/power-converter … selle ülimadala vaikse voolu tõttu)-Üks 3-kontaktiline naissoost päis-Kaks 4-kontaktilist naissoost päist või üks 2x4-päine-22 AWG pidevat juhtmest veeanduri jaoks- 22 AWG keermega traat (või muud tüüpi õhuke paljastatud traat jälgede tekitamiseks)

Soovitan ülaltoodud takisti väärtusi, kuid enamiku neist võite asendada sarnaste väärtustega. Sõltuvalt kasutatavate valgusdioodide tüübist peate võib-olla soovitud heleduse saavutamiseks reguleerima voolu piiravate takistite väärtusi. MOSFET võib olla kas läbiv auk või SMT (SOT23). MOSFETi tüüp mõjutab ainult 330 oomi takisti suunda. Kui plaanite seda vooluringi kasutada koos NiMH akudega, on soovitatav kasutada PTC kaitset (nt 1 A). Leelispatareidega pole seda aga vaja. Näpunäide: selle häire jaoks vajalikud osad saab odavalt osta ebayst või aliexpressist.

Lisaks vajate ESP-01 mooduli programmeerimiseks leivaplaati, mitut läbivat auku 10k takistit, mitut mees-mees ja naine-mees hüppaja ("dupont") juhet ja USB-UART-adapterit.

Veeandurit saab valmistada mitmel viisil, kuid kõige lihtsam on kaks 22 AWG juhet, mille otsad (1 cm pikad) on üksteisest umbes 1 mm kaugusel. Eesmärk on, et vee olemasolu korral oleks andurite kontaktide vahel takistus alla 5 MΩ.

Ahel on loodud maksimaalseks aku säästmiseks. See tarbib jälgimisrežiimis ainult 40–60 µA (ESP-01 moodulil on toite LED eemaldatud). Kui häire on käivitunud, tõmbab vooluahel sekundiks või vähem 300–500 mA (2,4 V sisendil) ja pärast seda langeb vool alla 180 mA. Kui ESP -moodul on teateid saatnud, langeb voolutarve alla 70 mA, kuni sumin välja lülitub. Seejärel lülitub alarm ise välja ja voolutarve jääb alla 30 µA. Seega saab AA patareide komplekt vooluringi toita mitu kuud (tõenäoliselt üle aasta). Kui kasutate muud võimendusmuundurit, näiteks 500 µA puhkevooluga, tuleb patareisid vahetada palju sagedamini.

Kokkupanemise näpunäited:

Jootmise hõlbustamiseks kasutage protoboardil olevate jälgede ja komponentide märgistamiseks püsimarkerit. Soovitan jätkata järgmises järjekorras:

- ülemised SMT LED -id ja isoleeritud traadisillad

-ülemine külg MOSFET (märkus: kui teil on SOT-23 MOSFET, asetage see diagonaalselt nagu fotol. Kui kasutate läbivavast MOSFET-i, asetage see horisontaalselt, värava tihvt asendis I3.)

- ülemine külg läbi aukude osade (märkus: sumin ei ole joodetud ja seda ei pea isegi PCB -le kinnitama)

- tagakülje SMT osad ja jäljed (nt üksikud kiud AWG22 traadist)

Samm: püsivara

ATtiny85 C -kood

Main.c sisaldab koodi, mis tuleb kompileerida ja mikrokontrollerisse üles laadida. Kui kavatsete programmeerijana kasutada Arduino plaati, leiate selle õpetuse ühendusskeemi. Peate järgima ainult järgmisi jaotisi (ignoreerige ülejäänud):

-Arduino Uno konfigureerimine Interneti-teenuse pakkujana (süsteemisisene programmeerimine)

- ATtiny85 ühendamine Arduino Unoga.

Püsivara kompileerimiseks ja üleslaadimiseks vajate kas CrossPacki (Mac OS jaoks) või AVR -i tööriistaketti (Windowsi jaoks). Koodi kompileerimiseks tuleb täita järgmine käsk:

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

Püsivara üleslaadimiseks tehke järgmist.

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

"/Dev/cu.usbmodem1411" asemel peate tõenäoliselt sisestama jadaporti, millega teie Arduino on ühendatud (selle leiate Arduino IDE: tööriistade portist).

Kood sisaldab mitmeid funktsioone. deep_sleep () paneb mikrokontrolleri umbes 8 sekundiks väga madala energiatarbega olekusse. read_volt () kasutatakse aku ja anduri pinge mõõtmiseks. Aku pinget mõõdetakse sisemise pinge võrdlusega (2,56 V pluss või miinus mõni protsent), anduri pinget aga Vcc = 3,3 V. Näitu võrreldakse vastavalt BATT_THRESHOLD ja SENSOR_THRESHOLD, mis on määratletud vastavalt 932 ja 102, mis vastavad ~ 2,3 ja 0,3 V. Võimalik, et saate aku künnise pikendamiseks aku läveväärtust vähendada, kuid see pole soovitatav (üksikasjaliku teabe saamiseks vaadake Aku kaalutlusi).

activ_alarm () teavitab ESP moodulit vee tuvastamisest ja annab helisignaali. low_batt_notification () teatab ESP -moodulile, et aku on tühi, ja annab ka helisignaali. Kui te ei soovi aku vahetamiseks keset ööd üles äratada, eemaldage "| 1 <" märgist low_batt_notification ().

Arduino visand ESP-01 jaoks

Valisin ESP mooduli programmeerimise Arduino HAL abil (seadistusjuhiste järgi järgige linki). Lisaks kasutasin järgmisi kahte raamatukogu:

ESP8266 Saada e -kiri Górász Péterilt

ESP8266 Arduino Hannoveri meeskonna tõukur

Esimene raamatukogu loob ühenduse SMTP -serveriga ja saadab teie e -posti aadressile märguande. Looge lihtsalt oma ESP jaoks gmaili konto ja lisage koodile mandaat. Teine raamatukogu saadab tõukemärguandeid Pushover -teenuse kaudu (teatised on tasuta, kuid rakenduse telefoni/tahvelarvutisse installimiseks peate maksma üks kord). Laadige alla mõlemad raamatukogud. Pange e -posti saatmise kogu oma visandikausta (arduino loob selle arduino eskiisi esmakordsel avamisel). Installige tõukekogu IDE kaudu (visand -> Kaasa raamatukogu -> Lisa. ZIP -teek).

ESP-01 mooduli programmeerimiseks võite järgida järgmist õpetust: https://www.allaboutcircuits.com/projects/breadbo… Ei ole vaja muretseda ühe nööpnõelte uuesti joondamisega, nagu on näidatud juhendis-kasutage lihtsalt emast-isast duponti juhtmed mooduli tihvtide ühendamiseks leivaplaadiga. Ärge unustage, et võimendusmuundur ja USB-UART-adapter peavad ühiselt maapinda jagama (märkus: võib-olla saate võimendusmuunduri asemel kasutada USB-UART-adapteri 3,3 V väljundit, kuid tõenäoliselt mitte suutma väljastada piisavalt voolu).

4. samm: aku kaalutlused

Kaasasolev püsivara kood on eelkonfigureeritud saatma tühja aku hoiatust ja lülitub välja ~ 2,3 V juures. See lävi põhineb eeldusel, et kahte NiMH akut kasutatakse järjestikku. Ei ole soovitatav tühjendada ühtegi NiMH -elementi alla 1 V. Eeldusel, et mõlema elemendi võimsus ja tühjenemisomadused on võrdsed, katkestatakse mõlemad ~ 1,15 V juures - see on ohutu vahemiku piires. Kuid NiMH -rakud, mida on kasutatud paljude tühjendustsüklite jaoks, kipuvad võimsuse poolest erinema. Võib taluda kuni 30% võimsuse erinevust, kuna selle tulemuseks oleks ikkagi madalaim pingeelemendi katkestuspunkt umbes 1 V.

Kuigi püsivara aku madalat künnist on võimalik vähendada, kaotaks see ohutusvaru ning võib põhjustada aku ülelaadimist ja kahjustusi, samas kui oodata on vaid tühist aku kasutusaega (NiMH-element on> 85% tühjenenud 1,15 V juures).

Teine tegur, mida tuleb arvesse võtta, on võimendusmuunduri võime pakkuda vähemalt 3,0 V (anekdootlike tõendite kohaselt 2,5 V) 300-500 mA tippvoolul madalatel patareidel. NiMH -akude madal sisetakistus põhjustab tippvooludel vaid tühise 0,1 V languse, nii et paar NiMH -elementi, mis on tühjenenud 2,3 V -ni (avatud vooluring), suudavad võimendusmuundurile pakkuda vähemalt 2,2 V pinget. Leelispatareidega on see aga keerulisem. Paar AA-patareid, mis töötavad 2,2–2,3 V (avatud vooluahel) juures, on tippvoolude korral oodata 0,2–0,4 V pingelangust. Kuigi olen kontrollinud, et vooluahel töötab soovitatud võimendusmuunduriga, mille tippvoolul on vaid 1,8 V pinge, põhjustab see tõenäoliselt väljundpinge hetkeks allapoole Espressiffi soovitatud väärtust. Seega jätab piirväärtus 2,3 V leelispatareide puhul vähe ohutusvaru (pidage meeles, et mikrokontrolleri poolt teostatud pinge mõõtmine on täpne vaid mõne protsendi piires). Selleks, et leelispatareide tühjenemise korral ESP-moodul tõrkeid ei tekitaks, soovitan suurendada katkestuspinget 2,4 V-ni (#define BATT_THRESHOLD 973). 1,2 V (avatud ahela) korral on leeliseline element umbes 70% tühjenenud, mis on ainult 5-10 protsendipunkti madalam kui tühjenemisaste 1,15 V elemendi kohta.

Nii NiMH kui ka leeliselistel rakkudel on selle rakenduse jaoks eelised ja puudused. Leelispatareid on ohutumad (lühise korral ei sütti) ja neil on palju väiksem isetühjenemise määr. Kuid NiMH akud tagavad ESP8266 usaldusväärse töö madalamal piiril tänu oma madalale sisetakistusele. Kuid lõppkokkuvõttes saab mõlemat tüüpi kasutada teatud ettevaatusabinõudega, nii et see on lihtsalt isiklik eelistus.

Samm: juriidiline lahtiütlemine

Selle vooluringi kujundas mitteprofessionaalne harrastaja ainult harrastusrakenduste jaoks. Seda disaini jagatakse heas usus, kuid ilma igasuguse garantiita. Kasutage seda ja jagage seda teistega omal vastutusel. Vooluahela taasloomisega nõustute, et leiutajat ei vastutata kahjude eest (sealhulgas, kuid mitte ainult, vara väärtuse langus ja kehavigastused), mis võivad tekkida otseselt või kaudselt selle vooluahela rikke või tavapärase kasutamise tõttu. Kui teie riigi seadused tühistavad või keelavad selle vastutusest loobumise, ei tohi te seda kujundust kasutada. Kui jagate seda disaini või sellel kujundusel põhinevat muudetud vooluringi, peate andma algsele leiutajale au, näidates selle juhendi URL -i.

Soovitan: