Isi kandungan:
- Bekalan
- Langkah 1: Ciri-ciri
- Langkah 2: PCB
- Langkah 3: Perhimpunan
- Langkah 4: Gambaran Keseluruhan Pengaturcaraan
- Langkah 5: Input
- Langkah 6: Hasil
- Langkah 7: Pembalakan
- Langkah 8: Buzzer
- Langkah 9: Integrasi IoT Luaran
- Langkah 10: Penggunaan
- Langkah 11: Rancangan Masa Depan
Video: Hab Rumah Pintar ESP32: 11 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Membuat sistem yang dapat menangani sejumlah besar data sensor, mempunyai banyak output, dan menyambung ke internet atau rangkaian tempatan memerlukan waktu yang lama dan sejumlah besar usaha. Sering kali, orang yang ingin membuat rangkaian rumah pintar mereka sendiri berjuang untuk dapat mencari dan memasang komponen tersuai ke dalam sistem yang lebih besar. Itulah sebabnya saya ingin membuat platform modular dan kaya ciri yang memudahkan pembinaan sensor dan output yang disambungkan dengan IoT.
Terima kasih kepada DFRobot dan PCBGOGO.com kerana menaja projek ini!
Untuk maklumat lebih mendalam, lawati repo Github:
Bekalan
-
DFRobot ESP32 FireBeetle
www.dfrobot.com/product-1590.html
-
Sensor DHT22
www.dfrobot.com/product-1102.html
-
Sensor Cahaya dan Gerak isyarat APDS9960
www.dfrobot.com/product-1361.html
-
Modul LCD I2C 20x4
www.dfrobot.com/product-590.html
-
Jalur LED Analog RGB
www.dfrobot.com/product-1829.html
- Pemacu Motor Stepper DRV8825
- Pembaca Kad SD
- NEMA17 Stepper Motors
Langkah 1: Ciri-ciri
Ciri utama papan ini adalah Lembaga Pembangunan FireBeetle ESP32 yang mengendalikan semua komunikasi, pembacaan sensor, dan output. Terdapat dua pemacu motor stepper yang mengawal dua motor stepper bipolar.
Bas I2C juga rosak untuk digunakan dengan komponen seperti APDS9960 atau LCD. Untuk membaca suhunya, ada pin yang patah untuk disambungkan ke sensor DHT22, serta fotoresistor untuk membaca tahap cahaya ambien.
Terdapat sokongan untuk jalur cahaya analog di papan, yang mempunyai tiga MOSFET di atasnya untuk menggerakkan lampu LED.
Langkah 2: PCB
Saya memulakan proses reka bentuk PCB dengan membuat skema pertama di Eagle. Oleh kerana saya tidak dapat mencari perpustakaan FireBeetle ESP32, saya hanya menggunakan dua header pin 1x18 pin. Kemudian, saya membuat litar pengurusan kuasa yang dapat menerima 12v melalui jack barel DC dan menukarnya menjadi 5v untuk menghidupkan sensor dan ESP32.
Setelah skema selesai, saya terus merancang PCB sendiri.
Saya tahu bahawa palam laras DC mesti berada di bahagian depan papan, dan kapasitor pelicin bekalan kuasa 100uF perlu dekat dengan input kuasa pemacu motor stepper. Setelah semuanya disusun, saya mula mengesan jejak.
Walaupun Oshpark membuat PCB berkualiti tinggi, harganya cukup tinggi. Syukurlah, PCBGOGO.com juga membuat PCB hebat dengan harga yang berpatutan. Saya dapat membeli sepuluh PCB dengan harga $ 5, dan bukannya membayar $ 52 untuk hanya tiga papan dari Oshpark.com.
Langkah 3: Perhimpunan
Secara keseluruhan, pemasangan papan adalah sangat mudah. Saya mulakan dengan memateri komponen yang dipasang di permukaan, dan kemudian memasang penyambung dan pengatur soket tong. Seterusnya, saya menggunakan header pin untuk komponen seperti pemandu motor dan FireBeetle.
Setelah pematerian selesai, saya menguji papan litar pintas dengan memasukkan multimeter ke mod pengukuran rintangan dan melihat apakah rintangan melebihi jumlah tertentu. Papan berlalu, jadi saya kemudian dapat memasukkan setiap komponen.
Langkah 4: Gambaran Keseluruhan Pengaturcaraan
Saya mahu kod papan ini modular dan mudah digunakan. Ini bermaksud mempunyai beberapa kelas yang mengendalikan fungsi tertentu, bersama dengan kelas pembungkus yang lebih besar yang menggabungkan yang lebih kecil.
Langkah 5: Input
Untuk mengendalikan input, saya membuat kelas yang disebut "Hub_Inputs", yang memungkinkan hub rumah berkomunikasi dengan APDS9960, bersama dengan membuat dan mengurus butang dan antara muka sentuhan kapasitif. Ia mengandungi fungsi berikut:
Buat butang
Dapatkan jika butang ditekan
Dapatkan bilangan penekanan butang
Dapatkan isyarat terkini
Dapatkan nilai sentuhan kapasitif
Butang disimpan sebagai struktur, dengan tiga atribut: is_pressed, numberPresses, dan pin. Setiap butang, apabila dibuat, dilampirkan pada gangguan. Apabila gangguan itu dipicu, Interrupt Service Routine (ISR) dilewatkan penunjuk butang itu (diberikan sebagai alamat ingatannya dalam susunan butang) dan menambah jumlah penekanan butang, bersama dengan mengemas kini nilai Boolean is_pressed.
Nilai sentuhan kapasitif jauh lebih sederhana. Mereka diambil dengan meneruskan pin sentuh ke fungsi touchRead ().
Isyarat terbaru diperbaharui dengan mengundi APDS9960 dan memeriksa apakah ada gerakan baru yang terdeteksi, dan jika ada yang terdeteksi, tetapkan pemboleh ubah isyarat peribadi ke gerakan itu.
Langkah 6: Hasil
Hab rumah pintar mempunyai beberapa cara untuk mengeluarkan maklumat dan menukar lampu. Terdapat pin yang memecah bas I2C, membiarkan pengguna menyambungkan LCD. Sejauh ini, hanya satu ukuran LCD yang didukung: 20 x 4. Dengan menggunakan fungsi "hub.display_message ()", pengguna dapat menampilkan pesan di LCD dengan memasukkan objek string.
Terdapat juga pin header untuk menyambungkan rentetan LED analog. Memanggil fungsi "hub.set_led_strip (r, g, b)", menetapkan warna jalur.
Kedua motor stepper digerakkan menggunakan sepasang papan pemacu DRV8825. Saya memutuskan untuk menggunakan perpustakaan BasicStepper untuk mengendalikan kawalan motor. Semasa papan dipasang, dua objek stepper dibuat, dan kedua-dua motor diaktifkan. Untuk melangkah setiap motor, fungsi "hub.step_motor (motor_id, step)" digunakan, di mana id motor sama ada 0 atau 1.
Langkah 7: Pembalakan
Kerana papan mempunyai beberapa sensor, saya mahukan kemampuan mengumpulkan dan log data secara tempatan.
Untuk memulakan log, file baru dibuat dengan "hub.create_log (nama file, header)", di mana header digunakan untuk membuat baris file CSV yang menunjukkan lajur. Lajur pertama selalu merupakan cap waktu dalam Tahun Bulan Jam Hari: Format Min: Sec. Untuk mendapatkan masa, fungsi hub.log_to_file () mendapat masa dengan fungsi basic_functions.get_time (). Struktur waktu tm kemudian diteruskan dengan merujuk ke fungsi pembalakan, bersama dengan data dan nama fail.
Langkah 8: Buzzer
Apa gunanya papan IoT jika anda tidak dapat memainkan muzik? Itulah sebabnya saya memasukkan bel dengan fungsi untuk memainkan suara. Memanggil "hub.play_sounds (melodi, durasi, panjang)" mula memainkan lagu, dengan melodi menjadi array frekuensi nota, durasi sebagai susunan durasi nota, dan panjang sebagai jumlah nota.
Langkah 9: Integrasi IoT Luaran
Hab pada masa ini menyokong webhook IFTTT. Mereka boleh dipicu dengan memanggil fungsi Hub_IoT.publish_webhook (url, data, peristiwa, kunci) atau Hub_IoT.publish_webhook (url, data). Ini menghantar permintaan POST ke URL yang diberikan dengan data yang dilampirkan, bersama dengan nama acara jika perlu. Untuk menyediakan contoh integrasi IFTTT, buat pertama kali applet baru. Kemudian pilih perkhidmatan webhook yang mencetuskan ketika permintaan diterima.
Seterusnya, panggil acara "high_temp" dan simpan. Kemudian, pilih perkhidmatan Gmail untuk bahagian "Itu", dan pilih pilihan "Kirim e-mel kepada saya sendiri". Dalam persediaan untuk layanan, masukkan "Suhu tinggi!" untuk subjek, dan kemudian saya meletakkan "Suhu terukur {{Value1}} pada {{OccurrAt}}", yang menunjukkan suhu yang diukur dan waktu ketika peristiwa itu dipicu.
Setelah menyiapkannya, cukup tempel URL webhook yang dihasilkan oleh IFTTT, dan masukkan "high_temp" di bahagian acara.
Langkah 10: Penggunaan
Untuk menggunakan Smart Home Hub, cukup panggil semua fungsi yang diperlukan dalam setup () atau loop (). Saya telah membuat contoh panggilan fungsi, seperti mencetak waktu semasa dan memanggil acara IFTTT.
Langkah 11: Rancangan Masa Depan
Sistem Smart Home Hub berfungsi dengan baik untuk automasi rumah yang sederhana dan tugas pengumpulan data. Ia dapat digunakan untuk hampir semua hal, seperti menetapkan warna jalur LED, memantau suhu ruangan, memeriksa apakah lampu menyala, dan sejumlah besar proyek lain yang berpotensi. Pada masa akan datang, saya ingin mengembangkan lagi fungsi. Ini termasuk menambahkan pelayan web yang lebih mantap, hosting fail tempatan, dan bahkan Bluetooth atau mqtt.
Disyorkan:
Lampu LED Meja Pintar - Pencahayaan Pintar W / Arduino - Ruang Kerja Neopixels: 10 Langkah (dengan Gambar)
Lampu LED Meja Pintar | Pencahayaan Pintar W / Arduino | Ruang Kerja Neopixels: Sekarang beberapa hari kita menghabiskan banyak masa di rumah, belajar dan bekerja secara maya, jadi mengapa tidak menjadikan ruang kerja kita lebih besar dengan sistem lampu khas Arduino dan Ws2812b berdasarkan LED. Di sini saya tunjukkan kepada anda bagaimana membina Smart anda Lampu LED Meja yang
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay - Idea Automasi Rumah: 15 Langkah (dengan Gambar)
Cara Membuat Rumah Pintar Menggunakan Modul Arduino Control Relay | Idea Automasi Rumah: Dalam projek automasi rumah ini, kami akan merancang modul relai rumah pintar yang dapat mengawal 5 peralatan rumah. Modul relay ini dapat dikendalikan dari telefon bimbit atau telefon pintar, jauh IR atau TV jauh, suis manual. Relay pintar ini juga dapat merasakan
Berkebun Pintar dan Pertanian Pintar Berasaskan IoT Menggunakan Langkah ESP32: 7
Berkebun Pintar dan Pertanian Pintar Berasaskan IoT Menggunakan ESP32: Dunia berubah seiring dengan masa dan pertanian. Pada masa ini, Orang ramai mengintegrasikan elektronik dalam setiap bidang dan pertanian tidak terkecuali untuk ini. Penggabungan elektronik dalam pertanian ini membantu petani dan orang yang menguruskan kebun.Dalam hal ini
Hab Automasi Rumah Raspberry Pi-Arduino-SignalR: 11 Langkah (dengan Gambar)
Hab Automasi Rumah Raspberry Pi-Arduino-SignalR: Berikutan beberapa IBLE awal saya yang diterbitkan di sini dan di sini, projek ini mengambil langkah pertama untuk membina versi asas Hab Automasi Rumah yang berfungsi. Saya telah menggunakan beberapa teknologi yang berbeza dalam usaha untuk memahami bagaimana saya dapat
Rumah Google DIY dengan Pembesar Suara Bluetooth di Hab Docking Raspberry Pi Zero: 7 Langkah (dengan Gambar)
DIY Google Home Dengan Pembesar Suara Bluetooth di Raspberry Pi Zero Docking Hub: Kami mempunyai instruksi di DIY Amazon Echo Alexa - Pembantu Suara Alexa di Raspberry Pi Zero Docking Hub. Kali ini kami ingin menunjukkan cara membina Google Home DIY. Dalam arahan ini, kami akan menunjukkan kepada anda cara memasang dan menyiapkan Pembantu Google