İçindekiler:
- Adım 1: Araçlar ve Malzemeler
- 2. Adım: Orijinal Birimi Dağıtma
- Adım 3: Devre Açıklaması
- Adım 4: ATTiny85'in Hazırlanması
- Adım 5: Wemos Kalkanını İnşa Etme
- Adım 6: Wemos'u Hazırlama
- 7. Adım: Hepsini Bir Araya Getirmek
Video: IOToilet: 7 Adım (Resimlerle)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
IOToilet, günlük tuvalet kağıdı kullanımımızı takip eden ve bu ölçümleri gösteren istatistiklerin toplanmasına izin veren ilk akıllı tuvalet kağıdı tutucusudur. Ve sorabileceğiniz günlük tuvalet kağıdı kullanımımı neden önemsemeliyim? Görünüşe göre karın sağlığımız, özellikle de sindirim döngüsü, hem fiziksel hem de zihinsel sağlığımızla çok ilgili. Örneğin, bu konuyu detaylandıran güzel bir TED konuşması (bu arada birkaç tanesinden biri):
İlk başta klibini yukarıda görebileceğiniz (2. konum) bir marka ajansı için bu cihazdan 10 adet yapmakla görevlendirildim, büyük bir şirket için amaçlı bir pazarlama kampanyası için. Başlangıçta, aşırı yaratıcı başka bir akıldan umutsuzca bir müşteri hesabı kazanmaya çalışan bir fikir olarak reddettim, ancak bu cihaz aracılığıyla toplanan bilgilerin değerini anlayana kadar yavaş yavaş içimde büyüdü.
Yapı, müvekkilimin EBay'den aldığı, tuvalet kağıdı tutucusuna yerleştirilmiş bir ses kayıt cihazı olan mevcut bir donanıma dayanıyordu. Doğru form faktörüne ve bir hoparlör, cihazı tetiklemek için bir hareket sensörü, tuvalet kağıdının kendisini tutmak için yaylar, pil bölmesi ve bir açma-kapama düğmesi gibi zaten yerleşik tüm gerekli çevre birimlerine sahipti, bu yüzden memnuniyetle seçtim Kendim modellemek ve basmak yerine bu hazır ürünü kullanmak.
Adım 1: Araçlar ve Malzemeler
Kullanılan malzemeler:
Tuvalet kağıdı tutacağı
Wemos D1 Mini
ATTiny85 çip, DIP paketleme
2 x 2n2222 transistör
220 Ohm direnç
2*1KOhm direnç
MPU6050 ivmeölçer
PCB'mi kullanmama durumunda isteğe bağlı:
Wemos prototipleme kalkanı
tel, lehim vb.
Kullanılan aletler:
Kesme diskli Dremel
ATTiny dev board (firmware'i rahatça yüklemek için)
USB Minik ISP programcısı
üçgen tornavida, bu kiti kullandım:
2. Adım: Orijinal Birimi Dağıtma
Orijinal tuvalet kağıdı milini aldıktan sonra, üçgen bir tornavida kullanarak kasasını açtım ve orijinal PCB'yi çıkardım, hoparlörü ayırdım ve mümkün olduğunca çok kabloyu ona bağlı bıraktım.
Daha sonra orijinal PCB'den LED'i ve eğim sensörünü daha sonra yeni devreye gömülmek üzere lehimledim. Hasar verebileceğinden eğim anahtarını aşırı ısıtmamaya dikkat edin. Benimki griydi, ancak orijinal cihazdan çıkarırken iyi bir çekim yapmadığım için ağdan bir fotoğraf kullanmak zorunda kaldım (yukarıya bakın), yeşil olduğu yerde. Sadece küçük bir detay.
Kasayı açıp elektroniği çıkardıktan sonra, orijinal PCB'yi yerinde tutmak için kullanılan fazla plastiği, bu küçük plastik rafları ve 4 vidalı borudan birini çıkarmak için bir Dremel kullandım. İsterseniz bunu montaj aşamasına erteleyebilirsiniz, ancak her durumda biraz plastik düzeltme gerekecektir.
Adım 3: Devre Açıklaması
İşte devrenin arkasındaki mantık hakkında biraz:
Pillerin uzun süre dayanması için aktivasyonlar arasında Wemos D1 Mini'ye hem MPU6050 ivmeölçeri hem de ESP8266 işlemciyi uyku moduna geçirmek zorunda kaldım. Birincisi, MPU6050'yi açıp kapatan bir transistör kullanılarak kolayca yapıldı.
Not: Başlangıçta, ana işlemciyi uyandıracak bir kesme sinyali göndermek için programlayabileceğimi düşündüm. Ne yazık ki, bunu gerçekleştirmenin bir yolunu bulamadım, MPU6050'nin uygun kayıtlarını yapılandırmak, hala mümkün olup olmadığını bilmediğim zor bir işti…
İkinci seçeneğim, ESP'yi uyandırmak için orijinal üniteyle birlikte verilen eğim anahtarını kullanmaktı. Mekanizmayı etkinleştirmek/devre dışı bırakmak için bir transistör kullanarak önce yukarıdaki fotoğraflarda anlatıldığı gibi doğrudan Wemos RESET pinine bağladım. Transistör tabanı yüksek olduğunda, GND eğim anahtarından geçebilir ve geçici olarak RESET pimine bağlanmasına neden olarak MCU sıfırlamasına neden olabilir (görünüşe göre bir ESP'yi derin uykudan uyandırmanın tek yolu budur). Daha sonra, MCU uyuduğu sürece bu bacağın YÜKSEK olduğu ve uyanır uyanmaz D0'ın DÜŞÜK'e geri döndüğü ve sıfırlama mekanizmasını devre dışı bıraktığı öncülünü izleyerek D0'ı transistör tabanına bağladım. Ne de olsa, tuvalet kağıdı tutucusu ilk kez hareket etmeye başladığında, tekrarlayan bir sıfırlamaya ihtiyacım yoktu.
Ancak, keşfettiğim şey, MCU sıfırlandıktan sonra D0 piminin DÜŞÜK'e, yaklaşık 200 ms'ye dönmesi oldukça uzun zaman alıyor. Bu, MCU uyurken tuvalet kağıdı tutucusunu yeterince hızlı döndürürsem, olması gerektiği gibi turları saymak yerine birden fazla RESET'in gerçekleşeceği anlamına geliyordu.
Bu yüzden bu yeni durumu bazı ayrık bileşenlerle (kapasitörler, transistörler vb.) çözmeye çalıştım ama soruna sadece kısmi bir çözüm bulabildim.
Sonunda, eğim anahtarı tarafından uykudan uyandırılacak olan bir ATTiny85 olan başka bir MCU ekledim, ardından ESP8266'yı uyandırdım ve tekrar uyumadan önce bir süre bekledim. Bunun muhtemelen soruna en ekonomik çözüm olmadığını biliyorum, ancak bir son teslim tarihim vardı…
Ayrıntılı çözümü eklediğim şemada görebilirsiniz. Lütfen 10K dirençlerin 1K ile değiştirildiğini unutmayın, çünkü 10k dirençler transistörlerin tamamen açılması için çok yüksek.
Adım 4: ATTiny85'in Hazırlanması
Daha önce bir ATTiny85 programlamadıysanız, korkmayın! Sevgili Arduino IDE'yi kullanmak sizi sonuna kadar götürebilir. Arduino IDE'nin nasıl yapılandırılacağına ilişkin bu talimatlarla başlayın:
github.com/SpenceKonde/ATTinyCore/blob/mas…
Ardından, USBTinyISP için sürücüleri buradan yükleyin:
learn.adafruit.com/usbtinyisp/drivers
Şimdi, ekli test kodunu yükleyin: WakeOnExternalInterruptTest.ino
ve bağlayın (bkz. ATTiny85 Pinout şeması):
1. Pim 3 ile toprak arasındaki incelik düğmesi
2. Pin 2 ile toprak arasında seri bağlı bir led ve 220 Ohm direnç
Sonraki, Programlayıcı olarak USBTinyISP'yi seçin (Araçlar -> Programlayıcı altında) ve test çizimini tahtaya yükleyin.
LED 5 kez yanıp sönmeli, ardından çip uyku moduna geçmelidir. Düğmeye basmak, uyanmasına ve bu diziyi tekrarlamasına neden olacaktır.
İşe aldın mı? harika! Son devrede kullanılmak üzere son "Uyandırıcı" taslağını ATTiny'ye yükleyin.
Adım 5: Wemos Kalkanını İnşa Etme
Yani, kalkanı inşa etmek için seçebileceğiniz 3 seçeneğiniz var:
1. Wemos için standart bir ön kalkan kullanın ve devreyi bunun üzerine lehimleyin.
2. Ekli EAGLE dosyalarına dayalı olarak bir PCB üretin.
3. Benden size posta yoluyla gönderebileceğim bir PCB isteyin (Birkaç tane var, maliyeti neredeyse sıfır).
Her halükarda, PCB'ye geçmeden önce devreyi bir devre tahtası üzerinde kurmanızı tavsiye ederim!
PCB seçeneklerini kullanıyorsanız, siyah kabloyu fotoğraftaki gibi kartın ön veya arka tarafına bağladığınızdan emin olun (ikincisi benim için en iyi sonucu verdi). Bu tel, GND'yi Wemos'tan ATTiny85'e bağlar ve onsuz uyanma gerçekleşmez.
Resimlere iyi bakın ve eklediğim açıklamaları okuyun, bu kadarı yeterli olacaktır.
Adım 6: Wemos'u Hazırlama
Arduino IDE'yi bir Wemos panosunu programlamak için hiç kullanmadıysanız, pano yöneticisini yükleyerek ve burada açıklandığı gibi Araçlar -> Pano menüsünde panoyu seçerek başlayın:
github.com/esp8266/Arduino
Kodun doğru bir şekilde yüklendiğinden emin olarak, yanıp sönen taslağı panonuza yükleyerek başlayın.
7. Adım: Hepsini Bir Araya Getirmek
Kalkanı Wemos'a takın. Lehimleyebilirsiniz, ancak herhangi bir sorun durumunda Wemos ile kalkan arasında geçici bağlantıya izin verecek Wemos'a lehimlenmiş dişi başlıklar kullanmanızı öneririm. Ünitenin plastik kabuğa sığması için montajın son aşamasında dişi başlığın inmesi gerekeceğini unutmayın. Ayrıca, işleri biraz daha karmaşık hale getirmek için, Wemos'a kalkan bağlandığında kod yüklemenin devre dışı bırakılma olasılığı yüksektir. Bu fenomenle tutarlı olmayan bir şekilde karşılaştım ve araştırmak için zamanım olmadı.
Tavsiye sözü: önceden plan yapın.
Şimdi, Test Ediliyor!
Kurulduktan sonra, BlinkAccelerometer test çizimini Wemos'a yükleyerek başlayın ve MPU6050 LED'ini açıp kapattığından emin olun. Değilse, MPU6050'ye güç sağlamaktan sorumlu olan transistörün kablolarını kontrol edin. Tabanı Wemos'un D5 pinine, kolektör ivmeölçerin GND'sine ve Verici ortak GND'ye bağlanmalıdır.
Ardından, TurnCountTest1 çizimini Wemos panosuna yükleyin ve Seri Monitörü açın. Monitörde sunulan ivmeölçerden gelen verileri görmelisiniz. Çalışmıyorsa, saati ve veri kablolarını kontrol edin: CLK, D1'e ve DATA, D2'ye bağlanmalıdır.
Şimdi eğim anahtarını karttaki belirlenmiş deliklere lehimleyin (açıklamalara bakın), dönüş eksenine dik olduğundan emin olun, böylece iş mili döndürmek iki ucu arasındaki bağlantıyı kapatıp açar.
Ardından, Pil 3V girişini Wemos VCC'ye ve eksi terminalini Wemos GND'ye bağlayın. Anahtarı açmanın üniteyi açtığından emin olun. Son olarak, hoparlörü GND'ye ve Wemos'un D4 pinine bağlayın.
Son kodu Wemos'a yükleyin - SmartWipe adlı bir çizim. Bir seri monitör açın ve ünitenin 3 dakika sonra uyku moduna geçtiğinden ve eğim anahtarının hareket ettirilmesiyle uyandığından emin olun (karşılık gelen mesajlar monitörde görünmelidir).
Wemos'un uyanık olduğu süreyi azaltmak istiyorsanız (esas olarak test amaçlı), params.h'de tanımlanan WIFI_CONFIGURATION_IDLE_TIMEOUT değerini azaltın ve taslağı tahtaya yükleyin. Wemos'un derin uykuya geçmesinden sonra, eğim anahtarının hareket ettirilmesinin ATTiny'nin uyanmasına neden olduğundan (LED tarafından sinyal verilir), bu da Wemos'u uyandırdığından emin olun.
Parametrenin değerini tekrar 180000L (milisaniye cinsinden 3 dakika) olarak değiştirin ve Wemos'un XXXXXXX'in çipin MAC adresinden alınacağı IOToilet_XXXXXXXX adlı bir Hotspot açtığından emin olun. Bir akıllı telefon kullanarak bu Wifi'ye bağlanın ve bir kayıt formuna (Captive Portal adı verilen bir mekanizma) yönlendirilmeniz gerekir. Ayrıntıları doldurun, özellikle önemli olan yerel kablosuz ağınızın SSID'si ve şifresidir ve formu gönderin. Ünite daha sonra verilen kimlik bilgilerini kullanarak ağa bağlanmayı denemeli ve başarılı olursa hoparlörde artan 3 ses çalmalıdır. Wifi'ye bağlanırken bir sorun olsaydı, 3 azalan ses çalınır. Bundan sonra, Wemos hareketle uyanana kadar derin uykuya dalmalıdır.
Son olarak: Uçtan uca Sistem testi.
Tuvalet kağıdı tutucusunu dönme ekseni boyunca birkaç tur döndürün, ardından sabit bir yüzeye yerleştirin (rulo kullanımının sona erdiğini bildirmek ve veri yüklemesini tetiklemek için). Rulo sayısının buluta gönderilmesi için yaklaşık 10 saniye bekleyin, ardından https://smartwipe-iot.appspot.com/ adresine gidin ve Sorgu'ya tıklayın. Bulutta kayıt ayrıntılarınızı ve son kullanım rulo sayınızı görmelisiniz! Sistemdeki benzersiz kimliğiniz olan uuid'inizi Wemos'unuzun MAC adresinden aldığınızdan emin olun.
Yalnızca istatistiklerinizi JSON biçiminde çıkarmak istiyorsanız, şuna benzer bir URL kullanın:
smartwipe-iot.appspot.com/api?action=query&uuid=1234567890
sadece uuid'i sizinkiyle değiştirin.
Google App motorunda barındırılan web uygulaması için tüm kaynakları ekledim, böylece verilere daha fazla gizlilik kazanmak isteyen kullanıcılar, kendi Google kullanıcılarına dağıtabilir, kimlik doğrulama ekleyebilir vb.
Her şey çalıştığında, elektronik aksamı plastik kabuğa yerleştirin, plastiği gerektiği gibi bir dremel ile düzeltin. Tüm parça gövdeye güzel bir şekilde oturmalıdır.
Sorun? Bana yaz!
BİRLEŞİK YAPIYORUZ!
Önerilen:
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: 7 Adım (Resimlerle)
Nasıl Yapılır: Raspberry PI 4 Headless (VNC) Kurulumu Rpi-imager ve Resimlerle: Bu Rapsberry PI'yi blogumda bir sürü eğlenceli projede kullanmayı planlıyorum. Kontrol etmekten çekinmeyin. Raspberry PI'mi kullanmaya geri dönmek istedim ama yeni konumumda Klavye veya Farem yoktu. Ahududu kurduğumdan beri bir süre geçti
Adım Sayacı Nasıl Yapılır?: 3 Adım (Resimlerle)
Adım Sayacı Nasıl Yapılır?: Yürümek, koşmak, bisiklete binmek, badminton oynamak gibi birçok sporda iyi performans gösterirdim. Binmeyi çok uzun zaman önce dolaşmak için seviyorum. Pekala, iri göbeğime bakın……Her neyse, egzersize yeniden başlamaya karar verdim. Hangi ekipmanı hazırlamalıyım?
Adım Adım Arduino Uno ile Akustik Kaldırma (8 adım): 8 Adım
Arduino Uno ile Akustik Kaldırma Adım Adım (8 adım): ultrasonik ses dönüştürücüler L298N erkek dc pinli Dc dişi adaptör güç kaynağı Arduino UNOBreadboardBu nasıl çalışır: İlk olarak, Arduino Uno'ya kod yüklersiniz (dijital ile donatılmış bir mikrodenetleyicidir) ve kodu dönüştürmek için analog bağlantı noktaları (C++)
Kolay Adımlar ve Resimlerle Bilgisayar Nasıl Sökülür: 13 Adım (Resimlerle)
Kolay Adımlar ve Resimlerle Bir Bilgisayar Nasıl Sökülür: Bu, bir PC'nin nasıl söküleceği hakkında bir talimattır. Temel bileşenlerin çoğu modülerdir ve kolayca çıkarılabilir. Ancak bu konuda organize olmanız önemlidir. Bu, parçaları kaybetmenize ve aynı zamanda yeniden birleştirmeyi kolaylaştırmaya yardımcı olacaktır
Adım Adım Ciclop 3d Tarayıcı My Way: 16 Adım (Resimlerle)
Adım Adım Ciclop 3d Tarayıcı Adım Adım: Merhabalar, ünlü Ciclop 3D tarayıcıyı gerçekleştireceğim. Orijinal projede iyi açıklanan tüm adımlar mevcut değil. Öncelikle işlemi basitleştirmek için bazı düzeltmeler yaptım. Tabanı yazdırıyorum ve PCB'yi yeniden sterilize ediyorum, ama devam et