Mundarija:

Kir yuvish mashinasi xabar berish sensori: 6 qadam (rasmlar bilan)
Kir yuvish mashinasi xabar berish sensori: 6 qadam (rasmlar bilan)

Video: Kir yuvish mashinasi xabar berish sensori: 6 qadam (rasmlar bilan)

Video: Kir yuvish mashinasi xabar berish sensori: 6 qadam (rasmlar bilan)
Video: Telefonning qalbaki qurilmalarini aniqlash uchun 6 ta foydali maslahat 2024, Iyul
Anonim
Image
Image
Prototip
Prototip

Bu kir yuvish mashinasi sensori kir yuvish mashinamning tepasida joylashgan va mashinadan tebranishni aniqlash uchun akselerometrdan foydalanadi. Yuvish tugaganini sezganda, u menga telefonimga bildirishnoma yuboradi. Men buni qurdim, chunki mashinaning o'zi tugagandan so'ng endi ovoz chiqarmaydi va men kirni olib tashlashni unutishdan charchadim.

Kodni bu erda topish mumkin:

To'liq qismlar ro'yxati:

  • WEMOS LOLIN32
  • Yarim o'lchamli non paneli (prototip yaratish uchun)
  • Matrix Board 59x88x30mm bo'lgan ABS loyiha qutisi
  • Sparkfun LIS3DH - uch o'qli akselerometrning uzilishi
  • 1x ZVP3306A P-kanalli MOSFET, 160 mA, 60 V, 3-pinli elektron chiziq
  • 1x BC549B TO92 30V NPN tranzistorli
  • 5 mm LED ko'k 68 mcd
  • 1x 100k 0,125 Vt CF qarshilik
  • 1x 330k 0,125 Vt CF qarshilik
  • 2x 10k 0,250W CF qarshilik
  • 1x 100 0,250 Vt CF qarshilik
  • 2-pinli ayol JST PH-Style kabeli (14 sm)
  • 4x M1219-8 Neodimiy diskli magnit 6x4mm

1 -qadam: prototip

Prototip
Prototip

Qurilma ESP32 mikrokontrolleridan foydalanadi. Bu holda men Wemos -dan Lolin32 ishlab chiqish kartasini ishlataman, uni AliExpress -da taxminan 7 dollarga sotib olishingiz mumkin. Akselerometr - Sparkfun LIS3DH - akselerometrning analogdan ko'ra raqamli bo'lishi muhim, keyin ko'rasiz. Men batareyani eski bluetooth dinamiklaridan oldim.

ESP32 akselerometrga I2C orqali ulanadi. Kodning birinchi versiyasi har 20msda o'lchanadigan tezlashuv qiymati uchun uchta tezlashtirish o'qini (x, y va z) so'rab oldi. Non paneli prototipini kir yuvish mashinasiga qo'yib, men yuqoridagi grafikni chiqardim, u yuvish davrining turli bosqichlarida tezlashuv cho'qqilarini ko'rsatadi. Mutlaq tezlanish 125 mg dan (oddiy tortishning 125 mingdan bir qismi) katta bo'lgan tepaliklar to'q sariq rangda ko'rsatilgan. Biz bu davrlarni aniqlab, kir yuvish mashinasining holatini aniqlash uchun foydalanmoqchimiz.

Mashinaning yoqilgan yoki o'chirilganligini qanday aniqlash mumkin?

Ushbu qurilmaning maqsadlaridan biri shundaki, u butunlay passiv bo'ladi. Ya'ni hech qanday tugma bosilmasligi kerak; bu faqat ishlaydi. Bu juda kam quvvat bo'lishi kerak, chunki elektr kabellarini kir yuvish mashinasiga uzatishning iloji yo'q edi.

Yaxshiyamki, LIS3DH akselerometrining o'ziga xos xususiyati borki, u tezlanish belgilangan chegaradan oshib ketganda uzilishni keltirib chiqarishi mumkin (e'tibor bering, bu akselerometrning o'rnatilgan yuqori o'tkazgichli filtridan foydalanishni talab qiladi-tafsilotlar uchun Github kodiga qarang) va ESP32 ni uyg'otish mumkin. chuqur uyqu rejimidan uzilish orqali. Biz bu xususiyatlarning kombinatsiyasidan foydalanib, harakat bilan tetiklanadigan juda kam quvvatli uyqu rejimini yaratishimiz mumkin.

Soxta kod quyidagicha ko'rinadi:

# Qurilma uyg'onadi

bildirish_to'lagisi = 240 hisoblagich = 10 ta akselerometr.set_threshold (96) # 96mg hisoblagichda> 0: akselerometr.obada_toshida (): hisoblagich ++ boshqa: hisoblagich- agar hisoblagich> bildirish_to'lagisi: # oxirgi aylanish aylanishi uyquni aniqladi (1 soniya) akselerometr.set_threshold_interrupt () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()

Siz bu erda ko'rishingiz mumkin, biz hozirgi uyg'onish davrida qancha soniya tezlashuvni aniqlaganimizni hisoblagich yordamida aniqlaymiz. Agar hisoblagich nolga tushsa, biz qurilmani uyqu holatiga qaytarishimiz mumkin. Agar hisoblagich 240 ga (bildirish chegarasi) yetsa, demak, biz 4 daqiqa tebranishni aniqladik. Qurilmaning oxirgi aylanish aylanishini to'g'ri aniqlaganiga ishonch hosil qilish uchun biz bu chegaralarning qiymatlarini o'zgartirishimiz mumkin. Etarli tebranish aniqlangandan so'ng, biz bildirishnoma yuborishdan oldin yana 5 daqiqa uxlashimiz mumkin (mening fikrimcha, yuvish tugagunga qadar qancha vaqt ketadi).

2 -qadam: Blynk orqali xabar yuborish

Blynk orqali xabar yuborish
Blynk orqali xabar yuborish

Blynk - bu telefoningizdagi ilova yordamida IoT qurilmalari bilan ishlashga ruxsat berish uchun mo'ljallangan xizmat. Bunday holda, men oddiy HTTP POST tomonidan Blynk API -ga yuboriladigan push -xabar API -dan foydalanaman.

3 -qadam: Quvvat sarfini o'lchash va batareyaning ishlash muddatini taxmin qilish

Quvvat sarfini o'lchash va batareyaning ishlash muddatini baholash
Quvvat sarfini o'lchash va batareyaning ishlash muddatini baholash

ESP32 chipi uyqu paytida (5uA gacha) juda kam quvvat sarflanadi deb e'lon qilinadi. Afsuski, har xil ishlab chiqarish platalaridagi sxemalar har xil quvvat sarflash xususiyatlarini beradi - hamma ESP32 ishlab chiqaruvchi platalari teng yaratilmagan. Masalan, men bu loyihani birinchi marta boshlaganimda, Sparkfun ESP32 Thing -dan foydalandim, u chuqur uyqu rejimida 1 mA atrofida quvvat sarflaydi (hatto LEDni o'chirgandan keyin ham). O'shandan beri men Lolin32 (Lite versiyasi emas) dan foydalanganman, u erda chuqur uyqu holatida 144.5uA tokni o'lchaganman. Bu o'lchovni bajarish uchun men multimetrni batareya va qurilma bilan ketma -ket sim bilan bog'ladim. Albatta, non paneli bilan prototiplashda buni qilish osonroq. Men, shuningdek, qurilma hushyor bo'lganda joriy ishlatishni o'lchadim:

  • Chuqur uyqu: 144.5uA
  • Uyg'onish: 45mA
  • Wi -Fi yoqilgan: 150 mA

Men mashinani haftada ikki marta ishlataman deb faraz qilsam, sensor har bir holatda o'tkazadigan vaqt uchun quyidagi vaqtlarni hisoblab chiqdim:

  • Chuqur uyqu: 604090 soniya (~ 1 hafta)
  • Uyg'onish: 720 soniya (12 daqiqa)
  • Wi -Fi yoqilgan: 10 soniya

Bu raqamlardan biz batareyaning qancha vaqt ishlashini taxmin qilishimiz mumkin. O'rtacha 0,2 mA quvvat sarfini olish uchun men bu qulay kalkulyatordan foydalandim. Batareyaning taxminiy muddati 201 kun yoki taxminan 6 oy! Aslida, qurilma taxminan 2 oydan keyin ishlamay qoladi, shuning uchun o'lchovlarda yoki batareyaning hajmida xatolar bo'lishi mumkin.

4 -qadam: Batareya darajasini o'lchash

Batareya darajasini o'lchash
Batareya darajasini o'lchash
Batareya darajasini o'lchash
Batareya darajasini o'lchash

Menimcha, agar qurilma batareya quvvati tugayotganini aytib bersa yaxshi bo'lardi, shuning uchun uni qachon zaryad qilish kerakligini bilaman. Buni o'lchash uchun biz batareyaning kuchlanishini o'lchashimiz kerak. Batareya 4,3V - 2,2V kuchlanish diapazoniga ega (ESP32 minimal ishchi kuchlanishi). Afsuski, ESP32 ning ADC pinlarining kuchlanish diapazoni 0-3.3V. Bu shuni anglatadiki, biz ADCni haddan tashqari yuklamaslik uchun batareyaning kuchlanishini maksimal 4,3 dan 3,3 gacha pasaytirishimiz kerak. Buni kuchlanish taqsimlagich yordamida qilish mumkin. Batareyadan erga mos keladigan ikkita rezistorni sim bilan ulang va o'rtadagi kuchlanishni o'lchang.

Afsuski, oddiy kuchlanish bo'luvchi sxemasi, hatto kuchlanish o'lchanmasa ham, batareyadan quvvatni to'kadi. Siz buni yuqori qiymatli rezistorlar yordamida yumshata olasiz, lekin past tomoni shundaki, ADC to'g'ri o'lchash uchun etarlicha oqim o'tkaza olmaydi. Men 100kΩ va 330kΩ qiymatli rezistorlardan foydalanishga qaror qildim, bu kuchlanish bo'luvchi formulasi bo'yicha 4,3V dan 3,3V gacha pasayadi. Umumiy qarshilik 430kΩ ni hisobga olgan holda, biz 11,6uA (Ohm qonunidan foydalangan holda) ning hozirgi chizig'ini kutardik. Bizning chuqur uyqu holatimizda 144uA bo'lganini hisobga olsak, bu sezilarli o'sishdir.

Batareya zo'riqishini faqat bildirishnoma yuborishdan oldin o'lchashni xohlaganimiz uchun, biz hech narsani o'lchamagan paytimizda kuchlanishni taqsimlash sxemasini o'chirib qo'yish mantiqan to'g'ri keladi. Yaxshiyamki, biz buni GPIO pinlaridan biriga ulangan bir nechta tranzistorlar yordamida qilishimiz mumkin. Men bu stackexchange javobida berilgan sxemani ishlatardim. Siz meni yuqoridagi fotosuratda Arduino va non paneli bilan sinovdan o'tkazayotganimni ko'rishingiz mumkin (shuni esda tutingki, kontaktlarning zanglashiga olib keldi, men kutganimdan yuqori kuchlanishni o'lchayman).

Yuqoridagi sxemani o'rnatgan holda, men batareyaning foiz qiymatini olish uchun quyidagi soxta koddan foydalanaman:

batareya_ foiz ():

# batareya zanjiri kuchlanishini yoqish gpio_set_level (BATTERY_EN_PIN, HIGH) # Batareya darajasi 0 dan 4095 gacha tamsayı sifatida qaytariladi adc_value = adc1_get_value (ADC_PIN) bo'linuvchi 100k/330k ohmli rezistorlardan foydalanadi # 4.3V -> 3.223, 2.4 -> 1.842 kutilgan_max = 4.3*330/(100+330) kutilgan_min = 2.4*330/(100+330) batareya darajasi = (adc_voltage -kutilgan_min)/(kutilgan_max -kutilgan_min) batareya darajasini qaytarish * 100.0

5 -qadam: uni yanada chiroyli qilish

Buni chiroyli qilish
Buni chiroyli qilish
Buni chiroyli qilish
Buni chiroyli qilish
Buni chiroyli qilish
Buni chiroyli qilish

Non paneli versiyasi yaxshi ishlayotgan bo'lsa -da, men uni toza va ishonchli bo'lishi kerak bo'lgan paketga joylashtirmoqchi bo'ldim (bo'shashishi yoki uzilishi mumkin bo'lmagan simlar yo'q). Men o'z ehtiyojlarimga mos keladigan, mos keladigan o'lchamdagi pinli taxta, o'rnatish ushlagichlari va vintlarni o'z ichiga olgan mukammal loyiha qutisini topishga muvaffaq bo'ldim. Bundan tashqari, u 2 funt sterlingdan arzon edi. Qutini olgandan so'ng, men faqat komponentlarni pin taxtasiga lehimlashim kerak edi.

Ehtimol, buning eng qiyin qismi akkumulyator zo'riqishining barcha komponentlarini Lolin32 yonidagi kichik maydonga o'rnatish edi. Yaxshiyamki, ozgina chayqaladigan poker va lehim bilan mos keladigan ulanishlar sxemaga yaxshi mos keladi. Bundan tashqari, Wemos Lolin32 -da batareyaning musbat terminalini ochish uchun pin yo'qligi sababli, men simni akkumulyator ulagichidan pin kartasiga lehimlashga majbur bo'ldim.

Men shuningdek, qurilma harakatini aniqlaganida yonib -o'chadigan LEDni qo'shdim.

6 -qadam: teginishni tugatish

Image
Image
Tugatish tegishi
Tugatish tegishi
Tugatish tegishi
Tugatish tegishi

Men qutining tagiga 6 mm x 4 mm o'lchamdagi 4 ta neodim magnitni yopishtirdim, bu kir yuvish mashinasining metall ustki qismiga mahkam yopishib olish imkonini beradi.

Loyiha qutisi allaqachon kabellarga kirishni ta'minlaydigan kichik teshik bilan birga keladi. Yaxshiyamki, men mikro USB ulagichiga kirish uchun ESP32 kartasini shu teshikka yaqin joylashtirdim. Teshikni pichoq bilan kattalashtirgandan so'ng, batareya zaryadlash oson bo'lishi uchun kabel to'liq mos keladi.

Agar siz ushbu loyihaning tafsilotlari bilan qiziqsangiz, sharh qoldiring. Agar siz kodni ko'rishni xohlasangiz, uni Github -da tekshiring:

github.com/alexspurling/washingmachine

Tavsiya: