INHOUDSOPGAWE:

IoT -wateralarm: 5 stappe (met foto's)
IoT -wateralarm: 5 stappe (met foto's)

Video: IoT -wateralarm: 5 stappe (met foto's)

Video: IoT -wateralarm: 5 stappe (met foto's)
Video: Hoe maak je een filmpje van foto's 📸? (In Slechts 5 stappen!) 2024, November
Anonim
IoT Water alarm
IoT Water alarm

Ek het onlangs rugsteun vir kombuisafvoer ondervind. As ek nie destyds tuis was nie, sou dit vloer- en gipsskade in my woonstel veroorsaak het. Gelukkig was ek bewus van die probleem en was ek gereed om die water met 'n emmer uit te skep. Dit het my laat dink oor die aankoop van 'n vloedalarm. Ek het baie goedkoop produkte op Amazon ontdek, maar diegene met internetverbinding het 'n aansienlike persentasie negatiewe resensies gehad, hoofsaaklik as gevolg van probleme met eie kennisgewingsdienste. Daarom het ek besluit om my eie IoT -wateralarm te maak wat betroubare kennisgewingsmiddels van my keuse gebruik.

Stap 1: Beginsel van werking

Beginsel van werking
Beginsel van werking

Die alarm het 'n AVR ATtiny85 -mikrobeheerder as sy brein. Dit neem spanningsmetings van die battery en die watersensor en vergelyk dit met vooraf gedefinieerde waarde om die teenwoordigheid van water of 'n lae battery toestand op te spoor.

Die watersensor is eenvoudig twee drade wat ongeveer 1 mm van mekaar geplaas is. Een van die drade is gekoppel aan 3,3 V, en die ander een is gekoppel aan 'n sensorpen op die mikrobeheerder, wat ook via 'n weerstand van 0,5 MOhm aan die aarde gekoppel is. Gewoonlik is die weerstand tussen die sensordrade baie hoog (meer as 10 MOhm), dus word die meetpen tot 0 V. getrek, maar as daar water tussen die drade is, daal die weerstand tot minder as 1 MOhm, en die meetpen sien spanning (in my geval ongeveer 1,5 V). As ATtiny85 hierdie spanning op die meetpen ontdek, aktiveer dit 'n MOSFET om 'n zoemer aan te skakel en stuur die weksein na die ESP8266-module wat verantwoordelik is vir die stuur van waarskuwings (e-pos en stootkennisgewings). Na 'n minuut gons, word die alarm uitgeskakel en kan dit slegs deur kragfiets teruggestel word.

Hierdie eenheid loop uit twee alkaliese of NiMH -selle. Die mikrobeheerder slaap die meeste van die tyd om die batterye te bespaar, en word kort -kort wakker om die watersensor en die spanning van die batterye na te gaan. As die batterye laag is, maak die mikrobeheerder die ESP8266 -module wakker om 'n waarskuwing oor 'n lae battery te stuur. Na die waarskuwing word die alarm uitgeskakel om te voorkom dat die battery oorlaai word.

Aangesien die ESP8266 -module verantwoordelik is vir die stuur van waarskuwings oor lae batterye sowel as vloedwaarskuwings, benodig dit 'n beheersignaal van ATiny85. As gevolg van die beperkte aantal beskikbare penne, word hierdie beheersignaal gegenereer deur dieselfde pen wat verantwoordelik is vir die LED van die battery. Tydens normale werking (die alarm is ingeskakel en die batterye gelaai), knipper die LED af en toe. As die toestand van die lae battery opgespoor word, gaan die LED aan om 'n hoë sein te gee aan die RX -pen van die ESP -module. As water opgespoor word, is die LED van die battery af as ESP8266 wakker is.

Stap 2: Ontwerp en montering

Ontwerp en samestelling
Ontwerp en samestelling
Ontwerp en samestelling
Ontwerp en samestelling
Ontwerp en samestelling
Ontwerp en samestelling

Ek het die kring ontwerp om te bou op 'n dubbelzijdige 4x6 cm protobord met meestal 0805 SMD-onderdele. Die skemas wat aangebied word, is gebaseer op hierdie konstruksie, maar dit kan maklik aangepas word vir komponente deur-gat (wenk: om ruimte tot 'n minimum te beperk, soliede deur-gat-weerstande vertikaal).

Die volgende dele word benodig:

- Weerstande: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Een 10 µF keramiek kondensator- Een logiese vlak N-kanaal MOSFET (bv. RFP30N06LE of AO3400)- Een rooi en een geel LED (of ander kleure as u wil).- Tweedraads skroefaansluiting x 3 (hulle is nie absoluut noodsaaklik, maar dit maak dit makliker om periferie aan te sluit en te ontkoppel tydens die toetsing)- 'n Harde piezo-zoemer wat goed is vir 3,3 V- 'n ATtiny85-mikrokontroleur (PDIP-weergawe)- 'n 8-pins PDIP-aansluiting vir die mikrobeheerder- 'n ESP-01-module (dit kan vervang word deur 'n ander ESP8266-gebaseerde module, maar daar sal baie veranderings in die uitleg wees)-'n 3.3 V DC-DC boost converter wat 200 mA (500 mA burst) strome by 2.2 V kan lewer insette. (Ek beveel https://www.canton-electronics.com/power-converter… aan vanweë die ultra-lae stilstroom)-Een 3-pins vroulike kopstuk-Twee 4-pins vroulike kopstukke of een 2x4-kopstuk- 22 AWG soliede drade vir die watersensor- 22 AWG-gestrande draad (of 'n ander soort dun blootgestelde draad om spore te skep)

Ek beveel die weerstandswaardes hierbo aan, maar u kan die meeste daarvan vervang deur soortgelyke waardes. Afhangende van die tipe LED's wat u wil gebruik, moet u moontlik die huidige beperkende weerstandswaardes aanpas om die gewenste helderheid te kry. Die MOSFET kan óf deur-gat óf SMT (SOT23) wees. Slegs die oriëntasie van die 330 Ohm -weerstand word beïnvloed deur die tipe MOSFET. 'N PTC -lont (byvoorbeeld 1 A) word aanbeveel as u van plan is om hierdie stroombaan met NiMH -batterye te gebruik. Dit is egter nie nodig met alkaliese batterye nie. Wenk: die onderdele wat vir hierdie alarm benodig word, kan goedkoop by ebay of aliexpress gekoop word.

Boonop benodig u 'n broodbord, verskeie 10k-weerstande, 'n paar manlike en vroulike truie ('dupont') en 'n USB-UART-adapter om die ESP-01-module te programmeer.

Die watersensor kan op verskillende maniere gemaak word, maar die eenvoudigste is twee 22 AWG -drade met blootgestelde ente (1 cm lank) met 'n afstand van ongeveer 1 mm van mekaar. Die doel is om minder as 5 MΩ weerstand tussen die sensorkontakte te hê wanneer water teenwoordig is.

Die stroombaan is ontwerp vir 'n maksimum batteryverbruik. Dit neem slegs 40-60 µA in die moniteringstelsel (met die krag-LED verwyder op die ESP-01-module). Sodra die alarm geaktiveer is, trek die stroombaan vir 'n sekonde of minder 300-500 mA (by 2,4 V ingang), en daarna sal die stroom onder 180 mA daal. Sodra die ESP -module klaar is met die stuur van kennisgewings, sal die huidige verbruik tot onder 70 mA daal totdat die zoemer uitskakel. Dan sal die alarm homself uitskakel en die huidige verbruik onder 30 µA wees. So kan 'n stel AA -batterye die stroombaan vir baie maande (waarskynlik meer as 'n jaar) voed. As u 'n ander versterkingsomskakelaar gebruik, byvoorbeeld met 'n stilstaande stroom van 500 µA, moet die batterye baie meer vervang word.

Wenke vir montering:

Gebruik 'n permanente merker om alle spore en komponente op die protobord te merk om makliker te soldeer. Ek beveel aan om in die volgende volgorde te gaan:

- SMT LED's aan die bokant en geïsoleerde draadbrue

-MOSFET aan die bokant (let wel: as u 'n SOT-23 MOSFET het, plaas dit skuins soos op die foto. As u 'n MOSFET met 'n deur gebruik, plaas dit horisontaal met die hekpen in posisie I3.)

- Gatonderdele aan die bokant (let op: die zoemer is nie gesoldeer nie en hoef nie eers aan die printplaat gemonteer te word nie)

- SMT -dele en spore aan die agterkant (bv. individuele stringe van AWG22 -draad)

Stap 3: Firmware

C -kode vir ATtiny85

Main.c bevat die kode wat saamgestel en opgelaai moet word na die mikrobeheerder. As u 'n Arduino -bord as programmeerder gaan gebruik, kan u die bedradingsdiagram in hierdie handleiding vind. U hoef slegs die volgende afdelings te volg (ignoreer die res):

-Arduino Uno instel as 'n ISP (In-System Programming)

- Verbind ATtiny85 met Arduino Uno.

Om die firmware op te stel en op te laai, benodig u CrossPack (vir Mac OS) of AVR -werktuigketting (vir Windows). Die volgende opdrag moet uitgevoer word om die kode saam te stel:

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

Voer die volgende uit om die firmware op te laai:

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

In plaas van "/dev/cu.usbmodem1411", moet u waarskynlik die seriële poort waarmee u Arduino gekoppel is, plaas (u kan dit vind in die Arduino IDE: Tools Port).

Die kode bevat verskeie funksies. deep_sleep () laat die mikrobeheerder vir ongeveer 8 sekondes in 'n baie lae krag toestand gaan. read_volt () word gebruik om die battery en sensorspanning te meet. Die batteryspanning word gemeet aan die interne spanningsverwysing (2.56 V plus minus 'n paar persent), terwyl die sensorspanning gemeet word aan Vcc = 3.3 V. Lesings word vergelyk met BATT_THRESHOLD en SENSOR_THRESHOLD gedefinieer as onderskeidelik 932 en 102, wat ooreenstem met ~ 2,3 en 0,3 V. U kan die drempelwaarde van die battery verlaag vir 'n verbeterde batterylewe, maar dit word nie aanbeveel nie (raadpleeg Batterykundige oorwegings vir gedetailleerde inligting).

active_alarm () stel die ESP -module in kennis oor waterdetectie en laat die gonser klink. low_batt_notification () stel die ESP -module in kennis dat die battery leeg is, en dit klink ook. As u nie in die middel van die nag wakker wil word om die battery te vervang nie, verwyder "| 1 <" in low_batt_notification ().

Arduino-skets vir ESP-01

Ek het gekies om die ESP -module te programmeer met behulp van Arduino HAL (volg die skakel vir opstelinstruksies). Verder het ek die volgende twee biblioteke gebruik:

ESP8266 Stuur e -pos deur Górász Péter

ESP8266 Pushover deur die Arduino Hannover -span

Die eerste biblioteek maak verbinding met 'n SMTP -bediener en stuur 'n waarskuwing na u e -posadres. Skep net 'n gmail -rekening vir u ESP en voeg die geloofsbriewe by die kode. Die tweede biblioteek stuur stootkennisgewings via die Pushover -diens (kennisgewings is gratis, maar u moet een keer betaal om die toepassing op u telefoon/tablet te installeer). Laai albei biblioteke af. Plaas die inhoud van die Send Email -biblioteek in u sketsmap (arduino sal dit skep as u die arduino -skets vir die eerste keer oopmaak). Installeer die Pushover -biblioteek via die IDE (Sketch -> Include Library -> Add. ZIP library).

Om die ESP-01-module te programmeer, kan u die volgende tutoriaal volg: https://www.allaboutcircuits.com/projects/breadbo… U hoef nie eers 'n ry penne op te los nie, soos in die gids aangedui-gebruik net dupont drade om die penne van die module aan die broodbord te koppel. Moenie vergeet dat die boost-omskakelaar en die USB-UART-adapter grond moet deel nie (let op: u kan moontlik die 3.3 V-uitgang van die USB-UART-adapter gebruik in plaas van die boost-omskakelaar, maar dit sal waarskynlik nie genoeg stroom kan lewer).

Stap 4: Batteryoorwegings

Die firmware -kode is vooraf gekonfigureer om 'n waarskuwing oor 'n lae battery te stuur en by ~ 2,3 V. te sluit. Dit word nie aanbeveel om 'n individuele NiMH -sel onder 1 V. te ontslaan As ons aanvaar dat beide selle dieselfde kapasiteit en ontladingseienskappe het nie, word albei by ~ 1.15 V afgesny - ver binne die veilige omvang. NiMH -selle wat al baie ontslagsiklusse in gebruik was, is egter geneig om in kapasiteit te verskil. Tot 30% verskil in kapasiteit kan geduld word, aangesien dit steeds die afsnypunt van die laagste spanning van ongeveer 1 V.

Alhoewel dit moontlik is om die lae batterydrempel in die firmware te verlaag, sou dit die veiligheidsmarge verwyder en dit kan lei tot oorlading en beskadiging van die battery, terwyl slegs 'n marginale toename in batterylewe verwag kan word ('n NiMH-sel is> 85% ontlaai teen 1,15 V).

'N Ander faktor wat in ag geneem moet word, is die vermoë van die boost-omskakelaar om ten minste 3,0 V (2,5 V volgens anekdotiese bewyse) by 300-500 mA piekstroom op lae batterye te lewer. Die lae interne weerstand van NiMH -batterye veroorsaak slegs 'n onbeduidende daling van 0,1 V by spitsstrome, dus kan 'n paar NiMH -selle wat na 2,3V (oop stroombaan) ontlaai word, ten minste 2,2V aan die boost -omskakelaar verskaf. Dit is egter ingewikkelder met alkaliese batterye. Met 'n paar AA-batterye op 2,2-2,3 V (oop stroombaan) kan 'n spanningsval van 0,2-0,4 V verwag word by spitsstrome. Alhoewel ek geverifieer het dat die stroombaan werk met die aanbevole boost -omskakelaar met so min as 1,8 V wat by piekstrome voorsien word, veroorsaak dit waarskynlik dat die uitsetspanning kort onder die waarde daal wat die Espressiff voorstel. Die afsnydrempel van 2,3 V laat dus min veiligheidsmarge by alkaliese batterye (hou in gedagte dat 'n spanningsmeting wat deur die mikrobeheerder uitgevoer word, slegs binne plus minus 'n paar persent akkuraat is). Om te verseker dat die ESP-module nie fout vind as die alkalinebatterye laag is nie, beveel ek aan dat die afsnyspanning verhoog word tot 2,4 V (#define BATT_THRESHOLD 973). By 1,2 V (oop kring) word 'n alkaliese sel ongeveer 70% ontlaai, wat slegs 5-10 persentasiepunte laer is as die graad van ontlading by 1,15 V per sel.

Beide NiMH en alkaliese selle het voordele en nadele vir hierdie toepassing. Alkaliese batterye is veiliger (moenie aan die brand raak as dit kortgemaak word nie), en hulle het 'n baie laer selfontladingsnelheid. NiMH-batterye waarborg egter betroubare werking van ESP8266 op 'n laer afsnypunt danksy hul lae interne weerstand. Maar uiteindelik kan elke tipe met 'n paar voorsorgmaatreëls gebruik word, so dit is net 'n kwessie van persoonlike voorkeur.

Stap 5: Wettige vrywaring

Hierdie kring is ontwerp deur 'n nie-professionele stokperdjie slegs vir stokperdjie-toepassings. Hierdie ontwerp word te goeder trou gedeel, maar sonder enige waarborg. Gebruik dit en deel dit op eie risiko met ander. Deur die kring te herskep, stem u in dat die uitvinder nie aanspreeklik gehou sal word vir enige skade (insluitend maar nie beperk tot waardedaling van bates en persoonlike besering nie) wat direk of indirek kan voorkom as gevolg van 'n wanfunksionering of normale gebruik van hierdie stroombaan. As die wette van u land hierdie afstanddoening van aanspreeklikheid tot niet maak of verbied, mag u nie hierdie ontwerp gebruik nie. As u hierdie ontwerp of 'n aangepaste stroombaan wat op hierdie ontwerp gebaseer is, deel, moet u die oorspronklike uitvinder krediteer deur die URL van hierdie instruksies aan te dui.

Aanbeveel: