Mundarija:

IoT suv signalizatsiyasi: 5 qadam (rasmlar bilan)
IoT suv signalizatsiyasi: 5 qadam (rasmlar bilan)

Video: IoT suv signalizatsiyasi: 5 qadam (rasmlar bilan)

Video: IoT suv signalizatsiyasi: 5 qadam (rasmlar bilan)
Video: 1000000 dan 1 ta insonga uchraydigan kasallik bilan tug'ilgan odamlar ! 2024, Iyul
Anonim
IoT suv signalizatsiyasi
IoT suv signalizatsiyasi

Men yaqinda oshxona drenajini zaxiralashni boshdan kechirdim. Agar men o'sha paytda uyda bo'lmaganimda, bu mening kvartiramda taxta va gipsokartonlarga zarar etkazgan bo'lardi. Yaxshiyamki, men muammo haqida xabardor edim va chelak bilan suvni tortib olishga tayyor edim. Bu meni suv toshqini signalini sotib olish haqida o'ylashga majbur qildi. Men Amazon -da ko'plab arzon mahsulotlarni topdim, lekin Internetga ulanganlar, asosan, mulkiy xabarnoma xizmatlari bilan bog'liq muammolar tufayli, ko'plab salbiy sharhlarga ega edi. Shuning uchun men o'zim tanlagan ishonchli xabarnoma vositalaridan foydalanadigan IoT suv signalizatsiyasini o'zim qilishga qaror qildim.

1 -qadam: ishlash printsipi

Ishlash printsipi
Ishlash printsipi

Signalning miyasi AVR ATtiny85 mikrokontrolleriga ega. Batareya va suv sensori kuchlanish ko'rsatkichlarini oladi va suv borligini yoki batareya quvvati pastligini aniqlash uchun ularni oldindan belgilangan qiymat bilan taqqoslaydi.

Suv sensori - bu bir -biridan taxminan 1 mm masofada joylashgan ikkita sim. Simlardan biri 3,3 V ga, ikkinchisi esa mikrokontroldagi sezgich piniga ulangan, u ham 0,5 Mohm qarshilik orqali erga ulangan. Odatda, sensorlar simlari orasidagi qarshilik juda yuqori (10 MOhm dan yuqori), shuning uchun sezgich pinasi oxirigacha 0 V ga qadar tortiladi, lekin simlar o'rtasida suv bo'lsa, qarshilik 1 MOhm dan past bo'ladi, va sezuvchi pin qandaydir kuchlanishni ko'radi (mening holimda taxminan 1,5 V). ATtiny85 sezgich pinidagi bu kuchlanishni aniqlaganida, u signal signalini yoqish uchun MOSFETni faollashtiradi va ogohlantirish signallarini yuborish uchun javob beradigan ESP8266 moduliga signal yuboradi (elektron pochta va bildirishnomalar). Bir daqiqalik shovqin -surondan so'ng, signal o'chiriladi va uni faqat velosipedda kuch bilan tiklash mumkin.

Bu birlik ikkita gidroksidi yoki NiMH hujayrasidan ishlaydi. Batareyalarni tejash uchun mikrokontroller ko'pincha uxlab qoladi, vaqti -vaqti bilan uyg'onib, suv sensori va batareyalarning kuchlanishini tekshiradi. Agar batareyalar kam bo'lsa, mikrokontroller ESP8266 modulini uyg'otadi va batareya quvvati pastligi haqida ogohlantirish yuboradi. Ogohlantirishdan so'ng, batareya zaryadsizlanishining oldini olish uchun signal o'chiriladi.

ESP8266 moduli batareya quvvati pastligi va suv toshqini haqida ogohlantirishlarni yuborish uchun mas'ul bo'lgani uchun ATiny85 boshqaruv signalini talab qiladi. Pimlar soni cheklanganligi sababli, bu nazorat signali batareyaning LED ko'rsatkichi uchun mas'ul bo'lgan bir xil pin tomonidan ishlab chiqariladi. Oddiy ish paytida (signal qurollangan va batareyalar zaryadlangan), LED vaqti -vaqti bilan miltillaydi. Kam batareya holati aniqlanganda, LED yonadi va ESP modulining RX piniga yuqori signal beradi. Agar suv aniqlansa, batareya LEDi ESP8266 uyg'onganda o'chadi.

2 -qadam: Dizayn va montaj

Dizayn va montaj
Dizayn va montaj
Dizayn va montaj
Dizayn va montaj
Dizayn va montaj
Dizayn va montaj

Men sxemani asosan 0805 SMD qismlaridan foydalangan holda, 4x6 sm o'lchamdagi ikki tomonlama protobardda qurishni rejalashtirdim. Taqdim etilgan sxemalar ushbu tuzilishga asoslangan, lekin uni teshik qismlari uchun osonlikcha moslashtirish mumkin (maslahat: bo'sh joyni kamaytirish, teshikli rezistorlarni vertikal ravishda lehimlash).

Quyidagi qismlar talab qilinadi:

- Rezistorlar: 330 Ω x 1; 470 Ω x 1; 680 dyuym x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - Bitta 10 mF sopol sig'imli kondansatkich- N-kanalli mantiqiy darajadagi bitta MOSFET (masalan, RFP30N06LE yoki AO3400)- bitta qizil va bitta sariq LED (yoki xohlasangiz boshqa ranglar).- Ikki simli vintli terminalli ulagichlar x 3 (ular emas juda zarur, lekin ular sinov paytida periferiyani ulash va ajratishni osonlashtiradi)- 3.3 V- ATtiny85 mikrokontrolderi (PDIP versiyasi) uchun yaxshi bo'lgan baland ovozli signal- Mikrokontroller uchun 8 pinli PDIP uyasi- ESP-01 moduli. (uni ESP8266-ga asoslangan boshqa modul bilan almashtirish mumkin, lekin bu holda sxemada juda ko'p o'zgarishlar bo'ladi)-2,3 V da 200 mA (500 mA portlash) oqimini etkazib bera oladigan 3,3 V DC-DC kuchaytirgichi. kiritish. (Men https://www.canton-electronics.com/power-converter… ni tavsiya qilaman, chunki u juda past sokin oqimga ega)-bitta 3 pinli ayol sarlavhasi-ikkita 4 pinli ayol boshi yoki bitta 2x4 sarlavhasi-22 ta AWG qattiq simlari suv sensori uchun- 22 ta AWG torli sim (yoki izlar yaratish uchun boshqa turdagi ingichka ochiq sim)

Men yuqorida sanab o'tilgan qarshilik qiymatlarini tavsiya qilaman, lekin siz ularning ko'pini shunga o'xshash qiymatlarga almashtirishingiz mumkin. Siz foydalanmoqchi bo'lgan LEDlarning turiga qarab, kerakli yorqinlikni olish uchun oqim cheklovchisining qiymatlarini moslashtirishingiz kerak bo'ladi. MOSFET teshikli yoki SMT (SOT23) bo'lishi mumkin. Faqat 330 Ohmli rezistorning yo'nalishiga MOSFET turi ta'sir qiladi. Agar siz ushbu sxemani NiMH batareyalari bilan ishlatmoqchi bo'lsangiz, PTC sug'urta (masalan, 1 A uchun baholangan) tavsiya etiladi. Biroq, gidroksidi batareyalar bilan kerak emas. Maslahat: bu signal uchun zarur bo'lgan qismlarni ebay yoki aliexpress -dan arzon sotib olish mumkin.

Bundan tashqari, sizga ESP-01 modulini dasturlash uchun non paneli, bir nechta teshikli 10k rezistorlar, bir nechta erkak-erkak va ayol-erkak o'tish kabeli ("dupont") va USB-UART adapteri kerak bo'ladi.

Suv sensori har xil usulda tayyorlanishi mumkin, lekin eng sodda - AWG ikkita 22 ta sim, ular bir -biridan taxminan 1 mm masofada joylashgan. Maqsad, suv mavjud bo'lganda sensor kontaktlari o'rtasida 5 MΩ dan kam qarshilikka ega bo'lish.

O'chirish batareyani maksimal tejash uchun mo'ljallangan. U monitor rejimida atigi 40-60 mkA ni tortadi (ESP-01 modulida quvvat LEDini olib tashlagan holda). Signal ishga tushirilgandan so'ng, kontaktlarning zanglashiga bir soniya yoki undan kamroq vaqt davomida 300-500 mA (2,4 V kirishda) tushadi va shundan keyin oqim 180 mA dan pastga tushadi. ESP moduli xabarnomalarni yuborishni tugatgandan so'ng, qo'ng'iroq ovozi o'chmaguncha 70 mA dan past bo'ladi. Keyin signal o'zini o'zi qurolsizlantiradi va joriy iste'mol 30 mkA dan past bo'ladi. Shunday qilib, AA batareyalar to'plami ko'p oylar davomida (ehtimol bir yildan ortiq) elektr zaryadini ta'minlay oladi. Agar siz boshqa kuchaytirgichdan foydalansangiz, masalan, 500 mkA tinch oqim bilan, batareyalarni tez -tez o'zgartirish kerak bo'ladi.

O'rnatish bo'yicha maslahatlar:

Lehimlashni osonlashtirish uchun protobildagi barcha izlar va komponentlarni belgilash uchun doimiy markerdan foydalaning. Quyidagi tartibda davom etishni tavsiya qilaman:

- tepadagi SMT LED va izolyatsiyalangan simli ko'priklar

-MOSFETning yuqori tomoni (eslatma: agar sizda SOT-23 MOSFET bo'lsa, uni rasmdagi kabi diagonal ravishda joylashtiring. Agar siz teshikli MOSFETdan foydalansangiz, uni gorizontal holatda I3 holatidadir.

- teshik qismlari ustki tomoni (eslatma: ovozli signal lehimlanmagan va hatto uni PCBga o'rnatish shart emas)

- teskari tarafdagi SMT qismlari va izlari (masalan, AWG22 simining alohida iplari)

3 -qadam: dasturiy ta'minot

ATtiny85 uchun C kodi

Main.c kompilyatsiya qilinishi va mikrokontrollerga yuklanishi kerak bo'lgan kodni o'z ichiga oladi. Agar siz Arduino kartasini dasturchi sifatida ishlatmoqchi bo'lsangiz, ushbu qo'llanmada simlar sxemasini topishingiz mumkin. Siz faqat quyidagi bo'limlarni bajarishingiz kerak (qolganlarini e'tiborsiz qoldiring):

-Arduino Uno-ni ISP sifatida sozlash (tizim ichidagi dasturlash)

- ATtiny85 -ni Arduino Uno -ga ulash.

Dasturiy ta'minotni kompilyatsiya qilish va yuklash uchun sizga CrossPack (Mac OS uchun) yoki AVR asboblar zanjiri (Windows uchun) kerak bo'ladi. Kodni kompilyatsiya qilish uchun quyidagi buyruqni bajarish kerak:

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

Dasturiy ta'minotni yuklash uchun quyidagilarni bajaring:

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

"/Dev/cu.usbmodem1411" o'rniga siz Arduino ulangan ketma -ket portni kiritishingiz kerak bo'ladi (uni Arduino IDE: Asboblar portidan topishingiz mumkin).

Kod bir nechta funktsiyalarni o'z ichiga oladi. deep_sleep () mikrokontrollerni taxminan 8 soniya davomida juda kam quvvat holatiga o'tkazadi. read_volt () batareya va sensor kuchlanishlarini o'lchash uchun ishlatiladi. Batareya zo'riqishida ichki kuchlanish ko'rsatkichi (2,56 V ortiqcha yoki minus bir necha foiz) bilan o'lchanadi, sensori kuchlanishi esa Vcc = 3,3 V ga to'g'ri keladi. ~ 2,3 va 0,3 V. Batareyaning ishlash muddatini uzaytirish uchun siz chegara qiymatini kamaytira olasiz, lekin bu tavsiya etilmaydi (Batafsil ma'lumot uchun Batareya parametrlariga qarang).

activate_alarm () suvni aniqlash haqida ESP moduliga xabar beradi va signal signalini chiqaradi. low_batt_notification () ESP moduliga batareya quvvati pastligi haqida xabar beradi, shuningdek, signal signalini chiqaradi. Agar siz batareyani almashtirish uchun yarim tunda uyg'onishni xohlamasangiz, low_batt_notification () da "| 1 <" ni olib tashlang.

ESP-01 uchun Arduino eskizi

Men ESP modulini Arduino HAL yordamida dasturlashni tanladim (sozlash bo'yicha ko'rsatmalar uchun havolaga o'ting). Bundan tashqari, men quyidagi ikkita kutubxonadan foydalandim:

ESP8266 Goras Pyotr tomonidan elektron pochta xabarini yuborish

Arduino Hannover jamoasi tomonidan ESP8266 surish

Birinchi kutubxona SMTP serveriga ulanadi va elektron pochta manzilingizga ogohlantirish yuboradi. Faqat ESP uchun Gmail hisob qaydnomasini yarating va kodga hisobga olish ma'lumotlarini qo'shing. Ikkinchi kutubxona Pushover xizmati orqali push -bildirishnomalarni yuboradi (bildirishnomalar bepul, lekin ilovani telefoningizga/planshetingizga o'rnatish uchun bir marta to'lashingiz kerak). Ikkala kutubxonani ham yuklab oling. E -pochta yuborish kutubxonasi tarkibini eskiz papkangizga qo'ying (arduino eskizini birinchi marta ochganingizda uni yaratadi). Pushover kutubxonasini IDE orqali o'rnating (Sketch -> Kutubxonani qo'shish -> ZIP kutubxonasini qo'shish).

ESP-01 modulini dasturlash uchun siz quyidagi qo'llanmani bajarishingiz mumkin: https://www.allaboutcircuits.com/projects/breadbo… Qo'llanmada ko'rsatilgandek, bir qator pimlarni qayta sotish bilan ovora bo'lishga hojat yo'q-faqat ayol-erkak dupontdan foydalaning. modul pimlarini non paneliga ulash uchun simlar. Shuni unutmangki, kuchaytirgich va USB-UART adapteri bir-biriga ulashishi kerak (eslatma: siz USB-UART adapterining kuchaytirgichi o'rniga 3,3 V kuchlanishni ishlatishingiz mumkin, lekin, ehtimol, bunday bo'lmaydi. etarlicha tok chiqara oladi).

4 -qadam: Batareyani hisobga olish

Taqdim etilgan dasturiy ta'minot kodi batareya quvvati pastligi haqida ogohlantirish yuborish uchun oldindan tuzilgan va ~ 2,3 V da yopiladi. Bu chegara ikkita NiMH batareyasi ketma -ket ishlatilgan degan taxminga asoslanadi. NiMH hujayralarini 1 V dan pastroqqa tushirish tavsiya etilmaydi, agar ikkala hujayraning quvvati va tushirish xususiyatlari teng bo'lsa, ularning har ikkisi ham ~ 1.15 V da - xavfsiz diapazonda kesiladi. Biroq, ko'plab tushirish davrlarida ishlatilgan NiMH xujayralari sig'im jihatidan farq qiladi. Imkoniyatlarning 30% gacha farqiga toqat qilish mumkin, chunki bu hali ham 1 V atrofida eng past kuchlanishli hujayralarni kesish nuqtasiga olib keladi.

Mikrodasturda batareyaning past chegarasini kamaytirish mumkin bo'lsa-da, bu xavfsizlik chegarasini olib tashlaydi va batareyaning haddan tashqari zaryadsizlanishiga va shikastlanishiga olib kelishi mumkin, shu bilan birga batareyaning ishlash muddatini biroz oshirib yuborish mumkin (NiMH xujayrasi> 85% zaryadsizlanadi 1.15 V).

Shuni hisobga olish kerak bo'lgan yana bir omil-kuchaytirgichning quvvati past batareyalarda 300-500 mA maksimal oqimda kamida 3,0 V (anekdot dalillarga ko'ra 2,5 V). NiMH batareyalarining ichki qarshiligining pastligi maksimal oqimlarda 0,1 V ga ahamiyatsiz pasayishiga olib keladi, shuning uchun 2,3 V (ochiq zanjir) ga zaryadlangan bir juft NiMH hujayralari kuchaytirgichni kamida 2,2 V ga etkazib bera oladi. Biroq, ishqoriy batareyalar bilan ishlash ancha murakkab. 2.2-2.3 V (ochiq elektron) da o'tirgan ikkita AA batareyasi bilan, yuqori oqimlarda 0,2-0,4 V kuchlanish pasayishi kutiladi. Men kontaktlarning zanglashiga olib keladigan kuchlanish 1,8 V ga yaqin bo'lgan tavsiya etilgan kuchaytirgich bilan ishlashini tekshirgan bo'lsam -da, bu chiqish voltajining Espressiff tomonidan tavsiya etilgan qiymatdan bir zumda pasayishiga olib kelishi mumkin. Shunday qilib, 2,3 V chegara chegarasi ishqoriy batareyalar bilan ishlashda juda kam xavfsizlik chegarasini qoldiradi (shuni yodda tutingki, mikrokontroller tomonidan bajariladigan kuchlanish o'lchami faqat ortiqcha yoki minus bir necha foiz ichida aniq). Ishqoriy batareyalar quvvati past bo'lganda ESP modulining ishdan chiqmasligini ta'minlash uchun men kesish kuchlanishini 2,4 V ga oshirishni tavsiya qilaman (#define BATT_THRESHOLD 973). 1,2 V (ochiq elektron) da ishqoriy hujayra taxminan 70% zaryadsizlanadi, bu har bir hujayra uchun 1,15 V kuchlanish darajasidan atigi 5-10 foiz past.

NiMH va gidroksidi hujayralar ham ushbu dastur uchun afzalliklari va kamchiliklariga ega. Ishqoriy batareyalar xavfsizroq (qisqa tutashuv bo'lsa olov yoqmang) va o'z-o'zidan tushirish tezligi ancha past. Biroq, NiMH batareyalari past ichki qarshilik tufayli ESP8266 ning ishonchli ishlashini kafolatlaydi. Oxir -oqibat, har qanday turdagi ehtiyot choralari bilan foydalanish mumkin, shuning uchun bu faqat shaxsiy xohish masalasidir.

5 -qadam: Yuridik javobgarlikdan voz kechish

Ushbu sxema professional bo'lmagan havaskorlar tomonidan faqat sevimli mashg'ulotlariga mo'ljallangan. Bu dizayn yaxshi niyat bilan baham ko'rilgan, lekin hech qanday kafolat yo'q. Undan foydalaning va o'z xavfingiz ostida boshqalarga ulashing. Tarmoqni qayta tuzish bilan siz ixtirochi to'g'ridan -to'g'ri yoki bilvosita bu sxemaning noto'g'ri ishlashi yoki normal ishlatilishi natijasida yuzaga kelishi mumkin bo'lgan har qanday zarar (shu jumladan, aktivlarning shikastlanishi va shaxsiy shikastlanishlar uchun) javobgarlikka tortilmasligiga rozilik bildirasiz. Agar mamlakatingiz qonunlari ushbu javobgarlikdan voz kechishni bekor qilsa yoki taqiqlasa, siz ushbu dizayndan foydalana olmaysiz. Agar siz ushbu dizayn yoki ushbu dizayn asosida o'zgartirilgan sxemani baham ko'rsangiz, ushbu ko'rsatmali manzilni ko'rsatib, asl ixtirochiga kredit berishingiz kerak.

Tavsiya: