Isi kandungan:

Alat Kawalan Jauh Berasaskan Penyemak Imbas Arduino (linux): 9 Langkah (dengan Gambar)
Alat Kawalan Jauh Berasaskan Penyemak Imbas Arduino (linux): 9 Langkah (dengan Gambar)

Video: Alat Kawalan Jauh Berasaskan Penyemak Imbas Arduino (linux): 9 Langkah (dengan Gambar)

Video: Alat Kawalan Jauh Berasaskan Penyemak Imbas Arduino (linux): 9 Langkah (dengan Gambar)
Video: 30 Ultimate Windows 10 Tips dan Trik untuk tahun 2020 2024, November
Anonim
Alat kawalan jauh berasaskan pelayar Arduino (linux)
Alat kawalan jauh berasaskan pelayar Arduino (linux)
Alat kawalan jauh berasaskan pelayar Arduino (linux)
Alat kawalan jauh berasaskan pelayar Arduino (linux)

Kami mempunyai anak. Saya suka mereka sedikit, tetapi mereka terus menyembunyikan alat kawalan jauh untuk satelit dan TV ketika mereka memasang saluran kanak-kanak. Setelah ini berlaku setiap hari selama beberapa tahun, dan setelah isteri sayang saya membenarkan saya mengadakan Arduino untuk Krismas, saya memutuskan bahawa sudah waktunya untuk membuat sesuatu yang berguna (di matanya!) Dengan Arduino. Jadi di sini kita mempunyai puncaknya: antara muka berasaskan web ke Arduino yang menggantikan alat kawalan jauh saya dan dapat diakses dari rangkaian dalaman saya. Apabila saya mengetahui mengapa perisai ethernet saya tidak membenarkan arduino saya menyimpan sketsa, saya akan menulis lakaran baru yang menggunakan pelindung ethernet sebagai pelayan web, yang bermaksud saya tidak perlu memasang apache pada komputer saya. Nantikan, saya akan sampai di sana!

Langkah 1: Prasyarat

Prasyarat
Prasyarat

Perkakasan: Bahagian Arduino: Arduino - Saya menggunakan Arduino Uno R2 Breadboard - kedai elektronik tempatan anda, atau dapur jika anda mahukan penutup pemasangan papan roti yang sahih - Saya menggunakan bekas plastik lama dengan penutup lutsinar Komponen: LED inframerah - Saya disolder satu dari alat kawalan jauh yang rosak (terima kasih anak-anak!) Penerima Inframerah - Saya mendapatkannya dari alat pemancar jarak jauh mata ajaib - Saya menggunakan Resistor BC547 - Saya menggunakan perintang pemboleh ubah 1.5k ohm yang ditetapkan kepada 1k ohm Kabel jumper papan roti - saya mendapat tambang dari kekili kabel RJ45 teras padat Bahagian komputer: Komputer untuk digunakan sebagai pelayan USB membawa kepada Perisian Arduino: Perisian Arduino - dari perpustakaan irduote arduino.cc - dari https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (terima kasih Ken, kerja hebat!) Pelayan web Apache dengan PHP dipasang - apache.org Alamat IP dalaman - saya adalah 192.168.0.9 Gambar alat kawalan jauh anda - google atau gambar yang diambil pada kamera anda. Saya menyimpan tambang pada resolusi 200x600

Langkah 2: Membina Dewan

Membina Dewan
Membina Dewan

Sangat digalakkan menggunakan papan roti untuk arduino. Saya memasang Arduino dan papan roti di kandang yang sama dan memasang semua pin yang selalu saya gunakan terus ke papan roti secara kekal. Pin Arduino digunakan untuk projek ini: 5v, pin Digital ground 3, 11 (pin 3 mengawal LED IR, pin 11 menyambung ke penerima IR)

Langkah 3: Skematik

Skematik
Skematik

Skema ini sangat mudah, 4 komponen dan 6 wayar. Sambungan LED IR: Sambungkan salah satu kaki perintang ke pin digital Arduino 3 Sambungkan kaki perintang yang lain ke pin asas transistor (kaki tengah dalam kes saya) Sambungkan pemancar transistor ke tanah Sambungkan pemungut transistor ke kaki negatif LED (kaki pendek, sisi rata LED) Sambungkan kaki positif (kaki panjang, sisi melengkung) LED ke sambungan penerima IR 5v pin (anda perlu mencari pinout untuk penerima IR khas anda): Pin GND ke pin VS ground ke pin VO 5v ke pin digital Arduino 11

Langkah 4: Tambahkan Perpustakaan Irremote ke Perisian Arduino

Tambahkan Perpustakaan Irremote ke Perisian Arduino
Tambahkan Perpustakaan Irremote ke Perisian Arduino

iremote adalah perpustakaan hebat yang ditulis oleh Ken Shirriff dan boleh didapati dari blognya di https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Muat turun perpustakaan dari https:// arcfn.com / files / IRremote.zip dan pasangkannya seperti yang anda lakukan di perpustakaan lain untuk arduino. Blognya mempunyai banyak maklumat berguna mengenai perpustakaan dan cara memasangnya.

Langkah 5: Catat Kod Dari Alat Kawalan Jauh Anda

Inilah permulaan bahagian yang membosankan (tetapi tidak dapat dielakkan): Menekan setiap butang pada alat kawalan jauh, menyimpan rentetan output dan memetakannya ke alat kawalan jauh maya. Anda hanya perlu melakukannya sekali, jangka masa lebih kurang 20 minit. Mulakan penyunting teks untuk menyimpan output anda. Buat dokumen baru dan taipkan setiap butang pada alat kawalan jauh anda, satu per baris: Power Up Down Left Right.. et cetera Mulakan Arduino IDE dan klik pada "Files-> Contoh-> IRremote-> IRrecvDump" dan muat naik ke Arduino anda. Contoh ini akan membuang kod jauh ke port bersiri. Mulakan monitor port Serial dan tekan kekunci pada alat kawalan jauh anda. Anda akan melihat rentetan muncul di tetingkap monitor bersiri: "Decoded *: * (* bit)". Salin baris ini dan simpan ke dalam dokumen anda pada baris yang sesuai. Ulangi sehingga anda menyimpan semua kunci anda dalam fail teks. Saya tahu betapa seronoknya bit ini, saya telah melakukannya dua kali sejauh ini: P Kita sekarang perlu melakukan sedikit pencarian dan mengganti dalam fail teks: cari "Decoded" ganti dengan "" search ": 0x" ganti dengan "," cari untuk "(" ganti dengan "," cari "bit)" ganti dengan "" Jadi untuk garis seperti: Noded NEC: 0x000110 (15 bit) kita sekarang harus mempunyai garis yang mengatakan: NEC, 000110, 15

Langkah 6: Buat Halaman Web untuk Alat Kawalan Jauh Anda

Kita sekarang perlu memetakan butang pada gambar alat kawalan jauh anda.

Saya menggunakan https://www.maschek.hu/imagemap/imgmap untuk memetakan butang dan mengubah kod yang diberikan oleh laman web untuk menjadikannya berfungsi.

Klik "Gunakan gambar di komputer anda: [pilih file]", pilih gambar anda, klik [muat naik], klik [terima] Jatuhkan segi empat tepat, bulatan dll ke setiap butang. Untuk HREF letakkan /remote.php?command= dan garis untuk butang itu dari dokumen teks misalnya /remote.php?command=NEC, 000110, 15 Adalah lebih bijak (dan sangat membantu dalam debugging) jika anda juga mengisi Alt: dengan nama butang tetapi itu terpulang kepada anda.

Ulangi untuk setiap butang.

Semua selesai? Kemudian kita akan teruskan. Di bahagian bawah halaman itu adalah "Kod", klik pada itu dan kotak akan terbuka yang menunjukkan kod untuk peta gambar. Salin itu dan tampal ke dalam dokumen teks baru. Ini adalah bahagian utama laman web kami.

Inilah laman web saya yang lengkap, ganti saja…

dengan kod anda sendiri di atas dan simpan sebagai remote.php di direktori web anda (/ var / www di linux) bersama dengan gambar kawalan jauh anda. Tukar garis untuk gambar anda sendiri:

"https://www.w3.org/TR/html4/loose.dtd">

Kawalan LED Arduino

Langkah 7: Muat naik Kod Kawalan Jauh ke Arduino Anda

Muat naik Kod Alat Kawalan Jauh ke Arduino Anda
Muat naik Kod Alat Kawalan Jauh ke Arduino Anda

Buat lakaran baru dan tempelkan kod berikut ke dalamnya: / * * WebRemote * LED IR mesti disambungkan ke pin Arduino PWM 3. * Versi 0.1 Julai 2009 * Hak cipta kod ini Gregory Fenton, https://labby.co. uk / 2012/02 / iremote-arduino-eksperimen / * Hak cipta Perpustakaan IRremote 2009 Ken Shirriff, https://arcfn.com * / #masuk templat sebaris Cetak & pengendali << (Cetak & obj, T arg) {obj.print (arg); kembali obj; } boolean berakhir = salah; char inData [64]; // Saiz mengikut indeks bait yang sesuai = 0; #definisikan EOP "\ n" IRsend irsend; batal persediaan () {Serial.begin (9600); Serial << "Port bersiri dimulakan" << EOP; } gelung void () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; sHex panjang; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); jika (indeks == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {berakhir = benar; indeks = 0; rehat; } lain {if (indeks <64) // Saiz array {pch + = inChar; indeks ++; }}} jika (berakhir) {// Uraikan data dalam inData di sini… pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); saya ++; // langkau ',' atau '' // saya sekarang menunjukkan permulaan hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j sekarang menunjukkan ',' atau '' selepas hex sHex = 0; sTemp = pch.substring (i, j); jika (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); untuk (i = 0; i <sTemp.length (); i ++) {k = sTemp ; jika (! ((k> = '0' && k = 'A' && k <= 'F'))) pecah; sHex * = 16; jika (k> = '0' && k <= '9') sHex + = (k - '0'); lain jika (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); jika (! ((k> = '0' && k = 'A' && k <= 'F'))) pecah; } sTemp = pch.substring (j + 1); sBits = 0; untuk (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits * = 10; jika (k> = '0' && k <= '9') sBits + = (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Jenis kod:" << sType << "Hex:"; Serial.print (sHex, HEX); Serial << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; berakhir = 0; }}} batal sendIt (String sType, long sHex, int sBits) {untuk (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6"))) {irsend.sendRC6 (sHex, sBits); } lain jika (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } lain jika (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } lain jika (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } lain jika (sType.equals (String (""))) {Serial << "Delaying" << EOP; kelewatan (450); } kelewatan (30); }}

Langkah 8: Sambungkan ke Pelayan Web Dari Komputer Anda

Sambungkan ke Pelayan Web Dari Komputer Anda
Sambungkan ke Pelayan Web Dari Komputer Anda

.. atau telefon atau android atau ipad atau apa sahaja: pergi ke https:// alamat IP pelayan web / remote.php dalam penyemak imbas anda. Bagi saya alamatnya adalah https://192.168.0.9/remote.php tetapi anda pasti akan berbeza. Sekiranya semuanya berfungsi, anda akan melihat gambar alat kawalan jauh anda dengan butang yang boleh anda klik.

Langkah 9: Langkah Pilihan: Edit Fail Host anda agar Lebih Mudah Digunakan

Langkah Pilihan: Edit Fail Host anda agar Lebih Mudah Digunakan
Langkah Pilihan: Edit Fail Host anda agar Lebih Mudah Digunakan

Langkah yang saya lakukan adalah mengedit fail host saya (/ etc / host di linux, C: / Windows / System32 / Drivers / etc / host di windows). Perhatikan bahawa fail ini hanya dapat diedit dalam arahan arahan pentadbiran (windows) atau dengan su (linux) Tambahkan baris ip.add.re.ss ganti jarak jauh ip.add.re.ss dengan alamat IP pelayan dan simpan fail. Anda perlu melakukan ini pada setiap peranti yang anda inginkan untuk mengakses laman web dengan nama pendek. Sekarang anda boleh mengakses alat kawalan jauh dengan https://remote/remote.php Ini adalah arahan pertama saya yang betul, bersikap lembut dan beritahu saya jika ada masalah sehingga saya dapat memperbaikinya.

Disyorkan: