Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Mit dem Internet verbundener Infrarot-Replikator

Komponenten und Verbrauchsmaterialien

Particle Photon
× 1
Adafruit IR-Empfängerdiode
× 1
Adafruit LED - Infrarot 950nm
× 1
Arduino UNO
× 1
Teensy 3.1
× 1
Mikrochip-Technologie ATmega328
× 1
Mikrochip-Technologie ATtiny85
× 1
Espressif ESP8266 ESP-01
× 1
Bluz DK
× 1
RedBear Duo
× 1

Apps und Onlinedienste

Portier

Über dieses Projekt

Vor einiger Zeit habe ich angefangen, eine Infrarot-AC-Fernbedienung zu entschlüsseln, um eine Klimaanlage über WIFI zu steuern.

Ich habe auf diesem Weg eine Menge Dinge gelernt und ich wollte dieses Wissen mit euch allen teilen, falls es euch bei zukünftigen Projekten helfen kann (zukünftiges Ich:Ich schaue euch auch an). Ich habe ein Particle Photon verwendet, aber Sie können sich für eine andere MCU entscheiden, da die in diesem Projekt verwendete IRremote Arduino Library (von Ken Shirriff) viele andere unterstützt. Hier ist auch seine offizielle Seite.

Es gibt viel der Informationen auf dieser Seite, lesen Sie einige davon, um ein tieferes Verständnis der Funktionsweise von IR-Signalen zu erhalten, aber ich werde einige wichtige Punkte im nächsten Abschnitt wiedergeben.

Einige Hintergrundinformationen zu IR-Codes

Das Folgende ist eine Transkription des ursprünglichen Beitrags des Autors:

Eine IR-Fernbedienung funktioniert, indem sie die LED in einem bestimmten Muster ein- und ausschaltet. Um jedoch Interferenzen durch IR-Quellen wie Sonnenlicht oder Licht zu vermeiden, wird die LED nicht dauerhaft eingeschaltet, sondern mit einer Modulationsfrequenz (typischerweise 36, 38 oder 40 KHz) ein- und ausgeschaltet. Die Zeit, zu der ein moduliertes Signal gesendet wird, wird als Marke bezeichnet, und wenn die LED aus ist, wird als Leerzeichen bezeichnet.

Jede Taste auf der Fernbedienung ist mit einem bestimmten Code (normalerweise 12 bis 32 Bit) verknüpft und sendet diesen Code, wenn die Taste gedrückt wird. Wenn die Taste gedrückt gehalten wird, sendet die Fernbedienung normalerweise wiederholt den Tastencode. Bei einer NEC-Fernbedienung wird ein spezieller Wiederholungscode gesendet, wenn die Taste gedrückt gehalten wird, anstatt den Code wiederholt zu senden. Bei Philips RC5- oder RC6-Fernbedienungen wird bei jedem Tastendruck ein Bit im Code umgeschaltet; der Empfänger verwendet dieses Toggle-Bit, um festzustellen, wann eine Taste ein zweites Mal gedrückt wird.

Auf der Empfangsseite demoduliert der IR-Detektor dieses Signal und gibt ein Signal mit Logikpegel aus, das anzeigt, ob er ein Signal empfängt oder nicht. Der IR-Detektor funktioniert am besten, wenn seine Frequenz mit der des Senders übereinstimmt, aber in der Praxis spielt das keine große Rolle.

Sie sind jetzt bereit für den nächsten Schritt...

Bauen Sie die IR-Empfängerschaltung auf

Um Infrarotsignale zu dekodieren, benötigen Sie eine Infrarot-Empfängerdiode:

Und Sie bauen die Empfängerschaltung wie in der Bibliothek angegeben:

Hier ist die Pinbelegung:

Mein Steckbrett sah so aus:

Konzentrieren Sie sich vorerst darauf, die Empfängerdiode (die schwarze) anzuschließen und vergessen Sie den Sender (die transparente) - wir kümmern uns später darum.

Decodieren Sie einige IR-Signale

Da das Projekt die empfangenen Codes über die serielle Leitung ausgibt, müssen wir es an einen Computer anschließen. Schalten Sie das Photon mit einem USB-Kabel ein und verbinden Sie es mit einem USB-Port Ihres Computers. Jetzt ist ein sehr guter Zeitpunkt, um die angehängte Firmware zu flashen.

Öffnen Sie eine Konsole oder ein Terminal und verwenden Sie die Partikel-CLI, um den USB-Port zu überwachen.

HINWEIS: Wenn Sie die Particle CLI nicht installiert haben, folgen Sie bitte der Dokumentation hier.

In Ubuntu Linux musste ich Folgendes eingeben, um den seriellen Port des Photons zu überwachen:

$ sudo chmod 666 /dev/ttyACM0 $ serieller Partikelmonitor  

Abhängig von Ihrem Computer und Betriebssystem kann der Port einen anderen Namen haben und/oder der chmod muss möglicherweise nicht ausgeführt werden.

HINWEIS: Sie können jede andere Software verwenden, um Daten über den seriellen USB-Port Ihres Computers zu empfangen.

Nachdem Sie dies getan haben, können Sie die Fernbedienung, die Sie decodieren möchten, auf die IR-Empfängerdiode (die schwarze LED-ähnliche Komponente) richten. Drücken Sie die Tasten darauf und überprüfen Sie, was in der Konsole gedruckt ist.

Wenn alles gut geht, erhalten Sie so etwas:

1FEA05F29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,1550,500,500,50,50,450,550,500,550,1500,500,500,550,500,500,500,550,500,1550,500,500,50,50,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,50,50,500,50,0,54550,150500,150,0,54550,150500,150,0,54550,150500,150,0,545 ,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0 ,0,0,0,0,0,0,ENDE  
  • Erste Zeile (1FEA05F) und dritte Zeile:Vergiss sie vorerst
  • Zweite Zeile:Diese Zeile druckt den von der Fernbedienung gesendeten IR-Befehl

Unser erster dekodierter IR-Befehl

Sprechen wir über den empfangenen IR-Befehl:

29168950,8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,500,550,500,50500,50 

Wir können den ersten Wert, in diesem Fall 29168950, verwerfen, da die IR-Bibliothek Folgendes festlegt:"der Empfangspuffer beginnt mit der Dauer des Lückenraums vor dem ersten Zeichen ". Diese Dauer ist uns egal, da es die Zeit ist, die zwischen unseren Tests verstrichen ist oder Sie eine Taste auf der Fernbedienung gedrückt haben.

Daher ist aus der empfangenen Ausgabe dies wirklich interessant und prägt den IR-Befehl:

8500,4050,500,1500,550,500,550,450,550,500,500,1550,500,500,550,500,500,500,550,500,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,1500,550,500,500,500,550,500,500,550,450,550,500,550,1500,500,500,550,500,500,500,550,500,500,550,500,1500,550,150,500,50,45,50,50,50,50,50,500,1500,550,150,5050,45500,0,550,0,550,150,5050,45500, 

Diese Zahlen repräsentieren die Dauer der Infrarotimpulse in Mikrosekunden. Wenn wir wollten, könnten wir diesen Befehl mit dem folgenden Code senden:

function sendIt() { unsigned int ircommand[59]={8550,4000,550,1500,550,450,550,500,500,550,500,1550,500,500,500,500,550,500,500,500,550,500,500,500,550,500,500,1500,550,500,500,50,50,50,50500,150,500,550,50,50500,150,500,550,50,50500,150,500,550,50500,500, ,500,500,550,500,500,500,550,450,550}; irsend.sendRaw(ircommand,59,38); } 

Aber dafür müssen wir die Senderschaltung aufbauen. Machen wir das als nächstes.

Bauen Sie die IR-Senderschaltung auf

Die einfachste Schaltung sieht so aus:

Diese Schaltung gibt Ihnen jedoch nur weniger als einen Meter Reichweite.

Wenn Sie können, verdrahten Sie eine Schaltung wie diese unten für eine verbesserte Reichweite (ca. 10 Meter):

Dies ist die Senderseite meiner Schaltung:

Testen des IR-Senderkreises

Ich habe der Firmware ein paar Funktionen hinzugefügt, um die Lautstärke eines Samsung-Fernsehers zu regeln. Auf diese Weise können Sie testen, ob Ihre Senderschaltung funktioniert, falls Sie einen Samsung-Fernseher in der Nähe haben.

Richten Sie einfach Ihre Sender-LED auf Ihren Fernseher und klicken Sie auf die Funktionen sendSamsungVolumeUp() und sendSamsungVolumeDown().

HINWEIS: Denken Sie daran, dass Sie mit Ihrer Handykamera überprüfen können, ob die IR-LED sendet, da dort IR angezeigt wird:

Bessere Lesbarkeit der IR-Befehle

Wenn wir Werte um 500 mit einer 0 und 1500 mit einer 1 identifizieren, wobei diese Auswahl willkürlich ist und auch Werte über 5000 und 2 Werte um 4000 zuweisen, erhalten wir folgende Darstellung:

3,3,2,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1, 0,0,0,1,0,0,0,0,0,0,0,0,0,ENDE 

Denken Sie jetzt daran, dass in dieser völlig willkürlichen Codierung:

  • 3 bedeutet einen Puls von 8.500 Mikrosekunden
  • 2 bedeutet einen Impuls von 4000 Mikrosekunden
  • 1 bedeutet einen Puls von 1500 Mikrosekunden
  • 0 bedeutet einen Impuls von 500 Mikrosekunden

Warum in Zahlen kodieren, fragen Sie sich vielleicht?

Es hilft, Befehle zu visualisieren und zu vergleichen, hoffe ich. Auf diese Weise wird es einfacher, Impulse zu vergleichen, die sich zwischen verschiedenen Befehlen ändern oder gleich bleiben.

Beispiel:Sie möchten vergleichen, was sich zwischen einem Befehl zum Einstellen der Temperatur auf 18 und 19 Grad bei einer AC-Fernbedienung ändert? Einfacher, wenn Sie Einsen und Nullen haben.

Ich mag auch dieses Format zum Speichern der IR-Befehle im Firmware-Code. Denken Sie daran, sie direkt vor dem Senden in Pulse umzuwandeln (indem Sie die Funktion convertToPulseDuration() in der Firmware aufrufen).

Ressourcen lesen

Ich habe viele Seiten gelesen, um das Thema zu verstehen. Hier ist eine Liste von einigen davon:

  • Reverse Engineering eines IR-Fernbedienungsprotokolls einer Klimaanlage
  • Verwenden beliebiger Fernbedienungen mit der arduino IRremote-Bibliothek
  • dieser Thread in der Particle-Community
  • Das IR-Protokoll der Fernbedienungen von Klimaanlagen verstehen
  • dieser Blog über Adafruit

Fazit

Mit etwas Arbeit, einer MCU und ein paar Komponenten werden Sie in der Lage sein, viele der Fernbedienungen, die Sie in Ihrem Haus haben, zu entschlüsseln und zu replizieren. Mit einigen Einschränkungen können Sie all diese Geräte von Ihrem Telefon, Tablet, Laptop, Computer aus steuern und sogar einige einfache Automatisierungen für sie erstellen. Cool, oder?

Jetzt können Sie darüber nachdenken, Blynk hinzuzufügen, eine App im Ionic Framework zu erstellen, mit Google Now oder Alexa darauf zu sprechen oder sie mit Porter zu steuern.

Ich habe vor, dieses Wissen anzuwenden, um einige Geräte im Haus zu steuern, und ich hoffe, in Zukunft weitere Zuschreibungen zu erstellen. Bleiben Sie dran!

Update vom 5. Februar 2018:

Hier ist eine Umsetzung dieses Projekts:ein Infrarotkamin, der über das Internet gesteuert wird.

Brauchen Sie Hilfe?

Wenn Sie professionelle Hilfe bei Ihren Projekten benötigen, zögern Sie nicht, mir unter [email protected] eine E-Mail mit Ihren Anforderungen zu schreiben. Danke!

Code

InfrarotReplikator
der Quellcodehttps://github.com/gusgonnet/infraredReplicator

Schaltpläne


Herstellungsprozess

  1. Wie Güterwagen mit dem Internet verbunden werden
  2. Internet der Dinge und die Rolle von 5G in vernetzten Fahrzeugen
  3. Cybersicherheit und das Internet der Dinge:Zeit für Biometrie?
  4. Internet der Dinge:Ein Netz der vernetzten Welt
  5. Wie können wir Bildung mit dem Internet der Dinge vereinfachen?
  6. Sprungbewegungs-Laserpanzer!
  7. UnifiedWater v1
  8. Pi-Arduino Internetradio
  9. Vernetzte Luftkompressoren, Industrie 4.0 und das Internet der Dinge
  10. Druckluft und Gas A-Z Vlog:IoT, Internet 4.0 und vernetzte Kompressoren