İçindekiler:
- Adım 1: Önkoşullar
- Adım 2: Tahtayı Oluşturma
- Adım 3: Şematik
- Adım 4: Arduino Yazılımına Uzak Kitaplık Ekleme
- Adım 5: Uzaktan Kumandalarınızdan Kodları Kaydedin
- 6. Adım: Uzaktan Kumandanız için Web Sayfasını Oluşturun
- Adım 7: Uzaktan Kumanda Kodunu Arduino'nuza Yükleyin
- Adım 8: Bilgisayarınızdan Web Sunucusuna Bağlanın
- 9. Adım: İsteğe Bağlı Adım: Kullanımını Kolaylaştırmak için Hosts Dosyanızı Düzenleyin
Video: Arduino Tarayıcı Tabanlı Uzaktan Kumanda (linux): 9 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:16
Çocuklarımız var. Onları çok seviyorum ama çocuk kanallarını açtıklarında uydu ve TV için uzaktan kumandayı saklıyorlar. Bunun birkaç yıl boyunca her gün gerçekleşmesinden sonra ve sevgili karım Noel için bir Arduino'ya sahip olmama izin verdikten sonra, Arduino ile (onun gözünde!) faydalı bir şeyler yapmanın zamanının geldiğine karar verdim. İşte burada bunun doruk noktasına ulaştık: Arduino'ya uzaktan kumandalarımın yerini alan ve dahili ağımdan erişilebilen web tabanlı bir arayüz. Ethernet kalkanımın neden arduino'mun bir taslak tutmasına izin vermediğini anladığımda, ethernet kalkanını web sunucusu olarak kullanan yeni bir çizim yazacağım, yani bilgisayarımda Apache'nin kurulu olmasına ihtiyacım yok. Takipte kalın, oraya geleceğim!
Adım 1: Önkoşullar
Donanım: Arduino tarafı: Arduino - Arduino Uno R2 Breadboard kullanıyorum - yerel elektronik mağazanız veya otantik bir breadboard istiyorsanız mutfak Montaj muhafazası - Şeffaf kapaklı eski bir plastik kasa kullandım Bileşenler: Kızılötesi LED - Lehimini söktüm bir tanesi kırık bir uzaktan kumandadan (teşekkürler çocuklar!) Kızılötesi Alıcı - Benimkini sihirli bir göz uzaktan genişleticiden aldım Transistör - BC547 Direnç kullandım - 1k ohm'a ayarlanmış 1,5k ohm değişken direnç kullandım Breadboard atlama telleri - Benimkini aldım bir katı çekirdekli RJ45 kablo makarasından Bilgisayar tarafı: Sunucu olarak kullanılacak bilgisayar Arduino'ya USB kablosu Yazılım: Arduino yazılımı - arduino.cc uzaktan kumanda kitaplığından - https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (teşekkürler Ken, harika çalışma!) PHP'nin kurulu olduğu Apache web sunucusu - apache.org Dahili IP adresi - benimki 192.168.0.9 Uzaktan kumandanızın resmi - google veya kameranızda çekilmiş bir resim. Benimkini 200x600 çözünürlükte kaydettim
Adım 2: Tahtayı Oluşturma
Bir arduino için bir breadboard kullanılması şiddetle tavsiye edilir. Arduino'mu ve bir devre tahtasını aynı muhafazaya monte ettim ve düzenli olarak kullandığım tüm pinleri doğrudan devre tahtasına kalıcı olarak bağladım. Bu proje için kullanılan Arduino pinleri: 5v, toprak Dijital pinler 3, 11 (pin 3 IR LED'i kontrol eder, pin 11 IR alıcısına bağlanır)
Adım 3: Şematik
Bu şematik çok basit, 4 bileşen ve 6 telli. IR LED bağlantıları: Direncin ayaklarından birini Arduino dijital pin 3'e bağlayın Direncin diğer ayağını transistörün taban pinine bağlayın (benim durumumda orta bacak) Transistörün emitörünü toprağa bağlayın Kolektörü bağlayın transistörün LED'in negatif ayağına (kısa bacak, LED'in düz tarafı) LED'in pozitif ayağını (uzun bacak, kavisli taraf) 5v pin IR alıcı bağlantılarına bağlayın (pin çıkışını bulmanız gerekir) sizin özel IR alıcınız): GND pinden toprağa VS pinden 5v VO pinden Arduino dijital pin 11'e
Adım 4: Arduino Yazılımına Uzak Kitaplık Ekleme
irremote, Ken Shirriff tarafından yazılmış harika bir kütüphanedir ve https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html adresindeki blogundan edinilebilir. Kütüphaneyi https://arcfn adresinden indirin..com/files/IRremote.zip ve arduino için başka herhangi bir kitaplık gibi kurun. Blogunda kütüphane ve nasıl kurulacağı hakkında birçok yararlı bilgi var.
Adım 5: Uzaktan Kumandalarınızdan Kodları Kaydedin
Sıkıcı (ama kaçınılmaz) bölümün başlangıcı: Uzaktan kumandadaki her düğmeye basmak, çıktı dizesini kaydetmek ve sanal uzaktan kumandaya eşlemek. Sadece bir kez yapmanız gerekiyor, yaklaşık 20 dakika kadar sürmesini bekleyin. Çıktınızı kaydetmek için bir metin düzenleyici başlatın. Yeni bir belge oluşturun ve her satıra bir tane olmak üzere uzaktan kumandanızdaki her düğmeyi yazın: Gücü Açın Sol Sağa.. et cetera Arduino IDE'yi başlatın ve "Dosyalar->Örnekler->IRremote->IRrecvDump" üzerine tıklayın ve yükleyin senin Arduino'n. Bu örnek, uzak kodları seri bağlantı noktasına atacaktır. Seri bağlantı noktası monitörünü başlatın ve uzaktan kumandanızdaki bir tuşa basın. Seri monitör penceresinde bir dizenin göründüğünü göreceksiniz: "Kodu çözülmüş *: * (* bit)". Bu satırı kopyalayın ve belgenize uygun satıra kaydedin. Tüm anahtarlarınızı metin dosyasında depolayana kadar tekrarlayın. Bu parçanın ne kadar eğlenceli olduğunu biliyorum, şimdiye kadar iki kez yaptım:P Şimdi metin dosyasında biraz arama ve değiştirme yapmamız gerekiyor: "Kodu çözülmüş" ile değiştir "" ile ara ": 0x" ile değiştir ", " arama " (" " ile değiştir ", " " bitleri ara)" yerine "" ile değiştir Bu nedenle, aşağıdaki gibi bir satır için: Çözülmüş NEC: 0x000110 (15 bit) artık şunu yazan bir satırımız olmalıdır: NEC, 000110, 15
6. Adım: Uzaktan Kumandanız için Web Sayfasını Oluşturun
Şimdi uzaktan kumandanızın görüntüsünün üzerindeki düğmeleri eşleştirmemiz gerekiyor.
Düğmeleri eşleştirmek için https://www.maschek.hu/imagemap/imgmap kullandım ve çalışmasını sağlamak için web sitesinin size verdiği kodu değiştirdim.
"Bilgisayarınızda bir resim kullan: [dosya seç]"e tıklayın, resminizi seçin, [yükle]'ye tıklayın, [kabul et]'e tıklayın Her bir düğmenin üzerine dikdörtgenler, daireler vb. bırakın. HREF için metin belgesinden /remote.php?command= ve bu düğmenin satırını koyun, örneğin /remote.php?command=NEC, 000110, 15 Ayrıca doldurmanız akıllıca olacaktır (ve hata ayıklamaya çok yardımcı olacaktır). Alt: buton ismiyle ama bu size kalmış.
Her düğme için tekrarlayın.
Hepsi tamam? Sonra devam edeceğiz. Bu sayfanın altında "Kod" var, buna tıklayın ve görüntü haritasının kodunu gösteren bir kutu açılacaktır. Bunu kopyalayın ve yeni bir metin belgesine yapıştırın. Bu, web sayfamızın ana kısmıdır.
İşte tam web sayfam, sadece…
yukarıdaki kendi kodunuzla ve uzaktan kumanda görüntülerinizle birlikte web dizininizde (/var/www) remote.php olarak kaydedin. Kendi resimleriniz için çizgileri değiştirin:
"https://www.w3.org/TR/html4/loose.dtd">
Arduino LED kontrolü
Adım 7: Uzaktan Kumanda Kodunu Arduino'nuza Yükleyin
Yeni bir eskiz oluşturun ve aşağıdaki kodu içine yapıştırın: /* * WebRemote * Arduino PWM pin 3'e bir IR LED bağlanmalıdır. * Sürüm 0.1 Temmuz, 2009 * Bu kodun telif hakkı Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote Library telif hakkı 2009 Ken Shirriff, https://arcfn.com */ #include şablonu satır içi Yazdır ve işleci <<(Yazdır venesne, Tar arg) { obj.print(arg); dönüş nesnesi; } boole sonu = yanlış; char inData[64]; // Uygun bayt indeksi olarak boyutlandır = 0; #define EOP "\n" IRsend irsend; geçersiz kurulum() { Serial.begin(9600); Seri << "Seri bağlantı noktası başlatıldı" << EOP; } void loop() { String pch, sType, sTemp; char inChar, sTest, k; int sBit'ler; uzun sHex; int i, j; while(1) { while(Serial.available() > 0) { inChar = Seri.read(); if(index == 0) { pch = ""; } if(inChar == '\r' || inChar == '\n' || inChar == '/') // EOP { sona erdi = doğru; indeks = 0; kırmak; } else { if(index < 64) // Dizi boyutu { pch += inChar; dizin++; } } } if(end) { // inData içindeki verileri burada ayrıştırın… pch.toUpperCase(); ben = pch.indexOf(' ') != -1 ? pch.indexOf(' '): pch.indexOf(', '); sType = pch.substring(0, i); ben++; // ', ' veya ' ' öğesini atla // şimdi onaltılının başlangıcını işaret ediyorum j = pch.lastIndexOf(' ') != -1 ? pch.lastIndexOf(' '): pch.lastIndexOf(', '); // j şimdi onaltılı sHex = 0'dan sonra ', ' veya ' ' işaretini gösteriyor; 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'))) ara; 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'))) ara; } sTemp = pch.substring(j+1); sBit = 0; for(i = 0; i < sTemp.length(); i++) { k = sTemp; sBit *= 10; if(k >= '0' && k <= '9') sBits += (k - '0'); } if(sType.length()>0) { Seri << pch << EOP << "Kod tipi: "<< sType << " Onaltılı: "; Serial.print(sHex, HEX); Seri << " Bitler: " << sBits; } sendIt(sType, sHex, sBits); pch = ""; sona erdi = 0; } } } void sendIt(String sType, uzun sHex, int sBits) { for(int i = 0; i < 2; i++) { if(sType.equals(String("RC6"))) { irsend.sendRC6(sHex), sBit'ler); } 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(""))) { Seri << "Gecikme" << EOP; gecikme(450); } gecikme(30); } }
Adım 8: Bilgisayarınızdan Web Sunucusuna Bağlanın
.. veya telefon veya android veya ipad veya her neyse: tarayıcınızda https://webserver IP address/remote.php adresine gidin Benim için adres https://192.168.0.9/remote.php ama sizinki şüphesiz farklı olacaktır. Her şey çalışıyorsa, üzerine tıklayabileceğiniz düğmeler ile uzaktan kumandanızın bir resmini görmelisiniz.
9. Adım: İsteğe Bağlı Adım: Kullanımını Kolaylaştırmak için Hosts Dosyanızı Düzenleyin
Yaptığım bir adım, hosts dosyamı düzenlemekti (linux'ta/etc/hosts, Windows'ta C:\Windows\System32\Drivers\etc\hosts). Bu dosyanın yalnızca bir yönetici komut isteminde (windows) veya su (linux) tarafından düzenlenebileceğini unutmayın. ip.add.re.ss remote satırını ekleyin ip.add.re.ss'yi sunucu IP adresiyle değiştirin ve dosyayı kaydedin. Bunu, kısa adla web sayfasına erişmek istediğiniz her cihazda yapmanız gerekir. Artık uzaktan kumandaya https://remote/remote.php ile erişebilirsiniz. Bu benim ilk uygun talimatım, nazik olun ve herhangi bir sorun varsa bana bildirin ki onları düzeltebileyim.
Önerilen:
LoRa Tabanlı Uzaktan Kumanda - Cihazları Uzak Mesafelerden Kontrol Edin: 8 Adım
LoRa Tabanlı Uzaktan Kumanda | Uzak Mesafelerden Kontrol Aletleri: Hey, naber, çocuklar! Akarsh burada CETech'ten. Bu projede, LED'ler, motorlar gibi çeşitli enstrümanları kontrol etmek için kullanılabilecek bir uzaktan kumanda oluşturacağız veya günlük hayatımızdan bahsedersek ev uygulamamızı kontrol edebiliriz.
Otomatik Arduino Tabanlı IR Uzaktan Kumanda Sıcaklık Sürme: 7 Adım
Otomatik Arduino Tabanlı IR Uzaktan Kumanda Sıcaklık Tahrikli: Hey, Naber Beyler! CETech'ten Akarsh burada. Dumb AC'niz nedeniyle oda sıcaklığınız çok düşük veya çok yüksek olduğu için sağlam bir uykunun ortasında uyanmaktan bıktınız. O zaman bu proje tam size göre. Bu projede yapacağımız
IRduino: Arduino Uzaktan Kumanda - Kayıp Bir Uzaktan Kumandayı Taklit Etme: 6 Adım
IRduino: Arduino Uzaktan Kumanda - Kayıp Bir Uzaktan Kumandayı Taklit Edin: TV veya DVD oynatıcınızın uzaktan kumandasını kaybettiyseniz, cihazın üzerindeki düğmeleri yürümek, bulmak ve kullanmak zorunda olmanın ne kadar sinir bozucu olduğunu bilirsiniz. Bazen bu düğmeler, uzaktan kumandayla aynı işlevi bile sunmaz.
Arduino Tabanlı GSM/SMS Uzaktan Kumanda Ünitesi: 16 Adım (Resimli)
Arduino Tabanlı GSM/SMS Uzaktan Kumanda Birimi: ! ! ! FARK ETME ! ! !Bölgemdeki yerel cep telefonu kulesi yükseltildiği için artık bu GSM modülünü kullanamıyorum. Yeni kule artık 2G cihazlarını desteklemiyor. Bu nedenle artık bu projeye herhangi bir destek veremiyorum.Böyle bir wi
Eskate veya Hydrofoil için Arduino Tabanlı Uzaktan Kumanda: 5 Adım (Resimli)
Eskate veya Hydrofoil için Arduino Tabanlı Uzaktan Kumanda: Bu talimat, ihtiyacınız olan tüm kod ve donanımı içeren bir eskate veya elektrikli hidrofil ile kullanmak için fiziksel bir uzaktan kumandayı nasıl oluşturacağınızı gösterecektir. Çok fazla lehimleme var, ancak yapması da eğlenceli. Uzaktan kumanda ne yapabilir? Ortak