Daftar Isi:

Remote Control Berbasis Browser Arduino (linux): 9 Langkah (dengan Gambar)
Remote Control Berbasis Browser Arduino (linux): 9 Langkah (dengan Gambar)

Video: Remote Control Berbasis Browser Arduino (linux): 9 Langkah (dengan Gambar)

Video: Remote Control Berbasis Browser Arduino (linux): 9 Langkah (dengan Gambar)
Video: OMG😱😱😱😱😱..!!!! Ransomware Menyerang..... 2024, November
Anonim
Kontrol Jarak Jauh Berbasis Browser Arduino (linux)
Kontrol Jarak Jauh Berbasis Browser Arduino (linux)
Kontrol Jarak Jauh Berbasis Browser Arduino (linux)
Kontrol Jarak Jauh Berbasis Browser Arduino (linux)

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

Prasyarat
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

Membangun Dewan
Membangun Dewan

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

Tambahkan Perpustakaan Jarak Jauh ke Perangkat Lunak Arduino
Tambahkan Perpustakaan Jarak Jauh 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

Unggah Kode Remote Control ke Arduino Anda
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

Hubungkan ke Server Web Dari Komputer Anda
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 Opsional: Edit File Host Anda agar Lebih Mudah Digunakan
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: