Innehållsförteckning:
- Steg 1: Förutsättningar
- Steg 2: Bygga styrelsen
- Steg 3: Schematisk
- Steg 4: Lägg till Irremote -biblioteket i Arduino -programvaran
- Steg 5: Spela in koder från dina fjärrkontroller
- Steg 6: Skapa webbsidan för din fjärrkontroll
- Steg 7: Ladda upp fjärrkontrollkoden till din Arduino
- Steg 8: Anslut till webbservern från din dator
- Steg 9: Valfritt steg: Redigera värdfilen så att den blir enklare att använda
Video: Arduino webbläsarbaserad fjärrkontroll (linux): 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:37
Vi har barn. Jag älskar dem i bitar men de fortsätter att gömma fjärrkontrollen för satelliten och TV: n när de sätter på barnkanalerna. Efter att det här hade hänt dagligen i flera år och efter att min älskade fru tillät mig att ha en Arduino till jul bestämde jag mig för att det var dags att göra något nyttigt (i hennes ögon!) Med Arduino. Så här har vi kulmen på det: ett webbaserat gränssnitt till Arduino som ersätter mina fjärrkontroller och är tillgängligt från mitt interna nätverk. När jag kommer på varför min ethernet -sköld inte tillåter min arduino att hålla en skiss kommer jag att skriva en ny skiss som använder ethernet -skölden som webbserver, vilket betyder att jag inte behöver apache installerat på min dator. Håll utkik, jag kommer dit!
Steg 1: Förutsättningar
Hårdvara: Arduino -sida: Arduino - Jag använder en Arduino Uno R2 -brödbräda - din lokala elektronikbutik eller köket om du vill ha en äkta brödbräda Monteringshölje - Jag använde ett gammalt plastfodral med ett transparent lock Komponenter: Infraröd LED - jag avlödde en från en trasig fjärrkontroll (tack barn!) Infraröd mottagare - Jag fick min från en magic eye remote extender Transistor - jag använde en BC547 motstånd - jag använde ett 1,5k ohm variabelt motstånd inställd på 1k ohm Breadboard -bygeltrådar - jag fick min från en solid RJ45 -kabelrulle Datorsida: Dator som ska användas som server USB -ledning till Arduino -programvara: Arduino -programvara - från arduino.cc irremote -bibliotek - från https://www.arcfn.com/2009/08/multi-protocol- infrarött -fjärr -bibliotek.html (tack Ken, bra jobbat!) Apache -webbserver med PHP installerat - apache.org Intern IP -adress - min är 192.168.0.9 Bild på din fjärrkontroll - google eller en bild tagen på din kamera. Jag sparade min i upplösningen 200x600
Steg 2: Bygga styrelsen
Att använda en brödbräda för en arduino rekommenderas starkt. Jag monterade min Arduino och en brödbräda i samma hölje och kopplade alla stift som jag regelbundet använder direkt till brödbrädan permanent. Arduino -stift som används för detta projekt: 5v, jordade digitala stift 3, 11 (stift 3 styr IR -lysdioden, stift 11 ansluter till IR -mottagaren)
Steg 3: Schematisk
Denna schema är mycket enkel, 4 komponenter och 6 ledningar. IR LED -anslutningar: Anslut ett av motståndets ben till Arduino digital stift 3 Anslut det andra benet på motståndet till transistorns basstift (mittbenet i mitt fall) Anslut transistorns emitter till jord Anslut kollektorn av transistorn till det negativa benet på lysdioden (kort ben, platt sida av lysdioden) Anslut lysdiodens positiva ben (långa ben, böjda sidan) till 5v -stifts IR -mottagaranslutningarna (du måste hitta pinout för din speciella IR -mottagare): GND -stift till jord VS -stift till 5v VO -stift till Arduino digital stift 11
Steg 4: Lägg till Irremote -biblioteket i Arduino -programvaran
irremote är ett fantastiskt bibliotek skrivet av Ken Shirriff och är tillgängligt från hans blogg på https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Ladda ner biblioteket från https:// arcfn.com/files/IRremote.zip och installera det som på ett annat bibliotek för arduino. Hans blogg har mycket användbar information om biblioteket och hur man installerar det.
Steg 5: Spela in koder från dina fjärrkontroller
Här är början på den tråkiga (men oundvikliga) delen: Tryck på varje knapp på fjärrkontrollen, spara utmatningssträngen och mappa den till den virtuella fjärrkontrollen. Du behöver bara göra det en gång, räkna med att ta cirka 20 minuter eller så. Starta en textredigerare för att spara din produktion. Skapa ett nytt dokument och skriv ut varje knapp på din fjärrkontroll, en per rad: Starta ner vänster till höger.. osv Starta Arduino IDE och klicka på "Filer-> Exempel-> IR-fjärr-> IRrecvDump" och ladda upp den till din Arduino. Detta exempel dumpar fjärrkoderna till serieporten. Starta seriell portmonitor och tryck på en knapp på fjärrkontrollen. Du kommer att se en sträng visas i det seriella skärmfönstret: "Avkodad *: * (* bitar)". Kopiera den här raden och spara den i ditt dokument på rätt rad. Upprepa tills du har alla dina nycklar lagrade i textfilen. Jag vet hur kul den här biten är, jag har gjort det två gånger hittills: P Vi måste nu söka och byta ut lite i textfilen: sök efter "Avkodad" ersätt med "" sök efter ": 0x" ersätt med "," sök efter "(" ersätt med "," sök efter "bitar)" ersätt med "" Så för en rad som: Avkodad NEC: 0x000110 (15 bitar) bör vi nu ha en rad som säger: NEC, 000110, 15
Steg 6: Skapa webbsidan för din fjärrkontroll
Vi måste nu kartlägga knapparna på din bild av din fjärrkontroll.
Jag använde https://www.maschek.hu/imagemap/imgmap för att kartlägga knapparna och ändrade koden som webbplatsen ger dig för att få det att fungera.
Klicka på "Använd en bild på din dator: [välj fil]", välj din bild, klicka på [ladda upp], klicka på [acceptera] Släpp rektanglar, cirklar etc på varje knapp. För HREF, lägg till /remote.php?command= och raden för den knappen från textdokumentet till exempel /remote.php?command=NEC, 000110, 15 Det vore klokt (och oerhört bra vid felsökning) om du också fyller i Alt: med knappnamnet men det är upp till dig.
Upprepa för varje knapp.
Klart? Sedan fortsätter vi. Längst ner på sidan finns "Kod", klicka på den så öppnas en ruta som visar koden för bildkartan. Kopiera det och klistra in det i ett nytt textdokument. Detta är huvuddelen av vår webbsida.
Här är min kompletta webbsida, ersätt bara …
med din egen kod ovan och spara den som remote.php i din webbkatalog (/var/www på linux) tillsammans med dina fjärrkontrollbilder. Ändra raderna för dina egna bilder:
"https://www.w3.org/TR/html4/loose.dtd">
Arduino LED -kontroll
Steg 7: Ladda upp fjärrkontrollkoden till din Arduino
Skapa en ny skiss och klistra in följande kod i den:/ * * WebRemote * En IR -lysdiod måste vara ansluten till Arduino PWM pin 3. * Version 0.1 juli, 2009 * Denna kod upphovsrätt Gregory Fenton, https://labby.co. Storbritannien/2012/02/irremote-arduino-experiment/ * IRremote Library copyright 2009 Ken Shirriff, https://arcfn.com */#include template inline Print & operator << (Print & obj, T arg) {obj.print (arg); return obj; } booleskt slutat = falskt; char inData [64]; // Storlek som lämpligt byteindex = 0; #define EOP "\ n" IRsend irsend; void setup () {Serial.begin (9600); Seriell << "Seriell port initialiserad" << EOP; } void loop () {String pch, sType, sTemp; röding inChar, sTest, k; int sBits; lång sHex; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (index == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {ended = true; index = 0; ha sönder; } annat {if (index <64) // Arraystorlek {pch += inChar; index ++; }}} if (ended) {// Analysera data i inData här … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // hoppa över ',' eller '' // i pekar nu på början av hex j = pch.lastIndexOf ('')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j pekar nu på ',' eller '' efter hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); för (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; sHex *= 16; om (k> = '0' && k <= '9') sHex += (k - '0'); annars om (k> = 'A' && k <= 'F') sHex + = ((k - 'A') + 10); if (! ((k> = '0' && k = 'A' && k <= 'F'))) break; } sTemp = pch.substring (j+1); sBits = 0; för (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits *= 10; om (k> = '0' && k <= '9') sBits += (k - '0'); } if (sType.length ()> 0) {Seriell << pch << EOP << "Kodtyp:" << sType << "Hex:"; Serial.print (sHex, HEX); Seriella << "Bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; slutade = 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); } annars if (sType.equals (String ("RC5"))) {irsend.sendRC5 (sHex, sBits); } annars if (sType.equals (String ("SONY"))) {irsend.sendSony (sHex, sBits); } annars if (sType.equals (String ("NEC"))) {if (! i) irsend.sendNEC (sHex, sBits); } annars if (sType.equals (String (""))) {Seriell << "Fördröjning" << EOP; fördröjning (450); } fördröjning (30); }}
Steg 8: Anslut till webbservern från din dator
.. eller telefon eller android eller ipad eller vad som helst: gå till https:// webbserver IP -adress/remote.php i din webbläsare För mig är adressen https://192.168.0.9/remote.php men din kommer utan tvekan att vara annorlunda. Om allt fungerar bör du se en bild på din fjärrkontroll med knappar du kan klicka på.
Steg 9: Valfritt steg: Redigera värdfilen så att den blir enklare att använda
Ett steg jag gjorde var att redigera mina värdfiler (/etc/hosts på linux, C: / Windows / System32 / Drivers / etc / hosts på windows). Observera att den här filen bara kan redigeras i en administrativ kommandotolk (Windows) eller med su (linux) Lägg till raden ip.add.re.ss fjärrbyte ip.add.re.ss med serverns IP -adress och spara filen. Du skulle behöva göra detta på varje enhet du ville komma åt webbsidan med det korta namnet. Nu kan du komma åt fjärrkontrollen med https://remote/remote.php Detta är min första riktiga instruerbara, var försiktig och meddela mig om det finns några problem så att jag kan åtgärda dem.
Rekommenderad:
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino - Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter - Rc helikopter - RC -plan med Arduino: 5 steg (med bilder)
Trådlös fjärrkontroll med 2,4 GHz NRF24L01 -modul med Arduino | Nrf24l01 4 -kanals / 6 -kanals sändarmottagare för Quadcopter | Rc helikopter | Rc -plan med Arduino: Att driva en Rc -bil | Quadcopter | Drone | RC -plan | RC -båt, vi behöver alltid en mottagare och sändare, antag att för RC QUADCOPTER behöver vi en 6 -kanals sändare och mottagare och den typen av TX och RX är för dyr, så vi kommer att göra en på vår
Hur man styr hushållsapparater med TV -fjärrkontroll med timerfunktion: 7 steg (med bilder)
Så här kontrollerar du hushållsapparater med fjärrkontroll med TV -funktion: Även efter 25 års introduktion till konsumentmarknaden är infraröd kommunikation fortfarande mycket relevant de senaste dagarna. Oavsett om det är din 55 -tums 4K -TV eller ditt billjudsystem behöver allt en IR -fjärrkontroll för att svara på vår
Komma igång med MBlock -webbläsarbaserad kodning för HyperDuino: 3 steg
Komma igång med MBlock webbläsarbaserad kodning för HyperDuino: Välkommen till mBlock webbaserad handledning med HyperDuino. Detta kommer att visa dig hur du konfigurerar mBlock och laddar upp din kod till din HyperDuino. Detta kommer också att visa dig hur du skapar en grundläggande kod för en smart bil också. För att börja låter vi hoppa direkt in
Konvertera din IR -fjärrkontroll till RF -fjärrkontroll: 9 steg (med bilder)
Konvertera din IR -fjärrkontroll till RF -fjärrkontroll: I dagens Instructable visar jag dig hur du kan använda en generisk RF -modul utan en mikrokontroller som så småningom kommer att leda oss till att bygga ett projekt där du kan konvertera en IR -fjärrkontroll från vilken enhet som helst till en RF Avlägsen. Den största fördelen med att konvertera en
Styr dina elektriska apparater med din fjärrkontroll för fjärrkontroll (IR -fjärrkontroll) med temperatur- och luftfuktighetsdisplay: 9 steg
Styr dig elektriska apparater med din TV -fjärrkontroll (ir -fjärrkontroll) med temperatur- och luftfuktighetsdisplay: hej jag är Abhay och det är min första blogg om Instructables och idag ska jag visa dig hur du styr dina elektriska apparater med din fjärrkontroll genom att bygga detta enkelt projekt. tack till atl lab för stöd och tillhandahållande av materialet