Sadržaj:

Arduino daljinski upravljač temeljen na pregledniku (linux): 9 koraka (sa slikama)
Arduino daljinski upravljač temeljen na pregledniku (linux): 9 koraka (sa slikama)

Video: Arduino daljinski upravljač temeljen na pregledniku (linux): 9 koraka (sa slikama)

Video: Arduino daljinski upravljač temeljen na pregledniku (linux): 9 koraka (sa slikama)
Video: Prebacivanje Arduino u DFU 2024, Studeni
Anonim
Arduino daljinski upravljač temeljen na pregledniku (linux)
Arduino daljinski upravljač temeljen na pregledniku (linux)
Arduino daljinski upravljač temeljen na pregledniku (linux)
Arduino daljinski upravljač temeljen na pregledniku (linux)

Imamo djecu. Volim ih na komade, ali stalno skrivaju daljinski upravljač za satelit i televiziju kad uključe dječje kanale. Nakon što se to svakodnevno događalo nekoliko godina, i nakon što mi je draga supruga dopustila da popijem Arduino za Božić, odlučio sam da je vrijeme da napravim nešto korisno (u njezinim očima!) S Arduinom. Dakle, ovdje imamo vrhunac toga: web-sučelje za Arduino koje zamjenjuje moje daljinske upravljače i dostupno je s moje interne mreže. Kad shvatim zašto moj ethernet štit ne dopušta arduinu da zadrži skicu, napisat ću novu skicu koja koristi ethernet štit kao web poslužitelj, što znači da mi ne treba apache instaliran na računalu. Pratite nas, stići ću!

Korak 1: Preduvjeti

Preduvjeti
Preduvjeti

Hardver: Arduino strana: Arduino - koristim Arduino Uno R2 Breadboard - vašu lokalnu trgovinu elektronike ili kuhinju ako želite autentičnu ploču za montažu - koristio sam staru plastičnu kutiju s prozirnim poklopcem Komponente: infracrvena LED - raspakirao sam jedan s pokvarenog daljinskog upravljača (hvala djeco!) Infracrveni prijemnik - ja sam svoj dobio od tranzistora za daljinsko proširenje čarobnog oka - koristio sam otpornik BC547 - koristio sam promjenjivi otpornik od 1,5 k ohma postavljen na 1 k ohm Žice za kratkospojnike - dobio sam svoj s pune jezgre RJ45 kabelski kolut Strana računala: Računalo koje će se koristiti kao poslužitelj USB vodi do Arduino softvera: Arduino softver - iz arduino.cc biblioteke za uklanjanje - s https://www.arcfn.com/2009/08/multi-protocol- infrared -remote -library.html (hvala Ken, sjajno!) Apache web poslužitelj s instaliranim PHP -om - apache.org Interna IP adresa - moja je 192.168.0.9 Slika vašeg daljinskog upravljača - google ili slika snimljena kamerom. Ja sam svoj spremio u rezoluciji 200x600

Korak 2: Izgradnja ploče

Izgradnja odbora
Izgradnja odbora

Korištenje matične ploče za arduino se jako preporučuje. Montirao sam svoj Arduino i ploču u isto kućište i trajno ožičio sve igle koje redovito koristim izravno na ploču. Arduino pinovi koji se koriste za ovaj projekt: 5v, uzemljeni Digitalni pinovi 3, 11 (pin 3 kontrolira IC LED, pin 11 se povezuje s IC prijamnikom)

Korak 3: Shematski prikaz

Shematski
Shematski

Ova shema je vrlo jednostavna, 4 komponente i 6 žica. IC LED veze: Spojite jednu nogu otpornika na Arduino digitalni pin 3 Drugu nogu otpornika spojite na osnovni pin tranzistora (srednja noga u mom slučaju) Spojite odašiljač tranzistora na masu Spojite kolektor tranzistora na negativni krak LED -a (kratka noga, ravna strana LED -a) Spojite pozitivnu nogu (dugačka noga, zakrivljena strana) LED -a na 5 -polne priključke IC prijemnika (trebali biste pronaći pinout za vaš IR prijemnik): GND pin na masu VS pin na 5v VO pin na Arduino digitalni pin 11

Korak 4: Dodajte Irremote knjižnicu u softver Arduino

Dodajte biblioteku Irremote u softver Arduino
Dodajte biblioteku Irremote u softver Arduino

unremote je sjajna knjižnica koju je napisao Ken Shirriff i dostupna je s njegovog bloga na https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Preuzmite knjižnicu s https:// arcfn.com/files/IRremote.zip i instalirajte ga kao i bilo koju drugu knjižnicu za arduino. Njegov blog ima mnogo korisnih informacija o knjižnici i načinu njezine instalacije.

Korak 5: Snimite kodove s daljinskog upravljača

Evo početka dosadnog (ali neizbježnog) dijela: Pritiskom na svaki gumb na daljinskom upravljaču spremate izlazni niz i preslikavate ga na virtualni daljinski upravljač. To morate učiniti samo jednom, očekujte da će vam trebati oko 20 minuta. Pokrenite uređivač teksta da biste spremili ispis. Izradite novi dokument i upišite svaki gumb na daljinskom upravljaču, po jedan u svaki redak: Uključivanje dolje lijevo desno.. itd. Pokrenite Arduino IDE i kliknite "Datoteke-> Primjeri-> IRremote-> IRrecvDump" i prenesite ga na tvoj Arduino. Ovaj primjer će izbaciti udaljene kodove na serijski port. Pokrenite monitor serijskog porta i pritisnite tipku na daljinskom upravljaču. Vidjet ćete niz u prozoru serijskog monitora: "Decoded *: * (* bits)". Kopirajte ovaj redak i spremite ga u svoj dokument na odgovarajućem retku. Ponavljajte sve dok svi ključevi ne budu pohranjeni u tekstualnoj datoteci. Znam koliko je ovo zabavno, do sada sam to učinio dva puta: P Sada moramo malo pretražiti i zamijeniti u tekstualnoj datoteci: potražiti "Decoded" zamijeniti s "" tražiti ": 0x" zamijeniti sa "," search for "(" replace with "," search for "bits)" replace with "" Dakle, za redak kao što je: Decoded NEC: 0x000110 (15 bita) sada bismo trebali imati redak koji kaže: NEC, 000110, 15

Korak 6: Izradite web stranicu za daljinski upravljač

Sada moramo mapirati gumbe na vašoj slici vašeg daljinskog upravljača.

Koristio sam https://www.maschek.hu/imagemap/imgmap za mapiranje gumba i izmijenio kôd koji vam web stranica daje kako bi funkcionirao.

Kliknite na "Koristi sliku na svom računalu: [odaberi datoteku]", odaberite svoju sliku, kliknite [učitaj], kliknite [prihvati] Stavite pravokutnike, krugove itd. Na svaki gumb. Za HREF stavite /remote.php?command= i redak za taj gumb iz tekstualnog dokumenta, na primjer /remote.php?command=NEC, 000110, 15 Bilo bi pametno (i iznimno pomoći u otklanjanju pogrešaka) ako i ispunite Alt: s nazivom gumba, ali to ovisi o vama.

Ponovite za svaki gumb.

Sve gotovo? Zatim ćemo nastaviti. Pri dnu stranice nalazi se "Kôd", kliknite na nju i otvorit će se okvir s kodom za slikovnu kartu. Kopirajte to i zalijepite u novi tekstualni dokument. Ovo je glavni dio naše web stranice.

Evo moje cijele web stranice, samo zamijenite…

s gornjim vlastitim kodom i spremite ga kao remote.php u svoj web imenik (/var/www na linuxu) zajedno sa slikama na daljinskom upravljaču. Promijenite linije za svoje slike:

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

Arduino LED kontrola

Korak 7: Prenesite kod za daljinsko upravljanje na svoj Arduino

Prenesite kod za daljinsko upravljanje na svoj Arduino
Prenesite kod za daljinsko upravljanje na svoj Arduino

Napravite novu skicu i zalijepite sljedeći kod u nju:/ * * WebRemote * IR LED mora biti spojen na Arduino PWM pin 3. * Verzija 0.1 srpanj 2009 * Ovaj kod zaštićen je Gregory Fenton, https://labby.co. uk/2012/02/unremote-arduino-experimentation/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); povratak obj; } boolean završeno = false; char inData [64]; // Veličina prema potrebi indeks bajta = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Serijski << "Serijski port inicijaliziran" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBitovi; dugi sHex; int i, 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; pauza; } else {if (indeks <64) // Veličina niza {pch += inChar; indeks ++; }}} if (završeno) {// Ovdje raščlanite podatke u inData … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // preskočite ',' ili '' // i sada pokazuje početak hex -a j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j sada pokazuje ',' ili '' nakon hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); za (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'); inace if (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j+1); sBitovi = 0; za (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBitovi *= 10; if (k> = '0' && k <= '9') sBitovi += (k - '0'); } if (sType.length ()> 0) {Serial << pch << EOP << "Vrsta koda:" << sType << "Hex:"; Serijski ispis (sHex, HEX); Serijski << "Bitovi:" << sBitovi; } sendIt (sType, sHex, sBits); pch = ""; završio = 0; }}} void sendIt (String sType, long sHex, int sBits) {for (int i = 0; i <2; i ++) {if (sType.equals (String ("RC6")))) {irsend.sendRC6 (sHex, sBitovi); } 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 << "Delaying" << EOP; kašnjenje (450); } kašnjenje (30); }}

Korak 8: Povežite se s web poslužiteljem s računala

Povežite se s web poslužiteljem s računala
Povežite se s web poslužiteljem s računala

.. ili telefon ili android ili ipad ili što već: idite na https:// webserver IP address/remote.php u svom pregledniku. Za mene je adresa https://192.168.0.9/remote.php, ali vaša će nesumnjivo biti drugačija. Ako sve radi, trebali biste vidjeti sliku daljinskog upravljača s gumbima na koje možete kliknuti.

Korak 9: Izborni korak: Uredite datoteku domaćina kako biste je olakšali

Izborni korak: Uredite datoteku domaćina kako biste je olakšali
Izborni korak: Uredite datoteku domaćina kako biste je olakšali

Korak koji sam učinio je bio urediti datoteku domaćina (/etc/hosts na linuxu, C: / Windows / System32 / Drivers / etc / hosts na Windowsima). Imajte na umu da se ova datoteka može uređivati samo u administrativnom naredbenom retku (windows) ili su (linux) Dodajte redak ip.add.re.ss daljinski zamijenite ip.add.re.ss s IP adresom poslužitelja i spremite datoteku. To biste trebali učiniti na svakom uređaju s kojim želite pristupiti web stranici s kratkim imenom. Sada daljinskom upravljaču možete pristupiti putem https://remote/remote.php Ovo je moje prvo odgovarajuće uputstvo, budite nježni i javite mi ako postoje problemi kako bih ih mogao riješiti.

Preporučeni: