Bagaimana Membuat Sistem Automasi Rumah Pintar Menggunakan Modul ESP32?

Di era moden ini, konsep automasi rumah berkembang dengan pantas. Sistem pintar dipasang di hampir semua tempat. Smart Home Systems adalah konsep di mana semua peralatan elektrik atau peranti dikendalikan menggunakan alat kawalan jauh tunggal. Dalam sistem ini, selalunya, alat kawalan jauh adalah aplikasi mudah alih. Sebagai telefon bimbit android adalah yang paling biasa di kalangan orang, jadi aplikasi android adalah pilihan terbaik untuk mengawal semua peranti ini.



Automasi Rumah

Oleh itu, dalam projek ini, kami akan menyambungkan beberapa peralatan elektrik rumah ke modul Relay dan mengawalnya melalui ESP32 Microcontroller. Kami akan membuat pangkalan data firebase realtime dan menghubungkannya dari aplikasi android. Aplikasi android ini akan menghantar data ke awan dan kemudian akan dihantar ke mikrokontroler untuk menghidupkan atau mematikan alat elektrik. Bahagian terbaiknya ialah anda dapat mengawal sepenuhnya pertukaran peralatan anda dari mana saja di dunia. Anda hanya memerlukan sambungan internet untuk mengendalikan aplikasi android.



Bagaimana Mengawal Peralatan Rumah Tangga Melalui WiFi?

Sistem Automasi Rumah yang sudah tersedia di pasaran, sangat mahal. Kita boleh menggunakan papan ESP32 untuk menyambungkan peralatan rumah yang berbeza dan mengendalikannya menggunakan Aplikasi Android. Ini akan menjadi kos yang sangat rendah dan kaedah yang berkesan untuk mengautomasikan rumah. Sekarang mari kita melangkah lebih jauh dan mula mengumpulkan maklumat untuk memulakan projek.



Langkah 1: Mengumpulkan Komponen

Pendekatan terbaik untuk memulakan sesuatu projek adalah dengan membuat senarai komponen dan menjalani kajian ringkas mengenai komponen-komponen ini kerana tidak ada yang mahu bertahan di tengah-tengah projek hanya kerana komponen yang hilang. Senarai komponen yang akan kami gunakan dalam projek ini diberikan di bawah:



  • ESP32
  • Papan roti
  • Wayar Penyambung

Langkah 2: Mengkaji Komponen

Sekarang kerana kita mengetahui abstrak projek ini, mari kita melangkah selangkah ke depan dan menjalani kajian ringkas mengenai kerja komponen utama yang akan kita gunakan.

ESP32 adalah papan mikrokontroler berkuasa rendah dan kos rendah yang mempunyai WiFi terbina dalam dan modul Bluetooth dwi-mod. Papan Mikrokontroler ini dibuat dan dikembangkan oleh Sistem Espressif . Papan ini mempunyai penguat kuasa terbina dalam, penguat penerimaan rendah, penapis, dan suis antena. Ia dikuasakan oleh kabel data android dan dapat memberikan output hingga 3.3V. ESP32 melaksanakan TCP / IP, konvensyen 802.11 b / g / n / e / I WLAN MAC penuh, dan Wi-Fi Direct. Ini menunjukkan ESP 32 dapat mengatasi sebahagian besar Penghala WiFi di luar sana ketika digunakan dalam mod stesen (pelanggan). Begitu juga, ia dapat membuat Titik Akses dengan penuh 802.11 b / g / n / e / I. ESP32 tidak hanya menyokong BLE Bluetooth 4.2 yang terkini, ia juga meningkatkan Bluetooth yang hebat. Ini secara asasnya menunjukkan bahawa ia dapat menangani telefon / meja Bluetooth lama dan baru. Sekiranya anda tidak mempunyai modul ESP32, anda juga boleh menggunakan ESP8266 atau Node MCU. Papan ini dapat digunakan untuk melakukan tugas yang sama jika disambungkan ke WiFi.

ESP32



Modul geganti adalah peranti beralih. Ia berfungsi dalam dua mod, Biasanya Dibuka (TIDAK) dan Kebiasaannya Tutup (NC) . Dalam mod TIDAK, litar selalu rosak kecuali anda menghantar isyarat TINGGI ke geganti melalui Arduino. Mod NC teruk sebaliknya, Litar selalu lengkap kecuali anda menghidupkan modul geganti. Pastikan anda menyambungkan wayar positif Alat Elektrik anda ke modul geganti dengan cara yang ditunjukkan di bawah.

Memasang Litar Modul Relay

Langkah 3: Gambarajah Blok

Gambarajah blok

Dalam gambarajah blok di atas, aliran projek ini ditunjukkan. Relay disambungkan ke peralatan elektrik atau rumah. Aplikasi mudah alih akan menghantar Dihidupkan atau MATI arahan ke pangkalan data. Awan ini disambungkan ke papan mikrokontroler ESP32 melalui WiFi. Untuk menghidupkan peranti elektronik, kami akan mengirimkan '1' di pangkalan data dan untuk mematikannya, kami akan mengirim '0' di dalam pangkalan data. Perintah ini kemudian akan diambil oleh mikrokontroler kerana juga disambungkan ke pangkalan data. Berdasarkan 0 atau 1 ini, pengawal mikro akan menghidupkan atau mematikan modul geganti yang akhirnya akan mengakibatkan pengalihan peralatan elektrik.

Jadi di sini, dalam artikel ini, saya akan menggunakan dua modul geganti untuk menunjukkan keseluruhan prosedur. Tetapi anda boleh menambah bilangan geganti dan menambahkan kod yang sama dalam program anda jika anda ingin mengawal sebilangan besar perkakas elektrik.

Langkah 4: Menyusun Komponen

Sekarang kerana kita mempunyai visi yang jelas tentang apa yang ingin kita lakukan dalam projek ini, janganlah kita membuang masa lagi dan mula memasang komponennya.

  1. Ambil papan roti dan betulkan mikrokontroler ESP32 di dalamnya. Sekarang ambil dua modul geganti dan sambungkan Vcc dan arde modul ke Vin dan landasan papan mikrokontroler ESP32 secara selari. Sambungkan dalam pin modul geganti ke pin34 dan pin35 papan ESP32. Anda akan melihat bahawa geganti kini dihidupkan.
  2. Sambungkan perkakas rumah ke modul geganti. Pastikan sambungan anda sesuai dengan sambungan yang ditunjukkan dalam gambar dalam Langkah 2.

Sekarang ketika kami menghubungkan bahagian perkakasan sistem kami. Kami akan mengembangkan aplikasi android yang akan disambungkan ke pangkalan data firebase. Kami akan membuat pangkalan data dan aplikasi android di Bahagian 2 artikel ini.

Langkah 5: Bermula dengan ESP32

Sekiranya anda belum mengusahakan Arduino IDE sebelum ini, jangan risau kerana langkah demi langkah untuk menyiapkan Arduino IDE ditunjukkan di bawah.

  1. Muat turun versi terbaru dari Arduino IDE dari Arduino.
  2. Sambungkan papan Arduino anda ke PC dan buka Panel Kawalan. Klik pada Perkakasan dan Suara. Sekarang dibuka Peranti dan Pencetak dan cari port yang menghubungkan papan anda. Dalam kes saya adalah COM14 tetapi berbeza dalam komputer yang berbeza.

    Mencari Pelabuhan

  3. Klik pada Fail dan kemudian klik pada Pilihan. Salin pautan berikut di URL Pengurus Lembaga Tambahan. ' https://dl.espressif.com/dl/package_esp32_index.json '

    Keutamaan

  4. Sekarang, untuk menggunakan ESP32 dengan Arduino IDE, kita perlu mengimport perpustakaan khas yang akan membolehkan kita membakar kod pada ESP32 dan menggunakannya. kedua-dua perpustakaan ini dilampirkan dalam pautan yang diberikan di bawah. Untuk memasukkan perpustakaan, goto Lakarkan> Sertakan Perpustakaan> Tambahkan Perpustakaan ZIP . Kotak akan muncul. Cari folder ZIP di komputer anda dan klik OK untuk memasukkan folder.

    Sertakan Perpustakaan

  5. Sekarang pergi Lakarkan> Sertakan Perpustakaan> Urus Perpustakaan.

    Urus Perpustakaan

  6. Menu akan dibuka. Di bar carian, taipkan Arduino JSON. Senarai akan muncul. Pasang Arduino JSON oleh Benoit Blanchon.

    Arduino JSON

  7. Sekarang klik pada Alat. Menu lungsur turun akan muncul. Tetapkan papan ke Modul Dev ESP.

    Menetapkan Papan

  8. Klik pada menu Alat sekali lagi dan tetapkan port yang anda perhatikan di panel kawalan sebelumnya.

    Menetapkan Pelabuhan

  9. Sekarang Muat naik kod yang dilampirkan dalam pautan di bawah dan klik pada butang muat naik untuk membakar kod pada mikrokontroler ESP32.

    Muat naik

Jadi sekarang apabila anda akan memuat naik kod, kesalahan mungkin berlaku. Ini adalah ralat yang paling biasa yang mungkin berlaku jika anda menggunakan versi baru Arduino IDE dan Arduino JSON. Berikut adalah kesalahan yang mungkin anda lihat di skrin.

Dalam fail yang disertakan dari C:  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseESP32.h: 8: 0, dari C:  Users  Pro  Desktop  smartHome  code  code.ino: 2: C :  Users  Pro  Documents  Arduino  library  IOXhop_FirebaseESP32-master / IOXhop_FirebaseStream.h: 14: 11: ralat: StaticJsonBuffer adalah kelas dari ArduinoJson 5. Sila lihat arduinojson.org/upgrade untuk mengetahui cara menaik taraf program anda ke ArduinoJson versi 6 StaticJsonBuffer jsonBuffer; ^ Dalam fail yang disertakan dari C:  Users  Pro  Documents  Arduino  library  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. Sila lihat arduinojson.org/upgrade untuk mengetahui cara menaik taraf program anda ke ArduinoJson versi 6 mengembalikan StaticJsonBuffer (). ParseObject (_data); ^ Terdapat banyak perpustakaan untuk 'WiFi.h' Digunakan: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Tidak digunakan: C:  Program Files ( x86)  Arduino  library  WiFi Menggunakan perpustakaan WiFi pada versi 1.0 dalam folder: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFi Menggunakan perpustakaan 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  package  esp32  hardware  esp32  1.0.2  library  HTTPClient Menggunakan perpustakaan WiFiClientSecure pada versi 1.0 dalam folder: C:  Users  Pro  AppData  Local  Arduino15  package  esp32  hardware  esp32  1.0.2  library  WiFiClientSecure Menggunakan perpustakaan ArduinoJson di versi 6.12.0 dalam folder: C:  Users  Pro  Documents  Arduino  libraries  ArduinoJson exit status 1 Ralat menyusun untuk modul ESP32 Dev Module.

Tidak ada yang perlu dikhawatirkan kerana kami dapat menghilangkan kesalahan ini dengan mengikuti beberapa langkah mudah. Kesalahan ini timbul kerana versi baru Arduino JSON mempunyai kelas lain daripada StaticJsonBuffer. Ini adalah kelas JSON 5. Oleh itu, kita boleh menghapuskan ralat ini dengan menurunkan versi Arduino JSON dari IDE Arduino kami. Cukup ke Lakarkan> Sertakan Perpustakaan> Urus Perpustakaan. Carian untuk Arduino JSON oleh Benoit Blanchon yang telah anda pasangkan sebelumnya. Nyahpasang terlebih dahulu dan kemudian tetapkan versi ke 5.13.5. Sekarang kerana kami telah menetapkan versi lama Arduino JSON, pasang semula dan kumpulkan semula kodnya. Kali ini, kod anda akan berjaya disusun.

Untuk memuat turun kod, klik di sini.

Langkah 6: Memahami Kod

Kod projek ini sangat ringkas dan dikomen dengan baik. Tetapi masih, kodnya dijelaskan secara ringkas di bawah.

1. Pada mulanya, perpustakaan disertakan sehingga papan ESP32 dapat disambungkan ke sambungan WiFi tempatan di rumah atau pejabat. Selepas ini, pautan ke projek firebase anda dan pengesahan projek firebase anda ditentukan. Kemudian nama dan kata laluan sambungan wifi tempatan anda ditentukan supaya ESP32 dapat disambungkan ke Wifi. Beberapa pin ESP32 ditentukan untuk disambungkan ke modul geganti. dan akhirnya pemboleh ubah dinyatakan yang akan menyimpan beberapa data sementara yang akan datang dari cloud firebase.

#include // include library untuk menyambung ke sambungan Wifi tempatan #include // Sertakan perpustakaan untuk menyambung ke Firebase databasese #define FIREBASE_HOST 'coma-patient.firebaseio.com' // sertakan pautan projek firebase anda #define FIREBASE_AUTH 'UrzlDZXMBNRhNdc5i73DRW10KWFF9KW9fwf '// Sertakan pengesahan projek firebase anda #define WIFI_SSID' abcd '// nama sambungan WiFi rumah atau pejabat anda #define WIFI_PASSWORD' abcd '// kata laluan sambungan WiFi rumah atau pejabat anda int r1 = 34; // pin untuk menyambung geganti 1 int r2 = 35; // pin untuk menyambungkan relay 2 int temp; // variabe untuk membawa data

2. persediaan tidak sah () adalah fungsi di mana kita memulakan pin INPUT atau OUTPUT. Fungsi ini juga menetapkan kadar baud dengan menggunakan Bersiri. Bermula () arahan. Baud Rate adalah kelajuan komunikasi mikrokontroler. Beberapa baris kod ditambahkan di sini untuk menyambungkan ESP32 ke sambungan wifi tempatan. Papan akan cuba menyambung ke sambungan wifi tempatan dan akan mencetak 'sambungan'. di monitor bersiri. Ia akan mencetak 'Bersambung' apabila sambungan dibuat. Jadi untuk memantau ini, lebih baik membuka monitor bersiri dan periksa stausnya di sana.

persediaan tidak sah () {Serial.begin (115200); // menetapkan kadar baud // sambungkan ke wifi. WiFi.begin (WIFI_SSID, WIFI_PASSWORD); Serial.println ('menyambung'); sementara (WiFi.status ()! = WL_CONNECTED) {Serial.print ('.'); kelewatan (500); } Bersiri.println (); Serial.print ('bersambung:'); Serial.println (WiFi.localIP ()); Firebase.begin (FIREBASE_HOST, FIREBASE_AUTH); }

3. gelung kosong () adalah fungsi yang berjalan berulang kali dalam satu gelung. Dalam gelung ini, kami menulis kod yang memberitahu papan mikrokontroler apa tugas yang harus dijalankan dan bagaimana. Kami telah menentang data cahaya dan AC dari pangkalan data dan disimpan dalam dua pemboleh ubah sementara. Kemudian empat syarat digunakan untuk menukar kedua perkakas tersebut sesuai dengan 0 atau 1 yang diambil dari pangkalan data.

gelung void () {// dapatkan nilai temp1 = Serial.println (Firebase.getFloat ('light')); // dapatkan nilai untuk switcching cahaya temp2 = Serial.println (Firebase.getFloat ('AC')); // dapatkan vau untuk pertukaran penangguhan Fan (1000); if (temp1 == 1 && temp2 == 1) {// Untuk menghidupkan cahaya dan kipas digitalWrite (r1, TINGGI); digitalWrite (r2, TINGGI); } if (temp1 == 0 && temp2 == 1) {// Untuk menghidupkan kipas dan mematikan digitalWrite cahaya (r1, RENDAH); digitalWrite (r2, TINGGI); } if (temp1 == 1 && temp2 == 0) {// Untuk mematikan kipas dan menghidupkan digitalWrite ringan (r1, TINGGI); digitalWrite (r2, RENDAH); } if (temp1 == 0 && temp2 == 0) {// Untuk mematikan kipas dan mematikan digitalWrite cahaya (r1, RENDAH); digitalWrite (r2, RENDAH); }}

Ini adalah Bahagian pertama 'Bagaimana Membuat Sistem Rumah Pintar Menggunakan ESP32?'. Anda boleh menambah lebih banyak modul geganti jika anda ingin mengawal beberapa peralatan rumah, satu-satunya perkara yang perlu anda lakukan ialah membaca data dari firebase dan menambahkan beberapa syarat untuk menukar. Dalam artikel seterusnya, saya akan menerangkan cara mengembangkan aplikasi android dan pangkalan data Firebase. Saya akan menerangkan prosedur langkah demi langkah untuk menyambungkan aplikasi android ke firebase dan menghantar data kepadanya.

Untuk pergi ke tutorial seterusnya Tekan di sini