Orodha ya maudhui:

Kengele ya Maji ya IoT: Hatua 5 (na Picha)
Kengele ya Maji ya IoT: Hatua 5 (na Picha)

Video: Kengele ya Maji ya IoT: Hatua 5 (na Picha)

Video: Kengele ya Maji ya IoT: Hatua 5 (na Picha)
Video: Mr.President - Coco Jamboo (1996) [Official Video] 2024, Julai
Anonim
Kengele ya Maji ya IoT
Kengele ya Maji ya IoT

Hivi karibuni nimepata chelezo ya kukimbia jikoni. Laiti nisingekuwa nyumbani wakati huo, ingesababisha uharibifu wa sakafu na ukuta katika nyumba yangu. Kwa bahati nzuri, nilikuwa najua shida na nilikuwa tayari kuchota maji nje na ndoo. Hii ilinifanya nifikirie juu ya ununuzi wa kengele ya mafuriko. Niligundua bidhaa nyingi za bei rahisi kwenye Amazon, lakini zile zilizo na muunganisho wa mtandao zilikuwa na asilimia kubwa ya hakiki hasi, haswa kwa sababu ya maswala na huduma za arifa za wamiliki. Ndio sababu niliamua kutengeneza kengele yangu ya maji ya IoT ambayo itatumia njia ya arifa ya kuaminika ya chaguo langu.

Hatua ya 1: Kanuni ya Uendeshaji

Kanuni ya Uendeshaji
Kanuni ya Uendeshaji

Kengele ina AVR ATtiny85 microcontroller kama ubongo wake. Inachukua usomaji wa voltage kutoka kwa betri na sensa ya maji na inalinganishwa na thamani iliyofafanuliwa hapo awali ili kugundua uwepo wa maji au hali ya betri ya chini.

Sensor ya maji ni waya mbili tu zilizowekwa takriban 1 mm kando. Moja ya waya imeunganishwa na 3.3 V, na ile nyingine imeunganishwa na pini ya kuhisi kwenye microcontroller, ambayo pia imeunganishwa ardhini kupitia kontena la 0.5 MOhm. Kawaida, upinzani kati ya waya za sensorer ni kubwa sana (zaidi ya 10 MOhm), kwa hivyo pini ya kuhisi hutolewa hadi 0 V. Walakini, wakati kuna maji kati ya waya, upinzani hupungua hadi chini ya 1 MOhm, na pini ya kuhisi inaona voltage fulani (kwa upande wangu kuhusu 1.5 V). Wakati ATtiny85 inagundua voltage hii kwenye pini ya kuhisi, inamsha MOSFET kuwezesha buzzer, na hutuma ishara ya kuamka kwa moduli ya ESP8266 ambayo inawajibika kwa kutuma arifu (barua pepe na arifu za kushinikiza). Baada ya kupiga kelele kwa dakika, kengele inanyang'anywa silaha, na inaweza kuweka upya tu kwa baiskeli ya umeme.

Kitengo hiki kinaendesha seli mbili za alkali au NiMH. Mdhibiti mdogo amelala wakati mwingi kuhifadhi betri, akiamka kwa vipindi kuangalia sensa ya maji pamoja na voltage ya betri. Ikiwa betri ziko chini, mdhibiti mdogo anaamsha moduli ya ESP8266 ili kutuma onyo la chini la betri. Baada ya onyo, kengele hunyang'anywa silaha ili kuzuia kutokwa kwa betri kupita kiasi.

Kwa kuwa moduli ya ESP8266 inawajibika kutuma maonyo yote ya chini ya betri pamoja na tahadhari za mafuriko, inahitaji ishara ya kudhibiti kutoka ATiny85. Kwa sababu ya idadi ndogo ya pini zinazopatikana, ishara hii ya kudhibiti hutengenezwa na pini sawa inayohusika na dalili ya LED ya betri. Wakati wa operesheni ya kawaida (kengele ina silaha na betri zinachajiwa), taa ya LED inaangaza mara kwa mara. Wakati hali ya chini ya betri inagunduliwa, LED inawasha ili kutoa ishara ya juu kwa pini ya RX ya moduli ya ESP. Ikiwa maji hugunduliwa, LED ya betri itazimwa wakati ESP8266 imeamka..

Hatua ya 2: Ubunifu na Mkutano

Ubunifu na Mkutano
Ubunifu na Mkutano
Ubunifu na Mkutano
Ubunifu na Mkutano
Ubunifu na Mkutano
Ubunifu na Mkutano

Nilitengeneza mzunguko ujengwe kwenye ubao wa pande zote wa 4x6 cm ukitumia sehemu zaidi ya 0805 za SMD. Hesabu zilizowasilishwa zinategemea ujenzi huu, lakini inaweza kubadilishwa kwa urahisi kwa vifaa vya kupitia-shimo (ncha: kupunguza nafasi, viboreshaji vya shimo kupitia shimo kwa wima).

Sehemu zifuatazo zinahitajika:

- Resistors: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - 10 µF kauri capacitor- Moja ya kiwango cha mantiki N-channel MOSFET (kwa mfano RFP30N06LE au AO3400) - Nyekundu moja na moja ya manjano ya LED (au rangi zingine ukipenda).- Viunganishi vya waya vya waya mbili x 3 (sio ni muhimu kabisa, lakini hufanya iwe rahisi kuungana na kukataza pembezoni wakati wa upimaji) - Buzzer kubwa ya piezo ambayo ni nzuri kwa 3.3 V - Mdhibiti mdogo wa ATtiny85 (toleo la PDIP) - Tundu 8-pini ya PDIP kwa mdhibiti-moduli ya ESP-01 (inaweza kubadilishwa na moduli nyingine yenye msingi wa ESP8266, lakini kutakuwa na mabadiliko mengi katika mpangilio wa kesi hiyo) - Kigeuzi cha 3.3 V DC-DC cha kuongeza uwezo wa kutoa 200 mA (500 mA burst) mikondo ya 2.2 V pembejeo. (Ninapendekeza https://www.canton-electronics.com/power-converter… kwa sababu ya mkondo wake wa chini wa kutuliza) - Kichwa kimoja cha pini 3 cha kike- Vichwa viwili vya kike vya pini 4 au kichwa kimoja cha 2x4- waya 22 za AWG kwa sensa ya maji - waya 22 iliyokwama AWG (au aina nyingine ya waya nyembamba iliyo wazi ili kuunda athari)

Ninapendekeza maadili ya kupinga ambayo yameorodheshwa hapo juu, lakini unaweza kubadilisha zaidi yao kwa maadili sawa. Kulingana na aina ya LEDs unayotaka kutumia, unaweza kuhitaji kurekebisha maadili ya upingaji wa sasa ili kupata mwangaza unaotaka. MOSFET inaweza kuwa kupitia-shimo au SMT (SOT23). Mwelekeo tu wa kontena la 330 Ohm huathiriwa na aina ya MOSFET. Fuse ya PTC (kwa mfano iliyokadiriwa kwa 1 A) inapendekezwa ikiwa unapanga kutumia mzunguko huu na betri za NiMH. Walakini, haihitajiki na betri za alkali. Kidokezo: sehemu zinazohitajika kwa kengele hii zinaweza kununuliwa kwa bei rahisi kutoka kwa ebay au aliexpress.

Kwa kuongezea utahitaji ubao wa mkate, vipingamizi kadhaa vya shimo 10k, waya nyingi za kiume na kiume na kiume ("dupont") waya na adapta ya USB-UART ili kupanga moduli ya ESP-01.

Sensorer ya maji inaweza kutengenezwa kwa njia anuwai, lakini iliyo rahisi zaidi ni waya 22 za AWG zilizo na ncha zilizo wazi (urefu wa 1 cm) zikiwa zimepakana takriban 1 mm. Lengo ni kuwa na upinzani chini ya 5 MΩ kati ya mawasiliano ya sensa wakati maji yapo.

Mzunguko umeundwa kwa uchumi wa kiwango cha juu cha betri. Inachora 40-60 µA tu katika serikali ya ufuatiliaji (na taa ya umeme imeondolewa kwenye moduli ya ESP-01). Mara kengele inaposababishwa, mzunguko utavuta 300-500 mA (kwa pembejeo ya 2.4 V) kwa sekunde au chini, na baada ya hapo sasa itashuka chini ya 180 mA. Mara baada ya moduli ya ESP kumaliza kutuma arifa, matumizi ya sasa yatashuka hadi chini ya 70 mA hadi buzzer izime. Kisha kengele itajiondoa silaha, na matumizi ya sasa yatakuwa chini ya 30 µA. Kwa hivyo seti ya betri za AA zitaweza kuwezesha mzunguko kwa miezi mingi (labda zaidi ya mwaka). Ikiwa unatumia kibadilishaji tofauti cha kuongeza, sema na sasa ya quiescent ya 500 µA, betri zitahitaji kubadilishwa mara nyingi zaidi.

Vidokezo vya Mkutano:

Tumia alama ya kudumu kuweka alama kwa athari zote na sehemu kwenye protoboard kwa utaftaji rahisi. Ninapendekeza kuendelea kwa utaratibu ufuatao:

- upande wa juu LED za SMT na madaraja ya waya maboksi

- upande wa juu MOSFET (kumbuka: ikiwa una SOT-23 MOSFET, iweke diagonally kama kwenye picha. Ikiwa unatumia MOSFET ya shimo, weka usawa na pini ya lango katika nafasi ya I3.)

- upande wa juu kupitia sehemu za shimo (kumbuka: buzzer haijauzwa na haifai hata kuwekwa kwa PCB)

- kugeuza upande wa sehemu za SMT na athari (kwa mfano nyuzi za kibinafsi kutoka kwa waya wa AWG22)

Hatua ya 3: Programu dhibiti

Nambari C ya ATtiny85

Main.c ina nambari ambayo inahitaji kukusanywa na kupakiwa kwa mdhibiti mdogo. Ikiwa utatumia bodi ya Arduino kama programu, unaweza kupata mchoro wa wiring katika mafunzo haya. Unahitaji kufuata sehemu zifuatazo tu (puuza zingine):

- Kusanidi Arduino Uno kama ISP (In-System Programming)

- Kuunganisha ATtiny85 na Arduino Uno.

Ili kukusanya na kupakia firmware, utahitaji CrossPack (ya Mac OS) au zana ya zana ya AVR (ya Windows). Amri ifuatayo inahitaji kutekelezwa ili kuunda nambari:

avr-gcc -Os -mmcu = attiny85 -c kuu.c; avr-gcc -mmcu = attiny85 -o kuu.elf kuu.o; avr-objcopy -j. maandishi -j.data -O ihex kuu.elf kuu.hex

Ili kupakia firmware, fanya zifuatazo:

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

Badala ya "/ dev / cu.usbmodem1411" utahitaji kuingiza bandari ya serial ambayo Arduino yako imeunganishwa (unaweza kuipata katika Arduino IDE: Zana ya Zana).

Nambari hiyo ina kazi nyingi. kina_singizi () inafanya mdhibiti mdogo kuingia katika hali ya chini sana ya umeme kwa takriban sekunde 8. read_volt () hutumiwa kupima voltages za betri na sensorer. Voltage ya betri inapimwa dhidi ya rejea ya ndani ya voltage (2.56 V pamoja au punguza asilimia chache) wakati voltage ya sensorer inapimwa dhidi ya Vcc = 3.3 V. Usomaji unalinganishwa dhidi ya BATT_THRESHOLD na SENSOR_THRESHOLD inayoelezewa kama 932 na 102 mtawaliwa, ambayo inalingana na ~ 2.3 na 0.3 V. Unaweza kupunguza kiwango cha kizingiti cha betri kwa maisha bora ya betri, lakini haipendekezi (rejea mazingatio ya Battery kwa habari ya kina).

activate_alarm () inaarifu moduli ya ESP juu ya utambuzi wa maji na inasikika kwa buzzer. low_batt_notification () inaarifu moduli ya ESP kuwa betri iko chini na pia inasikika kama buzzer. Ikiwa hutaki kuamshwa katikati ya usiku ili kubadilisha betri, ondoa "| 1 <" katika low_batt_notification ().

Mchoro wa Arduino kwa ESP-01

Nilichagua kupanga moduli ya ESP kwa kutumia Arduino HAL (fuata kiunga cha maagizo ya usanidi). Kwa kuongeza nilitumia maktaba mbili zifuatazo:

ESP8266 Tuma Barua pepe na Górász Péter

ESP8266 Pushover na timu ya Arduino Hannover

Maktaba ya kwanza huunganisha kwenye seva ya SMTP na hutuma tahadhari kwa anwani yako ya barua pepe. Fungua tu akaunti ya gmail kwa ESP yako, na uongeze hati kwenye nambari. Maktaba ya pili hutuma arifa za kushinikiza kupitia huduma ya Pushover (arifa ni bure, lakini lazima ulipe mara moja kusanikisha programu kwenye simu yako / kibao). Pakua maktaba zote mbili. Weka yaliyomo kwenye maktaba ya Tuma Barua pepe kwenye folda yako ya mchoro (arduino itaunda utakapofungua mchoro wa arduino kwa mara ya kwanza). Sakinisha maktaba ya Pushover kupitia IDE (Mchoro -> Jumuisha Maktaba -> Ongeza maktaba ya. ZIP).

Ili kupanga moduli ya ESP-01 unaweza kufuata mafunzo haya yafuatayo: waya kuunganisha pini za moduli kwenye ubao wa mkate. Usisahau kwamba kibadilishaji cha kuongeza nguvu na adapta ya USB-UART inapaswa kushiriki ardhi (kumbuka: unaweza kutumia pato la 3.3 V la adapta ya USB-UART badala ya kibadilishaji cha kuongeza, lakini uwezekano mkubwa haitaweza kuwa na uwezo wa kutoa sasa ya kutosha).

Hatua ya 4: Mawazo ya Betri

Nambari ya firmware iliyotolewa imetengenezwa tayari kutuma onyo la chini la betri na kuzima kwa ~ 2.3 V. Kizingiti hiki kinategemea dhana kwamba betri mbili za NiMH hutumiwa katika safu. Haipendekezi kutoa seli yoyote ya NiMH chini ya 1 V. Kwa kudhani seli zote mbili zina uwezo sawa na sifa za kutokwa, zote mbili zitakatwa kwa ~ 1.15 V - vizuri ndani ya safu salama. Walakini, seli za NiMH ambazo zimetumika kwa mizunguko mingi ya kutokwa huwa zinatofautiana kwa uwezo. Hadi 30% tofauti ya uwezo inaweza kuvumiliwa kwani bado itasababisha kiwango cha chini cha kukatwa kwa seli karibu na 1 V.

Ingawa inawezekana kupunguza kizingiti cha chini cha betri kwenye firmware, kufanya hivyo kutaondoa kiwango cha usalama, na inaweza kusababisha kutolewa kwa betri na uharibifu wakati ongezeko tu la chini la maisha ya betri linatarajiwa (seli ya NiMH ni> 85% wameachiliwa saa 1.15 V).

Sababu nyingine ambayo inahitaji kuzingatiwa ni uwezo wa kibadilishaji cha kuongeza kutoa angalau 3.0 V (2.5 V kulingana na ushahidi wa hadithi) kwa kiwango cha juu cha 300-500 mA kwenye betri za chini. Upinzani mdogo wa ndani wa betri za NiMH husababisha kushuka kidogo tu kwa 0.1 V kwenye mikondo ya kilele, kwa hivyo jozi ya seli za NiMH zilizoachiliwa kwa 2.3 V (mzunguko wazi) zitaweza kutoa angalau 2.2 V kwa kibadilishaji cha kuongeza. Hata hivyo, ni ngumu zaidi na betri za alkali. Na jozi ya betri AA zilizokaa 2.2-2.3 V (mzunguko wazi) kushuka kwa voltage ya 0.2-0.4 V kunatarajiwa katika mikondo ya kilele. Ingawa nimethibitisha mzunguko unafanya kazi na kibadilishaji cha kuongeza nguvu kilichopendekezwa na chini ya 1.8 V iliyotolewa kwenye mikondo ya kilele, hii inaweza kusababisha voltage ya pato kuzamisha kwa muda chini ya thamani iliyopendekezwa na Espressiff. Kwa hivyo kizingiti cha kukatwa cha 2.3 V kinaacha kiwango kidogo cha usalama na betri za alkali (kumbuka kuwa kipimo cha voltage kinachofanywa na mdhibiti mdogo ni sahihi tu ndani ya pamoja au punguza asilimia chache). Ili kuhakikisha moduli ya ESP haigali wakati betri za alkali ziko chini, ninapendekeza kuongeza voltage iliyokatwa hadi 2.4 V (#fafanua BATT_THRESHOLD 973). Saa 1.2 V (mzunguko wazi) seli ya alkali iko karibu 70% iliyotolewa ambayo ni asilimia 5-10 tu chini ya kiwango cha kutokwa kwa 1.15 V kwa kila seli.

Wote NiMH na seli za alkali zina faida na hasara kwa programu hii. Batri za alkali ni salama zaidi (hazishike moto ikiwa zimepunguzwa), na zina kiwango cha chini cha kujitolea. Walakini, betri za NiMH zinathibitisha operesheni ya kuaminika ya ESP8266 kwa kiwango cha chini cha shukrani kutokana na upinzani wao mdogo wa ndani. Lakini mwishowe, aina yoyote inaweza kutumika na tahadhari kadhaa, kwa hivyo ni suala la upendeleo wa kibinafsi.

Hatua ya 5: Kanusho la kisheria

Mzunguko huu ulibuniwa na hobbyist ambaye sio mtaalam kwa matumizi ya hobby tu. Ubunifu huu unashirikiwa kwa nia njema, lakini bila dhamana yoyote. Itumie na ushiriki na wengine kwa hatari yako mwenyewe. Kwa kurudisha mzunguko unakubali kwamba mwanzilishi hatawajibika kwa uharibifu wowote (pamoja na lakini sio mdogo kwa kuharibika kwa mali na jeraha la kibinafsi) ambayo inaweza kutokea moja kwa moja au kwa njia isiyo ya moja kwa moja kwa utendakazi au matumizi ya kawaida ya mzunguko huu. Ikiwa sheria za nchi yako zinabatilisha au zinakataza msamaha huu wa dhima, huenda usitumie muundo huu. Ukishiriki muundo huu au mzunguko uliobadilishwa kulingana na muundo huu, lazima utoe sifa kwa mwanzilishi wa asili kwa kuonyesha url ya hii inayoweza kufundishwa.

Ilipendekeza: