Mündəricat:

IoT Su Alarmı: 5 Adım (Şəkillərlə birlikdə)
IoT Su Alarmı: 5 Adım (Şəkillərlə birlikdə)

Video: IoT Su Alarmı: 5 Adım (Şəkillərlə birlikdə)

Video: IoT Su Alarmı: 5 Adım (Şəkillərlə birlikdə)
Video: Bakı metrosunda gənclərin elədiyi zarafat 2024, Iyul
Anonim
IoT Su Siqnalı
IoT Su Siqnalı

Bu yaxınlarda mətbəx kanalizasiya ehtiyatı yaşadım. O vaxt evdə olmasaydım, mənzildə döşəmə və alçıpan zədələnəcəkdi. Xoşbəxtlikdən, problemin fərqində idim və bir kova ilə suyu çıxarmağa hazır idim. Bu, məni daşqın həyəcanı almaq barədə düşünməyə vadar etdi. Amazon -da çox əlverişli məhsullar kəşf etdim, ancaq internet bağlantısı olanlar, xüsusən mülkiyyət bildiriş xidmətlərindəki problemlər səbəbiylə mənfi rəylərin əhəmiyyətli bir hissəsinə sahib idi. Buna görə seçdiyim etibarlı bildiriş vasitələrindən istifadə edəcək öz IoT su siqnalizasiyasını etmək qərarına gəldim.

Addım 1: Əməliyyat prinsipi

Əməliyyat prinsipi
Əməliyyat prinsipi

Siqnalın beynində bir AVR ATtiny85 mikro nəzarətçisi var. Batareyadan və su sensöründən gərginlik oxunuşlarını alır və suyun mövcudluğunu və ya aşağı batareya vəziyyətini aşkar etmək üçün onları əvvəlcədən təyin edilmiş bir dəyərlə müqayisə edir.

Su sensoru, təxminən 1 mm aralıda yerləşdirilmiş iki teldən ibarətdir. Tellərdən biri 3,3 V -a, digəri isə 0,5 MOhm müqavimət vasitəsi ilə yerə qoşulan mikrokontrolördəki hissedici pinə bağlıdır. Normalda, sensor telləri arasındakı müqavimət çox yüksəkdir (10 MOhm -dən çox), buna görə də hissedici pin 0 V -ə qədər aşağı çəkilir. Lakin tellər arasında su olduqda müqavimət 1 MOhm -dən aşağı düşür, və hissedici pin bəzi gərginlik görür (mənim vəziyyətimdə təxminən 1,5 V). ATtiny85 bu gərginliyi algılama pinində algıladığında, bir siqnalı işə salmaq üçün MOSFET-i aktivləşdirir və xəbərdarlıq (e-poçt və təkan bildirişləri) göndərməkdən məsul olan ESP8266 moduluna oyanış siqnalı göndərir. Bir dəqiqəlik səs -küydən sonra siqnalizasiya tərksilah edilir və yalnız elektrikli velosipedlə sıfırlana bilər.

Bu qurğu iki qələvi və ya NiMH hüceyrəsindən çalışır. Mikro nəzarətçi, batareyaları qorumaq üçün çox vaxt yuxuda olur, su sensorunu və batareyaların gərginliyini yoxlamaq üçün ara -sıra oyanır. Batareyalar azdırsa, mikrokontrolör aşağı batareya xəbərdarlığı göndərmək üçün ESP8266 modulunu oyadır. Xəbərdarlıqdan sonra, batareyanın həddindən artıq boşalmasının qarşısını almaq üçün siqnalizasiya tərksilah edilir.

ESP8266 modulu həm aşağı batareya xəbərdarlıqlarının, həm də daşqın xəbərdarlıqlarının göndərilməsindən məsul olduğu üçün ATiny85 -dən bir nəzarət siqnalı tələb edir. Məhdud sayda pin olduğuna görə, bu nəzarət siqnalı batareyanın LED göstəricisindən məsul olan eyni pin tərəfindən yaradılır. Normal iş zamanı (siqnalizasiya silahlıdır və batareyalar doldurulur), LED fasilələrlə yanıb -sönür. Aşağı batareya vəziyyəti aşkar edildikdə, LED ESP modulunun RX pininə yüksək siqnal vermək üçün açılır. Su aşkar edilərsə, ESP8266 oyaq ikən batareya LEDi sönəcək.

Addım 2: Dizayn və Montaj

Dizayn və montaj
Dizayn və montaj
Dizayn və montaj
Dizayn və montaj
Dizayn və montaj
Dizayn və montaj

Dövrü əsasən 0805 SMD hissələrindən istifadə edərək 4x6 sm ölçülü iki tərəfli protoboard üzərində qurulmasını dizayn etdim. Təqdim olunan sxemlər bu quruluşa əsaslanır, lakin çuxurdan keçən komponentlər üçün asanlıqla uyğunlaşdırıla bilər (ipucu: məkanı minimuma endirmək, delikdən keçən rezistorları şaquli şəkildə lehimləmək).

Aşağıdakı hissələr tələb olunur:

- Rezistorlar: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Bir 10 µF keramika kondansatörü- Bir məntiqi səviyyəli N-kanallı MOSFET (məsələn, RFP30N06LE və ya AO3400)- Bir qırmızı və bir sarı LED (və ya isterseniz digər rənglər).- İki telli vintli terminal bağlayıcıları x 3 (bunlar deyil tamamilə zəruridir, lakin sınaq zamanı ətrafı bağlamağı və ayırmağı asanlaşdırır)- 3.3 V- ATtiny85 mikrokontroller (PDIP versiyası) üçün yaxşı olan yüksək piezo səs siqnalı- Mikro nəzarətçi üçün 8 pinli PDIP yuvası- ESP-01 modulu (başqa bir ESP8266 əsaslı modul ilə əvəz edilə bilər, ancaq bu vəziyyətdə düzende çox dəyişiklik olacaq)-2,2 V-də 200 mA (500 mA partlayış) cərəyanı verə bilən 3.3 V DC-DC gücləndirici çevirici giriş. (Ultra aşağı səssiz cərəyanı səbəbindən https://www.canton-electronics.com/power-converter… tövsiyə edirəm)-Bir 3 pinli qadın başlıq-İki 4 pinli qadın başlıq və ya bir 2x4 başlıq-22 AWG möhkəm tel su sensoru üçün- 22 AWG qapalı tel (və ya izlər yaratmaq üçün başqa bir növ nazik açıq tel)

Yuxarıda sadalanan müqavimət dəyərlərini tövsiyə edirəm, amma çoxunu oxşar dəyərlərlə əvəz edə bilərsiniz. İstifadə etmək istədiyiniz LED-lərin növündən asılı olaraq istənilən parlaqlığı əldə etmək üçün cərəyanı məhdudlaşdıran müqavimət dəyərlərini tənzimləməyiniz lazım ola bilər. MOSFET ya deşikli, ya da SMT (SOT23) ola bilər. Yalnız 330 Ohm rezistorun istiqaməti MOSFET tipindən təsirlənir. Bu dövrəni NiMH batareyaları ilə istifadə etməyi planlaşdırırsınızsa, bir PTC sigortası (məsələn, 1 A üçün qiymətləndirilmiş) tövsiyə olunur. Bununla birlikdə, qələvi batareyalarla lazım deyil. İpucu: bu həyəcan üçün lazım olan hissələri ebay və ya aliexpress -dən ucuz almaq olar.

Bundan əlavə, ESP-01 modulunu proqramlaşdırmaq üçün çörək taxtası, bir neçə deşikli 10k rezistor, birdən çox kişi-kişi və qadın-kişi tullanan tel ("dupont") və USB-UART adapterinə ehtiyacınız olacaq.

Su sensoru müxtəlif yollarla hazırlana bilər, amma ən sadə biri təxminən 1 mm aralığındakı açıq uçları (1 sm uzunluğunda) olan 22 ədəd 22 AWG teldir. Məqsəd, su olduqda sensor kontaktları arasında 5 MΩ -dən az müqavimətə malik olmaqdır.

Dövrə maksimum batareya qənaəti üçün hazırlanmışdır. İzləmə rejimində cəmi 40-60 µA çəkir (ESP-01 modulunda güc LEDi çıxarılaraq). Siqnal işə salındıqda, dövrə bir saniyə və ya daha az bir müddət ərzində 300-500 mA (2,4 V girişdə) çəkəcək və bundan sonra cərəyan 180 mA-dan aşağı düşəcək. ESP modulu bildirişlər göndərdikdən sonra, səs siqnalı sönənə qədər cari istehlak 70 mA -nın altına enəcək. Sonra siqnalizasiya özünü tərksilah edəcək və cari istehlak 30 µA -dan aşağı olacaq. Beləliklə, bir sıra AA batareyaları dövrəni aylarla (çox güman ki, bir ildən çox) təmin edə biləcək. Fərqli bir gücləndirici çevirici istifadə edirsinizsə, məsələn 500 µA -lik sakit bir cərəyanla, batareyaların daha tez -tez dəyişdirilməsi lazım olacaq.

Montaj üçün göstərişlər:

Daha asan lehimləmə üçün protoboarddakı bütün izləri və komponentləri etiketləmək üçün daimi bir markerdən istifadə edin. Aşağıdakı qaydada davam etməyi məsləhət görürəm:

- üst tərəfdəki SMT LEDləri və izolyasiya edilmiş tel körpüləri

-üst tərəfdəki MOSFET (qeyd: əgər SOT-23 MOSFET-iniz varsa, şəkildəki kimi diaqonal olaraq yerləşdirin. Bir deşikli MOSFET istifadə edirsinizsə, qapı pimi I3 mövqeyində yatay şəkildə yerləşdirin.)

- üst tərəfi deşik hissələrindən keçir (qeyd: səs siqnalı lehimlənməmişdir və hətta PCB -yə quraşdırılmasına ehtiyac yoxdur)

- arxa tərəfdəki SMT hissələri və izləri (məsələn, AWG22 teldən fərdi iplər)

Addım 3: Firmware

ATtiny85 üçün C kodu

Main.c, tərtib edilməli və mikro nəzarətçiyə yüklənməli olan kodu ehtiva edir. Bir Arduino lövhəsini proqramçı olaraq istifadə edəcəksinizsə, bu təlimatda tel diaqramını tapa bilərsiniz. Yalnız aşağıdakı bölmələrə əməl etməlisiniz (qalan hissələrə məhəl qoymayın):

-Arduino Uno-nu ISP olaraq konfiqurasiya etmək (Sistemda Proqramlaşdırma)

- ATtiny85 -in Arduino Uno ilə birləşdirilməsi.

Firmware tərtib etmək və yükləmək üçün CrossPack (Mac OS üçün) və ya AVR alət zəncirinə (Windows üçün) ehtiyacınız olacaq. Kodu tərtib etmək üçün aşağıdakı əmri yerinə yetirmək lazımdır:

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

Firmware yükləmək üçün aşağıdakıları yerinə yetirin:

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

"/Dev/cu.usbmodem1411" əvəzinə, çox güman ki, Arduino -nun qoşulduğu serial portu daxil etməlisiniz (Arduino IDE: Alətlər Portunda tapa bilərsiniz).

Kod birdən çox funksiyanı ehtiva edir. deep_sleep () mikrokontrolörün təxminən 8 saniyə ərzində çox aşağı gücə keçməsini təmin edir. read_volt () batareyanın və sensorun gərginliyini ölçmək üçün istifadə olunur. Batareya gərginliyi daxili gərginlik referansına (2.56 V artı və ya mənfi bir neçə faiz) qarşı, sensor gərginliyi isə Vcc = 3.3 V ilə ölçülür. Oxunuşlar sırasıyla 932 və 102 olaraq təyin olunan BATT_THRESHOLD və SENSOR_THRESHOLD ilə müqayisə olunur. ~ 2.3 və 0.3 V. Təkmilləşdirilmiş batareya ömrü üçün batareya eşik dəyərini azalda bilərsiniz, lakin bu tövsiyə edilmir (ətraflı məlumat üçün Batareya mülahizələrinə baxın).

activate_alarm () ESP moduluna suyun aşkarlanması barədə məlumat verir və səs siqnalı verir. low_batt_notification () ESP moduluna batareyanın az olduğunu bildirir və siqnalı da səsləndirir. Gecə yarısında batareyanı dəyişdirmək üçün oyanmaq istəmirsinizsə, low_batt_notification () bölməsində "| 1 <" işarəsini çıxarın.

ESP-01 üçün Arduino eskizi

ESP modulunu Arduino HAL istifadə edərək proqramlaşdırmağı seçdim (quraşdırma təlimatları üçün linki izləyin). Əlavə olaraq aşağıdakı iki kitabxanadan istifadə etdim:

ESP8266 Górázz Péter tərəfindən e -poçt göndər

Arduino Hannover komandası tərəfindən ESP8266 Pushover

İlk kitabxana SMTP serverinə qoşulur və e -poçt ünvanınıza xəbərdarlıq göndərir. ESP üçün bir gmail hesabı yaradın və etimadnamənizi koda əlavə edin. İkinci kitabxana Pushover xidməti vasitəsilə push bildirişləri göndərir (bildirişlər pulsuzdur, ancaq proqramı telefonunuza/planşetinizə yükləmək üçün bir dəfə pul ödəməlisiniz). Hər iki kitabxananı yükləyin. E -poçt Göndər kitabxanasının məzmununu eskiz qovluğunuza qoyun (arduino eskizini ilk dəfə açdığınız zaman arduino yaradacaq). Pushover kitabxanasını IDE vasitəsi ilə quraşdırın (Sketch -> Kitabxana daxil et -> ZIP kitabxana əlavə et).

ESP-01 modulunu proqramlaşdırmaq üçün aşağıdakı təlimatı izləyə bilərsiniz: https://www.allaboutcircuits.com/projects/breadbo… Kılavuzda göstərildiyi kimi bir sıra pinləri yenidən satmaqla narahat olmağa ehtiyac yoxdur-yalnız qadın-kişi dupontdan istifadə edin modulun pinlərini çörək taxtasına bağlamaq üçün tellər. Unutmayın ki, gücləndirici konvertoru və USB-UART adapteri bir yerdə bölüşməlidir (qeyd: USB-UART adapterinin gücləndirici çeviricisi əvəzinə 3.3 V çıxışını istifadə edə bilərsiniz, amma çox güman ki, kifayət qədər cərəyan çıxara bilir).

Addım 4: Batareyaya dair fikirlər

Təmin olunan firmware kodu, aşağı batareya xəbərdarlığı göndərmək və ~ 2,3 V -də bağlamaq üçün əvvəlcədən qurulmuşdur. Bu hədd iki NiMH batareyasının seriya olaraq istifadə edildiyi fərziyyəsinə əsaslanır. NiMH hüceyrələrinin 1 V -dən aşağı salınması məsləhət görülmür. Hər iki hüceyrənin də eyni qabiliyyətə və boşalma xüsusiyyətinə malik olduğunu nəzərə alsaq, hər ikisi də ~ 1.15 V -da - etibarlı diapazonda kəsiləcək. Bununla birlikdə, bir çox boşalma dövrü üçün istifadə olunan NiMH hüceyrələri tutum baxımından fərqlənir. Tutum fərqində 30% -ə qədər tolere edilə bilər, çünki hələ də 1 V ətrafında ən aşağı gərginlikli hüceyrə kəsmə nöqtəsi ilə nəticələnəcəkdir.

Firmware-də aşağı batareya həddini azaltmaq mümkün olsa da, bu təhlükəsizlik marjasını aradan qaldıracaq və batareyanın həddindən artıq boşalması və zədələnməsinə səbəb ola bilər, ancaq batareyanın ömründə cüzi bir artım gözlənilir (NiMH hüceyrəsi> 85% -i 1.15 V -da boşaldılır).

Nəzərə alınması lazım olan digər bir amil, gücləndirici çeviricinin aşağı batareyalarda 300-500 mA maksimum cərəyanda ən az 3.0 V (anekdot sübutlarına görə 2.5 V) təmin etməsidir. NiMH batareyalarının aşağı daxili müqaviməti, pik cərəyanlarda 0,1 V -a cüzi bir düşməyə səbəb olur, buna görə də 2,3 V -a (açıq dövrə) boşaldılmış bir cüt NiMH hüceyrəsi gücləndirici çeviriciyə ən azı 2,2 V təmin edə biləcək. Bununla birlikdə, qələvi batareyalarla daha mürəkkəbdir. 2.2-2.3 V (açıq dövrə) mövqedə oturan bir cüt AA batareyası ilə pik cərəyanlarda 0.2-0.4 V gərginlik düşməsi gözlənilir. Dövrənin ən yüksək cərəyanlarda 1,8 V qədər az olan tövsiyə olunan gücləndirici çevirici ilə işlədiyini təsdiqləsəm də, bu, ehtimal ki, çıxış gərginliyinin Espressiffin təklif etdiyi dəyərdən bir qədər aşağı düşməsinə səbəb olur. Beləliklə, 2,3 V olan kəsmə həddi qələvi batareyalarla çox az təhlükəsizlik marjası buraxır (unutmayın ki, mikrokontrolör tərəfindən edilən bir gərginlik ölçülməsi yalnız artı və ya mənfi bir neçə faiz daxilində dəqiqdir). Qələvi batareyalar az olduqda ESP modulunun işləməməsini təmin etmək üçün kəsmə gərginliyini 2,4 V-ə qaldırmağı məsləhət görürəm (#define BATT_THRESHOLD 973). 1.2 V-da (açıq dövrə) bir qələvi hüceyrə təxminən 70% boşalır və bu, hüceyrə başına 1.15 V-də boşalma dərəcəsindən cəmi 5-10 faiz aşağıdır.

Həm NiMH, həm də qələvi hüceyrələrin bu tətbiq üçün üstünlükləri və mənfi cəhətləri var. Qələvi batareyalar daha təhlükəsizdir (qısalsa yanmaz) və öz-özünə boşalma dərəcəsi daha aşağıdır. Bununla birlikdə, NiMH batareyaları, aşağı daxili müqavimət sayəsində ESP8266-nın daha aşağı kəsmə nöqtəsində etibarlı işləməsini təmin edir. Ancaq nəticədə hər iki növ də bəzi ehtiyat tədbirləri ilə istifadə edilə bilər, buna görə də yalnız şəxsi üstünlük məsələsidir.

Addım 5: Qanuni İmtina

Bu dövrə yalnız hobbi tətbiqləri üçün peşəkar olmayan bir hobbi tərəfindən hazırlanmışdır. Bu dizayn vicdanla paylaşılır, lakin heç bir zəmanət verilmir. İstifadə edin və öz riski ilə başqaları ilə paylaşın. Dövrü yenidən yaratmaqla, ixtiraçının bu dövrənin nasazlığı və ya normal istifadəsi nəticəsində bilavasitə və ya dolayısı ilə meydana gələ biləcək hər hansı bir zərərə (aktivlərin dəyərsizləşməsi və şəxsi xəsarət daxil olmaqla) məsuliyyət daşımayacağını qəbul edirsiniz. Ölkənizin qanunları bu məsuliyyətdən imtina etməyi ləğv edərsə və ya qadağan edərsə, bu dizayndan istifadə edə bilməzsiniz. Bu dizaynı və ya bu dizayna əsaslanaraq dəyişdirilmiş bir dövrəni paylaşırsınızsa, bu təlimatın ünvanını göstərərək orijinal ixtiraçıya kredit verməlisiniz.

Tövsiyə: