Isi kandungan:
- Langkah 1: Perkakasan
- Langkah 2: Perisian
- Langkah 3: Tambahkan Kod Peranti / Butang
- Langkah 4: Kawalan Web dan Makro
- Langkah 5: Kawalan Suara Alexa Menggunakan IFTTT
- Langkah 6: Kemahiran Suara Asli Alexa
- Langkah 7: Alexa Activate Detector
Video: ESP-12 Infra Red Blaster: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:12
Blaster kawalan jauh Infra Red menggunakan esp8266
Menghantar kod kawalan jauh yang diterima dari Web yang menyokong pelbagai peranti output.
Dibina di laman web sederhana terutamanya untuk ujian.
Penggunaan biasa adalah melalui mesej POST yang boleh datang dari laman web atau dari kawalan suara IFTTT / Alexa.
Menyokong pengesan pengaktifan Amazon Echo / Dot untuk membisukan / menyenyapkan sebaik sahaja kata aktif diucapkan.
Perintah sama ada perintah tunggal atau urutan. Urutan boleh disimpan sebagai makro bernama yang kemudian dapat digunakan sebagai perintah atau dalam urutan lain.
Sejarah dan senarai makro terkini boleh didapati melalui antara muka web
Menyokong muat naik OTA firmware baru dan menggunakan perpustakaan WifiManager untuk penyediaan wifi awal
Langkah 1: Perkakasan
Menggunakan komponen berikut
- Modul ESP-12F
- Pengatur 3.3V (pengatur mini buck MP2307)
- Suis MOSFET (AO3400)
- Pemancar Infra Merah (3mm)
- Perintang Bergantung Cahaya GL2258 (Pengesan aktiviti Alexa pilihan)
- Perintang
- Kapasitor pemutusan (20uF)
- Soket wanita USB (lebih baik solder mesra dengan lengan
- Jalur soket IC 3 pin untuk pengesan Alexa
- Bahagian mekanikal (boleh dicetak 3D)
Boleh dipasang ke dalam kotak projek ESP-12F
- Pasang pengatur ke penyambung USB dan masukkan ke dalam kotak
- Buat pemacu IR ke sekeping kecil papan vero (3 wayar, + 5V, input pintu 0V)
- Sambungkan pemacu IR ke USB + 5V, 0V
- Masukkan soket IC 3 pin ke dalam kotak projek jika menggunakan pengesan Alexa. Sambungkan ke + 3.3V, 0V dan wayar untuk input
- Buat ESP-12F dengan 2.2K dari GPIO15 hingga GND, EN hingga Vdd, 4K7 GPIO13 hingga Vdd, input Alexa ke GPIO13, pemacu IR ke GPIO14, 0V dan Vdd hingga 3.3V
- Buat pengesan Alexa dan penyangga sokongan jika diperlukan.
Perhatikan bahawa lebih mudah untuk memprogramkan ESP-12F terlebih dahulu jika anda mempunyai beberapa kemudahan pengaturcaraan bersiri atau kemudahan papan roti sementara seperti ini untuk menyambung ke port bersiri.
Pengaturcaraan seterusnya boleh dilakukan dengan menggunakan kemas kini OTA terbina dalam.
Langkah 2: Perisian
Ir Blaster menggunakan lakaran Arduino yang terdapat di github
Ini perlu disesuaikan agar sesuai dengan keadaan setempat dan kemudian disusun dalam persekitaran Arduino esp8266.
Perpustakaan berikut diperlukan, kebanyakannya standard atau boleh ditambah. Dua yang terakhir dimasukkan ke dalam git.
- ESP8266WiFi
- Pelayan ESP8266Web
- FS.h
- Pelayan DNSS
- ESP8266mDNS
- ESP8266HTTPUpdateServer
- ArduinoJson
- BitTx (termasuk dalam Git)
- BitMessages (termasuk dalam Git)
Item dalam lakaran yang akan diubah termasuk
- Kod kebenaran untuk akses web AP_AUTHID
- Kata laluan pengurus Wfi WM_PASSWORD
- firmware_TAword password OTA firmware
- Peranti IR / kod butang baru (lihat kemudian)
Sebaik sahaja ini selesai, ia mesti dimuat naik terlebih dahulu menggunakan muat naik bersiri konvensional.
Oleh kerana SPIFFS digunakan maka memori harus disiapkan dengan memasang dan menggunakan alat muat naik Sketch Data arduino ESP8266. Ini akan memuat naik folder data sebagai kandungan SPIFFS awal
Apabila peranti tidak dapat menyambung ke rangkaian tempatan (seperti yang akan berlaku pertama kali) maka pengurus Wifi akan membuat titik akses (192.168.4.1). Sambungkan ke rangkaian ini dari telefon atau tablet kemudian semak ke 192.168.4.1 Anda akan mendapat antara muka web untuk menyambung ke wifi tempatan. Akses seterusnya akan menggunakan ini. Sekiranya rangkaian tempatan berubah maka ia akan beralih kembali ke mod konfigurasi ini.
Kemas kini seterusnya boleh dilakukan dengan menyusun binary eksport di persekitaran Arduino dan kemudian mengakses antara muka OTA di ip / firmware.
Langkah 3: Tambahkan Kod Peranti / Butang
Catatan: Bahagian ini telah berubah dari kaedah sebelumnya di mana konfigurasi yang sebelumnya disusun ke dalam kod. Sekarang menggunakan fail yang dimuat dari sistem pemfailan SPIFFs. Ini menjadikannya lebih mudah untuk memuat naik definisi baru.
Definisi butang dimasukkan dalam fail buttonnames.txt. Ini adalah senarai nama global di semua remote yang digunakan kerana banyak nama cenderung biasa. Seperti yang dibekalkan ini mengandungi perincian untuk remote yang saya gunakan. Penyertaan baru boleh ditambah. Terdapat ruang untuk 160 nama tetapi ini dapat ditingkatkan dengan menyesuaikan pemalar dalam bitMessages.h dan mengumpul semula. Nama-nama yang didefinisikan di sini adalah nama yang akan digunakan semasa menghantar perintah.
Setiap alat jarak jauh ditentukan dalam fail bernama dev_remotename. Ini terdiri daripada bahagian konfigurasi di bahagian atas dan kemudian tabel pemetaan dari nama butang ke kod yang merupakan tali hex yang berisi bit yang akan dikirim. Hanya nama butang yang diperlukan perlu ditentukan.
Bahagian konfigurasi pada awal file perangkat berisi parameter yang akan digunakan ketika mengirim kod. Entri pertama adalah nama devicen yang digunakan semasa menghantar perintah. Parameter lain dijelaskan dalam readme di laman web kod.
Sebilangan besar alat kawalan jauh tergolong dalam salah satu daripada 3 kategori protokol (nec, rc5 dan rc6). nec mungkin yang paling biasa dan mempunyai struktur tajuk sederhana dan masa bit. Terdapat sedikit varian ini yang hanya berbeza pada masa nadi header. rc5 dan rc6 adalah protokol yang ditentukan oleh Philips tetapi juga digunakan oleh beberapa pengeluar lain. Mereka sedikit lebih rumit dan rc6 khususnya mempunyai keperluan waktu khas untuk salah satu bit.
Untuk menangkap kod untuk alat kawalan jauh baru, saya menggunakan penerima IR (TSOP) yang biasa digunakan dengan pemalam penerima jauh. Ini melakukan penyahkodan asas dan memberikan output tahap logik. Mereka biasanya dilengkapi dengan bicu 3.5mm dengan sambungan + 5V, GND, DATA. Saya mengorbankan satu, memendekkan petunjuk dan meletakkannya melalui penyangga 3.3V terbalik untuk memberi makan pin GPIO pada Raspberry Pi.
Saya kemudian menggunakan alat python rxir.py (dalam folder alat git) untuk menangkap kod. Untuk menjadikannya lebih mudah digunakan untuk menangkap sebilangan besar butang maka alat ini menggunakan fail definisi teks untuk menentukan butang pada alat kawalan jauh dan hanya nama-nama butang dalam kumpulan pada alat kawalan jauh. Sebagai contoh, seseorang mungkin mempunyai alat kawalan jauh Sony baru dan satu menyediakan 3 fail teks yang disebut sonytv-kursor, sonytv-number, sonytv-playcontrols masing-masing dengan nama butang yang sesuai. Alat akan meminta peranti (sonytv), bahagian (kursor) dan protokol mana yang akan digunakan (nec, nec1, rc5, rc6). Ini kemudian akan meminta secara berurutan untuk setiap butang tekan dan tuliskan hasilnya ke fail sonytv-ircodes. Bahagian boleh diulang jika diperlukan untuk memeriksa tangkapan yang baik. Bit dari fail.ircodes boleh diedit ke dalam jadual BitDevices.
Langkah 4: Kawalan Web dan Makro
Kawalan web asas adalah satu get tunggal atau json post yang mungkin mengandungi urutan.
Get to / ir mempunyai 6 parameter
- auth - mengandungi kod kebenaran
- peranti - nama peranti jauh
- parameter - nama butang
- bit - kiraan bit pilihan
- ulangi - kiraan ulangan pilihan
- tunggu - kelewatan dalam beberapa saat sebelum arahan seterusnya dapat dilaksanakan.
Peranti ini juga boleh menjadi 'null' untuk mendapatkan kelewatan, 'makro' untuk menggunakan makro yang disebut oleh parameter, atau 'deteksi' untuk menggunakan fitur pengesanan Alexa (lihat nanti).
Pos ke / irjson terdiri daripada struktur json seperti
{
"auth": "1234", "perintah": [{"device": "yamahaAV", "parameter": "hdmi4", "waiting": "5000", "bit": "0", "repeat": "1"}, {"device": "yamahaAV", "parameter": "bisu", "tunggu": "100", "bit": "0", "ulangi": "1"}]
}
Urutannya boleh panjang dan peranti mungkin menjadi rujukan makro.
Struktur yang sama boleh digunakan untuk menentukan makro. Cukup sertakan makro: "nama makron", di tingkat atas mis. selepas author. Kandungan sebenar disimpan dalam fail bernama macroname.txt
Makro boleh dihapuskan dengan mendefinisikannya tanpa "perintah".
Perintah web lain
- / terkini (menyenaraikan aktiviti terkini)
- / semak (menunjukkan status asas)
- / (memuatkan borang web untuk mengirim perintah secara manual)
- / edit (memuatkan borang web untuk melihat senarai fail dan menghapus / memuat naik fail)
- / edit? file = nama fail (lihat kandungan fail tertentu)
- / muat semula (memuatkan semula nama butang dan fail peranti. Gunakan setelah menukar semua ini)
Langkah 5: Kawalan Suara Alexa Menggunakan IFTTT
Cara termudah untuk menggunakan ir Blaster dengan Alexa adalah dengan menggunakan IFTTT sebagai pintu masuk.
Port pertama meneruskan port yang digunakan untuk blaster anda di penghala anda sehingga dapat diakses dari internet. Adalah baik untuk menggunakan perkhidmatan dns seperti freedns untuk memberi nama router luaran anda dan menjadikannya lebih mudah untuk dikendalikan sekiranya ip ini berubah.
Sediakan akaun IFTTT dan aktifkan saluran Maker Webhooks dan saluran Alexa. Anda perlu log masuk ke laman Amazon apabila anda melakukan ini untuk membolehkan akses IFTT.
Buat pemicu IF menggunakan saluran IFTTT Alexa, pilih tindakan berdasarkan frasa dan masukkan frasa yang anda mahukan (Cth. Volume atas).
Buat tindakan dengan memilih saluran webhook Maker. Masuk ke medan URL seperti
myip: port / irjson? plain = {"auth": "1234", "comm…
Tindakan ini akan dikirimkan ke ir blaster di mana ia akan berusaha untuk menjalankan volume makro. Satu boleh menjadi peranti / butang khusus di sini jika mahu tetapi saya merasa lebih baik untuk menentukan dan menggunakan makro kerana urutan tindakan dapat diubah dengan mudah hanya dengan mentakrifkan semula makro.
Applet IFTTT yang berasingan diperlukan untuk setiap arahan.
Langkah 6: Kemahiran Suara Asli Alexa
Daripada IFTTT seseorang dapat membina kemahiran khusus dalam pengembangan Alexa. Ini memusatkan semua pemprosesan di satu tempat dan bermaksud anda tidak perlu membuat tindakan terpisah untuk setiap butang.
Anda perlu mendaftar sebagai pembangun Amazon Alexa dan anda perlu mendaftar dengan perkhidmatan lambda konsol AWS Amazon. Anda juga perlu melihat tutorial untuk memahami prosesnya sedikit.
Di sisi pembangun Alexa, anda perlu membuat kemahiran khusus baru, masukkan kata pemicu dan membuat senarai kata perintah seperti jumlah naik, panduan, dll.
Alexa kemudian menghantar frasa ke program yang berjalan di perkhidmatan lamda yang menafsirkan frasa dan membuat panggilan URL ke Ir blaster untuk bertindak.
Saya telah memasukkan skema niat Alexa dan fungsi lambda konsol yang saya gunakan di git. URL perlu diubah suai untuk merujuk ip yang sesuai dan mempunyai kebenaran yang betul. Untuk mempermudahnya, fungsi lambda memanggil makro yang mempunyai spasi versi frasa huruf kecil yang dilucutkan. Ia juga cuba membuang kata kunci pencetus yang kadang-kadang boleh disertakan. Cth. blaster VOLUME up akan memanggil makro yang disebut volumeup sekiranya kata pemicu itu blaster.
Langkah 7: Alexa Activate Detector
Walaupun pengecaman suara Echo / Dot bagus, kadang-kadang boleh menjadi bingung jika suara dimainkan dari mengatakan TV kecuali anda dekat dan bercakap dengan kuat.
Untuk memperbaikinya, saya menambahkan pengesan pengaktifan ke Dot saya. Sebaik sahaja kata kunci (Alexa dikatakan), cincin LED menyala. Pengesan memasukkannya ke dalam blaster di mana ia akan menggunakan makro alexaon untuk mematikan TV, sama pada akhir memproses perintah lampu padam dan makro alexaoff mengembalikan suaranya.
Perintah 'mengesan' juga boleh digunakan untuk menghidupkan dan mematikan ini. Jadi sebagai contoh saya menggunakan makro turnon awal untuk membolehkan pengesanan dan makro turnoff untuk melumpuhkannya. Ini juga boleh digunakan dalam makro tindakan untuk menyokong coomand bisu dan tidak bersuara yang sebenarnya akan menjadi masalah.
Pengesan fizikal adalah perintang bergantung cahaya yang disokong oleh litar. Saya memasang tambang di Dot dengan pendakap dicetak 3D
Disyorkan:
INFRA RED REMOTE CONTROLLED ROBOCAR MENGGUNAKAN AVR AVR (ATMEGA32): 5 Langkah
INFRA RED REMOTE CONTROLLED ROBOCAR MENGGUNAKAN AVR AVR (ATMEGA32): PROJEK ini menerangkan reka bentuk dan pelaksanaan RoboCar kawalan jauh inframerah (IR) yang dapat digunakan untuk pelbagai aplikasi kawalan tanpa pemandu automatik. Saya telah merancang RoboCar kawalan jauh (gerakan kiri-kanan / depan-belakang). T
Bermula Dengan Esp 8266 Esp-01 Dengan Arduino IDE - Memasang Esp Papan di Arduino Ide dan Pengaturcaraan Esp: 4 Langkah
Bermula Dengan Esp 8266 Esp-01 Dengan Arduino IDE | Memasang Papan Esp di Arduino Ide dan Pengaturcaraan Esp: Dalam instruksional ini kita akan belajar bagaimana memasang papan esp8266 di Arduino IDE dan cara memprogramkan esp-01 dan memuat naik kod di dalamnya. Oleh kerana papan esp sangat popular jadi saya terfikir untuk membetulkan instruktor untuk ini dan kebanyakan orang menghadapi masalah
Sensor Jarak Infra-Merah Menggunakan LM358: 5 Langkah
Sensor Proximity Infra-Red Menggunakan LM358: Ini adalah petunjuk mengenai pembuatan sensor Proximity IR
Memperkenalkan 'Deodorino' - Arduino yang Dikendalikan Infra-Merah dalam Tongkat Deodoran Kosong. Klik pada Foto Pertama: 7 Langkah
Memperkenalkan 'Deodorino' - Arduino yang Dikendalikan Infra-Merah dalam Tongkat Deodoran Kosong. Klik pada Foto Pertama: Sekarang ke perincian
Récupérer Les Codes Infra-Rouge Et 433mhz: 4 Langkah
Récupérer Les Codes Infra-Rouge Et 433mhz: Le but est d ’ afficher les code des t é l é commandes du style commande de lampe, porte de garage et autre fonctionnant sous 433 mhz (RX433) mais aussiuteux des t & eac infra-rouge de t é l é vision au a