Daftar Isi:
- Langkah 1: Prasyarat
- Langkah 2: Membangun Papan
- Langkah 3: Skema
- Langkah 4: Tambahkan Perpustakaan Irremote ke Perangkat Lunak Arduino
- Langkah 5: Rekam Kode Dari Remote Control Anda
- Langkah 6: Buat Halaman Web untuk Remote Control Anda
- Langkah 7: Unggah Kode Remote Control ke Arduino Anda
- Langkah 8: Hubungkan ke Server Web Dari Komputer Anda
- Langkah 9: Langkah Opsional: Edit File Host Anda agar Lebih Mudah Digunakan
Video: Remote Control Berbasis Browser Arduino (linux): 9 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:53
Kami punya anak. Saya sangat menyukainya tetapi mereka terus menyembunyikan remote control untuk satelit dan TV ketika mereka menyalakan saluran anak-anak. Setelah ini terjadi setiap hari selama beberapa tahun, dan setelah istri tercinta mengizinkan saya untuk memiliki Arduino untuk Natal, saya memutuskan bahwa sudah waktunya untuk membuat sesuatu yang berguna (di matanya!) dengan Arduino. Jadi di sini kita memiliki puncaknya: antarmuka berbasis web ke Arduino yang menggantikan remote saya dan dapat diakses dari jaringan internal saya. Ketika saya mencari tahu mengapa perisai ethernet saya tidak mengizinkan arduino saya untuk menyimpan sketsa, saya akan menulis sketsa baru yang menggunakan perisai ethernet sebagai server web, artinya saya tidak perlu menginstal Apache di komputer saya. Tetap disini, saya akan sampai di sana!
Langkah 1: Prasyarat
Perangkat keras: Sisi Arduino: Arduino - Saya menggunakan papan tempat memotong roti Arduino Uno R2 - toko elektronik lokal Anda, atau dapur jika Anda menginginkan papan tempat memotong roti asli Pemasangan kandang - Saya menggunakan wadah plastik tua dengan tutup transparan Komponen: LED inframerah - Saya disolder satu dari remote control yang rusak (terima kasih anak-anak!) Penerima Inframerah - Saya mendapatkan milik saya dari mata ajaib remote extender Transistor - Saya menggunakan Resistor BC547 - Saya menggunakan resistor variabel 1,5k ohm yang disetel ke kabel jumper papan tempat memotong roti 1k ohm - saya mendapatkan milik saya dari gulungan kabel RJ45 inti padat Sisi komputer: Komputer untuk digunakan sebagai server USB mengarah ke Perangkat Lunak Arduino: Perangkat lunak Arduino - dari perpustakaan arduino.cc irremote - dari https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (terima kasih Ken, kerja bagus!) Server web Apache dengan PHP terinstal - apache.org Alamat IP internal - milik saya adalah 192.168.0.9 Gambar remote control Anda - google atau gambar yang diambil dengan kamera Anda. Saya menyimpan milik saya pada resolusi 200x600
Langkah 2: Membangun Papan
Menggunakan papan tempat memotong roti untuk arduino sangat dianjurkan. Saya memasang Arduino dan papan tempat memotong roti di kandang yang sama dan menyambungkan semua pin yang saya gunakan secara teratur langsung ke papan tempat memotong roti secara permanen. Pin Arduino yang digunakan untuk proyek ini: 5v, pin Digital ground 3, 11 (pin 3 mengontrol LED IR, pin 11 terhubung ke penerima IR)
Langkah 3: Skema
Skema ini sangat sederhana, 4 komponen dan 6 kabel. Sambungan LED IR: Hubungkan salah satu kaki resistor ke pin digital Arduino 3 Hubungkan kaki resistor lainnya ke pin basis transistor (kaki tengah dalam kasus saya) Hubungkan emitor transistor ke ground Hubungkan kolektor transistor ke kaki negatif LED (kaki pendek, sisi datar LED) Hubungkan kaki positif (kaki panjang, sisi melengkung) LED ke koneksi penerima IR pin 5v (Anda perlu menemukan pinout untuk penerima IR khusus Anda): Pin GND ke pin VS ground ke pin 5v VO ke pin digital Arduino 11
Langkah 4: Tambahkan Perpustakaan Irremote ke Perangkat Lunak Arduino
irremote adalah perpustakaan hebat yang ditulis oleh Ken Shirriff dan tersedia dari blognya di https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Unduh perpustakaan dari https://arcfn.com/files/IRremote.zip dan instal seperti yang Anda lakukan pada perpustakaan lain untuk arduino. Blognya memiliki banyak informasi bermanfaat tentang perpustakaan dan cara menginstalnya.
Langkah 5: Rekam Kode Dari Remote Control Anda
Inilah awal dari bagian yang membosankan (tetapi tidak dapat dihindari): Menekan setiap tombol pada remote control, menyimpan string output dan memetakannya ke remote control virtual. Anda hanya perlu melakukannya sekali, kira-kira akan memakan waktu sekitar 20 menit. Mulai editor teks untuk menyimpan hasil Anda. Buat dokumen baru dan ketik setiap tombol pada remote control Anda, satu per baris: Power Up Down Left Right.. dan lain-lain Mulai Arduino IDE dan klik "Files->Contoh->IRremote->IRrecvDump" dan unggah ke Arduino Anda. Contoh ini akan membuang kode jarak jauh ke port serial. Mulai monitor port Serial dan tekan tombol pada remote control Anda. Anda akan melihat string muncul di jendela serial monitor: "Decoded *: * (* bits)". Salin baris ini dan simpan ke dalam dokumen Anda pada baris yang sesuai. Ulangi sampai Anda memiliki semua kunci Anda disimpan dalam file teks. Saya tahu betapa menyenangkannya bit ini, saya telah melakukannya dua kali sejauh ini: P Sekarang kita perlu melakukan sedikit pencarian dan penggantian dalam file teks: cari "Decoded" ganti dengan "" cari ": 0x" ganti dengan ", " cari " (" ganti dengan ", " cari " bit)" ganti dengan "" Jadi untuk baris seperti: Decoded NEC: 0x000110 (15 bit) kita sekarang harus memiliki baris yang mengatakan: NEC, 000110, 15
Langkah 6: Buat Halaman Web untuk Remote Control Anda
Kami sekarang perlu memetakan tombol pada gambar remote control Anda.
Saya menggunakan https://www.maschek.hu/imagemap/imgmap untuk memetakan tombol dan memodifikasi kode yang diberikan situs web kepada Anda untuk membuatnya berfungsi.
Klik "Gunakan gambar di komputer Anda: [pilih file]", pilih gambar Anda, klik [unggah], klik [terima] Jatuhkan persegi panjang, lingkaran dll ke setiap tombol. Untuk HREF letakkan /remote.php?command= dan baris untuk tombol itu dari dokumen teks misalnya /remote.php?command=NEC, 000110, 15 Akan lebih bijaksana (dan sangat membantu dalam debugging) jika Anda juga mengisinya Alt: dengan nama tombol tapi itu terserah Anda.
Ulangi untuk setiap tombol.
Semua selesai? Kemudian kita akan melanjutkan. Di bagian bawah halaman itu adalah "Kode", klik itu dan sebuah kotak akan terbuka yang menunjukkan kode untuk peta gambar. Salin itu dan tempel ke dokumen teks baru. Ini adalah bagian utama dari halaman web kami.
Ini adalah halaman web lengkap saya, cukup ganti …
dengan kode Anda sendiri di atas dan simpan sebagai remote.php di direktori web Anda (/var/www di linux) bersama dengan gambar remote control Anda. Ubah baris untuk gambar Anda sendiri:
"https://www.w3.org/TR/html4/loose.dtd">
Kontrol LED Arduino
Langkah 7: Unggah Kode Remote Control ke Arduino Anda
Buat sketsa baru dan tempel kode berikut ke dalamnya: /* * WebRemote * LED IR harus terhubung ke pin 3 Arduino PWM. * Versi 0.1 Juli 2009 * Kode ini hak cipta Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * Hak cipta Perpustakaan IRremote 2009 Ken Shirriff, https://arcfn.com */ #include template inline Cetak &operator <<(Cetak &obj, T arg) { obj.print(arg); kembalikan obj; } boolean berakhir = false; char inData[64]; // Ukuran sesuai indeks byte = 0; #define EOP "\n" IRsend irsend; void setup() { Serial.begin(9600); Serial << "Port serial diinisialisasi" << EOP; } void loop() { String pch, sType, sTemp; char inChar, sTest, k; int sBits; sHex panjang; int saya, j; while(1) { while(Serial.available() > 0) { inChar = Serial.read(); if(indeks == 0) { pch = ""; } if(inChar == '\r' || inChar == '\n' || inChar == '/') // EOP { end = true; indeks = 0; merusak; } else { if(indeks < 64) // Ukuran array { pch += inChar; indeks++; } } } if(ended) { // Parsing data pada inData disini… pch.toUpperCase(); saya = pch.indexOf(' ') != -1 ? pch.indexOf(' '): pch.indexOf(', '); sType = pch.substring(0, i); saya++; // lewati ', ' atau ' ' // sekarang saya menunjuk ke awal hex j = pch.lastIndexOf(' ') != -1 ? pch.lastIndexOf(' '): pch.lastIndexOf(', '); // j sekarang menunjuk ke ', ' atau ' ' setelah hex sHex = 0; sTemp = pch.substring(i, j); if(sTemp.substring(0, 2) == String("0X")) sTemp = sTemp.substring(2); for(i = 0; i < sTemp.length(); i++) { k = sTemp; if(!((k >= '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; if(k >= '0' && k <= '9') sHex += (k - '0'); else if (k >= 'A' && k <= 'F') sHex += ((k - 'A') + 10); if(!((k >= '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring(j+1); sBits = 0; for(i = 0; i < sTemp.length(); i++) { k = sTemp; sBits *= 10; if(k >= '0' && k <= '9') sBits += (k - '0'); } if(sType.length()>0) { Serial << pch << EOP << "Jenis kode: "<< sType << " Hex: "; Serial.print(sHex, HEX); Serial << " Bit: " << sBits; } sendIt(sType, sHex, sBits); pch = ""; berakhir = 0; } } } void sendIt(String sType, long sHex, int sBits) { for(int i = 0; i < 2; i++) { if(sType.equals(String("RC6"))) { irsend.sendRC6(sHex, sBits); } else if (sType.equals(String("RC5"))) { irsend.sendRC5(sHex, sBits); } else if(sType.equals(String("SONY"))) { irsend.sendSony(sHex, sBits); } else if(sType.equals(String("NEC"))) { if (!i) irsend.sendNEC(sHex, sBits); } else if(sType.equals(String(""))) { Serial << "Menunda" << EOP; penundaan (450); } penundaan (30); } }
Langkah 8: Hubungkan ke Server Web Dari Komputer Anda
.. atau ponsel atau android atau ipad atau apa pun: buka https://webserver IP address/remote.php di browser Anda Bagi saya alamatnya adalah https://192.168.0.9/remote.php tetapi alamat Anda pasti akan berbeda. Jika semuanya berfungsi, Anda akan melihat gambar remote control Anda dengan tombol yang dapat Anda klik.
Langkah 9: Langkah Opsional: Edit File Host Anda agar Lebih Mudah Digunakan
Langkah yang saya lakukan adalah mengedit file host saya (/etc/hosts di linux, C:\Windows\System32\Drivers\etc\hosts di windows). Perhatikan bahwa file ini hanya dapat diedit di prompt perintah administratif (windows) atau oleh su (linux) Tambahkan baris ip.add.re.ss remote ganti ip.add.re.ss dengan alamat IP server dan simpan file. Anda perlu melakukan ini di setiap perangkat yang ingin Anda akses ke halaman web dengan nama pendek. Sekarang Anda dapat mengakses remote dengan https://remote/remote.php Ini adalah instruksi pertama saya yang tepat, bersikaplah lembut dan beri tahu saya jika ada masalah sehingga saya dapat memperbaikinya.
Direkomendasikan:
Termometer Inframerah Non Kontak Berbasis Arduino - Termometer Berbasis IR Menggunakan Arduino: 4 Langkah
Termometer Inframerah Non Kontak Berbasis Arduino | Termometer Berbasis IR Menggunakan Arduino: Hai teman-teman dalam instruksi ini kami akan membuat Termometer non-kontak menggunakan arduino. Karena terkadang suhu cairan / padat terlalu tinggi atau terlalu rendah dan kemudian sulit untuk melakukan kontak dengannya dan membacanya suhu kemudian dalam adegan itu
Generator Musik Berbasis Cuaca (Generator Midi Berbasis ESP8266): 4 Langkah (dengan Gambar)
Weather Based Music Generator (ESP8266 Based Midi Generator): Hai, hari ini saya akan menjelaskan cara membuat generator Musik berbasis Cuaca kecil Anda sendiri. Ini didasarkan pada ESP8266, yang mirip dengan Arduino, dan merespons suhu, hujan dan intensitas ringan. Jangan berharap untuk membuat seluruh lagu atau program akord
Unit Remote Control GSM/SMS Berbasis Arduino: 16 Langkah (dengan Gambar)
Unit Remote Control GSM/SMS Berbasis Arduino: ! ! ! MELIHAT ! ! !Karena menara seluler lokal sedang ditingkatkan di daerah saya, saya tidak dapat lagi menggunakan modul GSM ini. Menara yang lebih baru tidak lagi mendukung perangkat 2G. Oleh karena itu, saya tidak bisa lagi memberikan dukungan untuk proyek ini. Dengan wi
PCB Berbasis Browser: 7 Langkah
PCB Berbasis Browser: Saat Anda mengambil atau membuat proyek, beberapa akan mudah dan beberapa akan sulit. Beberapa akan menjadi satu kali dan yang lain perlu dibuat dalam skala besar. Dalam tulisan ini, kita akan mengeksplorasi proyek terbesar saya hingga saat ini, Distributed Symphony, dan bagaimana mic
Remote Control Berbasis Arduino untuk Eskate atau Hydrofoil: 5 Langkah (dengan Gambar)
Remote Control Berbasis Arduino untuk Eskate atau Hydrofoil: Instruksi ini akan menunjukkan kepada Anda cara membuat remote fisik untuk digunakan dengan eskate atau hidrofoil listrik termasuk semua kode dan perangkat keras yang Anda butuhkan. Ada banyak penyolderan yang terlibat, tetapi juga menyenangkan untuk dibuat. Apa yang bisa dilakukan remote? Bersama