Taula de continguts:
- Pas 1: requisits previs
- Pas 2: construir el consell
- Pas 3: Esquema
- Pas 4: afegiu la biblioteca Irremote al programari Arduino
- Pas 5: registreu els codis dels comandaments a distància
- Pas 6: creeu la pàgina web per al vostre control remot
- Pas 7: pengeu el codi de control remot al vostre Arduino
- Pas 8: connecteu-vos al servidor web des de l'ordinador
- Pas 9: Pas opcional: editeu el fitxer d'amfitrions per facilitar-ne l'ús
Vídeo: Control remot basat en el navegador Arduino (Linux): 9 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:10
Tenim fills. M’agraden a trossos, però segueixen ocultant el comandament a distància del satèl·lit i la televisió quan posen els canals infantils. Després d’això diàriament durant diversos anys, i després que la meva estimada dona em permetés tenir un Arduino per Nadal, vaig decidir que era hora de fer alguna cosa útil (als seus ulls!) Amb l’Arduino. Així doncs, aquí tenim la culminació d’això: una interfície basada en web a l’Arduino que substitueix els comandaments a distància i és accessible des de la meva xarxa interna. Quan comprengui per què el meu blindatge Ethernet no permetrà que el meu arduino mantingui un esbós, escriuré un nou esbós que utilitzi el blindatge Ethernet com a servidor web, és a dir, que no necessito instal·lar apache al meu ordinador. Estigueu atents, hi arribaré!
Pas 1: requisits previs
Maquinari: costat Arduino: Arduino - Estic fent servir una placa de pa Arduino Uno R2 - la vostra botiga d’electrònica local o la cuina si voleu una autèntica caixa de muntatge. un d'un comandament a distància trencat (gràcies als nens!) Receptor d'infrarojos: he rebut el meu d'un extensor remot d'ulls màgics Transistor - He utilitzat una resistència BC547 - He utilitzat una resistència variable d'1,5 k ohm fixada a 1 k ohm de cables del pont de la taula de pa - Tinc la meva des d’una bobina de cable RJ45 de nucli sòlid Part de l’ordinador: l’ordinador que s’utilitzarà com a servidor USB porta a Arduino Software: programari Arduino - de la biblioteca irremote arduino.cc - de https://www.arcfn.com/2009/08/multi-protocol- infrared-remote-library.html (gràcies Ken, molt bé!) Servidor web Apache amb PHP instal·lat - apache.org Adreça IP interna: la meva és 192.168.0.9 Imatge del vostre control remot: google o una foto presa a la càmera. Vaig guardar la meva a una resolució de 200x600
Pas 2: construir el consell
És molt recomanable utilitzar un tauler de control per a un arduino. Vaig muntar el meu Arduino i una placa de configuració al mateix recinte i vaig connectar permanentment tots els pins que faig servir regularment a la taula de programació. Pins Arduino utilitzats per a aquest projecte: 5v, terra Pins digitals 3, 11 (el pin 3 controla el LED IR, el pin 11 es connecta al receptor IR)
Pas 3: Esquema
Aquest esquema és molt senzill, té 4 components i 6 cables. Connexions LED IR: connecteu una de les potes de la resistència al pin digital Arduino. del transistor a la pota negativa del LED (pota curta, costat pla del LED) Connecteu la pota positiva (pota llarga, costat corbat) del LED a les connexions del receptor IR de 5 v pins (haureu de trobar el pinout per a el vostre receptor IR particular): pin GND a terra VS pin a 5 V VO pin a Arduino digital pin 11
Pas 4: afegiu la biblioteca Irremote al programari Arduino
irremote és una gran biblioteca escrita per Ken Shirriff i està disponible al seu bloc a https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Descarregueu la biblioteca des de https:// arcfn.com / files / IRremote.zip i instal·leu-lo com ho faríeu amb qualsevol altra biblioteca de l’arduino. El seu bloc conté molta informació útil sobre la biblioteca i sobre com instal·lar-la.
Pas 5: registreu els codis dels comandaments a distància
Aquí teniu l’inici de la part avorrida (però inevitable): prement tots els botons del comandament a distància, desant la cadena de sortida i assignant-la al control remot virtual. Només heu de fer-ho una vegada; espereu uns 20 minuts aproximadament. Inicieu un editor de text per desar la vostra sortida. Creeu un document nou i escriviu tots els botons del control remot, un per línia: Apagueu l'esquerra a la dreta.. etcètera Inicieu l'IDE Arduino i feu clic a "Fitxers-> Exemples-> IRremote-> IRrecvDump" i pengeu-lo a el vostre Arduino. Aquest exemple bolcarà els codis remots al port sèrie. Inicieu el monitor del port sèrie i premeu una tecla del control remot. Veureu una cadena a la finestra del monitor sèrie: "Decoded *: * (* bits)". Copieu aquesta línia i deseu-la al document a la línia adequada. Repetiu-ho fins que tingueu totes les claus emmagatzemades al fitxer de text. Sé el divertit que és aquest bit, fins ara ho he fet dues vegades: P Ara hem de fer una mica de cerca i substitució al fitxer de text: cercar "Descodificat" substituir per "" buscar ": 0x" substituir per "," cerca "(" substituir per "," buscar "bits)" substituir per "" Així que per a una línia com: NEC descodificada: 0x000110 (15 bits) ara hauríem de tenir una línia que digui: NEC, 000110, 15
Pas 6: creeu la pàgina web per al vostre control remot
Ara hem de mapar els botons de la imatge del comandament a distància.
He utilitzat https://www.maschek.hu/imagemap/imgmap per mapar els botons i he modificat el codi que us proporciona el lloc web perquè funcioni.
Feu clic a "Utilitza una imatge a l'ordinador: [trieu un fitxer]", seleccioneu la vostra imatge, feu clic a [puja], feu clic a [accepta] Deixa anar rectangles, cercles, etc. a cada botó. Per a HREF, poseu /remote.php?command= i la línia del botó del document de text, per exemple /remote.php?command=NEC, 000110, 15 Seria aconsellable (i ajudaria enormement a depurar) si també empleneu Alt: amb el nom del botó, però depèn de vosaltres.
Repetiu per a cada botó.
Tot fet? Després continuarem. A la part inferior d'aquesta pàgina hi ha "Codi", feu-hi clic i s'obrirà un quadre amb el codi del mapa d'imatges. Copieu-lo i enganxeu-lo en un document de text nou. Aquesta és la part principal de la nostra pàgina web.
Aquí teniu la meva pàgina web completa, només heu de substituir la …
amb el vostre propi codi anterior i deseu-lo com a remote.php al directori web (/ var / www a linux) juntament amb les imatges del vostre control remot. Canvieu les línies de les vostres imatges:
"https://www.w3.org/TR/html4/loose.dtd">
Control LED Arduino
Pas 7: pengeu el codi de control remot al vostre Arduino
Creeu un nou esbós i enganxeu-hi el codi següent: / * * WebRemote * Cal connectar un LED IR al pin 3. Arduino PWM. * Versió 0.1 de juliol de 2009 * Aquest codi és copyright de 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); tornar obj; } final booleà = fals; char inData [64]; // Mida segons índex de bytes adequat = 0; #define EOP "\ n" IRsend irsend; configuració nul·la () {Serial.begin (9600); Sèrie << "Port sèrie inicialitzat" << EOP; } void loop () {cadena pch, sType, sTemp; char inChar, sTest, k; int sBits; sHex llarg; int i, j; while (1) {while (Serial.available ()> 0) {inChar = Serial.read (); if (índex == 0) {pch = ""; } if (inChar == '\ r' || inChar == '\ n' || inChar == '/') // EOP {end = true; índex = 0; trencar; } else {if (índex <64) // Mida de la matriu {pch + = inChar; índex ++; }}} if (finalitzat) {// Analitzeu aquí les dades d’inData … pch.toUpperCase (); i = pch.indexOf ('')! = -1? pch.indexOf (''): pch.indexOf (','); sType = pch.substring (0, i); i ++; // passa per alt ',' o '// Ara apunto a l'inici de l'hex hexagonal j = pch.lastIndexOf (' ')! = -1? pch.lastIndexOf (''): pch.lastIndexOf (','); // j ara apunta a ',' o '' després de l'hex sHex = 0; sTemp = pch.substring (i, j); if (sTemp.substring (0, 2) == String ("0X")) sTemp = sTemp.substring (2); per a (i = 0; i <sTemp.length (); i ++) {k = sTemp ; if (! ((k> = '0' && k = 'A' && k <= 'F')))) trencar; 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')))) trencar; } sTemp = pch.substring (j + 1); sBits = 0; per a (i = 0; i <sTemp.length (); i ++) {k = sTemp ; sBits * = 10; if (k> = '0' && k <= '9') sBits + = (k - '0'); } if (sType.length ()> 0) {Sèrie << pch << EOP << "Tipus de codi:" << sType << "Hex:"; Serial.print (sHex, HEX); << sèrie: "bits:" << sBits; } sendIt (sType, sHex, sBits); pch = ""; finalitzat = 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); } 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 (""))) {Sèrie << "Retard" << EOP; retard (450); } retard (30); }}
Pas 8: connecteu-vos al servidor web des de l'ordinador
.. o telèfon, Android o iPad o qualsevol altra cosa: aneu a https:// adreça IP del servidor web / remote.php al vostre navegador Per a mi, l'adreça és https://192.168.0.9/remote.php, però sens dubte la vostra serà diferent. Si tot funciona, hauríeu de veure una imatge del comandament a distància amb botons als quals podeu fer clic.
Pas 9: Pas opcional: editeu el fitxer d'amfitrions per facilitar-ne l'ús
Un pas que vaig fer va ser editar el fitxer hosts (/ etc / hosts a Linux, C: / Windows / System32 / Drivers / etc / hosts a Windows). Tingueu en compte que aquest fitxer només es pot editar en un símbol del sistema administratiu (windows) o mitjançant su (linux).. Hauríeu de fer-ho en tots els dispositius que desitgeu accedir a la pàgina web amb el nom curt. Ara podeu accedir al comandament a distància amb https://remote/remote.php Aquesta és la meva primera instrucció adequada, sigueu gentil i feu-me saber si hi ha problemes per poder solucionar-los.
Recomanat:
IRduino: control remot Arduino: imiteu un control remot perdut: 6 passos
IRduino: control remot Arduino: imiteu un control remot perdut: si alguna vegada heu perdut el comandament a distància del vostre reproductor de TV o DVD, sabeu el frustrant que és haver d’anar, trobar i utilitzar els botons del propi dispositiu. De vegades, aquests botons ni tan sols ofereixen la mateixa funcionalitat que el comandament a distància. Rebre
Control remot basat en Arduino per a Eskate o Hydrofoil: 5 passos (amb imatges)
Control remot basat en Arduino per a Eskate o Hydrofoil: aquest instructiu us mostrarà com construir un comandament a distància físic per utilitzar amb un eskate o un hidrofoil elèctric que inclogui tot el codi i el maquinari que necessiteu. Hi ha molta soldadura implicada, però també és divertit de fer. Què pot fer el comandament a distància? Co
Controleu-vos els aparells elèctrics amb el vostre control remot de televisió (control remot ir) amb pantalla de temperatura i humitat: 9 passos
Controleu-vos els aparells elèctrics amb el vostre control remot de televisió (control remot ir) amb pantalla de temperatura i humitat: hola, sóc Abhay i és el meu primer bloc sobre Instructables i avui us mostraré com controlar els vostres electrodomèstics amb el vostre control remot de TV construint aquest projecte senzill. gràcies al laboratori atl per obtenir suport i proporcionar el material
Liberació del cable remot Olympus Evolt E510 (versió 2 amb enfocament automàtic al control remot): 6 passos (amb imatges)
Liberació del cable remot Olympus Evolt E510 (versió 2 amb enfocament automàtic al control remot): ahir vaig construir un comandament senzill amb un botó per al meu Olympus E510. La majoria de càmeres tenen un botó de disparador (el que premeu per fer una foto) que té dos modes. Si es prem el botó suaument, la càmera enfocarà automàticament i mesurarà la llum
Control remot remot: 11 passos (amb imatges)
Control remot a distància: tinc un nadó acabat de néixer i no creu que hagi de dormir el temps que la meva dona i jo també ho desitgem. Una cosa que el manté feliç al bressol és el mòbil que li penja. Així que quan es desperti si necessitem uns 25 minuts més o menys de sl