Table des matières:
- Étape 1: Prérequis
- Étape 2: Construire le tableau
- Étape 3: Schéma
- Étape 4: Ajouter la bibliothèque Irremote au logiciel Arduino
- Étape 5: Enregistrez les codes de vos télécommandes
- Étape 6: créez la page Web pour votre télécommande
- Étape 7: téléchargez le code de la télécommande sur votre Arduino
- Étape 8: Connectez-vous au serveur Web à partir de votre ordinateur
- Étape 9: Étape facultative: modifiez votre fichier d'hôtes pour le rendre plus facile à utiliser
Vidéo: Télécommande basée sur le navigateur Arduino (linux): 9 étapes (avec images)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
Nous avons des enfants. Je les adore mais ils cachent toujours la télécommande du satellite et de la télévision lorsqu'ils mettent les chaînes pour enfants. Après que cela se soit produit quotidiennement pendant plusieurs années, et après que ma femme chérie m'ait permis d'avoir un Arduino pour Noël, j'ai décidé qu'il était temps de faire quelque chose d'utile (à ses yeux !) avec l'Arduino. Nous avons donc ici le point culminant de cela: une interface Web vers l'Arduino qui remplace mes télécommandes et est accessible depuis mon réseau interne. Lorsque je comprendrai pourquoi mon bouclier Ethernet ne permet pas à mon arduino de conserver un croquis, j'écrirai un nouveau croquis qui utilise le bouclier Ethernet comme serveur Web, ce qui signifie que je n'ai pas besoin d'installer Apache sur mon ordinateur. Restez connectés, j'y arriverai !
Étape 1: Prérequis
Matériel: Côté Arduino: Arduino - J'utilise une planche à pain Arduino Uno R2 - votre magasin d'électronique local, ou la cuisine si vous voulez une planche à pain authentique Boîtier de montage - J'ai utilisé un vieux boîtier en plastique avec un couvercle transparent Composants: LED infrarouge - J'ai dessoudé un d'une télécommande cassée (merci les enfants!) Récepteur infrarouge - J'ai obtenu le mien à partir d'un répéteur à distance Magic Eye Transistor - J'ai utilisé une résistance BC547 - J'ai utilisé une résistance variable de 1,5 k ohm réglée sur 1 k ohm Fils de cavalier de planche à pain - J'ai le mien à partir d'un enrouleur de câble RJ45 à âme pleine Côté ordinateur: ordinateur à utiliser comme serveur câble USB vers le logiciel Arduino: logiciel Arduino - à partir de la bibliothèque irremote arduino.cc - à partir de https://www.arcfn.com/2009/08/multi-protocol- infrarouge-remote-library.html (merci Ken, excellent travail !) Serveur web Apache avec PHP installé - apache.org Adresse IP interne - la mienne est 192.168.0.9 Image de votre télécommande - google ou une photo prise avec votre appareil photo. J'ai enregistré le mien en résolution 200x600
Étape 2: Construire le tableau
L'utilisation d'une maquette pour un arduino est fortement recommandée. J'ai monté mon Arduino et une planche à pain dans le même boîtier et j'ai câblé toutes les broches que j'utilise régulièrement directement à la planche à pain en permanence. Broches Arduino utilisées pour ce projet: 5v, masse Broches numériques 3, 11 (la broche 3 contrôle la LED IR, la broche 11 se connecte au récepteur IR)
Étape 3: Schéma
Ce schéma est très simple, 4 composants et 6 fils. Connexions LED IR: connectez l'une des pattes de la résistance à la broche numérique Arduino 3 Connectez l'autre patte de la résistance à la broche de base du transistor (la patte du milieu dans mon cas) Connectez l'émetteur du transistor à la terre Connectez le collecteur du transistor à la branche négative de la LED (jambe courte, côté plat de la LED) Connectez la branche positive (jambe longue, côté incurvé) de la LED aux connexions du récepteur IR à broche 5v (vous auriez besoin de trouver le brochage pour votre récepteur IR particulier): broche GND à la broche VS à la terre à la broche 5v VO à la broche numérique Arduino 11
Étape 4: Ajouter la bibliothèque Irremote au logiciel Arduino
irremote est une excellente bibliothèque écrite par Ken Shirriff et est disponible sur son blog à https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html Téléchargez la bibliothèque à partir de https://arcfn.com/files/IRremote.zip et installez-le comme vous le feriez pour n'importe quelle autre bibliothèque pour l'arduino. Son blog contient de nombreuses informations utiles sur la bibliothèque et sur la façon de l'installer.
Étape 5: Enregistrez les codes de vos télécommandes
Voici le début de la partie ennuyeuse (mais inévitable): appuyer sur chaque bouton de la télécommande, enregistrer la chaîne de sortie et la mapper sur la télécommande virtuelle. Vous n'avez besoin de le faire qu'une seule fois, comptez environ 20 minutes. Démarrez un éditeur de texte pour enregistrer votre sortie. Créez un nouveau document et tapez chaque bouton de votre télécommande, un par ligne: Power Up Down Left Right.. et cetera Démarrez l'IDE Arduino et cliquez sur "Files->Examples->IRremote->IRrecvDump" et téléchargez-le sur votre Arduino. Cet exemple videra les codes à distance sur le port série. Démarrez le moniteur du port série et appuyez sur une touche de votre télécommande. Vous verrez une chaîne apparaître dans la fenêtre du moniteur série: "Decoded *: * (* bits)". Copiez cette ligne et enregistrez-la dans votre document sur la ligne appropriée. Répétez jusqu'à ce que toutes vos clés soient stockées dans le fichier texte. Je sais à quel point ce morceau est amusant, je l'ai fait deux fois jusqu'à présent:P Nous devons maintenant faire une petite recherche et un remplacement dans le fichier texte: rechercher "Decoded" remplacer par "" rechercher ": 0x" remplacer par ", " rechercher " (" remplacer par ", " rechercher " bits) " remplacer par " " Donc pour une ligne telle que: Decoded NEC: 0x000110 (15 bits) nous devrions maintenant avoir une ligne qui dit: NEC, 000110, 15
Étape 6: créez la page Web pour votre télécommande
Nous devons maintenant mapper les boutons sur votre image de votre télécommande.
J'ai utilisé https://www.maschek.hu/imagemap/imgmap pour mapper les boutons et modifié le code que ce site Web vous donne pour le faire fonctionner.
Cliquez sur "Utiliser une image sur votre ordinateur: [choisir un fichier]", sélectionnez votre image, cliquez sur [télécharger], cliquez sur [accepter] Déposez des rectangles, des cercles, etc. sur chaque bouton. Pour HREF, mettez /remote.php?command= et la ligne pour ce bouton du document texte par exemple /remote.php?command=NEC, 000110, 15 Il serait sage (et aiderait énormément au débogage) si vous remplissiez également Alt: avec le nom du bouton mais c'est à vous de décider.
Répétez l'opération pour chaque bouton.
Terminé? Ensuite, nous continuerons. Au bas de cette page se trouve "Code", cliquez dessus et une boîte s'ouvrira montrant le code de l'imagemap. Copiez-le et collez-le dans un nouveau document texte. Ceci est la partie principale de notre page Web.
Voici ma page web complète, il suffit de remplacer le …
avec votre propre code ci-dessus et enregistrez-le sous le nom remote.php dans votre répertoire Web (/var/www sous linux) avec vos images de télécommande. Modifiez les lignes de vos propres images:
"https://www.w3.org/TR/html4/loose.dtd">
Contrôle LED Arduino
Étape 7: téléchargez le code de la télécommande sur votre Arduino
Créez un nouveau croquis et collez-y le code suivant: /* * WebRemote * Une LED IR doit être connectée à la broche 3 de l'Arduino PWM. * Version 0.1 juillet 2009 * Ce code est protégé par les droits d'auteur 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); retour obj; } booléen terminé = faux; char inData[64]; // Taille selon l'indice d'octet approprié = 0; #define EOP "\n" IRsend irsend; void setup() { Serial.begin(9600); Série << "Port série initialisé" << EOP; } boucle vide() { Chaîne pch, sType, sTemp; char inChar, sTest, k; int sBits; long sHex; int i, j; while(1) { while(Serial.available() > 0) { inChar = Serial.read(); if(index == 0) { pch = ""; } if(inChar == '\r' || inChar == '\n' || inChar == '/') // EOP { terminé = vrai; indice = 0; Pause; } else { if(index < 64) // Taille du tableau { pch += inChar; index++; } } } if(ended) { // Analyse les données dans inData ici… pch.toUpperCase(); i = pch.indexOf(' ') != -1 ? pch.indexOf(' '): pch.indexOf(', '); sType = pch.substring(0, i); je++; // ignore ', ' ou ' ' // je pointe maintenant vers le début de l'hexadécimal j = pch.lastIndexOf(' ') != -1 ? pch.lastIndexOf(' '): pch.lastIndexOf(', '); // j pointe maintenant vers ', ' ou ' ' après hex sHex = 0; 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'))) break; sHex *= 16; if(k >= '0' && k <= '9') sHex += (k - '0'); sinon si (k >= 'A' && k <= 'F') sHex += ((k - 'A') + 10); if(!((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; if(k >= '0' && k <= '9') sBits += (k - '0'); } if(sType.length()>0) { Serial << pch << EOP << "Type de code: "<< sType << " Hex: "; Serial.print(sHex, HEX); Série << " Bits: " << sBits; } sendIt(sType, sHex, sBits); pch = ""; terminé = 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(""))) { Serial << "Retarder" << EOP; retard (450); } délai(30); } }
Étape 8: Connectez-vous au serveur Web à partir de votre ordinateur
.. ou téléphone ou android ou ipad ou autre: allez sur https://webserver IP address/remote.php dans votre navigateur Pour moi l'adresse est https://192.168.0.9/remote.php mais la votre sera sans doute différente. Si tout fonctionne, vous devriez voir une image de votre télécommande avec des boutons sur lesquels vous pouvez cliquer.
Étape 9: Étape facultative: modifiez votre fichier d'hôtes pour le rendre plus facile à utiliser
Une étape que j'ai faite a été de modifier mon fichier hosts (/etc/hosts sous Linux, C:\Windows\System32\Drivers\etc\hosts sous Windows). Notez que ce fichier ne peut être édité que dans une invite de commande administrative (windows) ou par su (linux) Ajoutez la ligne ip.add.re.ss remote remplacez ip.add.re.ss par l'adresse IP du serveur et enregistrez le fichier. Vous devrez le faire sur chaque appareil pour lequel vous souhaitez accéder à la page Web avec le nom abrégé. Maintenant, vous pouvez accéder à la télécommande avec https://remote/remote.php C'est mon premier bon instructable, soyez doux et faites-moi savoir s'il y a des problèmes afin que je puisse les résoudre.
Conseillé:
Horloge cube multifonction basée sur la position : 5 étapes (avec images)
Horloge cube multifonction basée sur la position : Il s'agit d'une horloge basée sur Arduino dotée d'un écran OLED qui fonctionne comme une horloge avec la date, comme une minuterie de sieste et comme une veilleuse. Les différentes "fonctions" sont contrôlés par un accéléromètre et sont sélectionnés en faisant tourner l'horloge cubique
Gesture Hawk : Robot contrôlé par gestes manuels utilisant une interface basée sur le traitement d'images : 13 étapes (avec images)
Gesture Hawk : Robot contrôlé par les gestes de la main utilisant une interface basée sur le traitement d'images : Gesture Hawk a été présenté dans TechEvince 4.0 comme une simple interface homme-machine basée sur le traitement d'images. Son utilité réside dans le fait qu'aucun capteur supplémentaire ou portable, à l'exception d'un gant, n'est requis pour contrôler la voiture robotique qui fonctionne sur différents
Unité de télécommande GSM/SMS basée sur Arduino : 16 étapes (avec images)
Unité de télécommande GSM/SMS basée sur Arduino : ! ! ! AVIS ! ! !En raison de la modernisation de la tour de téléphonie mobile dans ma région, je ne peux plus utiliser ce module GSM. La nouvelle tour ne prend plus en charge les appareils 2G. Par conséquent, je ne peux plus apporter aucun soutien à ce projet. Avec une telle wi
Télécommande basée sur Arduino pour Eskate ou Hydrofoil : 5 étapes (avec photos)
Télécommande basée sur Arduino pour Eskate ou Hydrofoil : cette instructable vous montrera comment construire une télécommande physique à utiliser avec un eskate ou un hydroptère électrique, y compris tout le code et le matériel dont vous avez besoin. Il y a beaucoup de soudure, mais c'est aussi amusant à faire. Que peut faire la télécommande ? Co
Voiture RasbperryPi avec caméra FPV. Contrôle par navigateur Web : 31 étapes (avec images)
Voiture RasbperryPi avec caméra FPV. Contrôle par navigateur Web : nous allons construire une voiture 4x4 - la direction sera similaire à celle d'un tank - pour tourner un côté des roues tournera à une vitesse différente de l'autre. À la voiture sera placé la caméra sur un support spécial où nous pouvons changer la position de la caméra. Le robot sera c