Bagaimana Mengontrol AC Anda Dengan Smartphone Anda Daripada Remote?
Di dunia modern, jika kita melihat sekeliling, kita dapat melihat bahwa segala sesuatu yang termasuk elektronik telah otomatis sampai batas tertentu. Teknik otomasi terbaru diadopsi oleh beberapa orang di rumah mereka. Di era modern ini, orang harus memilih teknik otomasi terbaru untuk membuat hidup mereka lebih mudah. Biasanya di rumah kita, kita berpaling DI, MATI dan atur suhu secara manual di AC kami. Saat ini, satu komponen seperti modul relai dapat digunakan untuk mengontrol berbagai parameter elektronik sebuah rumah, misalnya, switching peralatan rumah tangga, pemantauan alarm keamanan, otomatisasi pintu garasi, dll. Pada artikel ini, kita akan mengembangkan sebuah sistem yang memungkinkan Anda untuk mengontrol AC dengan menggunakan aplikasi seluler alih-alih remote-nya. Karena ponsel android adalah yang paling umum di antara orang-orang, maka aplikasi android adalah pilihan terbaik untuk mengontrol AC kita.
Bagaimana Cara Mengatur Semua Periferal Yang Diperlukan Dengan ESP32?
Untuk membuat proyek apa pun, seseorang harus tahu apa komponen dasar yang dibutuhkan untuk menyelesaikannya. Jadi pendekatan yang sangat baik sebelum memulai pekerjaan adalah membuat daftar lengkap semua komponen untuk menghemat waktu dan menghindari kemungkinan macet di tengah proyek. Daftar lengkap dari semua komponen yang dengan mudah tersedia di pasar diberikan di bawah ini. Setelah mengatur komponen perangkat keras, kami akan merancang aplikasi android kami sendiri untuk mengontrol AC kami:
Langkah 1: Komponen yang Digunakan (Perangkat Keras)
Langkah 2: Komponen yang Digunakan (Perangkat Lunak)
Karena kita akan membuat sakelar nirkabel, kita memerlukan tombol untuk menyalakan dan mematikannya. Kami ingin menggunakan ponsel untuk mengoperasikan tombol ini, jadi kami perlu mengembangkan aplikasi untuk itu. Aplikasi yang paling nyaman adalah aplikasi android dan kita perlu menginstal kedua software ini untuk terhubung ke aplikasi itu. Keduanya tercantum di bawah ini:
Langkah 3: Menginstal Android Studio
Sebelum menginstal Android Studio, kita akan menginstal JAVA JDK terlebih dahulu. Untuk menginstal ini, klik exe mengajukan yang Anda unduh dari tautan di atas, dan klik berikutnya hingga berhasil dipasang. Sekarang ikuti langkah-langkah berikut sehingga command prompt Anda mengenali java sebagai perintah eksternal atau internal.
- Buka Panel kendali dan klik Sistem dan keamanan.
- Klik Sistem.
- Klik Pengaturan Sistem Lanjutan dan kemudian klik Variabel Lingkungan.
- Di bagian Variabel Sistem, klik pada jalur dan kemudian klik edit. A baru Edit Variabel Lingkungankotak akan muncul.
- Sekarang pergi ke C: \ Program Files \ Java di PC Anda. Buka folder JDK, klik folder bin lalu salin jalur folder itu.
- Sekarang pergi ke kotak Edit Variabel Lingkungan dan klik baru untuk membuat variabel baru. Tempel jalur yang Anda salin pada langkah di atas di variabel baru dan simpan.
- Sekarang untuk mengonfirmasi, jika sudah terinstal sepenuhnya, buka command prompt dan ketik java –version.
Sekarang setelah Anda berhasil menginstal Java JDK di komputer Anda. Biarkan kami sekarang menginstal Android Studio di komputer Anda. Menginstal perangkat lunak ini sangat mudah. Anda perlu membuka file yang diunduh dan klik berikutnya hingga perangkat lunak Anda terinstal sepenuhnya.
Langkah 4: Koneksi ke Firebase
Sekarang setelah kita menginstal Android Studio, mari kita luncurkan dan buat proyek baru untuk menghubungkannya ke firebase. Untuk melakukannya, ikuti langkah-langkah berikut.
- Luncurkan Android Studio dan buat proyek baru dengan mengklik Aktivitas Kosong.
- Sekarang beri nama proyek Anda sebagai computerSwitc,Pilih Kotlinsebagai bahasa, dan pilih level API minimum sesuai dengan ponsel Anda.
- Karena kita akan menggunakan internet untuk mengontrol pin raspberry pi. Kami akan mengatur izin di aplikasi kami untuk mengakses wifi lokal. Untuk melakukan ini, buka app> manifes> AndroidManifest.xml dan tambahkan perintah berikut.
- Sekarang, klik n Alat.Menu tarik-turun akan muncul dari mana, pilih Firebase.
- Menu besar akan muncul di sisi kanan layar yang akan menyediakan menu dari hampir semua layanan yang disediakan firebase. Namun saat ini fokus utama kami adalah pada Real-Time Database. Jadi, klik Real-Time Database. Tautan ke "Simpan dan Ambil Data" akan muncul. Klik tautan itu.
- Hubungkan Hubungkan ke Firebasetombol. Ini akan membawa Anda ke browser web default. Pertama, ini akan meminta Anda untuk masuk ke akun Gmail Anda. Kemudian klik Tambahkan Realtime Database ke aplikasi Andadan terima perubahannya.
- Sekarang masuk ke Konsol Firebase. Di sana Anda akan melihat proyek yang sudah dibuat. Logo android pada ikon projet itu menandakan bahwa itu sudah menjadi milik aplikasi android.
- Dari Mengembangkan menu yang muncul di sisi kiri layar, pilih Database. Tombol dari Buat Database akan muncul di sebelah kanan. Klik tombol itu.
- Sebuah menu akan muncul meminta untuk mengatur mode database Anda. Klik mode teslalu klik Memungkinkan.
- Sekarang langkah yang sangat penting untuk diingat adalah mengubah file Cloud Firestore untuk Database Real-Time.Untuk melakukannya, klik tombol yang ditunjukkan pada gambar di bawah dan ubah opsi yang diinginkan.
- Sekarang klik Aturan tab dan ubah konfigurasi menjadi Benar. Setelah semuanya selesai, klik Menerbitkan.
- Satu hal yang perlu Anda lakukan selain menghubungkan firebase adalah mengupdate versi database. Untuk itu, klik buka dokumen. Sekarang klik panduandan pilih Panduan Androiddari daftar yang muncul di layar. Gulir ke bawah hingga tabel muncul. Cari Real-Time Database di tabel itu dan temukan versinya. dalam kasus saya, itu benar 19.1.0.
- . Klik Gradle Scripts,menu di sisi kiri layar. Lalu pilih dibangun di. gradle (Modul: aplikasi). Sekarang di dalam kode, cari versi database Real-Time dan ganti dengan yang baru.
- Sekarang sinkronkan proyek dengan mengklik tombol sinkronisasi yang muncul di bagian atas layar.
Langkah 5: Membuat Tata Letak
Sekarang, karena aplikasi android kita terhubung ke firebase, mari kita buat tata letak aplikasi kita yang akan digunakan oleh pengguna untuk menghidupkan atau mematikan komputer. Untuk membuat tata letak, buka app> res> layout> activity_main.xml. dimana kita akan mendesain layout. Salin kode yang diberikan di bawah ini untuk membuat tampilan teks.
Tata letak aplikasi kita akan terlihat seperti ini:
Langkah 6: 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 ke 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 \ airconditioner \ 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 \ airconditioner \ 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 sebenarnya. Jadi kami dapat menghilangkan kesalahan ini dengan menurunkan versi Arduino JSON dari Arduino IDE kami. 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.
Langkah 7: Memahami Kode
Kode proyek ini sangat sederhana dan dijelaskan secara singkat di bawah ini. Selain itu, kode dengan pustaka yang diperlukan juga dapat diunduh dari Sini.
1. Pada awalnya, kita perlu menyertakan dua perpustakaan yang akan digunakan untuk menghubungkan kode kita ke database Firebase dan yang kedua untuk menggunakan sensor IR dengan mikrokontroler kita. Kemudian kami akan menambahkan host dan otentikasi firebase kami karena setelah itu kami ESP32 akan dapat menemukan kami basis data. Kemudian kami akan memberikan SSID dan kata sandi koneksi internet lokal kami. Kemudian, kami harus membuat objek agar kami dapat mendorong dan mengeluarkan data dari cloud kami. Kemudian kita akan menentukan pin yang akan dihubungkan dengan sensor kita dan kita juga akan membuat objek untuk menangani data yang berasal dari sensor IR.
#include#include #include #define FIREBASE_HOST "coma-patient.firebaseio.com" #define FIREBASE_AUTH "UrzlDZXMBNRhNdc5i73DRW10KFEuw8ZPEAN9lmdf" #define WIFI_SSID "PRO" #define WIFI_PASSDORD "abcdefghata" FirebaseData firebaseData int RECV_PIN = 19; IRrecv irrecv (RECV_PIN); decode_results hasil;
2. batal penyiapan (), adalah loop yang berjalan saat tombol aktifkan ditekan atau saat mikrokontroler dinyalakan. Di sini kita akan memulai penerima sensor IR kita dan menulis kode untuk mulai menghubungkan mikrokontroler kita ke koneksi internet lokal.
batal penyiapan () {Serial.begin (115200); pinMode (RECV_PIN, INPUT); irrecv.enableIRIn (); // Mulai penerima // sambungkan 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); Firebase.enableClassicRequest (firebaseData, true); }
3. void loop () adalah fungsi yang berjalan berulang kali dalam satu putaran. Di sini kode ini memeriksa apakah nilai-nilai tersebut berasal dari sensor.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); dump (& hasil); irrecv.resume (); // Terima nilai berikutnya} penundaan (500); }
4. void dump ()adalah fungsi yang digunakan untuk mengidentifikasi model remote yang mengirimkan sinyal ke sensor. itu juga membuang struktur decode_results.
void dump (decode_results * results) {int count = results-> rawlen; if (results-> decode_type == UNKNOWN) {Serial.print ("Encoding tidak diketahui:"); } lain jika (hasil-> decode_type == NEC) {Serial.print ("Decoded NEC:"); } lain jika (hasil-> decode_type == SONY) {Serial.print ("SONY yang didekodekan:"); } lain jika (hasil-> decode_type == RC5) {Serial.print ("Decoded RC5:"); } else if (results-> decode_type == RC6) {Serial.print ("Decoded RC6:"); } ke else if (hasil-> decode_type == PANASONIC) {Serial.print ("Decoded PANASONIC - Address:"); Serial.print (results-> panasonicAddress, HEX); Serial.print ("Nilai:"); } lain jika (hasil-> decode_type == JVC) {Serial.print ("Decoded JVC:"); } Serial.print (hasil-> nilai, HEX); Serial.print("("); Serial.print(hasil->bit, DEC); Serial.println(" bit)"); Serial.print ("Raw ("); Serial.print (count, DEC); Serial.print ("):"); untuk (int i = 0; irawbuf [i] * USECPERTICK, DEC); } lain {Serial.print (- (int) results-> rawbuf [i] * USECPERTICK, DEC); } Serial.print (""); } Serial.println (""); }
Langkah 8: Mempersiapkan Perangkat Keras
Setelah membakar kode ke ESP32, kita perlu menyiapkan perangkat keras dan memasangnya ke dinding atau tempat lain yang cocok di dekat AC. Pasang komponen ke papan tempat memotong roti dengan mengikuti diagram yang disajikan di atas. Setelah memasang sirkuit, nyalakan modul ESP menggunakan Pengisi Daya Android. Lebih baik mendesain casing perangkat keras di rumah atau cukup meletakkan perangkat keras di dalam casing Raspberry Pi.
Langkah 9: Giving Sentuhan Akhir
Setelah merakit perangkat keras kami akan mengujinya. Hubungkan pengisi daya android ke ESP32 dan nyalakan dan pastikan ponsel Anda memiliki kekuatan sinyal yang baik dari koneksi internet lokal Anda. Buka aplikasi Anda dan tekan tombol, Anda akan melihat bahwa Anda sekarang dapat mengontrol AC Anda dengan aplikasi seluler Anda.
Sekian untuk hari ini, semoga Anda menikmati membaca artikel ini dan setelah membuat prototipe Anda sendiri untuk mengontrol AC di rumah, jangan lupa untuk membagikan pengalaman Anda!