NEWS
(gelöst)ioBroker mit jeder IR-Fernbedienung (Arduino-USB)
-
Hallo,
ich versuche einen Arduino (Mega2560) per USB mit ioBroker zum laufen zu bringen.
Möchte einen IR-Receiver auslesen und diesen Wert weitergeben. Es klappt auch soweit, dass ich mit dem Arduino auf dem seriellen Monitor sehe das ich eine Taste gedrückt habe.
Ich sehe dieses auch im LOG von ioBroker, also Verbindung ist vorhanden.mysensors.0 2020-06-07 20:32:21.798 warn (11632) Wrong serial data: 735876127 mysensors.0 2020-06-07 20:32:20.981 warn (11632) Wrong serial data: 3305246814 mysensors.0 2020-06-07 20:16:10.654 warn (11632) Wrong serial data: 3216 mysensors.0 2020-06-07 20:16:08.181 warn (11632) Wrong serial data: 544 mysensors.0 2020-06-07 20:16:07.443 warn (11632) Wrong serial data: 2592Kapiere absolut nicht wie ich den Sketch für mysensors ändern muss, dass die Werte in eine Variable abgespeichert werden.
Hier der Sketch
#include <IRremote.h> const int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ Serial.begin(115200); irrecv.enableIRIn(); } void loop(){ if (irrecv.decode(&results)){ if ( results.value != 4294967295){ Serial.println(results.value, DEC); } irrecv.resume(); } }Möchte damit auslesen wenn eine Taste einer IR Fernbedienung betätigt wird um eine entsprechende Aktion zu starten.
Hilfe oder ein verständliches Beispiel Sketch wären super. WIe gesagt verstehe das leider aktuell noch nicht wie der Sketch aussehen muss.Danke im vorab
Ein Klaus -
Es funktioniert ohne Probleme
Es gibt wohl "Wrong serial data" Meldungen,diese können aber über das entfernen der Serial.print Anweisung im Sketch entfernt werden. Nutze sie aktuell nur um nachzuvollziehen welchen Code er empfangen hat.
Kann jetzt mit der Fernbedienung z.B. das Licht schalten.
Funktioniert mit einem Arduino Uno über USB + einen IR Receiver an Pin 11.Hier der Sketch
// Enable debug prints to serial monitor #define MY_DEBUG // Enable serial gateway #define MY_GATEWAY_SERIAL #include <MySensors.h> #include <IRremote.h> const int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); decode_results results; MyMessage msgIrReceive(RECV_PIN, V_IR_RECEIVE); void setup(){ irrecv.enableIRIn(); } void presentation() { // Send the sketch version information to the gateway and Controller sendSketchInfo("IR Empfang", "1.0"); // Register all sensors to gateway (they will be created as child devices) present(RECV_PIN, S_IR); } void loop() { if (irrecv.decode(&results)){ //Taste dauerhaft drücken abfangen if ( results.value != 4294967295){ Serial.println(results.value, DEC); send(msgIrReceive.set(results.value)); } delay(200); irrecv.resume(); } }Vielleicht bekomme ich es noch schöner hin, aber wie gesagt erstmal geht es.
Tipp: Wenn man die Fernbedienung nicht genau drauf hält hat er einen anderen Code.
Diesen habe ich ebenfalls genutzt. So kann ich schalten und walten auch wenn ich die FB nur ungefähr in die Richtung halte.Hier ein Beispiel Blockly

Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
