Daftar Isi:
- Perlengkapan
- Langkah 1: Ide
- Langkah 2: Blok Diagram
- Langkah 3: Pemrograman
- Langkah 4: Skema dan Solder
- Langkah 5: Aplikasi Android
Video: Lampu Bulan IoT: 5 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:55
Dalam instruksi ini saya menunjukkan cara mengubah lampu LED bertenaga baterai sederhana menjadi perangkat IoT.
Proyek ini meliputi:
- pematerian;
- pemrograman ESP8266 dengan Arduino IDE;
- membuat aplikasi android dengan MIT App Inventor.
Objek yang menarik adalah lampu berbentuk bulan yang saya beli dari gearbest. Tapi sebenarnya tutorial ini dapat disesuaikan dengan perangkat tegangan DC rendah (perangkat bertenaga AC memerlukan sirkuit tambahan).
Perlengkapan
- Ponsel cerdas Android (versi android 7-9 diuji).
- Alat solder.
- Membuat prototipe PCB (protoboard).
- Papan ESP-12E (atau papan dev lainnya dengan mikrokontroler ESP8266).
- Konverter serial USB untuk pemrograman.
- Beberapa nilai yang berbeda dari komponen pasif (resistor dan kapasitor).
(Opsional. Lihat bagian "Diagram Blok")
- IC LDO 3.3V @ 500mA.
- Papan konverter tingkat logika 3.3V-5V.
- Catu daya 5VDC.
Langkah 1: Ide
Lampu bulan ditenagai oleh satu sel Li-ION 18650 dan memiliki 3 mode operasi:
- mati;
- panduan;
- mobil.
Dalam mode manual, lampu dikendalikan dengan tombol tekan, setiap penekanan mengubah status lampu LED (biru menyala, oranye menyala, keduanya menyala, mati), intensitas cahaya berubah saat menekan tombol tekan. Dalam mode otomatis, status lampu LED berubah dengan mengetuk atau menggoyangkan lampu itu sendiri.
Saya memutuskan untuk menambahkan ESP8266 untuk bertindak sebagai server web yang mendengarkan permintaan dan dengan demikian mensimulasikan penekanan tombol. Saya tidak ingin merusak fungsi lampu asli, hanya ingin menambahkan fitur kontrol tambahan melalui WiFi, jadi saya memilih ESP untuk mensimulasikan penekanan tombol daripada mengontrol LED secara langsung. Juga ini memungkinkan saya untuk berinteraksi minimal dengan sirkuit asli.
Ketika prototipe selesai, ia melaju ~80mA terus-menerus dari baterai dalam keadaan mati (~400mA pada kecerahan penuh). Arus siaga tinggi karena ESP8266 bekerja sebagai server dan selalu terhubung ke WiFi dan mendengarkan permintaan. Baterai habis setelah satu setengah hari hanya dalam keadaan mati, jadi kemudian saya memutuskan untuk menggunakan lampu port pengisian USB untuk menyalakan semua elektronik dari catu daya 5V eksternal dan membuang baterai bersama-sama (tetapi ini opsional).
Langkah 2: Blok Diagram
Dalam diagram blok Anda dapat melihat sirkuit apa yang akan ditambahkan dan bagaimana sirkuit yang ada akan dimodifikasi. Dalam kasus saya, saya melepas baterai sepenuhnya dan menghubungkan input IC pengisi daya baterai dengan output (sekali lagi, ini opsional). Blok transparan dalam diagram menunjukkan komponen yang dilewati (walaupun tombol tekan masih berfungsi seperti yang dimaksudkan semula).
Menurut dokumentasi ESP8266 hanya mentolerir 3.3V, namun ada banyak contoh ketika ESP8266 bekerja dengan baik dengan 5V, jadi konverter level logika dan 3.3V LDO dapat ditinggalkan, namun saya tetap menggunakan praktik terbaik dan menambahkan komponen tersebut.
Saya menggunakan 3 pin I/O ESP8266 dan pin ADC. Satu pin output digital untuk simulasi penekanan tombol, dua input digital untuk mendeteksi LED warna apa yang menyala (dari sini kita dapat mengetahui status MCU dan status berikutnya setelah tombol ditekan). Pin ADC mengukur tegangan input (melalui pembagi tegangan), begitulah cara kita dapat memantau tingkat pengisian daya baterai yang tersisa.
Sebagai catu daya eksternal, saya menggunakan pengisi daya telepon lama 5V@1A (jangan gunakan pengisi daya cepat).
Langkah 3: Pemrograman
Singkatnya program bekerja seperti ini (untuk informasi lebih lanjut lihat kode itu sendiri):
ESP8266 terhubung ke titik akses WiFi Anda yang kredensial yang harus Anda masukkan di awal kode pemrograman sebelumnya, itu mendapat alamat IP dari server DHCP router Anda, untuk mengetahui IP yang Anda perlukan nanti, Anda dapat memeriksa pengaturan atau set DHCP antarmuka web router debugging flag dalam kode ke 1 dan Anda akan melihat apa yang didapat IP ESP di monitor serial (Anda harus mencadangkan IP itu di pengaturan router Anda agar ESP selalu mendapatkan IP yang sama saat boot).
Saat diinisialisasi, MCU selalu menjalankan rutinitas yang sama selamanya:
- Periksa apakah masih terhubung ke AP, jika tidak coba sambungkan kembali hingga berhasil.
-
Tunggu klien membuat permintaan HTTP. Ketika permintaan terjadi:
- Periksa tegangan masukan.
- Periksa di negara mana LED berada.
- Cocokkan permintaan HTTP dengan status LED yang diketahui (biru menyala, oranye menyala, keduanya menyala, mati).
- Simulasikan begitu banyak penekanan tombol yang diperlukan untuk mencapai status yang diminta.
Saya akan menjelaskan secara singkat instruksi pemrograman, jika Anda baru pertama kali memprogram ESP8266 MCU, cari instruksi yang lebih mendalam.
Anda memerlukan Arduino IDE dan konverter antarmuka serial USB (misalnya FT232RL). Untuk menyiapkan IDE ikuti petunjuk berikut.
Ikuti diagram sirkuit untuk menghubungkan modul ESP-12E untuk pemrograman. Beberapa kiat:
- gunakan catu daya eksternal 3.3V@500mA (dalam banyak kasus catu daya serial USB tidak cukup);
- periksa apakah konverter serial USB Anda kompatibel dengan level logika 3.3V;
- periksa apakah driver konverter serial USB berhasil diinstal (dari pengelola perangkat windows) juga Anda dapat memeriksa apakah itu berfungsi dengan benar dari IDE, hanya pin RX dan TX pendek, daripada dari IDE pilih port COM, buka monitor serial dan tulis sesuatu, jika semuanya berfungsi Anda akan melihat teks yang Anda kirim muncul di konsol;
- untuk beberapa alasan saya dapat memprogram ESP hanya ketika saya pertama kali menghubungkan konverter serial USB ke PC dan kemudian menyalakan ESP dari sumber 3.3V eksternal;
- setelah berhasil memprogram jangan lupa untuk menarik GPIO0 tinggi pada boot berikutnya.
Langkah 4: Skema dan Solder
Ikuti skema untuk menyolder semua komponen ke protoboard. Seperti yang disebutkan sebelumnya, beberapa komponen bersifat opsional. Saya menggunakan KA78M33 3.3V LDO IC dan papan konverter level logika ini dari sparkfun, sebagai alternatif, Anda dapat membuat konverter sendiri seperti yang ditunjukkan dalam skema (Anda dapat menggunakan mosfet saluran-N apa pun alih-alih BSS138). Jika Anda tetap menggunakan baterai Li-ION, jaringan daya +5V akan menjadi terminal positif baterai. Tegangan referensi ADC ESP8266 adalah 1V, nilai pembagi resistor pilihan saya memungkinkan untuk mengukur tegangan input setinggi 5.7V.
Harus ada 5 koneksi ke PCB lampu asli: +5V (atau +Baterai), GND, tombol tekan, sinyal PWM dari lampu MCU untuk mengontrol LED biru dan oranye. Jika Anda menyalakan lampu dari sumber 5V, seperti yang saya lakukan, Anda akan ingin menghubungkan pin IC VCC pengisi daya baterai dengan pin OUTPUT, dengan cara itu semua elektronik akan diberi daya langsung dari +5V dan bukan dari OUTPUT pengisi daya baterai.
Ikuti gambar kedua untuk semua titik solder yang perlu Anda buat pada lampu PCB.
CATATAN:
- Jika Anda memutuskan untuk menyingkat +5V dengan output IC pengisi daya baterai, lepaskan baterai sepenuhnya sebelum melakukannya, Anda tidak ingin menghubungkan +5V langsung ke baterai.
- Perhatikan pin push button mana yang anda solder output ESP, karena 2 pin push button terhubung ke ground dan anda tidak ingin korsleting saat output ESP menjadi HIGH, lebih baik periksa kembali dengan multimeter.
Langkah 5: Aplikasi Android
Aplikasi Android dibuat dengan penemu aplikasi MIT, untuk mengunduh aplikasi dan/atau mengkloning proyek untuk Anda sendiri, buka tautan ini (Anda memerlukan akun google untuk mengaksesnya).
Pada peluncuran pertama, Anda harus membuka pengaturan dan memasukkan alamat IP ESP8266 Anda. IP ini akan disimpan sehingga tidak perlu memasukkannya lagi setelah program dimulai ulang.
Aplikasi diuji dengan beberapa perangkat android 9 dan android 7.
Direkomendasikan:
E-Ink: Bulan / ISS / Orang di Luar Angkasa : 6 Langkah
E-Ink: Bulan / ISS / People in Space…: Saya memiliki Raspberry dan e-Paper HAT dan saya ingin menggunakannya untuk menunjukkan informasi seperti di mana ISS atau berapa banyak orang sekarang di luar angkasa.. .Saya menyatakan untuk mencari apakah ada API di Internet untuk mendapatkan data tersebut, dan saya menemukannya. Oke, mengerti !!!!Tunggu
Lampu Fase Bulan Daur Ulang: 15 Langkah
Lampu Fase Bulan Daur Ulang: Lampu ini terbuat dari toples plastik, dan menyala saat Anda mengencangkan tutupnya. Anda dapat mengubah siluet untuk menunjukkan fase bulan yang berbeda
Laptop 3D Yang Telah Saya Tunda Selama 6 Bulan Terakhir: 3 Langkah
Laptop 3D Yang Telah Saya Tunda Selama 6 Bulan Terakhir: Ini adalah desain 3D dari laptop yang saya hentikan pengerjaannya sekitar 6 bulan yang lalu. Dan kemudian, saya mulai menyelesaikannya sekitar seminggu yang lalu. Saya harap Anda menikmatinya! :D
Jam Bulan Dengan Naga: 8 Langkah (dengan Gambar)
Jam Bulan Dengan Naga: *** Entri di blog saya https://blog.familie-fratila.de/bone-dragon-moonlight-clock/ ***Beberapa waktu lalu saya membuat jam untuk ruang tamu saya, sejak saya tidak menemukan apa pun untuk dibeli yang memiliki setidaknya desain yang dapat ditoleransi :-) Tentu saja putra saya melihat ini memiliki
Airbus - Bepergian ke Bulan V1: 23 Langkah
Airbus - Bepergian ke Bulan V1: Berikut satu pelajaran dalam seri Airbus yang lebih besar - Discovery Space - Tutorial Hidup di Bulan Ikhtisar Proyek: Bayangkan bisa melakukan perjalanan ke luar angkasa. Pelatihan selama berbulan-bulan untuk meluncur ke luar angkasa dan mengunjungi ruang internasional