Përmbajtje:

Alarmi i ujit në IoT: 5 hapa (me fotografi)
Alarmi i ujit në IoT: 5 hapa (me fotografi)

Video: Alarmi i ujit në IoT: 5 hapa (me fotografi)

Video: Alarmi i ujit në IoT: 5 hapa (me fotografi)
Video: ЛЮБОВЬ С ДОСТАВКОЙ НА ДОМ (2020). Романтическая комедия. Хит 2024, Korrik
Anonim
Alarm Uji IoT
Alarm Uji IoT

Kohët e fundit kam provuar rezervimin e kullimit të kuzhinës. Po të mos isha në shtëpi në atë kohë, do të kishte shkaktuar dëme në dysheme dhe murin e thatë në banesën time. Për fat të mirë, unë isha i vetëdijshëm për problemin dhe isha gati për të nxjerrë ujin me një kovë. Kjo më bëri të mendoj për blerjen e një alarmi për përmbytje. Kam zbuluar shumë produkte të përballueshme në Amazon, por ato me lidhje interneti kishin një përqindje të konsiderueshme të vlerësimeve negative, kryesisht për shkak të çështjeve me shërbimet e pronarit të njoftimeve. Kjo është arsyeja pse vendosa të bëj alarmin tim të ujit IoT që do të përdorte mjete të besueshme njoftimi sipas zgjedhjes sime.

Hapi 1: Parimi i funksionimit

Parimi i funksionimit
Parimi i funksionimit

Alarmi ka në tru një mikrokontrollues AVR ATtiny85. Merr lexime të tensionit nga bateria dhe sensori i ujit dhe i krahason ato me vlerën e paracaktuar për të zbuluar praninë e ujit ose një gjendje me bateri të ulët.

Sensori i ujit është thjesht dy tela të vendosura afërsisht 1 mm larg. Njëra prej telave është e lidhur me 3.3 V, dhe tjetra është e lidhur me një kunj ndijimi në mikrokontrollues, i cili gjithashtu është i lidhur me tokën përmes një rezistence 0.5 MOhm. Normalisht, rezistenca midis telave të sensorit është shumë e lartë (mbi 10 MOhm), kështu që kunja e ndjesisë tërhiqet deri në 0 V. Megjithatë, kur ka ujë të pranishëm midis telave, rezistenca bie në më pak se 1 MOhm, dhe kunja e ndjesisë sheh njëfarë tensioni (në rastin tim rreth 1.5 V). Kur ATtiny85 zbulon këtë tension në kunjin e ndjesisë, aktivizon një MOSFET për të ndezur një zile dhe dërgon sinjalin e zgjimit në modulin ESP8266 i cili është përgjegjës për dërgimin e sinjalizimeve (email dhe njoftime push). Pas një gumëzhitjeje minutë, alarmi është çarmatosur dhe mund të rivendoset vetëm me çiklizëm të energjisë.

Kjo njësi rrjedh nga dy qeliza alkaline ose NiMH. Mikrokontrolluesi është në gjumë shumicën e kohës për të ruajtur bateritë, duke u zgjuar me ndërprerje për të kontrolluar sensorin e ujit, si dhe tensionin e baterive. Nëse bateritë janë të ulëta, mikrokontrolluesi zgjon modulin ESP8266 për të dërguar një paralajmërim të ulët të baterisë. Pas paralajmërimit, alarmi është çarmatosur për të parandaluar shkarkimin e tepërt të baterisë.

Meqenëse moduli ESP8266 është përgjegjës për dërgimin e paralajmërimeve të ulëta të baterisë, si dhe paralajmërime për përmbytje, kërkon një sinjal kontrolli nga ATiny85. Për shkak të numrit të kufizuar të kunjave të disponueshëm, ky sinjal kontrolli gjenerohet nga e njëjta pin përgjegjëse për treguesin LED të baterisë. Gjatë funksionimit normal (alarmi është i armatosur dhe bateritë janë të ngarkuara), LED pulson me ndërprerje. Kur zbulohet gjendja e ulët e baterisë, LED ndizet për të siguruar sinjal të lartë në pinin RX të modulit ESP. Nëse zbulohet uji, LED i baterisë do të fiket ndërsa ESP8266 është zgjuar..

Hapi 2: Projektimi dhe montimi

Projektimi dhe montimi
Projektimi dhe montimi
Projektimi dhe montimi
Projektimi dhe montimi
Projektimi dhe montimi
Projektimi dhe montimi

Unë projektova qarkun që do të ndërtohej në një bord të dyfishtë 4x6 cm duke përdorur kryesisht 0805 pjesë SMD. Skemat e paraqitura bazohen në këtë strukturë, por mund të përshtatet lehtësisht për komponentët përmes vrimës (këshillë: për të minimizuar hapësirën, lidhni rezistorët vertikalisht përmes vrimave).

Pjesët e mëposhtme kërkohen:

- Rezistorë: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Një kondensator qeramik 10 μF- Një MOSFET me nivel N të nivelit logjik (p.sh. RFP30N06LE ose AO3400)- Një LED i kuq dhe një i verdhë (ose ngjyra të tjera nëse dëshironi). absolutisht e nevojshme, por ato e bëjnë më të lehtë lidhjen dhe shkëputjen e periferisë gjatë testimit)- Një zhurmë piezo e fortë që është e mirë për 3.3 V- Një mikrokontrollues ATtiny85 (versioni PDIP)- Një prizë PDIP 8-pin për mikrokontrolluesin- Një modul ESP-01 (mund të zëvendësohet nga një modul tjetër i bazuar në ESP8266, por do të ketë shumë ndryshime në paraqitjen në atë rast)-Një konvertues nxitës 3.3 V DC-DC i aftë të japë rryma 200 mA (500 mA shpërthim) në 2.2 V hyrja. (Unë rekomandoj https://www.canton-electronics.com/power-converter… për shkak të rrymës së tij ultra të ulët qetësuese)-Një kokë femër me 3 kunja-Dy tituj femra me 4 kunja ose një kokë 2x4-tela të ngurta 22 AWG për sensorin e ujit- tela të bllokuar 22 AWG (ose një lloj tjetër teli të hollë të ekspozuar për të krijuar gjurmë)

Unë rekomandoj vlerat e rezistencës të listuara më sipër, por ju mund të zëvendësoni shumicën e tyre me vlera të ngjashme. Në varësi të llojit të LED-ve që dëshironi të përdorni, mund t'ju duhet të rregulloni vlerat e rezistencës kufizuese aktuale për të marrë shkëlqimin e dëshiruar. MOSFET mund të jetë ose përmes vrimës ose SMT (SOT23). Vetëm orientimi i rezistencës 330 Ohm ndikohet nga lloji i MOSFET. Rekomandohet një siguresë PTC (p.sh. e vlerësuar për 1 A) nëse planifikoni ta përdorni këtë qark me bateri NiMH. Sidoqoftë, nuk është e nevojshme me bateri alkaline. Këshillë: pjesët e kërkuara për këtë alarm mund të blihen lirë nga ebay ose aliexpress.

Përveç kësaj do t'ju duhet një tabelë buke, disa rezistenca 10k përmes vrimës, tela të shumtë meshkuj-meshkuj dhe femra-meshkuj ("dupont") dhe një përshtatës USB-UART në mënyrë që të programoni modulin ESP-01.

Sensori i ujit mund të bëhet në mënyra të ndryshme, por më e thjeshta janë dy tela 22 AWG me skaj të ekspozuar (1 cm të gjatë) të distancuar afërsisht 1 mm larg. Qëllimi është që të ketë më pak se 5 MΩ rezistencë midis kontakteve të sensorit kur ka ujë.

Qarku është krijuar për ekonominë maksimale të baterisë. Ai tërheq vetëm 40-60 µA në regjimin e monitorimit (me LED-in e energjisë të hequr në modulin ESP-01). Pasi të aktivizohet alarmi, qarku do të tërheqë 300-500 mA (në hyrjen 2.4 V) për një sekondë ose më pak, dhe pas kësaj rryma do të bjerë nën 180 mA. Pasi të përfundojë moduli ESP duke dërguar njoftime, konsumi aktual do të bjerë nën 70 mA derisa zileja të fiket. Pastaj alarmi do të çarmatoset vetë, dhe konsumi aktual do të jetë nën 30 µA. Kështu, një sërë baterish AA do të jenë në gjendje të fuqizojnë qarkun për shumë muaj (ka gjasa gjatë një viti). Nëse përdorni një konvertues të ndryshëm nxitës, të themi me një rrymë qetësuese prej 500 µA, bateritë do të duhet të ndryshohen shumë më shpesh.

Këshilla për montimin:

Përdorni një shënues të përhershëm për të etiketuar të gjitha gjurmët dhe përbërësin në protoboard për bashkim më të lehtë. Unë rekomandoj të vazhdoni në rendin e mëposhtëm:

- LED SMT në anën e sipërme dhe ura tela të izoluara

-MOSFET nga ana e sipërme (shënim: nëse keni një MOSFET SOT-23, vendoseni atë diagonalisht si në foto. Nëse jeni duke përdorur një MOSFET me vrima, vendoseni horizontalisht me kunjin e portës në pozicionin I3.)

- pjesa e sipërme përmes pjesëve të vrimës (vini re: zileja nuk është ngjitur dhe as nuk duhet të jetë e montuar në PCB)

- pjesët dhe gjurmët SMT të anës së kundërt (p.sh. fijet individuale nga tela AWG22)

Hapi 3: Firmware

Kodi C për ATtiny85

Main.c përmban kodin që duhet të përpilohet dhe ngarkohet në mikrokontrollues. Nëse do të përdorni një bord Arduino si programues, mund të gjeni diagramin e instalimeve elektrike në këtë tutorial. Ju duhet të ndiqni vetëm seksionet e mëposhtme (injoroni pjesën tjetër):

-Konfigurimi i Arduino Uno si ISP (Programim në Sistem)

- Lidhja e ATtiny85 me Arduino Uno.

Për të përpiluar dhe ngarkuar firmware, do t'ju duhet ose CrossPack (për Mac OS) ose zinxhir mjetesh AVR (për Windows). Komanda e mëposhtme duhet të ekzekutohet për të përpiluar kodin:

avr -gcc -Os -mmcu = attiny85 -c kryesore.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j. teksti -j. të dhënat -O ihex main.elf main.hex

Për të ngarkuar firmware -in, ekzekutoni sa vijon:

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

Në vend të "/dev/cu.usbmodem1411" ka të ngjarë të keni nevojë të futni portin serik me të cilin është lidhur Arduino juaj (mund ta gjeni në Arduino IDE: Ports Tools).

Kodi përmban shumë funksione. sleep_sleep () bën që mikrokontrolluesi të hyjë në një gjendje shumë të ulët të energjisë për afërsisht 8 sekonda. read_volt () përdoret për të matur tensionet e baterisë dhe sensorit. Tensioni i baterisë matet kundrejt referencës së tensionit të brendshëm (2.56 V plus ose minus disa përqind) ndërsa tensioni i sensorit matet me Vcc = 3.3 V. Leximet krahasohen me BATT_THRESHOLD dhe SENSOR_THRESHOLD të përcaktuara përkatësisht 932 dhe 102, të cilat korrespondojnë me ~ 2.3 dhe 0.3 V. Ju mund të jeni në gjendje të zvogëloni vlerën e pragut të baterisë për jetëgjatësi të përmirësuar të baterisë, por nuk rekomandohet (referojuni konsideratave të baterisë për informacion të detajuar).

activ_alarm () njofton modulin ESP për zbulimin e ujit dhe i bie ziles. low_batt_notification () njofton modulin ESP bateria është e ulët dhe gjithashtu tingëllon si zile. Nëse nuk dëshironi të zgjoheni në mes të natës për të ndryshuar baterinë, hiqni "| 1 <" në low_batt_notification ().

Skica Arduino për ESP-01

Zgjodha të programoj modulin ESP duke përdorur Arduino HAL (ndiqni lidhjen për udhëzimet e konfigurimit). Për më tepër kam përdorur dy bibliotekat e mëposhtme:

ESP8266 Dërgo email nga Górász Péter

ESP8266 Pushover nga ekipi Arduino Hannover

Biblioteka e parë lidhet me një server SMTP dhe dërgon një paralajmërim në adresën tuaj të postës elektronike. Thjesht krijoni një llogari gmail për ESP -në tuaj dhe shtoni kredencialet në kod. Biblioteka e dytë dërgon njoftime push përmes shërbimit Pushover (njoftimet janë falas, por ju duhet të paguani një herë për të instaluar aplikacionin në telefonin/tabletin tuaj). Shkarkoni të dy bibliotekat. Vendosni përmbajtjen e bibliotekës Send Email në dosjen tuaj të skicës (arduino do ta krijojë atë kur të hapni skicën arduino për herë të parë). Instaloni bibliotekën Pushover përmes IDE (Sketch -> Include Library -> Add. ZIP bibliotekë).

Për të programuar modulin ESP-01 mund të ndiqni tutorialin e mëposhtëm: https://www.allaboutcircuits.com/projects/breadbo… Nuk ka nevojë të shqetësoheni me rishitjen e një rreshti kunjash siç tregohet në udhëzues-thjesht përdorni dupont femra-meshkuj tela për të lidhur kunjat e modulit në tabelën e bukës. Mos harroni se konvertuesi i nxitjes dhe përshtatësi USB-UART duhet të ndajnë tokën (vini re: mund të jeni në gjendje të përdorni daljen 3.3 V të përshtatësit USB-UART në vend të konvertuesit të nxitjes, por ka shumë të ngjarë që nuk do të jetë në gjendje të nxjerrë rrymë të mjaftueshme).

Hapi 4: Konsideratat e baterisë

Kodi i firmuerit i furnizuar është i parakonfiguruar për të dërguar një paralajmërim të ulët të baterisë dhe fikur në 3 2.3 V. Ky prag bazohet në supozimin se dy bateri NiMH përdoren në seri. Nuk rekomandohet shkarkimi i asnjë qelize NiMH individuale nën 1 V. Duke supozuar që të dy qelizat kanë kapacitet të barabartë dhe karakteristika shkarkimi, të dyja do të ndërpriten në 1.15 V - mirë brenda intervalit të sigurt. Sidoqoftë, qelizat NiMH që kanë qenë në përdorim për shumë cikle shkarkimi kanë tendencë të ndryshojnë në kapacitet. Dallimi në kapacitet deri në 30% mund të tolerohet pasi ende do të rezultonte në pikën e ndërprerjes së qelizave të tensionit më të ulët rreth 1 V.

Ndërsa është e mundur të zvogëlohet pragu i ulët i baterisë në firmware, duke bërë kështu do të hiqni margjinën e sigurisë dhe mund të rezultojë në shkarkim dhe dëmtim të tepërt të baterisë ndërsa pritet vetëm një rritje margjinale e jetës së baterisë (një qelizë NiMH është> 85% e shkarkuar në 1.15 V).

Një faktor tjetër që duhet të merret parasysh është aftësia e konvertuesit të nxitjes për të siguruar të paktën 3.0 V (2.5 V sipas dëshmive anekdotike) në rrymën maksimale 300-500 mA në bateri të ulëta. Rezistenca e ulët e brendshme e baterive NiMH shkakton vetëm një rënie të papërfillshme prej 0.1 V në rrymat maksimale, kështu që një palë qelizash NiMH të shkarkuara në 2.3 V (qark i hapur) do të jenë në gjendje të sigurojnë të paktën 2.2 V në konvertuesin e rritjes. Sidoqoftë, është më e ndërlikuar me bateritë alkaline. Me një palë bateri AA të ulur në 2.2-2.3 V (qark i hapur) pritet një rënie e tensionit prej 0.2-0.4 V në rrymat kulmore. Megjithëse kam verifikuar që qarku punon me konvertuesin e rekomanduar të nxitjes me vetëm 1.8 V të furnizuar në rrymat kulmore, kjo ka të ngjarë të bëjë që voltazhi i daljes të ulet për një moment nën vlerën e sugjeruar nga Espressiff. Pra, pragu i ndërprerjes prej 2.3 V lë pak diferencë sigurie me bateri alkaline (mbani në mend se një matje e tensionit e kryer nga mikrokontrolluesi është e saktë vetëm brenda plus ose minus disa përqind). Për të siguruar që moduli ESP të mos mbingarkohet kur bateritë alkaline janë të ulëta, rekomandoj rritjen e tensionit të ndërprerjes në 2.4 V (#define BATT_THRESHOLD 973). Në 1.2 V (qark i hapur) një qelizë alkaline shkarkohet rreth 70% që është vetëm 5-10 pikë përqindje më e ulët se shkalla e shkarkimit në 1.15 V për qelizë.

Të dy qelizat NiMH dhe ato alkaline kanë avantazhe dhe disavantazhe për këtë aplikim. Bateritë alkaline janë më të sigurta (nuk marrin zjarr nëse shkurtohen), dhe ato kanë një shkallë shumë më të ulët të vetë-shkarkimit. Sidoqoftë, bateritë NiMH garantojnë funksionim të besueshëm të ESP8266 në një pikë më të ulët të ndërprerjes falë rezistencës së tyre të ulët të brendshme. Por në fund të fundit, secili lloj mund të përdoret me disa masa paraprake, kështu që është vetëm çështje preferencash personale.

Hapi 5: Mohimi ligjor

Ky qark u krijua nga një hobi jo-profesionist vetëm për aplikime hobi. Ky dizajn ndahet me mirëbesim, por pa asnjë garanci. Përdoreni atë dhe ndajeni me të tjerët në rrezikun tuaj. Duke rikrijuar qarkun, ju pranoni që shpikësi nuk do të mbajë përgjegjësi për çdo dëm (përfshirë, por pa u kufizuar në dëmtimin e pasurisë dhe dëmtimin personal) që mund të ndodhë drejtpërdrejt ose tërthorazi, përmes mosfunksionimit ose përdorimit normal të këtij qarku. Nëse ligjet e vendit tuaj anulojnë ose ndalojnë këtë heqje dorë nga përgjegjësia, ju nuk mund ta përdorni këtë model. Nëse ndani këtë dizajn ose një qark të modifikuar bazuar në këtë dizajn, duhet të vlerësoni shpikësin origjinal duke treguar url -në e këtij udhëzuesi.

Recommended: