Mündəricat:
- Addım 1: Alətlər və materiallar
- Addım 2: Orijinal vahidi ləğv edin
- Addım 3: Dövrə izah edildi
- Addım 4: ATTiny85 -in hazırlanması
- Addım 5: Wemos qalxanının qurulması
- Addım 6: Wemos hazırlamaq
- Addım 7: Hamısını bir yerə yığın
Video: IOToilet: 7 addım (şəkillərlə birlikdə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
IOToilet, gündəlik tualet kağızı istifadəmizi izləyən və bu ölçüləri göstərən statistikanı toplamağa imkan verən ilk ağıllı tualet kağızı tutucusudur. Və soruşa biləcəyiniz tualet kağızından gündəlik istifadə etməyimə niyə fikir verməliyəm? Göründüyü kimi, qarın sağlamlığımızın, xüsusən də həzm dövrünün həm fiziki sağlamlığımız, həm də zehni sağlamlığımızla çox əlaqəsi var. Məsələn, bu mövzuda işlənən gözəl bir TED söhbəti (bu arada bir neçəsindən biri):
Böyük bir şirkət üçün məqsədli bir marketinq kampaniyası üçün yuxarıda (2 -ci yer) klipini görə biləcəyiniz bir marka agentliyi üçün bu cihazdan 10 ədəd qurmaq mənə tapşırıldı. Başlanğıcda, bu fikri, həddindən artıq müştəri hesabı qazanmağa çalışan digər yaradıcı zehndən gələn bir fikir kimi rədd etdim, amma tədricən bu cihaz vasitəsilə toplanan məlumatların dəyərini anlayana qədər böyüdü.
Tikinti, müştərimin tualet kağızı tutucusuna daxil edilmiş səs yazma cihazı EBay -dən əldə etdiyi mövcud bir qurğuya əsaslanır. Doğru forma faktoruna və artıq quraşdırılmış dinamikə, cihazı işə salmaq üçün hərəkət sensoru, tualet kağızının özünü tutmaq üçün yaylar, batareya bölməsi və açma açarı kimi bütün lazımi qurğulara malik idi, buna görə məmnuniyyətlə seçdim. modelləşdirməkdən və öz çap etməyimdən daha çox hazır olanı istifadə edərək.
Addım 1: Alətlər və materiallar
İstifadə olunan materiallar:
Tualet kağızı tutacağı
Wemos D1 Mini
ATTiny85 çipi, DIP qablaşdırması
2 x 2n2222 tranzistor
220 Ohm müqavimət
2 * 1KOhm müqavimət
MPU6050 sürətləndirici
PCB -dən istifadə etməmək halında isteğe bağlı:
Wemos prototipləşdirmə qalxanı
tel, lehim və s.
İstifadə olunan alətlər:
Bir kəsmə diski olan Dremel
ATTiny dev board (firmware yükləmək üçün rahatdır)
USB Tiny ISP proqramçısı
üçbucaqlı tornavida, bu dəstdən istifadə etdim:
Addım 2: Orijinal vahidi ləğv edin
Orijinal tualet kağızı mili əldə etdikdən sonra, üçbucaqlı bir tornavida ilə korpusunu açdım və orijinal PCB -ni çıxarıb, dinamikdən ayırıb ona mümkün qədər çox tel buraxdım.
Daha sonra LED və əyilmə sensorunu orijinal PCB -dən lehimlədim, daha sonra yeni dövrə daxil etmək üçün. Zərər verə biləcəyi üçün əyilmə açarını çox qızdırmamağa diqqət yetirin. Mənimki boz idi, amma orijinal cihazdan çıxararkən yaxşı bir şəkil çəkmədiyim üçün, ağdan yaşıl olduğu yerdə (yuxarıya bax) bir fotoşəkil istifadə etməli oldum. Sadəcə kiçik bir detal.
Çantanı açıb elektronikanı çıxardıqdan sonra, orijinal PCB -ni yerində saxlamaq üçün istifadə olunan artıq plastikləri, bu kiçik plastik rəfləri və 4 vintli borudan birini çıxarmaq üçün Dremel istifadə etdim. İstəyirsinizsə bunu montaj mərhələsinə təxirə sala bilərsiniz, amma hər halda bir az plastik kəsmə tələb olunacaq.
Addım 3: Dövrə izah edildi
Beləliklə, dövrənin arxasındakı məntiq haqqında bir az:
Batareyaların uzun müddət dayana bilməsi üçün həm MPU6050 akselerometrini, həm də ESP8266 prosessorunu Wemos D1 Mini -də aktivasiya arasında yatdırmalı oldum. Birincisi, MPU6050 -ni açan və söndürən bir tranzistor istifadə etməklə asanlıqla edildi.
Qeyd: Əvvəlcə onu əsas prosessoru oyandıracaq bir kəsmə siqnalı göndərmək üçün proqramlaşdıra biləcəyimi düşünürdüm. Təəssüf ki, bunu etmək üçün bir yol tapa bilmədim, MPU6050 -nin düzgün qeydlərini konfiqurasiya etmək, hələ də mümkün olub olmadığını hələ də bilmədiyim çətin bir iş idi …
İkinci seçimim, ESP -ni oyatmaq üçün orijinal qurğu ilə təchiz edilmiş əyilmə açarından istifadə etmək idi. Əvvəlcə mexanizmi aktivləşdirmək/söndürmək üçün bir transistor istifadə edərək yuxarıdakı fotoşəkillərdə göstərildiyi kimi birbaşa Wemos RESET pininə bağladım. Transistor bazası yüksək olduqda, GND əyilmə açarından keçə və müvəqqəti olaraq RESET pininə bağlanmasına səbəb ola bilər ki, bu da MCU -nun sıfırlanmasına səbəb olur (bu, ESP -ni dərin yuxudan oyatmağın yeganə yoludur). Daha sonra MCU yatarkən bu ayağın YÜKSƏK olduğunu əsas götürərək D0 -u tranzistor bazasına bağladım və yuxudan oyanan kimi sıfırlama mexanizmini deaktiv edərək LOW -a geri döndüm. Axı, tualet kağızı tutacağı hərəkət etməyə başlayanda ilk dəfə təkrarlanan bir sıfırlamaya ehtiyacım yox idi.
Ancaq kəşf etdiyim şey, D0 pininin MCU sıfırlanmasından sonra təxminən 200ms -ə qədər LOW -a qayıtması üçün çox uzun zaman tələb olunduğu oldu. Bu, MCU yatarkən tualet kağızı tutucusunu kifayət qədər tez döndərsəm, lazım olduğu kimi dövrə saymaq əvəzinə bir çox SIFIRLAŞMA olacağı anlamına gəlirdi.
Beləliklə, bu yeni vəziyyəti bəzi diskret komponentlər (kondansatörlər, tranzistorlar və s.) İlə həll etməyə çalışdım, ancaq problemin qismən həllinə nail oldum.
Əyilmə açarı ilə yuxudan oyanan, sonra ESP8266'yı oyandıran və yuxuya getməzdən əvvəl bir müddət gözləyən başqa bir MCU, ATTiny85 əlavə etməyi bitirdim. Bilirəm ki, bu, problemin ən iqtisadi həlli deyil, amma son tarixim var idi …
Ətraflı həllini daxil etdiyim sxemdə görə bilərsiniz. Nəzərə alın ki, 10K rezistorlar 1K ilə əvəz olundu, çünki tranzistorlar tam açılmayacaq qədər yüksək idi.
Addım 4: ATTiny85 -in hazırlanması
ATTiny85 -i heç vaxt proqramlaşdırmamısınızsa, qorxmayın! Sevilən Arduino IDE -dən istifadə etməklə hər şeyə nail ola bilərsiniz. Arduino IDE -ni konfiqurasiya etmək üçün bu təlimatlardan başlayın:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Sonra USBTinyISP üçün sürücüləri buradan quraşdırın:
learn.adafruit.com/usbtinyisp/drivers
İndi əlavə edilmiş test kodunu yükləyin: WakeOnExternalInterruptTest.ino
və qoşulun (ATTiny85 Pinout diaqramına baxın):
1. 3 -cü pinlə zəmin arasındakı toxunma düyməsi
2. Pim 2 ilə torpaq arasında, bir sıra və 220 Ohm müqavimət
Sonrakı, Proqramçı olaraq USBTinyISP seçin (Alətlər -> Proqramçı altında) və test eskizini lövhəyə yükləyin.
LED 5 dəfə yanıb -sönməlidir, sonra çip yuxuya getməlidir. Düyməni basmaq onun oyanmasına və bu ardıcıllığı təkrarlamasına səbəb olacaq.
İşə düşdü? əla! ATTiny -ə yekun eskizini yükləyin, son dövrədə istifadə olunsun.
Addım 5: Wemos qalxanının qurulması
Beləliklə, qalxan qurmaq üçün seçim edə biləcəyiniz 3 seçim var:
1. Wemos üçün standart bir protoxield istifadə edin və üzərindəki dövrə lehimləyin.
2. Əlavə edilmiş EAGLE faylları əsasında bir PCB hazırlayın.
3. Mənə salyangoz poçtu ilə göndərə biləcəyim bir PCB istəyin (bir neçə yerdə yatıram, dəyəri heç bir şeyin yanında deyil).
Hər halda, PCB -yə başlamazdan əvvəl bir çörək taxtasında dövrə qurmağı məsləhət görürəm!
PCB seçimlərindən istifadə edirsinizsə, qara teli fotoşəkillərdəki kimi lövhənin ön və ya arxa tərəfinə bağladığınızdan əmin olun (ikincisi mənim üçün ən yaxşısı idi). Bu tel GND -ni Wemos -dan ATTiny85 -ə bağlayır və onsuz oyanma baş verməyəcək.
Yalnız şəkillərə yaxşı baxın və əlavə etdiyim şərhləri oxuyun, bu kifayətdir.
Addım 6: Wemos hazırlamaq
Bir Wemos lövhəsini proqramlaşdırmaq üçün Arduino IDE -dən heç istifadə etməmisinizsə, lövhə menecerini quraşdıraraq və burada təsvir edildiyi kimi Tools -> Board menyusundan lövhəni seçin:
github.com/esp8266/Arduino
Kodun düzgün yükləndiyinə əmin olmaq üçün lövhəni lövhənizə yükləməklə başlayın.
Addım 7: Hamısını bir yerə yığın
Qalxanı Wemos -a quraşdırın. Lehimləyə bilərsiniz, amma hər hansı bir problem olarsa, Wemos ilə qalxan arasında müvəqqəti əlaqə qurmağa imkan verən Wemos -a lehimli qadın başlıqlardan istifadə etməyi məsləhət görürəm. Unutmayın ki, qurğunun plastik qabığa sığması üçün qadın başlıq montajın son mərhələsində enməli olacaq. Həm də hər şeyi bir az daha mürəkkəbləşdirmək üçün, qalxan Wemos -a qoşulduqda, kod yükləməsinin deaktiv edilmə ehtimalı yüksəkdir. O fenomenlə ardıcıl olmayan bir şəkildə qarşılaşdım və araşdırmağa vaxtım olmadı.
Məsləhət: əvvəlcədən planlaşdırın.
İndi Test!
Quraşdırıldıqdan sonra, BlinkAccelerometer test eskizini Wemos -a yükləyərək başlayın və MPU6050 LEDini yandırıb söndürdüyündən əmin olun. Əks təqdirdə, MPU6050 -ni işə salmaqdan məsul olan tranzistorun naqillərini yoxlayın. Onun bazası Wemosun D5 pininə, kollektor akselerometrin GND -nə, Emitter isə ümumi GND -yə bağlanmalıdır.
Sonra, TurnCountTest1 eskizini Wemos lövhəsinə yükləyin və Serial Monitoru açın. Monitorda təqdim olunan akselerometrdən gələn məlumatları görməlisiniz. İşləmirsinizsə, saatı və məlumat naqillərini yoxlayın: CLK D1 -ə, DATA isə D2 -yə qoşulmalıdır.
İndi, əyilmə açarını lövhədəki təyin olunmuş deliklərə lehimləyin (şərhlərə baxın), fırlanma oxuna dik olduğundan əmin olun ki, mili fırlatmaq iki ucu arasındakı əlaqəni bağlasın və açsın.
Sonra, Batareya 3V girişini Wemos VCC -yə və mənfi terminalını Wemos GND -ə qoşun. Şalteri işə salmaqla cihazı işə saldığınızdan əmin olun. Nəhayət, hoparlörü GND -ə və Wemosun D4 pininə bağlayın.
Son kodu Wemos -a yükləyin - SmartWipe adlı eskiz. Seriyalı monitoru açın və cihazın 3 dəqiqədən sonra yuxuya getdiyinə və əyilmə açarını hərəkət etdirərək oyandığından əmin olun (monitorda müvafiq mesajlar görünməlidir).
Wemosun oyanma vaxtını azaltmaq istəyirsinizsə (əsasən test məqsədləri üçün), params.h -də təyin olunan WIFI_CONFIGURATION_IDLE_TIMEOUT dəyərini azaldın və eskizi lövhəyə yükləyin. Wemos dərin yuxuya getdikdən sonra, əyilmə açarını hərəkət etdirmək ATTiny -in oyanmasına səbəb olur (LED ilə işarə olunur) və bu da öz növbəsində Wemosu oyadır.
Parametr dəyərini 180000L (3 dəqiqə, milisaniyə ilə) olaraq dəyişdirin və Wemos -un IOToilet_XXXXXXXX adlı bir Hotspot yandırdığından əmin olun, burada XXXXXXX çipin MAC ünvanından alınacaq. Bir ağıllı telefon istifadə edərək bu Wifi -yə qoşulun və bir qeydiyyat formasına (Captive Portal adlı bir mexanizm) yönləndirilməlidir. Təfərrüatları daxil edin, xüsusən də yerli wifi -nin SSID və şifrəsi vacibdir və formanı təqdim edin. Bölmə daha sonra verilən məlumatları istifadə edərək şəbəkəyə qoşulmağa çalışmalı və müvəffəqiyyətli olarsa dinamikdə 3 artan səs çalmalıdır. Wifi -yə qoşulmaqda problem olsaydı, 3 enən səs çalınacaq. Bundan sonra, Wemos, hərəkətlə oyanana qədər dərin yuxuya getməlidir.
Nəhayət: Uçtan uca Sistem testi.
Tualet kağızı tutucusunu fırlanma oxu boyunca bir neçə döndərin, sonra sabit bir səthə qoyun (rulonun bitdiyini bildirmək və məlumat yüklənməsini tetiklemek üçün). Roll sayının buluda göndərilməsi üçün təxminən 10 saniyə gözləyin, sonra https://smartwipe-iot.appspot.com/ saytına daxil olun və Sorğu düyməsini basın. Qeydiyyat məlumatlarınızı və son istifadə rulon sayınızı buludda görməlisiniz! Wemos -un MAC ünvanından çıxarılan sistemdəki unikal identifikatorunuz olan uuidinizi yazdığınızdan əmin olun.
Yalnız statistikanızı JSON formatında çıxarmaq istəyirsinizsə, buna bənzər bir URL istifadə edin:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
uuid -i özünüzlə əvəz edin.
Məlumatların daha çox məxfiliyini əldə etmək istəyən istifadəçilərin öz Google istifadəçilərində yerləşdirə bilmələri üçün identifikasiya və s.
Hər şey işləyərkən, elektronikanı plastik qabığa yerləşdirin, lazım olduqda plastikdən bir dremel ilə kəsin. Bütün parça gözəl bir şəkildə gövdəyə uyğun olmalıdır.
Çətinlik? Mənə yaz!
BİRLİKDƏ ZƏNG EDİRİK!
Tövsiyə:
DIY 37 Leds Arduino Rulet Oyunu: 3 Addım (Şəkillərlə birlikdə)
DIY 37 Leds Arduino Rulet Oyunu: Rulet, kiçik təkər mənasını verən Fransız sözündən sonra verilən bir kazino oyunudur
Əl BASIC Kompüteri: 6 Addım (Şəkillərlə birlikdə)
Əl BASIC Kompüteri: Bu Təlimat, BASIC ilə işləyən kiçik bir el kompüteri qurma prosesimi təsvir edir. Kompüter, ATmega 1284P AVR çipinin ətrafında qurulmuşdur ki, bu da kompüterin axmaq adını (HAL 1284) ilhamlandırmışdır
Qonşuluqda Geniş Sinxron LEDlər: 5 Addım (Şəkillərlə birlikdə)
Qonşuluqda Geniş Sinxron LEDlər: Tətil üçün söndürə biləcəyimi düşündüyüm bəzi simsiz LED çubuqlarım vardı. Ancaq mənim həyətimdə onlar da eyni şəkildə telli ola bilərdilər. Yaxşı, sərin problem nədir? Blokumdakı bütün evlərdə sinxron displey ilə LED bəzəklər
E-dohicky Russun Lazer Güc Ölçerinin Elektron Versiyası Dohicky: 28 Addım (Şəkillərlə birlikdə)
E-dohicky Russ-un Lazer Güc Ölçerinin Elektron Versiyası Dohicky: Lazer elektrik aləti. E-dohicky, Russ SADLER-dən olan dohicky-nin elektron versiyasıdır. Russ çox yaxşı SarbarMultimedia youtube kanalını canlandırır https://www.youtube.com/watch?v=A-3HdVLc7nI&t=281sRuss SADLER asan və ucuz bir aksesuar təqdim edir
Portativ Bluetooth 2.1 Boombox: 16 Addım (Şəkillərlə birlikdə)
Portativ Bluetooth 2.1 Boombox: Hər kəsə salam! Bu quruluşda, təkrar doldurulan bir batareyaya və əla performansa malik portativ Bluetooth boomboxu hazırlamaq qərarına gəldim. Bu natiq, Paul Carmody -nin yerləşdirmək üçün bir qədər təmir etdiyim Isetta dinamikinə əsaslanır