Inhaltsverzeichnis:
- Schritt 1: Voraussetzungen
- Schritt 2: Aufbau des Boards
- Schritt 3: Schaltplan
- Schritt 4: Irremote-Bibliothek zur Arduino-Software hinzufügen
- Schritt 5: Notieren Sie die Codes von Ihren Fernbedienungen
- Schritt 6: Erstellen Sie die Webseite für Ihre Fernbedienung
- Schritt 7: Laden Sie den Fernbedienungscode auf Ihren Arduino hoch
- Schritt 8: Verbinden Sie sich von Ihrem Computer mit dem Webserver
- Schritt 9: Optionaler Schritt: Bearbeiten Sie Ihre Hosts-Datei, um die Verwendung zu vereinfachen
Video: Arduino browserbasierte Fernbedienung (Linux) - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
Wir haben Kinder. Ich liebe sie bis ins kleinste Detail, aber sie verstecken die Fernbedienung für den Satelliten und den Fernseher, wenn sie die Kinderkanäle einschalten. Nachdem dies mehrere Jahre lang täglich passiert war und meine geliebte Frau mir erlaubt hatte, zu Weihnachten einen Arduino zu haben, entschied ich, dass es an der Zeit war, mit dem Arduino etwas Nützliches (in ihren Augen!) Hier haben wir also den Höhepunkt davon: eine webbasierte Schnittstelle zum Arduino, die meine Fernbedienungen ersetzt und von meinem internen Netzwerk aus zugänglich ist. Wenn ich herausfinde, warum mein Ethernet-Schild meinem Arduino nicht erlaubt, eine Skizze zu behalten, schreibe ich eine neue Skizze, die den Ethernet-Schild als Webserver verwendet, was bedeutet, dass ich keinen Apache auf meinem Computer installieren muss. Bleiben Sie dran, ich werde da sein!
Schritt 1: Voraussetzungen
Hardware: Arduino-Seite: Arduino - Ich verwende ein Arduino Uno R2 Breadboard - Ihr lokaler Elektronikladen oder die Küche, wenn Sie ein authentisches Steckbrett wünschen Montagegehäuse - Ich habe ein altes Plastikgehäuse mit einem transparenten Deckel verwendet Komponenten: Infrarot-LED - Ich habe entlötet einer von einer kaputten Fernbedienung (danke Kinder!) Infrarotempfänger - ich habe meinen von einem Magic Eye Remote Extender bekommen von einer massiven RJ45-Kabeltrommel Computerseite: Computer zur Verwendung als Server USB-Kabel zu Arduino Software: Arduino-Software - von arduino.cc irremote-Bibliothek - von https://www.arcfn.com/2009/08/multi-protocol- infrarot-remote-library.html (danke Ken, tolle Arbeit!) Apache-Webserver mit installiertem PHP - apache.org Interne IP-Adresse - meine ist 192.168.0.9 Bild deiner Fernbedienung - google oder ein Bild mit deiner Kamera. Ich habe meine mit einer Auflösung von 200x600 gespeichert
Schritt 2: Aufbau des Boards
Die Verwendung eines Steckbretts für ein Arduino wird dringend empfohlen. Ich habe mein Arduino und ein Steckbrett im selben Gehäuse montiert und alle Pins, die ich regelmäßig verwende, dauerhaft direkt mit dem Steckbrett verdrahtet. Für dieses Projekt verwendete Arduino-Pins: 5V, Masse Digitale Pins 3, 11 (Pin 3 steuert die IR-LED, Pin 11 verbindet sich mit dem IR-Empfänger)
Schritt 3: Schaltplan
Dieses Schema ist sehr einfach, 4 Komponenten und 6 Drähte. IR-LED-Anschlüsse: Verbinden Sie eines der Beine des Widerstands mit dem digitalen Arduino-Pin 3 Verbinden Sie das andere Bein des Widerstands mit dem Basisstift des Transistors (in meinem Fall das mittlere Bein) Verbinden Sie den Emitter des Transistors mit Masse Verbinden Sie den Kollektor des Transistors mit dem negativen Bein der LED (kurzes Bein, flache Seite der LED) Verbinden Sie das positive Bein (langes Bein, gebogene Seite) der LED mit den 5V-Pin-IR-Empfängeranschlüssen (Sie müssen die Pinbelegung für finden) Ihr spezieller IR-Empfänger): GND-Pin an Masse VS-Pin an 5V VO-Pin an Arduino Digital-Pin 11
Schritt 4: Irremote-Bibliothek zur Arduino-Software hinzufügen
irremote ist eine großartige Bibliothek, die von Ken Shirriff geschrieben wurde und in seinem Blog unter https://www.arcfn.com/2009/08/multi-protocol-infrared-remote-library.html verfügbar ist. Laden Sie die Bibliothek von https://arcfn herunter.com/files/IRremote.zip und installieren Sie es wie jede andere Bibliothek für das Arduino. Sein Blog enthält viele hilfreiche Informationen über die Bibliothek und deren Installation.
Schritt 5: Notieren Sie die Codes von Ihren Fernbedienungen
Hier beginnt der langweilige (aber unvermeidliche) Teil: Jede Taste auf der Fernbedienung drücken, den Ausgabestring speichern und auf die virtuelle Fernbedienung zuordnen. Sie müssen dies nur einmal tun und nehmen ungefähr 20 Minuten in Anspruch. Starten Sie einen Texteditor, um Ihre Ausgabe zu speichern. Erstellen Sie ein neues Dokument und geben Sie jede Taste auf Ihrer Fernbedienung ein, eine pro Zeile: Power Up Down Left Right.. et cetera Starten Sie die Arduino IDE und klicken Sie auf "Files->Examples->IRremote->IRrecvDump" und laden Sie sie hoch dein Arduino. In diesem Beispiel werden die Remote-Codes an den seriellen Port ausgegeben. Starten Sie den Serial Port Monitor und drücken Sie eine Taste auf Ihrer Fernbedienung. Im seriellen Monitorfenster wird eine Zeichenfolge angezeigt: "Dekodiert *: * (* Bits)". Kopieren Sie diese Zeile und speichern Sie sie in der entsprechenden Zeile in Ihrem Dokument. Wiederholen Sie dies, bis Sie alle Ihre Schlüssel in der Textdatei gespeichert haben. Ich weiß, wie viel Spaß dieses Bit macht, habe ich bisher zweimal gemacht:P Wir müssen jetzt ein wenig in der Textdatei suchen und ersetzen: Suche nach "Dekodiert" ersetzen durch "" Suche nach ":0x" ersetzen durch ", " suchen nach " (" ersetzen durch ", " suchen nach " Bits)" ersetzen durch "" Also für eine Zeile wie: Decoded NEC: 0x000110 (15 Bits) sollten wir jetzt eine Zeile haben, die sagt: NEC, 000110, fünfzehn
Schritt 6: Erstellen Sie die Webseite für Ihre Fernbedienung
Wir müssen jetzt die Tasten auf Ihrem Bild Ihrer Fernbedienung zuordnen.
Ich habe https://www.maschek.hu/imagemap/imgmap verwendet, um die Schaltflächen zuzuordnen, und den Code, den die Website Ihnen zur Verfügung stellt, modifiziert, damit es funktioniert.
Klicken Sie auf „Bild auf Ihrem Computer verwenden: [Datei auswählen]“, wählen Sie Ihr Bild aus, klicken Sie auf [Hochladen], klicken Sie auf [Übernehmen] Ziehen Sie Rechtecke, Kreise usw. auf jede Schaltfläche. Geben Sie für HREF /remote.php?command= und die Zeile für diese Schaltfläche aus dem Textdokument ein, zum Beispiel /remote.php?command=NEC, 000110, 15 Es wäre klug (und hilft immens beim Debuggen), wenn Sie auch ausfüllen Alt: mit dem Namen der Schaltfläche, aber das liegt an Ihnen.
Wiederholen Sie dies für jede Taste.
Alles erledigt? Dann machen wir weiter. Unten auf dieser Seite ist "Code", klicken Sie darauf und es öffnet sich ein Feld mit dem Code für die Imagemap. Kopieren Sie das und fügen Sie es in ein neues Textdokument ein. Dies ist der Hauptteil unserer Webseite.
Hier ist meine komplette Webseite, ersetze einfach die …
mit Ihrem eigenen Code oben und speichern Sie ihn als remote.php in Ihrem Webverzeichnis (/var/www unter Linux) zusammen mit Ihren Fernbedienungsbildern. Ändern Sie die Zeilen für Ihre eigenen Bilder:
"https://www.w3.org/TR/html4/loose.dtd">
Arduino LED-Steuerung
Schritt 7: Laden Sie den Fernbedienungscode auf Ihren Arduino hoch
Erstellen Sie eine neue Skizze und fügen Sie den folgenden Code ein: /* * WebRemote * Eine IR-LED muss an Arduino PWM-Pin 3 angeschlossen werden. * Version 0.1 Juli 2009 * Dieser Code ist urheberrechtlich geschützt von 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); Rückgabeobjekt; } boolesch beendet = false; char inData[64]; // Größe entsprechend Byteindex = 0; #define EOP "\n" IRsend irsend; Void setup () { Serial.begin (9600); Seriell << "Serieller Port initialisiert" << EOP; aufrechtzuerhalten. Void Schleife () { String pch, sType, sTemp; char inChar, sTest, k; int-sBits; langes sHex; int i, j; while(1) { while(Serial.available() > 0) { inChar = Serial.read(); if(index == 0) { pch = ""; } if(inChar == '\r' || inChar == '\n' || inChar == '/') // EOP { beendet = true; Index = 0; brechen; aufrechtzuerhalten. Else { if(index < 64) // Array-Größe { pch += inChar; index++; } } } if(ended) { // Analysiere die Daten in inData hier… pch.toUpperCase(); i = pch.indexOf(' ') != -1 ? pch.indexOf(' '): pch.indexOf(', '); sType = pch.substring(0, i); i++; // überspringen ', ' oder ' ' // i zeigt jetzt auf den Anfang von Hex j = pch.lastIndexOf(' ') != -1 ? pch.lastIndexOf(' '): pch.lastIndexOf(', '); // j zeigt jetzt auf ', ' oder ' ' nach 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'))) Pause; sHex *= 16; if(k >= '0' && k <= '9') sHex += (k - '0'); sonst if (k >= 'A' && k <= 'F') sHex += ((k - 'A') + 10); if(!((k >= '0' && k = 'A' && k <= 'F'))) Pause; } sTemp = pch.substring(j+1); sBit = 0; for(i = 0; i < sTemp.length(); i++) { k = sTemp; sBit *= 10; if(k >= '0' && k <= '9') sBits += (k - '0'); } if(sType.length()>0) { Seriell << pch << EOP << "Codetyp: "<< sType << " Hex: "; Serial.print (sHex, HEX); Seriell << " Bits: " << sBits; } sendIt (sType, sHex, sBits); pch = ""; beendet = 0; } } } void sendIt(String sType, long sHex, int sBits) { for(int i = 0; i < 2; i++) { if(sType.equals(String("RC6"))) {irsend.sendRC6(sHex, sBit); aufrechtzuerhalten. Sonst if (sType.equals(String("RC5"))) {irsend.sendRC5(sHex, sBits); aufrechtzuerhalten. Sonst 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(""))) { Seriell << "Verzögerung" << EOP; Verzögerung (450); } Verzögerung (30); } }
Schritt 8: Verbinden Sie sich von Ihrem Computer mit dem Webserver
.. oder Telefon oder Android oder iPad oder was auch immer: Gehen Sie in Ihrem Browser zu https://webserver IP address/remote.php Für mich ist die Adresse https://192.168.0.9/remote.php, aber Ihre wird zweifellos anders sein. Wenn alles funktioniert, sollten Sie ein Bild Ihrer Fernbedienung mit Schaltflächen sehen, auf die Sie klicken können.
Schritt 9: Optionaler Schritt: Bearbeiten Sie Ihre Hosts-Datei, um die Verwendung zu vereinfachen
Ein Schritt, den ich tat, war, meine Hosts-Datei zu bearbeiten (/etc/hosts unter Linux, C:\Windows\System32\Drivers\etc\hosts unter Windows). Beachten Sie, dass diese Datei nur in einer administrativen Eingabeaufforderung (Windows) oder von su (Linux) bearbeitet werden kann. Fügen Sie die Zeile ip.add.re.ss remote hinzu Ersetzen Sie ip.add.re.ss durch die Server-IP-Adresse und speichern Sie die Datei. Sie müssen dies auf jedem Gerät tun, mit dem Sie auf die Webseite mit dem Kurznamen zugreifen möchten. Jetzt können Sie mit https://remote/remote.php auf die Fernbedienung zugreifen. Dies ist mein erstes richtiges instructable, seien Sie sanft und lassen Sie mich wissen, wenn es irgendwelche Probleme gibt, damit ich sie beheben kann.
Empfohlen:
Installieren des Windows-Subsystems für Linux (WSL): 3 Schritte
Installieren des Windows-Subsystems für Linux (WSL): Diese Anleitung soll Benutzern helfen, das Windows-Subsystem für Linux auf ihrem Windows 10-Computer zu installieren. Die spezifische Linux-Distribution, die dieser Befehlssatz verwendet, heißt Ubuntu. Schauen Sie hier für eine Übersicht über die verschiedenen Linux
TV-Fernbedienung wird zur RF-Fernbedienung -- NRF24L01+ Tutorial: 5 Schritte (mit Bildern)
TV-Fernbedienung wird zur RF-Fernbedienung || NRF24L01+ Tutorial: In diesem Projekt zeige ich Ihnen, wie ich den beliebten nRF24L01+ RF IC verwendet habe, um die Helligkeit eines LED-Streifens drahtlos über drei nutzlose Tasten einer TV-Fernbedienung einzustellen. Lass uns anfangen
So erstellen Sie ein Linux-Boot-Laufwerk (und wie man es verwendet): 10 Schritte
So erstellen Sie ein Linux-Boot-Laufwerk (und wie man es verwendet): Dies ist eine einfache Einführung in die ersten Schritte mit Linux, insbesondere Ubuntu
So installieren Sie Linux (Anfänger beginnen hier!): 6 Schritte
So installieren Sie Linux (Anfänger beginnen hier!): Was genau ist Linux? Nun, lieber Leser, Linux ist ein Tor zu einer Welt ganz neuer Möglichkeiten. Vorbei sind die Zeiten, in denen OSX den Spaß am Besitz eines Computers nahm. Vorbei sind die törichten Notationen von Sicherheit durch Windows 10. Jetzt sind Sie an der Reihe
So halten Sie Ihren Hund davon ab, Ihre Fernbedienung zu kauen – wikiHow
Wie Sie Ihren Hund davon abhalten, Ihre Fernbedienung zu kauen: Haben Sie es satt, dass Ihr Haustier Ihre einzige R&R-Quelle stiehlt, um es in Ihrem Garten oder unter Ihren Decken in Ihrem Bett zerknittert zu finden? Haben Sie es satt, diese verdammte Fernbedienung auf dem Sofa zu verlieren? es leid, mit Ihrem Ehepartner darüber zu streiten, wer es verlassen hat