Bagaimana Cara Membuat Sistem Otomasi Rumah Pintar Menggunakan Modul ESP32?
Di era modern ini, konsep otomasi rumah berkembang dengan sangat pesat. Sistem pintar dipasang di hampir setiap tempat. Smart Home Systems adalah konsep di mana semua peralatan listrik atau perangkat dikontrol menggunakan satu remote control. Dalam sistem ini, sebagian besar waktu, kendali jarak jauh adalah aplikasi seluler. Karena ponsel android adalah yang paling umum di antara orang-orang, jadi aplikasi android adalah pilihan terbaik untuk mengontrol semua perangkat ini.
Jadi dalam proyek ini, kita akan menghubungkan beberapa peralatan listrik rumah ke modul Relay dan mengontrolnya melalui Mikrokontroler ESP32. Kami akan membuat database realtime firebase dan menghubungkannya dari aplikasi android. Aplikasi android ini akan mengirimkan data ke cloud dan kemudian akan dikirim ke mikrokontroler untuk menghidupkan atau mematikan alat listrik. Bagian terbaiknya adalah Anda dapat memiliki kendali penuh atas peralihan peralatan Anda dari mana saja di dunia. Anda hanya perlu koneksi internet untuk mengoperasikan aplikasi android.
Bagaimana Mengontrol Peralatan Rumah Tangga Melalui WiFi?
Sistem Otomasi Rumah yang sudah tersedia di pasaran, harganya sangat mahal. Kita dapat menggunakan papan ESP32 untuk menghubungkan peralatan rumah tangga yang berbeda dan mengontrolnya menggunakan Aplikasi Android. Ini akan menjadi biaya yang sangat rendah dan cara yang efisien untuk mengotomatiskan rumah. Sekarang mari kita selangkah lebih maju dan mulai mengumpulkan informasi untuk memulai proyek.
Langkah 1: Mengumpulkan Komponen
Pendekatan terbaik untuk memulai proyek apa pun adalah dengan membuat daftar komponen dan melalui studi singkat tentang komponen ini karena tidak ada yang mau bertahan di tengah-tengah proyek hanya karena ada komponen yang hilang. Daftar komponen yang akan kita gunakan dalam proyek ini diberikan di bawah ini:
Langkah 2: Mempelajari Komponen
Sekarang karena kita mengetahui abstrak dari proyek ini, mari kita selangkah lebih maju dan melalui studi singkat tentang kerja komponen utama yang akan kita gunakan.
ESP32adalah papan mikrokontroler berdaya rendah dan berbiaya rendah yang memiliki WiFi internal dan modul Bluetooth mode ganda. Papan mikrokontroler ini dibuat dan dikembangkan oleh Sistem Espressif. Papan ini memiliki penguat daya built-in, penguat penerima yang bagus rendah, filter, dan sakelar antena. Ini didukung oleh kabel data android dan dapat menyediakan hingga 3.3V pada output. ESP32 menjalankan TCP / IP, konvensi WLAN MAC 802.11 b / g / n / e / I penuh, dan khusus Wi-Fi Direct. Ini berarti ESP 32 dapat menangani sebagian besar Router WiFi di luar sana ketika digunakan dalam mode stasiun (klien). Selain itu, dapat membuat Access point dengan 802.11 b / g / n / e / I penuh. ESP32 tidak hanya mendukung BLE Bluetooth 4.2 terbaru, tetapi juga mendukung Bluetooth yang hebat. Ini pada dasarnya menyiratkan itu dapat mengatasi telepon / tabel Bluetooth lama dan baru. Jika Anda tidak memiliki modul ESP32, Anda juga dapat menggunakan ESP8266 atau Node MCU. Papan ini dapat digunakan untuk melakukan tugas yang sama jika terhubung ke WiFi.
Modul relai adalah perangkat switching. Ia bekerja dalam dua mode, Biasanya Terbuka (TIDAK) dan Biasanya Tertutup (NC). Dalam mode NO, sirkuit selalu rusak kecuali jika Anda mengirim sinyal TINGGI ke relai melalui Arduino. Mode NC memperburuk sebaliknya, Sirkuit selalu lengkap kecuali Anda mengaktifkan modul relai. Pastikan Anda menghubungkan kabel positif Peralatan Listrik Anda ke modul relai seperti yang ditunjukkan di bawah ini.
Langkah 3: Diagram Blok
Pada diagram blok di atas, aliran proyek ini ditunjukkan. Relai terhubung ke peralatan atau perangkat listrik rumah. Aplikasi seluler akan mengirimkan file Di atau MATI perintah ke database. Awan ini terhubung ke papan mikrokontroler ESP32 melalui WiFi. Untuk mengaktifkan perangkat elektronik, kami akan mengirimkan angka “1” di database dan untuk mematikannya kami akan mengirimkan angka “0” di database. Perintah ini kemudian akan diambil oleh mikrokontroler karena terhubung juga dengan database. Berdasarkan 0 atau 1 ini, mikrokontroler akan menghidupkan atau mematikan modul relai yang pada akhirnya akan mengakibatkan peralihan peralatan listrik.
Jadi di sini, di artikel ini, saya akan menggunakan dua modul relai untuk menunjukkan kepada Anda seluruh prosedur. Tetapi Anda dapat menambah jumlah relai dan menambahkan potongan kode yang sama dalam program Anda jika Anda ingin mengontrol lebih banyak peralatan listrik rumah.
Langkah 4: Merakit Komponen
Sekarang karena kami memiliki visi yang jelas tentang apa yang ingin kami lakukan dalam proyek ini, jangan buang waktu lagi dan mulai merakit komponen.
- Ambil papan tempat memotong roti dan perbaiki mikrokontroler ESP32 di dalamnya. Sekarang ambil dua modul relai dan sambungkan Vcc dan arde modul ke Vin dan arde papan mikrokontroler ESP32 secara paralel. Hubungkan di-pin dari modul relai ke pin34 dan pin35 dari papan ESP32. Anda akan melihat bahwa relai sekarang dihidupkan.
- Hubungkan peralatan rumah ke modul relai. Pastikan koneksi Anda cocok dengan koneksi yang ditunjukkan pada gambar di Langkah 2.
Sekarang saat kami menghubungkan bagian perangkat keras dari sistem kami. Kami akan mengembangkan aplikasi android yang akan dihubungkan ke database firebase. Kami akan membuat database dan aplikasi android di Bagian 2 artikel ini.
Langkah 5: Memulai ESP32
Jika Anda belum pernah mengerjakan Arduino IDE sebelumnya, jangan khawatir karena langkah demi langkah untuk menyiapkan Arduino IDE ditunjukkan di bawah ini.
- Unduh versi terbaru Arduino IDE dari Arduino.
- Hubungkan papan Arduino Anda ke PC dan buka Control Panel. Klik Perangkat keras dan Suara.Sekarang buka Perangkat dan Printer dan temukan port tempat papan Anda terhubung. Dalam kasus saya itu COM14tetapi berbeda di komputer yang berbeda.
- Klik File dan kemudian klik Preferensi. Salin tautan berikut di URL Manajer Dewan Tambahan. “https://dl.espressif.com/dl/package_esp32_index.json ”
- Sekarang, untuk menggunakan ESP32 dengan Arduino IDE, kita perlu mengimpor pustaka khusus yang memungkinkan kita untuk membakar kode di ESP32 dan menggunakannya. kedua perpustakaan ini dilampirkan dalam tautan yang diberikan di bawah ini. Untuk memasukkan perpustakaan, goto Sketch> Include Library> Add ZIP Library. Sebuah kotak akan muncul. Temukan folder ZIP di komputer Anda dan klik OK untuk memasukkan folder tersebut.
- Sekarang pergi Sketsa> Sertakan Perpustakaan> Kelola Perpustakaan.
- Menu akan terbuka. Di bilah pencarian, ketik Arduino JSON.Daftar akan muncul. Install Arduino JSON oleh Benoit Blanchon.
- Sekarang klik Alat.Menu dropdown akan muncul. Atur papan menjadi Modul Pengembangan ESP.
- Klik pada menu Tool lagi dan atur port yang Anda amati di panel kontrol sebelumnya.
- Sekarang Unggah kode yang dilampirkan pada tautan di bawah ini dan klik tombol unggah untuk membakar kode pada mikrokontroler ESP32.
Jadi sekarang ketika Anda akan mengunggah kode, kesalahan mungkin terjadi. Ini adalah kesalahan paling umum yang mungkin terjadi jika Anda menggunakan versi baru dari Arduino IDE dan Arduino JSON. Berikut ini adalah kesalahan yang mungkin Anda lihat di layar.
Dalam file yang disertakan dari C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, dari C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C : \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: error: StaticJsonBuffer adalah kelas dari ArduinoJson 5. Silakan lihat arduinojson.org/upgrade untuk mempelajari cara mengupgrade program Anda ke ArduinoJson versi 6 StaticJsonBufferjsonBuffer; ^ Dalam file yang disertakan dari C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, dari C: \ Users \ Pro \ Desktop \ smartHome \ code \ code.ino: 2: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 65: 11: error: StaticJsonBuffer adalah kelas dari ArduinoJson 5. Silakan lihat arduinojson.org/upgrade untuk mempelajari cara mengupgrade program Anda ke ArduinoJson versi 6 mengembalikan StaticJsonBuffer () .parseObject (_data); ^ Beberapa perpustakaan ditemukan untuk "WiFi.h" Digunakan: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFi Tidak digunakan: C: \ Program Files ( x86) \ Arduino \ libraries \ WiFi Menggunakan library WiFi pada versi 1.0 di folder: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFi Using library IOXhop_FirebaseESP32-master dalam folder: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ IOXhop_FirebaseESP32-master (legacy) Menggunakan library HTTPClient pada versi 1.2 dalam folder: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ HTTPClient Menggunakan library WiFiClientSecure di versi 1.0 dalam folder: C: \ Users \ Pro \ AppData \ Local \ Arduino15 \ packages \ esp32 \ hardware \ esp32 \ 1.0.2 \ libraries \ WiFiClientSecure Menggunakan perpustakaan ArduinoJson di versi 6.12.0 di folder: C: \ Users \ Pro \ Documents \ Arduino \ libraries \ ArduinoJson status keluar 1 Kesalahan kompilasi untuk modul Dev papan ESP32.
Tidak ada yang perlu dikhawatirkan karena kami dapat menghilangkan kesalahan ini dengan mengikuti beberapa langkah sederhana. Kesalahan ini muncul karena versi baru Arduino JSON memiliki kelas lain, bukan StaticJsonBuffer.Ini adalah kelas JSON 5. Jadi kita bisa menghilangkan kesalahan ini dengan menurunkan versi Arduino JSON dari Arduino IDE kita. Cukup buka Sketsa> Sertakan Perpustakaan> Kelola Perpustakaan.Pencarian untukArduino JSON oleh Benoit Blanchonyang telah Anda instal sebelumnya. Copot pemasangannya terlebih dahulu, lalu setel versinya ke 5.13.5. Sekarang karena kami telah menetapkan versi lama Arduino JSON, instal lagi dan kompilasi ulang kodenya. Kali ini, kode Anda akan berhasil dikompilasi.
Untuk mengunduh kodenya, klik di sini.
Langkah 6: Memahami Kode
Kode proyek ini sangat sederhana dan dikomentari dengan baik. Tapi tetap saja, kode tersebut dijelaskan secara singkat di bawah ini.
1. Pada awalnya, perpustakaan disertakan sehingga papan ESP32 dapat dihubungkan ke koneksi WiFi lokal di rumah atau kantor. Setelah ini, link ke project firebase Anda dan autentikasi project firebase Anda ditentukan. Kemudian nama dan kata sandi koneksi wifi lokal Anda ditentukan sehingga ESP32 dapat terhubung ke Wifi. Beberapa pin ESP32 ditentukan untuk dihubungkan ke modul relai. dan akhirnya sebuah variabel dideklarasikan yang akan menyimpan beberapa data sementara yang akan datang dari firebase cloud.
#include// include library untuk terhubung ke koneksi Wifi lokal #include // Sertakan pustaka untuk terhubung ke databse Firebase #define FIREBASE_HOST "coma-patient.firebaseio.com" // sertakan tautan proyek firebase Anda #define FIREBASE_AUTH "UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdefine WIFI "// nama koneksi WiFi rumah atau kantor Anda #define WIFI_PASSWORD" abcd "// kata sandi koneksi WiFi rumah atau kantor Anda int r1 = 34; // pin untuk menghubungkan relai 1 int r2 = 35; // pin untuk menghubungkan relay 2 int temp; // variabe untuk membawa data
2. batal penyiapan ()adalah fungsi di mana kita menginisialisasi pin INPUT atau OUTPUT. Fungsi ini juga mengatur baud rate dengan menggunakan Serial.begin () perintah. Baud Rate adalah kecepatan komunikasi mikrokontroler. Beberapa baris kode ditambahkan di sini untuk menghubungkan ESP32 ke koneksi wifi lokal. Papan akan mencoba untuk terhubung ke koneksi wifi lokal dan akan mencetak "koneksi." di monitor serial. Ini akan mencetak "Connected" ketika koneksi dibuat. Jadi untuk memantau ini, lebih baik buka monitor serial dan periksa statusnya di sana.
batal penyiapan () {Serial.begin (115200); // mengatur baud rate // terhubung ke wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ("menghubungkan"); sementara (WiFi.status ()! = WL_CONNECTED) {Serial.print ("."); penundaan (500); } Serial.println (); Serial.print ("terhubung:"); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }
3. void loop ()adalah fungsi yang berjalan berulang kali dalam satu putaran. Dalam loop ini, kami menulis kode yang memberi tahu papan mikrokontroler tugas apa yang harus dilakukan dan bagaimana. Kami telah mengambil data terhadap cahaya dan ACdari database dan disimpan dalam dua variabel sementara. Kemudian empat kondisi diterapkan untuk mengganti kedua peranti sesuai dengan 0 atau 1 yang diambil dari database.
void loop () {// dapatkan nilai temp1 = Serial.println (Firebase.getFloat ("light")); // dapatkan nilai untuk switcching lampu temp2 = Serial.println (Firebase.getFloat ("AC")); // dapatkan nilai untuk peralihan Fan delay (1000); if (temp1 == 1 && temp2 == 1) {// Untuk menyalakan lampu dan kipas digitalWrite (r1, HIGH); digitalWrite (r2, HIGH); } if (temp1 == 0 && temp2 == 1) {// Untuk menyalakan kipas dan mematikan lampu digitalWrite (r1, LOW); digitalWrite (r2, HIGH); } if (temp1 == 1 && temp2 == 0) {// Untuk mematikan kipas dan menyalakan light digitalWrite (r1, HIGH); digitalWrite (r2, LOW); } if (temp1 == 0 && temp2 == 0) {// Untuk mematikan kipas dan mematikan lampu digitalWrite (r1, LOW); digitalWrite (r2, LOW); }}
Ini adalah Bagian satu dari “Bagaimana Membuat Sistem Rumah Pintar Menggunakan ESP32?”. Anda dapat menambahkan lebih banyak modul relai jika ingin mengontrol beberapa peralatan rumah lainnya, satu-satunya hal yang perlu Anda lakukan adalah membaca data dari firebase dan menambahkan beberapa kondisi lagi untuk peralihan. Pada artikel selanjutnya, saya akan menjelaskan cara mengembangkan aplikasi android dan database Firebase. Saya akan menjelaskan prosedur langkah demi langkah untuk menghubungkan aplikasi android ke firebase dan mengirim data ke sana.
Untuk melanjutkan ke tutorial berikutnyaKlik disini