Daftar Isi:

Lampu Bulan IoT: 5 Langkah
Lampu Bulan IoT: 5 Langkah

Video: Lampu Bulan IoT: 5 Langkah

Video: Lampu Bulan IoT: 5 Langkah
Video: Brimob Tembak Jatuh Drone Liar di Acara Grebeg Syawal Yogyakarta 2024, November
Anonim
Lampu Bulan IoT
Lampu Bulan IoT

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

  1. Ponsel cerdas Android (versi android 7-9 diuji).
  2. Alat solder.
  3. Membuat prototipe PCB (protoboard).
  4. Papan ESP-12E (atau papan dev lainnya dengan mikrokontroler ESP8266).
  5. Konverter serial USB untuk pemrograman.
  6. Beberapa nilai yang berbeda dari komponen pasif (resistor dan kapasitor).

(Opsional. Lihat bagian "Diagram Blok")

  1. IC LDO 3.3V @ 500mA.
  2. Papan konverter tingkat logika 3.3V-5V.
  3. Catu daya 5VDC.

Langkah 1: Ide

Ide
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

Diagram Blok
Diagram Blok

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

Pemrograman
Pemrograman
Pemrograman
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:

  1. Periksa apakah masih terhubung ke AP, jika tidak coba sambungkan kembali hingga berhasil.
  2. Tunggu klien membuat permintaan HTTP. Ketika permintaan terjadi:

    1. Periksa tegangan masukan.
    2. Periksa di negara mana LED berada.
    3. Cocokkan permintaan HTTP dengan status LED yang diketahui (biru menyala, oranye menyala, keduanya menyala, mati).
    4. 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

Skema dan Solder
Skema dan Solder
Skema dan Solder
Skema dan Solder
Skema dan Solder
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:

  1. 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.
  2. 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
Aplikasi Android
Aplikasi Android
Aplikasi Android
Aplikasi Android
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: