Indholdsfortegnelse:

Arduino browserbaseret fjernbetjening (linux): 9 trin (med billeder)
Arduino browserbaseret fjernbetjening (linux): 9 trin (med billeder)

Video: Arduino browserbaseret fjernbetjening (linux): 9 trin (med billeder)

Video: Arduino browserbaseret fjernbetjening (linux): 9 trin (med billeder)
Video: Employee Attendance Monitoring System using Face Recognition 2024, November
Anonim
Arduino browserbaseret fjernbetjening (linux)
Arduino browserbaseret fjernbetjening (linux)
Arduino browserbaseret fjernbetjening (linux)
Arduino browserbaseret fjernbetjening (linux)

Vi har børn. Jeg elsker dem i stykker, men de gemmer hele tiden fjernbetjeningen til satellitten og fjernsynet, når de sætter børnenes kanaler på. Efter at dette var sket på daglig basis i flere år, og efter at min elskede kone havde tilladt mig at få en Arduino til jul, besluttede jeg, at det var på tide at lave noget nyttigt (i hendes øjne!) Med Arduino. Så her har vi kulminationen på det: En webbaseret grænseflade til Arduino, der erstatter mine fjernbetjeninger og er tilgængelig fra mit interne netværk. Når jeg finder ud af, hvorfor mit ethernet -skjold ikke tillader min arduino at beholde en skitse, skriver jeg en ny skitse, der bruger ethernet -skjoldet som webserver, hvilket betyder, at jeg ikke har brug for apache installeret på min computer. Følg med, jeg kommer derhen!

Trin 1: Forudsætninger

Forudsætninger
Forudsætninger

Hardware: Arduino side: Arduino - Jeg bruger et Arduino Uno R2 brødbræt - din lokale elektronikbutik eller køkkenet, hvis du vil have et autentisk monteringsskab til brødbræt - jeg brugte en gammel plastikbeholder med et gennemsigtigt låg Komponenter: Infrarød LED - jeg desolderede en fra en ødelagt fjernbetjening (tak børn!) Infrarød modtager - Jeg fik min fra en magic eye remote extender Transistor - jeg brugte en BC547 modstand - jeg brugte en 1,5k ohm variabel modstand sat til 1k ohm Breadboard jumperwires - jeg fik min fra en solid core RJ45 -kabelrulle Computerside: Computer, der skal bruges som server USB -kabel til Arduino Software: Arduino -software - fra arduino.cc irremote -bibliotek - fra https://www.arcfn.com/2009/08/multi-protocol- infrarød -fjern -bibliotek.html (tak Ken, godt arbejde!) Apache webserver med PHP installeret - apache.org Intern IP -adresse - min er 192.168.0.9 Billede af din fjernbetjening - google eller et billede taget på dit kamera. Jeg gemte min ved 200x600 opløsning

Trin 2: Opbygning af bestyrelsen

Opbygning af bestyrelsen
Opbygning af bestyrelsen

Det anbefales stærkt at bruge et brødbræt til en arduino. Jeg monterede min Arduino og et brødbræt i samme kabinet og tilsluttede alle stifterne, jeg regelmæssigt bruger, direkte til brødbrættet permanent. Arduino ben bruges til dette projekt: 5v, jord Digitale ben 3, 11 (pin 3 styrer IR LED, pin 11 tilsluttes IR modtageren)

Trin 3: Skematisk

Skematisk
Skematisk

Denne skema er meget enkel, 4 komponenter og 6 ledninger. IR LED -tilslutninger: Tilslut et af modstandens ben til Arduino digital pin 3 Tilslut det andet ben af modstanden til transistorens basisstift (det midterste ben i mit tilfælde) Tilslut transistorens emitter til jorden Tilslut kollektoren af transistoren til det negative ben på LED'en (kort ben, flad side af LED'en) Tilslut det positive ben (langt ben, buet side) af LED'en til 5v pin IR -modtagerforbindelserne (du skal finde pinout for din særlige IR -modtager): GND pin til jord VS pin til 5v VO pin til Arduino digital pin 11

Trin 4: Føj Irremote Library til Arduino -softwaren

Føj Irremote -biblioteket til Arduino -softwaren
Føj Irremote -biblioteket til Arduino -softwaren

irremote er et fantastisk bibliotek skrevet af Ken Shirriff og er tilgængeligt fra hans blog på https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Download biblioteket fra https:// arcfn.com/files/IRremote.zip og installer det som på ethvert andet bibliotek til arduinoen. Hans blog har en masse nyttig information om biblioteket og hvordan man installerer det.

Trin 5: Registrer koderne fra dine fjernbetjeninger

Her er starten på den kedelige (men uundgåelige) del: Tryk på hver knap på fjernbetjeningen, gemmer outputstrengen og kortlæg den til den virtuelle fjernbetjening. Du behøver kun at gøre det en gang, forvent at tage cirka 20 minutter eller deromkring. Start en teksteditor for at gemme dit output. Opret et nyt dokument, og skriv hver knap på din fjernbetjening ud, en pr. Linje: Tænd ned til venstre til højre.. osv. Start Arduino IDE og klik på "Filer-> Eksempler-> IRfjern-> IRrecvDump" og upload den til din Arduino. Dette eksempel vil dumpe fjernkoderne til den serielle port. Start den serielle portmonitor, og tryk på en tast på din fjernbetjening. Du vil se en streng vises i det serielle monitorvindue: "Afkodet *: * (* bits)". Kopiér denne linje, og gem den i dit dokument på den relevante linje. Gentag, indtil du har alle dine nøgler gemt i tekstfilen. Jeg ved, hvor sjov denne bit er, jeg har gjort det to gange indtil nu: P Vi skal nu søge og udskifte lidt i tekstfilen: søg efter "Afkodet" erstat med "" søg efter ": 0x" erstat med "," søg efter "(" erstat med "," søg efter "bits)" erstat med "" Så for en linje som: Afkodet NEC: 0x000110 (15 bit) skulle vi nu have en linje, der siger: NEC, 000110, 15

Trin 6: Opret websiden til din fjernbetjening

Vi skal nu kortlægge knapperne på dit billede af din fjernbetjening.

Jeg brugte https://www.maschek.hu/imagemap/imgmap til at kortlægge knapperne og ændrede den kode, som webstedet giver dig til at få det til at fungere.

Klik på "Brug et billede på din computer: [vælg fil]", vælg dit billede, klik på [upload], klik på [accept] Drop rektangler, cirkler osv. På hver knap. For HREF skal du sætte /remote.php?command= og linjen for den knap fra tekstdokumentet f.eks. /Remote.php?command=NEC, 000110, 15 Det ville være klogt (og en enorm hjælp til fejlfinding), hvis du også udfylder Alt: med knapnavnet, men det er op til dig.

Gentag for hver knap.

Helt færdig? Så fortsætter vi. Nederst på siden er "Kode", klik på det, og der åbnes en boks, der viser koden til billedkortet. Kopier det og indsæt det i et nyt tekstdokument. Dette er hoveddelen af vores webside.

Her er min komplette webside, bare udskift …

med din egen kode ovenfor, og gem den som remote.php i din webkatalog (/var/www på linux) sammen med dine fjernbetjeningsbilleder. Skift linjer for dine egne billeder:

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

Arduino LED -kontrol

Trin 7: Upload fjernbetjeningskoden til din Arduino

Upload fjernbetjeningskoden til din Arduino
Upload fjernbetjeningskoden til din Arduino

Opret en ny skitse og indsæt følgende kode i den:/ * * WebRemote * En IR LED skal tilsluttes Arduino PWM pin 3. * Version 0.1 juli, 2009 * Denne kode ophavsret Gregory Fenton, https://labby.co. uk/2012/02/irremote-arduino-experimentation/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); returnere obj; } boolsk sluttede = falsk; char inData [64]; // Størrelse som passende byteindeks = 0; #define EOP "\ n" IRsend irsend; ugyldig opsætning () {Serial.begin (9600); Seriel << "Seriel port initialiseret" << EOP; } void loop () {String pch, sType, sTemp; char inChar, sTest, k; int sBits; lang sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); hvis (indeks == 0) {pch = ""; } hvis (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {ended = true; indeks = 0; pause; } ellers {if (indeks <64) // Matrixstørrelse {pch += inChar; indeks ++; }}} hvis (sluttede) {// Analysér dataene i inData her … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // spring over ',' eller '' // jeg peger nu på starten af hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j peger nu på ',' eller '' efter hex sHex = 0; sTemp = pch.substring (i, j); hvis (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); for (i = 0; i <sTemp.length (); i ++) {k = sTemp ; hvis (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; hvis (k> = '0' && k <= '9') sHex += (k - '0'); ellers hvis (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); hvis (! ((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; hvis (k> = '0' && k <= '9') sBits += (k - '0'); } hvis (sType.length ()> 0) {Seriel << pch << EOP << "Kodetype:" << sType << "Hex:"; Serial.print (sHex, HEX); Seriel << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; sluttede = 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); } ellers hvis (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } ellers hvis (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } ellers if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } ellers hvis (sType.equals (String (""))) {Seriel << "Forsinkelse" << EOP; forsinkelse (450); } forsinkelse (30); }}

Trin 8: Opret forbindelse til webserveren fra din computer

Opret forbindelse til webserveren fra din computer
Opret forbindelse til webserveren fra din computer

.. eller telefon eller android eller ipad eller hvad som helst: gå til https:// webserver IP -adresse/remote.php i din browser For mig er adressen https://192.168.0.9/remote.php, men din vil uden tvivl være anderledes. Hvis alt fungerer, skal du se et billede af din fjernbetjening med knapper, du kan klikke på.

Trin 9: Valgfrit trin: Rediger din værtsfil for at gøre den lettere at bruge

Valgfrit trin: Rediger din værtsfil for at gøre den lettere at bruge
Valgfrit trin: Rediger din værtsfil for at gøre den lettere at bruge

Et trin, jeg gjorde, var at redigere min værtsfil (/etc/hosts på linux, C: / Windows / System32 / Drivers / etc / hosts på windows). Bemærk, at denne fil kun kan redigeres i en administrativ kommandoprompt (Windows) eller ved su (linux) Tilføj linjen ip.add.re.ss fjern udskift ip.add.re.ss med serverens IP -adresse, og gem filen. Du skulle gøre dette på hver enhed, du ønskede at få adgang til websiden med det korte navn. Nu kan du få adgang til fjernbetjeningen med https://remote/remote.php Dette er min første korrekte instruerbare, vær forsigtig og lad mig vide, hvis der er problemer, så jeg kan løse dem.

Anbefalede: