Mündəricat:

IOToilet: 7 addım (şəkillərlə birlikdə)
IOToilet: 7 addım (şəkillərlə birlikdə)

Video: IOToilet: 7 addım (şəkillərlə birlikdə)

Video: IOToilet: 7 addım (şəkillərlə birlikdə)
Video: Toilet DOP,Toilet Monster,Evol Skibidi,Skibidi War,Skibidi Survival,Skibidi.io,Toilet Man 2024, Noyabr
Anonim

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

Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
Alətlər və Materiallar
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 vahidi ləğv etmək
Orijinal vahidi ləğv etmək
Orijinal vahidi ləğv etmək
Orijinal vahidi ləğv etmək
Orijinal vahidi ləğv etmək
Orijinal vahidi ləğv etmək

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

Dövrə izah edildi
Dövrə izah edildi
Dövrə izah edildi
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 hazırlanır
ATTiny85 hazırlanır

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ı

Wemos qalxanının qurulması
Wemos qalxanının qurulması
Wemos qalxanının qurulması
Wemos qalxanının qurulması
Wemos qalxanının qurulması
Wemos qalxanının qurulması
Wemos qalxanının qurulması
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

Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək
Hamısını bir araya gətirmək

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ə: