Daftar Isi:

ESP-12 Infra Red Blaster: 7 Langkah
ESP-12 Infra Red Blaster: 7 Langkah

Video: ESP-12 Infra Red Blaster: 7 Langkah

Video: ESP-12 Infra Red Blaster: 7 Langkah
Video: how to make Motion detection light on off PIR sensor project #howto 2024, November
Anonim
ESP-12 Infra Red Blaster
ESP-12 Infra Red Blaster

Blaster remote control Infra Merah menggunakan esp8266

Mengirimkan kode kendali jarak jauh yang diterima dari Web yang mendukung beberapa perangkat keluaran.

Dibangun di halaman web sederhana terutama untuk pengujian.

Penggunaan normal adalah melalui pesan POST yang dapat berasal dari halaman web atau dari kontrol suara IFTTT / Alexa.

Mendukung detektor pengaktifan Amazon Echo/Dot untuk membisukan/mendiamkan segera setelah kata pengaktif diucapkan.

Perintah adalah perintah tunggal atau urutan. Urutan dapat disimpan sebagai makro bernama yang kemudian dapat digunakan sebagai perintah atau dalam urutan lainnya.

Riwayat dan daftar makro terbaru dapat diperoleh melalui antarmuka web

Mendukung pengunggahan OTA dari firmware baru dan menggunakan perpustakaan WifiManager untuk pengaturan wifi awal

Langkah 1: Perangkat Keras

Perangkat keras
Perangkat keras
Perangkat keras
Perangkat keras

Menggunakan komponen berikut:

  • Modul ESP-12F
  • 3.3V regulator (pengatur uang mini MP2307)
  • Sakelar MOSFET (AO3400)
  • Pemancar Infra Merah (3mm)
  • Light Dependent Resistor GL2258 (Detektor aktivitas Alexa opsional)
  • Resistor
  • Kapasitor decoupling (20uF)
  • Soket perempuan USB (sebaiknya ramah solder dengan lengan)
  • Strip soket IC 3 pin untuk detektor Alexa
  • Bagian mekanis (dapat dicetak 3D)

Dapat dirakit menjadi kotak proyek ESP-12F

  • Pasang regulator ke konektor USB dan masukkan ke dalam kotak
  • Pasang driver IR ke papan vero kecil (3 kabel, +5V, input gerbang 0V)
  • Hubungkan driver IR ke USB +5V, 0V
  • Masukkan soket IC 3 pin ke dalam kotak proyek jika menggunakan detektor Alexa. Hubungkan ke +3.3V, 0V dan kabel untuk input
  • Make up ESP-12F dengan 2.2K dari GPIO15 ke GND, EN ke Vdd, 4K7 GPIO13 ke Vdd, input Alexa ke GPIO13, driver IR ke GPIO14, 0V dan Vdd ke 3.3V
  • Buat detektor Alexa dan penyangga dukungan jika diperlukan.

Perhatikan akan lebih mudah untuk memprogram ESP-12F terlebih dahulu jika Anda memiliki semacam fasilitas pemrograman serial atau fasilitas papan tempat memotong roti sementara seperti ini untuk terhubung ke port serial.

Pemrograman selanjutnya dapat dilakukan dengan menggunakan pembaruan OTA bawaan.

Langkah 2: Perangkat Lunak

ir Blaster menggunakan sketsa Arduino yang tersedia di github

Ini perlu disesuaikan dengan kondisi lokal dan kemudian dikompilasi di lingkungan Arduino esp8266.

Berikut library yang dibutuhkan, kebanyakan standar atau bisa ditambah. Dua yang terakhir termasuk dalam git.

  • ESP8266WiFi
  • ESP8266WebServer
  • FS.h
  • DNSServer
  • ESP8266mDNS
  • ESP8266HTTPUpdateServer
  • ArduinoJson
  • BitTx (termasuk dalam Git)
  • BitMessages (termasuk dalam Git)

Item dalam sketsa yang akan diubah meliputi

  • Kode otorisasi untuk akses web AP_AUTHID
  • Kata sandi pengelola Wfi WM_PASSWORD
  • firmware OTA kata sandi update_password
  • Perangkat IR baru / kode tombol (lihat nanti)

Setelah ini selesai maka pertama-tama harus diunggah menggunakan unggahan serial konvensional.

Karena SPIFFS digunakan maka memori harus disiapkan dengan menginstal dan menggunakan alat unggah Data Sketsa arduino ESP8266. Ini akan mengunggah folder data sebagai konten SPIFFS awal

Ketika perangkat tidak dapat terhubung ke jaringan lokal (seperti yang akan terjadi pertama kali) maka pengelola Wifi akan membuat titik akses (192.168.4.1). Hubungkan ke jaringan ini dari ponsel atau tablet lalu ramban ke 192.168.4.1 Anda akan mendapatkan antarmuka web untuk terhubung ke wifi lokal. Akses selanjutnya akan menggunakan ini. Jika jaringan lokal berubah maka akan beralih kembali ke mode konfigurasi ini.

Pembaruan selanjutnya dapat dilakukan dengan mengkompilasi biner ekspor di lingkungan Arduino dan kemudian mengakses antarmuka OTA di ip/firmware.

Langkah 3: Tambahkan Kode Perangkat / Tombol

Catatan: Bagian ini telah berubah dari metode sebelumnya di mana konfigurasi yang sebelumnya dikompilasi ke dalam kode. Sekarang menggunakan file yang diambil dari sistem pengarsipan SPIFF. Ini membuatnya lebih mudah untuk mengunggah definisi baru.

Definisi tombol disertakan dalam file buttonnames.txt. Ini adalah daftar nama global di semua remote yang digunakan karena banyak nama cenderung umum. Seperti yang disediakan, ini berisi detail untuk remote yang saya gunakan. Entri baru dapat ditambahkan. Ada ruang untuk total 160 nama tetapi ini dapat ditingkatkan dengan menyesuaikan konstanta di bitMessages.h dan mengkompilasi ulang. Nama-nama yang didefinisikan di sini adalah nama-nama yang akan digunakan saat mengirim perintah.

Setiap perangkat jarak jauh didefinisikan dalam file bernama dev_remotename. Ini terdiri dari bagian konfigurasi di bagian atas dan kemudian tabel pemetaan dari nama tombol ke kode yang merupakan string hex yang berisi bit yang akan dikirim. Hanya nama tombol yang diperlukan yang perlu didefinisikan.

Bagian konfigurasi di awal file perangkat berisi parameter yang akan digunakan saat mengirim kode. Entri pertama adalah nama perangkat yang digunakan saat mengirim perintah. Parameter lain dijelaskan dalam readme di situs kode.

Kebanyakan remote termasuk dalam salah satu dari 3 kategori protokol (nec, rc5 dan rc6). nec mungkin yang paling umum dan memiliki struktur header sederhana dan waktu bit. Ada sedikit varian ini yang hanya berbeda dalam waktu pulsa header. rc5 dan rc6 adalah protokol yang ditentukan oleh Philips tetapi juga digunakan oleh beberapa produsen lain. Mereka sedikit lebih rumit dan rc6 khususnya memiliki persyaratan waktu khusus untuk salah satu bit.

Untuk menangkap kode untuk remote baru saya menggunakan penerima IR (TSOP) yang biasa digunakan dengan plug in penerima remote. Ini melakukan decoding dasar dan memberikan output level logika. Mereka biasanya datang dengan jack 3.5mm dengan koneksi +5V, GND, DATA. Saya mengorbankan satu, memperpendek lead dan memasukkannya ke dalam buffer 3.3V pembalik untuk memberi makan pin GPIO pada Raspberry Pi.

Saya kemudian menggunakan alat python rxir.py (di folder alat git) untuk menangkap kode. Agar lebih mudah digunakan untuk menangkap sejumlah besar tombol maka alat ini menggunakan file definisi teks untuk mendefinisikan tombol-tombol pada remote dan hanya nama-nama tombol dalam grup pada remote. Misalnya, seseorang mungkin memiliki remote Sony baru dan seseorang menyiapkan 3 file teks yang disebut sonytv-cursor, sonytv-numbers, sonytv-playcontrols masing-masing dengan nama tombol yang relevan. Alat akan meminta perangkat (sonytv), bagian (kursor) dan protokol mana yang digunakan (nec, nec1, rc5, rc6). Kemudian akan meminta secara berurutan untuk setiap tekan tombol dan menulis hasil ke file sonytv-ircodes. Bagian dapat diulang jika diperlukan untuk memeriksa apakah tangkapannya bagus. Bit dari file.ircodes dapat diedit ke dalam tabel BitDevices.

Langkah 4: Kontrol Web dan Makro

Kontrol web dasar adalah satu get atau posting json yang mungkin berisi urutan.

Akses ke /ir memiliki 6 parameter

  • auth - berisi kode otorisasi
  • perangkat - nama perangkat jarak jauh
  • parameter - nama tombol
  • bit - jumlah bit opsional
  • ulangi - hitungan pengulangan opsional
  • tunggu - penundaan dalam mdetik sebelum perintah berikutnya dapat dieksekusi.

Perangkat juga bisa 'null' untuk mendapatkan penundaan saja, 'makro' untuk menggunakan makro yang dirujuk oleh parameter, atau 'mendeteksi' untuk menggunakan fitur deteksi Alexa (lihat nanti).

Posting ke /irjson terdiri dari struktur json seperti

{

"auth":"1234", "perintah": [{ "perangkat":"yamahaAV", "parameter":"hdmi4", "tunggu":"5000", "bit":"0", "ulangi":"1"}, { "perangkat":"yamahaAV", "parameter":"mute", "tunggu":"100", "bit":"0", "ulangi":"1"}]

}

Urutannya bisa berapa pun panjangnya dan perangkat bisa berupa referensi makro.

Struktur yang sama dapat digunakan untuk mendefinisikan makro. Cukup sertakan makro: "nama makro", di tingkat atas mis. setelah autentikasi. Isi sebenarnya disimpan dalam file bernama macroname.txt

Makro dapat dihapus dengan mendefinisikannya tanpa "perintah".

Perintah web lainnya

  • /recent (mencantumkan aktivitas terbaru)
  • /check (menunjukkan status dasar)
  • / (memuat formulir web untuk mengirim perintah secara manual)
  • /edit (memuat formulir web untuk melihat daftar file dan menghapus/ mengunggah file)
  • /edit?file=filename (melihat isi file tertentu)
  • /reload (memuat ulang nama tombol dan file perangkat. Gunakan setelah mengubah salah satu dari ini)

Langkah 5: Kontrol Suara Alexa Menggunakan IFTTT

Cara paling sederhana untuk menggunakan ir Blaster dengan Alexa adalah dengan menggunakan IFTTT sebagai gateway.

Port forward dulu port yang digunakan untuk blaster Anda di router Anda sehingga dapat diakses dari internet. Sebaiknya gunakan layanan dns seperti freedns untuk memberi nama ip eksternal router Anda dan membuatnya lebih mudah untuk ditangani jika ip ini berubah.

Siapkan akun IFTTT dan aktifkan saluran Maker Webhooks dan saluran Alexa. Anda harus masuk ke situs Amazon saat melakukan ini untuk mengaktifkan akses IFTT.

Buat pemicu JIKA menggunakan saluran IFTTT Alexa, pilih tindakan berdasarkan frasa dan masukkan frasa yang Anda inginkan (mis.

Buat tindakan dengan memilih saluran webhook Maker. Masukkan ke dalam bidang URL sesuatu seperti

myip:port/irjson?plain={"auth":"1234", "comm…

Tindakan ini akan dikirim ke ir blaster di mana ia akan mencoba mengeksekusi makro volumeup. Seseorang dapat berupa perangkat/tombol tertentu di sini jika diinginkan, tetapi saya merasa lebih baik untuk mendefinisikan dan menggunakan makro karena urutan tindakan dapat dengan mudah diubah hanya dengan mendefinisikan ulang makro.

Applet IFTTT terpisah diperlukan untuk setiap perintah.

Langkah 6: Keterampilan Suara Alexa Asli

Alih-alih IFTTT, seseorang dapat membangun keterampilan khusus di dalam pengembangan Alexa. Ini memusatkan semua pemrosesan di satu tempat dan berarti Anda tidak perlu membuat tindakan terpisah untuk setiap tombol.

Anda harus mendaftar sebagai pengembang Amazon Alexa dan Anda harus mendaftar dengan layanan lambda konsol Amazon AWS. Anda juga perlu melihat tutorial untuk memahami prosesnya sedikit.

Di sisi pengembang Alexa Anda perlu membuat keterampilan khusus baru, memasukkan kata pemicunya dan membuat daftar kata perintah seperti volume naik, panduan, dll.

Alexa kemudian mengirim frasa ke program yang berjalan di layanan lamda yang menafsirkan frasa dan membuat panggilan URL ke Ir blaster untuk bertindak.

Saya telah menyertakan skema maksud Alexa dan fungsi lambda konsol yang saya gunakan di git. URL perlu dimodifikasi untuk merujuk ip yang sesuai dan memiliki otorisasi yang tepat. Untuk membuatnya tetap sederhana, fungsi lambda memanggil makro yang memiliki versi huruf kecil dari frasa yang dilucuti spasi. Itu juga mencoba untuk menghapus kata kunci pemicu yang terkadang dapat dimasukkan. Misalnya. blaster VOLUME up akan memanggil makro yang disebut volumeup jika kata pemicunya adalah blaster.

Langkah 7: Alexa Aktifkan Detektor

Meskipun pengenalan suara Echo / Dot bagus, terkadang bisa membingungkan jika suara diputar dari TV kecuali Anda mendekat dan berbicara dengan keras.

Untuk meningkatkan ini, saya menambahkan detektor pengaktifan ke Dot saya. Begitu kata kunci (Alexa dikatakan) cincin LED menyala. Detektor memasukkan ini ke dalam blaster di mana ia akan menggunakan makro alexaon untuk membisukan TV, sama halnya pada akhir pemrosesan perintah, lampu padam dan makro alexaoff mengembalikan suara.

Perintah 'deteksi' juga dapat digunakan untuk menghidupkan dan mematikan ini. Jadi misalnya saya menggunakan makro turnon awal untuk mengaktifkan deteksi dan makro turnoff untuk menonaktifkannya. Ini juga dapat digunakan dalam makro tindakan untuk mendukung perintah bisu dan bunyikan suara yang sebenarnya akan bermasalah.

Detektor fisik adalah resistor yang bergantung pada cahaya yang didukung oleh rangkaian. Saya memasang milik saya di Dot dengan braket cetak 3D

Direkomendasikan: