Isi kandungan:
- Langkah 1: Prototaip
- Langkah 2: Menghantar Pemberitahuan Melalui Blynk
- Langkah 3: Mengukur Penggunaan Kuasa dan Menganggar Hayat Bateri
- Langkah 4: Mengukur Tahap Bateri
- Langkah 5: Menjadikannya Lebih Cantik
- Langkah 6: Menyentuh Sentuhan
Video: Sensor Pemberitahuan Mesin Basuh: 6 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Sensor mesin basuh ini terletak di atas mesin basuh saya dan menggunakan pecutan untuk mengesan getaran dari mesin. Apabila merasakan kitaran pencucian telah selesai, ia akan menghantar pemberitahuan di telefon saya. Saya membina ini kerana mesin itu sendiri tidak lagi berbunyi apabila ia selesai dan saya bosan lupa mengeluarkan cucian.
Kodnya boleh didapati di sini:
Senarai bahagian penuh:
- WEMOS LOLIN32
- Papan Roti separuh saiz (untuk prototaip)
- Kotak Projek ABS dengan Matrix Board 59x88x30mm
- Sparkfun LIS3DH - Pelarian Triple Axis Accelerometer
- 1x ZVP3306A P-channel MOSFET, 160 mA, 60 V, 3-Pin E-Line
- Transistor 1x BC549B TO92 30V NPN
- Biru LED 5mm 68 mcd
- Perintang 1x 100k 0.125W CF
- 1x 330k 0.125W CF Perintang
- Perintang 2x 10k 0.250W CF
- 1x 100 0.250W CF Perintang
- Kabel PH-Gaya Wanita 2-Pin Perempuan (14cm)
- Magnet Cakera 4x M1219-8 Neodymium 6x4mm
Langkah 1: Prototaip
Peranti menggunakan mikrokontroler ESP32. Dalam kes ini, saya menggunakan papan pengembangan Lolin32 oleh Wemos yang boleh anda beli di AliExpress dengan harga sekitar $ 7. Accelerometer adalah Sparkfun LIS3DH - pentingnya accelerometer adalah digital daripada analog seperti yang anda akan lihat kemudian. Bateri yang saya ambil dari set pembesar suara bluetooth lama.
ESP32 menghubungkan ke pecutan melalui I2C. Versi pertama kod hanya meneliti tiga paksi pecutan (x, y dan z) untuk nilai pecutan yang diukur setiap 20ms. Meletakkan prototaip papan roti di mesin basuh dan saya menghasilkan graf di atas yang menunjukkan puncak pecutan semasa pelbagai fasa kitaran basuh. Puncak di mana pecutan mutlak lebih besar daripada 125mg (125 seperseratus graviti normal) ditunjukkan dengan warna oren. Kami ingin mengesan tempoh ini dan menggunakannya untuk menentukan status mesin basuh.
Bagaimana untuk menentukan sama ada mesin hidup atau mati?
Salah satu tujuan pembinaan peranti ini adalah sepenuhnya pasif. I. E. butang tidak perlu ditekan; ia akan berjaya. Kuasa ini juga mestilah sangat rendah kerana tidak boleh memperbesar kabel kuasa ke mesin basuh dalam kes saya.
Nasib baik, accelerometer LIS3DH mempunyai ciri di mana ia boleh mencetuskan gangguan ketika pecutan melebihi ambang yang ditentukan (perhatikan, ini memerlukan penggunaan penapis lulus tinggi accelerometer - lihat kod di Github untuk perinciannya) dan ESP32 dapat diaktifkan naik dari mod tidur dalam melalui gangguan. Kita boleh menggunakan gabungan ciri ini untuk membuat mod tidur kuasa yang sangat rendah yang dipicu oleh pergerakan.
Kod pseudo akan kelihatan seperti ini:
# Peranti bangun
notification_threshold = 240 counter = 10 accelerometer.set_threshold (96) # 96mg while counter> 0: if accelerometer.above_threshold (): counter ++ else: counter-- if counter> notification_threshold: # putaran putaran terakhir dikesan tidur (1 saat) accelerometer.set_threshold_interrupt () esp32.set_wakeup_trigger_on_interrupt () esp32.deep_sleep ()
Anda dapat lihat di sini bahawa kami menggunakan penghitung untuk mengesan berapa saat pecutan yang kami dapati dalam tempoh bangun semasa. Sekiranya kaunter jatuh ke sifar maka kita boleh menghidupkan semula peranti. Sekiranya penghitung mencapai 240 (ambang pemberitahuan), itu bermakna kita telah mengesan getaran selama 4 minit. Kami dapat mengubah nilai ambang ini untuk memastikan peranti mengesan putaran putaran terakhir dengan betul. Setelah getaran yang mencukupi dikesan, kita dapat tidur selama 5 minit lagi (dalam kes saya ini adalah berapa lama masa yang diperlukan sehingga pencucian selesai) sebelum menghantar pemberitahuan.
Langkah 2: Menghantar Pemberitahuan Melalui Blynk
Blynk adalah perkhidmatan yang direka untuk membolehkan interaksi dengan peranti IoT dengan aplikasi di telefon anda. Dalam kes ini, saya menggunakan push notification API yang dipicu oleh HTTP POST sederhana ke Blynk API.
Langkah 3: Mengukur Penggunaan Kuasa dan Menganggar Hayat Bateri
Cip ESP32 diiklankan mempunyai penggunaan kuasa yang sangat rendah ketika dalam tidur nyenyak (serendah 5uA). Malangnya, litar pada papan pengembangan yang berbeza memberikan ciri penggunaan kuasa yang sangat berbeza - tidak semua papan dev ESP32 dibuat sama. Sebagai contoh, ketika saya mula-mula memulakan projek ini, saya menggunakan Sparkfun ESP32 Thing yang akan menggunakan kuasa sekitar 1mA dalam mod tidur nyenyak (walaupun selepas mematikan LED kuasa). Sejak itu saya menggunakan Lolin32 (bukan versi Lite) di mana saya mengukur arus 144.5uA semasa dalam mod tidur nyenyak. Untuk melakukan pengukuran ini, saya hanya memasang kabel multimeter secara bersiri dengan bateri dan peranti. Ini tentu lebih mudah dilakukan semasa membuat prototaip dengan papan roti. Saya juga mengukur penggunaan semasa semasa peranti terjaga:
- Tidur nyenyak: 144.5uA
- Terjaga: 45mA
- Wifi didayakan: 150mA
Dengan mengandaikan bahawa saya menggunakan mesin dua kali seminggu, saya mengira jangka masa berikut untuk masa yang dihabiskan oleh sensor di setiap keadaan:
- Tidur nyenyak: 604090 saat (~ 1 minggu)
- Bangun: 720 saat (12 minit)
- Wifi diaktifkan: 10 saat
Dari angka-angka ini, kita dapat menganggarkan berapa lama bateri akan bertahan. Saya menggunakan kalkulator berguna ini untuk mendapatkan penggunaan kuasa purata 0.2mA. Jangka hayat bateri adalah 201 hari atau kira-kira 6 bulan! Sebenarnya saya telah mendapati bahawa peranti akan berhenti berfungsi setelah kira-kira 2 bulan sehingga mungkin terdapat beberapa kesalahan dalam pengukuran atau kapasiti bateri.
Langkah 4: Mengukur Tahap Bateri
Saya fikir akan lebih baik jika peranti dapat memberitahu saya ketika bateri hampir habis, jadi saya tahu kapan mengecasnya. Untuk mengukur ini, kita perlu mengukur voltan bateri. Bateri mempunyai julat voltan 4.3V - 2.2V (voltan operasi minimum ESP32). Malangnya, julat voltan pin ADC ESP32 adalah 0-3.3V. Ini bermaksud, kita perlu menurunkan voltan bateri dari maksimum 4.3 hingga 3.3 untuk mengelakkan beban ADC yang berlebihan. Ini mungkin dilakukan dengan pembahagi voltan. Cukup kawat dua perintang dengan nilai yang sesuai dari bateri ke tanah dan ukur voltan di tengah.
Malangnya, litar pembahagi voltan sederhana akan mengalirkan kuasa dari bateri walaupun voltan tidak diukur. Anda boleh mengurangkan ini dengan menggunakan perintang nilai tinggi tetapi sisi bawahnya adalah bahawa ADC mungkin tidak dapat menarik arus yang cukup untuk membuat pengukuran yang tepat. Saya memutuskan untuk menggunakan perintang dengan nilai 100kΩ dan 330kΩ yang akan turun 4.3V hingga 3.3V mengikut formula pembahagi voltan ini. Dengan rintangan total 430kΩ, kami menjangkakan undian 11.6uA semasa (menggunakan undang-undang Ohm). Memandangkan penggunaan tidur nyenyak kita sekarang adalah 144uA, ini adalah peningkatan yang cukup ketara.
Oleh kerana kami hanya ingin mengukur voltan bateri sekali sebelum menghantar pemberitahuan, masuk akal untuk mematikan litar pembahagi voltan semasa kami tidak mengukur apa-apa. Nasib baik, kita dapat melakukan ini dengan beberapa transistor yang disambungkan ke salah satu pin GPIO. Saya menggunakan litar yang diberikan dalam jawapan pertukaran tumpukan ini. Anda dapat melihat saya menguji litar dengan Arduino dan papan roti pada foto di atas (perhatikan terdapat ralat dalam litar yang menjadi sebab saya mengukur voltan yang lebih tinggi daripada yang dijangkakan).
Dengan adanya litar di atas, saya menggunakan kod pseudo berikut untuk mendapatkan nilai peratusan bateri:
peratusan bateri():
# aktifkan litar voltan bateri gpio_set_level (BATTERY_EN_PIN, HIGH) # Aras bateri dikembalikan sebagai bilangan bulat antara 0 dan 4095 pembahagi menggunakan perintang 100k / 330k ohm # 4.3V -> 3.223, 2.4 -> 1.842 dijangka_max = 4.3 * 330 / (100 + 330) diharapkan_min = 2.4 * 330 / (100 + 330) bateri_level = (adc_voltage-expect_min) / (توقع_max -penyangkaan_min) pulangan_level_ bateri * 100.0
Langkah 5: Menjadikannya Lebih Cantik
Walaupun versi papan roti berfungsi dengan baik, saya mahu memasukkannya ke dalam pakej yang lebih kemas dan lebih dipercayai (tidak ada wayar yang boleh longgar atau pendek). Saya berjaya mencari kotak projek yang sesuai untuk keperluan saya yang berukuran tepat, termasuk papan pin, penahan pemasangan dan skru untuk menyatukannya. Juga, harganya murah dengan harga kurang dari £ 2. Setelah menerima kotak itu, yang harus saya lakukan ialah menyolder komponen ke papan pin.
Mungkin bahagian paling sukar adalah memasang semua komponen litar voltan bateri ke ruang kecil di sebelah Lolin32. Nasib baik dengan sedikit pokery dan sambungan yang sesuai dibuat dengan solder litar sesuai dengan kemas. Juga, kerana Wemos Lolin32 tidak mempunyai pin untuk memaparkan terminal bateri positif, saya harus menyolder wayar dari penyambung bateri ke papan pin.
Saya juga menambahkan LED yang berkelip apabila peranti mengesan pergerakan.
Langkah 6: Menyentuh Sentuhan
Magnet neodymium 4 6mm x 4mm terpaku pada pangkal kotak yang membolehkannya melekat dengan kuat pada bahagian atas logam mesin basuh.
Kotak projek sudah dilengkapi dengan lubang kecil untuk memberi akses kepada kabel. Nasib baik, saya dapat meletakkan papan ESP32 dekat dengan lubang ini untuk memberi akses ke penyambung USB mikro. Setelah membesarkan lubang dengan pisau kerajinan, kabel sesuai dengan sempurna untuk memudahkan pengisian bateri.
Sekiranya anda berminat dengan perincian projek ini, sila beri komen. Sekiranya anda ingin melihat kodnya, sila lihat di Github:
github.com/alexspurling/washingmachine
Disyorkan:
Cara Mencari Pin Motor Mesin Basuh: 6 Langkah
Cara Mencari Pin Motor Mesin Cuci: Penemuan pin motor mesin basuh dengan bantuan multimeter digital. Kami memerlukan multimeter dalam mod penguji kesinambungan dan motor mesin basuh sejagat yang serupa seperti yang terdapat dalam gambar di atas. Kami akan mulakan terlebih dahulu dengan memeriksa secara visual t
Pemberitahuan Mesin Basuh: 3 Langkah
Pemberitahuan Mesin Basuh: Saya mempunyai mesin basuh murah "bodoh" dengan harga sekitar £ 150. Ukuran adalah kekangan terbesar, jadi jangan menilai saya terlalu keras. Perkara bodoh dalam rumah tangga saya adalah saya. Mencuci seluar dalam berwarna putih dengan jumper merah adalah salah satu dosa saya. Yang lain tidak ingat
Rajah Pendawaian Motor Mesin Basuh: 6 Langkah
Diagram Pendawaian Motor Mesin Cuci: Untuk dapat menyambungkan motor mesin basuh atau motor sejagat, kami memerlukan gambarajah yang disebut rajah pendawaian motor mesin basuh, yang ini boleh digunakan untuk menyambungkan motor universal ini pada 220v ac atau dc ikuti saja rajah yang sama
Makluman Pengering Mesin Cuci Arduino - Pemberitahuan Tolak ke Telefon Dengan Blynk: 5 Langkah (dengan Gambar)
Arduino Washer Dryer Alert - Push Notification to Phone With Blynk: Mesin basuh kami ada di garaj dan kami tidak dapat mendengar bunyi bip untuk menunjukkan bahawa basuh sudah selesai. Saya ingin mencari cara untuk diberitahu, di mana sahaja kita berada di rumah, ketika kitaran selesai. Saya telah bermain-main dengan Arduino, ESP8266 WiFi
Pemberitahuan Mesin Basuh Menggunakan MESH: 4 Langkah (dengan Gambar)
Pemberitahuan Mesin Basuh Menggunakan MESH: Alamak! Saya Lupa mengenai pakaian di mesin basuh … Adakah anda selalu lupa mengambil pakaian anda setelah dicuci? Resipi ini akan menaik taraf mesin basuh anda untuk menerima pemberitahuan melalui Gmail atau IFTTT setelah pakaian anda siap untuk gambar