Daftar Isi:

IOToilet: 7 Langkah (dengan Gambar)
IOToilet: 7 Langkah (dengan Gambar)

Video: IOToilet: 7 Langkah (dengan Gambar)

Video: IOToilet: 7 Langkah (dengan Gambar)
Video: Skibidi Toilet Transformation Fold | Part 2 #shorts 2024, November
Anonim

IOToilet adalah pemegang kertas toilet pintar pertama, yang melacak penggunaan kertas toilet kita sehari-hari dan memungkinkan akumulasi statistik yang menunjukkan metrik ini. Dan mengapa saya harus peduli dengan penggunaan kertas toilet saya sehari-hari, Anda mungkin bertanya? Ternyata, kesehatan perut kita, terutama siklus pencernaan, sangat berkaitan dengan kesehatan fisik dan mental kita. Sebagai contoh, inilah pembicaraan TED yang bagus (salah satu dari beberapa, omong-omong) yang menguraikan topik ini:

Saya awalnya ditugaskan untuk membuat 10 unit perangkat ini untuk agensi merek, yang klipnya dapat Anda lihat di atas (lokasi ke-2), untuk kampanye pemasaran yang ditujukan untuk perusahaan besar. Pada awalnya, saya menolak gagasan itu sebagai gagasan yang datang dari pikiran kreatif yang berlebihan yang berusaha keras untuk memenangkan akun klien, tetapi secara bertahap itu tumbuh pada saya, sampai saya menyadari nilai informasi yang dikumpulkan melalui perangkat ini.

Pembuatannya didasarkan pada perangkat keras yang sudah ada yang didapat klien saya dari EBay, alat perekam suara yang dikemas dalam tempat kertas toilet. Itu memiliki faktor bentuk yang tepat dan semua periferal yang diperlukan sudah terpasang, seperti speaker, sensor gerakan untuk memicu perangkat, pegas untuk menahan kertas toilet itu sendiri, kompartemen baterai, dan sakelar on-off, jadi saya dengan senang hati memilih menggunakan ini siap pakai daripada pemodelan dan pencetakan saya sendiri.

Langkah 1: Alat dan Bahan

Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan
Alat dan bahan

Bahan-bahan yang digunakan:

Tempat kertas toilet

Wemos D1 Mini

Chip ATTiny85, kemasan DIP

2x2n2222 transistor

220 Ohm resistor

2 * 1KOhm resistor

Akselerometer MPU6050

Opsional, jika tidak menggunakan PCB saya:

Perisai prototipe Wemos

kawat, solder, dll.

Alat yang digunakan:

Dremel dengan cakram pemotong

Papan dev ATTiny (untuk mengunggah firmware dengan mudah)

Programmer USB Tiny ISP

obeng segitiga, saya menggunakan kit ini:

Langkah 2: Merusak Unit Asli

Merusak Unit Asli
Merusak Unit Asli
Merusak Unit Asli
Merusak Unit Asli
Merusak Unit Asli
Merusak Unit Asli

Setelah mendapatkan spindel kertas toilet asli, saya membuka kasingnya menggunakan obeng segitiga dan melepaskan PCB asli, melepaskan speaker dan membiarkan sebanyak mungkin kabel terhubung ke sana.

Saya kemudian menyolder LED dan sensor kemiringan dari PCB asli, untuk kemudian disematkan di sirkuit baru. Perhatikan agar sakelar kemiringan tidak terlalu panas, karena dapat merusak. Milik saya berwarna abu-abu, tetapi karena saya tidak mengambil bidikan yang bagus saat melepasnya dari perangkat asli, saya harus menggunakan foto dari jaring (lihat di atas), yang berwarna hijau. Hanya detail kecil.

Setelah membuka kasing dan melepas barang elektronik, saya juga menggunakan Dremel untuk membuang sisa plastik yang digunakan untuk menahan PCB asli di tempatnya, rak plastik kecil ini, dan satu dari 4 pipa sekrup. Anda dapat menunda ini ke tahap perakitan jika Anda suka, tetapi bagaimanapun juga, beberapa pemangkasan plastik akan diperlukan.

Langkah 3: Sirkuit Dijelaskan

Sirkuit Dijelaskan
Sirkuit Dijelaskan
Sirkuit Dijelaskan
Sirkuit Dijelaskan

Jadi, inilah sedikit tentang logika di balik rangkaian:

Agar baterai bertahan lama, saya harus meletakkan akselerometer MPU6050 dan prosesor ESP8266 di Wemos D1 Mini untuk tidur di antara aktivasi. Yang pertama mudah dilakukan dengan menggunakan transistor yang menghidupkan dan mematikan MPU6050.

Catatan: Awalnya saya pikir saya bisa memprogramnya untuk mengirim sinyal interupsi yang akan membangunkan prosesor utama. Sayangnya, saya tidak dapat menemukan cara untuk mewujudkannya, mengonfigurasi register yang tepat dari MPU6050 adalah tugas rumit yang saya masih tidak tahu apakah mungkin sama sekali…

Opsi kedua saya adalah menggunakan sakelar kemiringan yang disertakan dengan unit asli untuk membangunkan ESP. Saya pertama kali mengikatnya langsung ke pin RESET Wemos seperti yang dijelaskan pada foto di atas, menggunakan transistor untuk mengaktifkan/menonaktifkan mekanismenya. Ketika basis transistor tinggi, GND dapat melewati sakelar kemiringan dan menyebabkannya terhubung sementara ke pin RESET, menyebabkan reset MCU (ini adalah satu-satunya cara untuk membangunkan ESP dari tidur nyenyak, rupanya). Saya kemudian menghubungkan D0 ke basis transistor, mengikuti premis bahwa kaki ini TINGGI selama MCU tidur, dan segera setelah bangun, D0 kembali ke RENDAH, menonaktifkan mekanisme reset. Lagi pula, saya tidak perlu reset berulang terjadi, hanya untuk pertama kalinya ketika dudukan kertas toilet mulai bergerak.

Namun, yang saya temukan adalah pin D0 membutuhkan waktu yang cukup lama setelah MCU reset untuk kembali ke LOW, sekitar 200ms. Ini berarti bahwa jika saya memutar dudukan kertas toilet cukup cepat saat MCU sedang tidur, akan terjadi beberapa RESET, alih-alih menghitung putaran, sebagaimana mestinya.

Jadi, saya mencoba memecahkan situasi baru ini dengan beberapa komponen diskrit (kapasitor, transistor, dll.) tetapi saya hanya berhasil mendapatkan sebagian solusi untuk masalah tersebut.

Saya akhirnya menambahkan MCU lain, ATTiny85, yang akan dibangunkan dari tidur dengan sakelar kemiringan, lalu, bangunkan ESP8266, dan tunggu beberapa saat sebelum kembali tidur. Saya tahu ini mungkin bukan solusi paling ekonomis untuk masalah ini, tetapi saya punya tenggat waktu…

Anda dapat melihat solusi terperinci dalam skema yang saya sertakan. Harap dicatat bahwa resistor 10K diganti dengan 1K karena resistor 10k terlalu tinggi untuk transistor terbuka penuh.

Langkah 4: Mempersiapkan ATTiny85

Mempersiapkan ATTiny85
Mempersiapkan ATTiny85

Jika Anda belum pernah memprogram ATTiny85, jangan takut! Menggunakan Arduino IDE tercinta bisa membantu Anda. Mulailah dengan instruksi ini tentang cara mengkonfigurasi Arduino IDE:

github.com/SpenceKonde/ATTinyCore/blob/mas…

Selanjutnya, instal driver untuk USBTinyISP dari sini:

learn.adafruit.com/usbtinyisp/drivers

Sekarang, muat kode uji terlampir: WakeOnExternalInterruptTest.ino

dan hubungkan (lihat diagram Pinout ATTiny85):

1. Tombol kebijaksanaan antara pin 3 dan ground

2. Sebuah led dan resistor 220 Ohm secara seri, antara pin 2 dan ground

Lanjut, Pilih USBTinyISP sebagai pemrogram (di bawah Alat -> Programmer) dan unggah sketsa uji ke papan.

LED harus berkedip 5 kali, lalu chip akan tidur. Menekan tombol akan membuatnya bangun dan mengulangi urutan itu.

Sudah berhasil? Bagus! Unggah sketsa terakhir "Awakener" ke ATTiny, untuk digunakan di sirkuit terakhir.

Langkah 5: Membangun Perisai Wemos

Membangun Perisai Wemos
Membangun Perisai Wemos
Membangun Perisai Wemos
Membangun Perisai Wemos
Membangun Perisai Wemos
Membangun Perisai Wemos
Membangun Perisai Wemos
Membangun Perisai Wemos

Jadi, untuk membangun perisai Anda memiliki 3 opsi yang dapat Anda pilih:

1. Gunakan protoshield standar untuk Wemos dan solder sirkuit ke atasnya.

2. Buat PCB, berdasarkan file EAGLE yang dilampirkan.

3. Mintalah saya untuk PCB yang dapat saya kirimkan kepada Anda melalui surat siput (saya punya beberapa yang tergeletak di sekitar, biayanya tidak apa-apa).

Bagaimanapun, saya sarankan membangun sirkuit di papan tempat memotong roti sebelum melakukan ke PCB!

Jika menggunakan opsi PCB, pastikan untuk menghubungkan kabel hitam seperti pada foto, di sisi depan atau belakang papan (yang terakhir paling cocok untuk saya). Kabel ini menghubungkan GND dari Wemos ke ATTiny85 dan tanpanya, bangun tidak akan terjadi.

Perhatikan baik-baik gambar dan baca anotasi yang saya tambahkan, ini sudah cukup.

Langkah 6: Mempersiapkan Wemos

Jika Anda belum pernah menggunakan Arduino IDE untuk memprogram board Wemos, mulailah dengan menginstal board manager dan memilih board di menu Tools -> Board, seperti yang dijelaskan di sini:

github.com/esp8266/Arduino

Mulailah dengan mengunggah sketsa kedipan ke papan Anda, pastikan kodenya diunggah dengan benar.

Langkah 7: Menyatukan Semuanya

Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya
Menyatukan Semuanya

Pasang perisai ke Wemos. Anda dapat menyoldernya, tetapi saya sarankan menggunakan header wanita yang disolder ke Wemos yang akan memungkinkan koneksi sementara antara Wemos dan perisai, jika ada masalah. Ingatlah bahwa tajuk wanita harus turun pada tahap akhir perakitan agar unit dapat masuk ke dalam cangkang plastik. Juga, untuk membuat segalanya sedikit lebih rumit, ada kemungkinan besar bahwa ketika perisai terhubung ke Wemos, unggahan kode akan dinonaktifkan. Saya telah menemukan fenomena itu dengan cara yang tidak konsisten, dan tidak punya waktu untuk menelitinya.

Kata nasihat: rencana ke depan.

Sekarang, Pengujian!

Setelah terinstal, mulailah dengan mengunggah sketsa tes BlinkAccelerometer ke Wemos, dan pastikan itu menyalakan dan mematikan LED MPU6050. Jika tidak, periksa kabel transistor yang bertanggung jawab untuk memberi daya pada MPU6050. Basisnya harus terhubung ke pin D5 dari Wemos, kolektor harus terhubung ke GND accelerometer dan Emitter harus terhubung ke GND umum.

Selanjutnya, unggah sketsa TurnCountTest1 ke papan Wemos dan buka Serial Monitor. Anda akan melihat data yang berasal dari akselerometer yang ditampilkan di monitor. Jika tidak berfungsi, periksa jam dan kabel data: CLK harus terhubung ke D1 dan DATA harus terhubung ke D2.

Sekarang, solder sakelar kemiringan ke lubang yang ditentukan di papan (lihat anotasi), pastikan itu tegak lurus dengan sumbu rotasi sehingga spindel yang berputar akan menutup dan membuka sambungan antara dua ujungnya.

Selanjutnya, sambungkan input Baterai 3V ke VCC Wemos, dan terminal minusnya ke GND Wemos. Pastikan bahwa menyalakan sakelar menghidupkan unit. Terakhir, sambungkan speaker ke GND dan pin D4 dari Wemos.

Unggah kode terakhir ke Wemos - sketsa bernama SmartWipe. Buka monitor serial dan pastikan unit tidur setelah 3 menit dan bangun dengan menggerakkan sakelar kemiringan (pesan yang sesuai akan muncul di monitor).

Jika Anda ingin mengurangi waktu Wemos bangun (terutama untuk tujuan pengujian), kurangi nilai WIFI_CONFIGURATION_IDLE_TIMEOUT yang ditentukan dalam params.h dan unggah sketsa ke papan. Pastikan bahwa setelah Wemos tidur nyenyak, menggerakkan sakelar kemiringan menyebabkan ATTiny bangun (ditandai oleh LED), yang, pada gilirannya, membangunkan Wemos.

Ubah nilai parameter kembali ke 180000L (3 menit, dalam milidetik) dan pastikan Wemos menjalankan Hotspot bernama IOTolet_XXXXXXXX di mana XXXXXXX akan diambil dari alamat MAC chip. Hubungkan ke Wifi ini menggunakan ponsel pintar, dan Anda akan diarahkan ke formulir pendaftaran (mekanisme yang disebut Captive Portal). Isi detailnya, terutama yang penting adalah SSID dan kata sandi wifi lokal Anda, dan kirimkan formulirnya. Unit kemudian harus mencoba menyambung ke jaringan menggunakan kredensial yang disediakan, dan jika berhasil, putar 3 suara menaik pada speaker. Jika ada masalah dalam menghubungkan ke Wifi, 3 suara menurun akan dimainkan. Setelah itu, Wemos harus tidur nyenyak, sampai terbangun oleh gerakan.

Akhirnya: Uji sistem ujung ke ujung.

Gulung dudukan tisu toilet di sepanjang sumbu rotasinya beberapa putaran, lalu letakkan di permukaan yang stabil (untuk memberi sinyal penggunaan gulungan telah berakhir dan memicu pengunggahan data). Tunggu sekitar 10 detik hingga jumlah roll dikirim ke cloud, lalu buka https://smartwipe-iot.appspot.com/ dan klik Query. Anda akan melihat detail pendaftaran Anda dan jumlah roll penggunaan terakhir Anda di cloud! Pastikan untuk menuliskan uuid Anda, yang merupakan id unik Anda di sistem, yang diambil dari alamat MAC Wemos Anda.

Jika Anda hanya ingin mengekstrak statistik Anda dalam format JSON, gunakan URL yang mirip dengan ini:

smartwipe-iot.appspot.com/api?action=query&uuid=1234567890

ganti saja uuid dengan milikmu.

Saya telah menyertakan semua sumber untuk aplikasi web, yang dihosting di mesin Google App sehingga pengguna yang ingin mendapatkan lebih banyak privasi pada data, dapat menerapkannya pada pengguna Google mereka sendiri, menambahkan autentikasi, dll.

Saat semuanya berfungsi, masukkan elektronik ke dalam cangkang plastik, potong plastik dengan dremel sesuai kebutuhan. Seluruh bagian harus pas dengan baik ke dalam perumahan.

Masalah? Tulis aku!

BERSATU KITA POOP!

Direkomendasikan: