trasmissione e ricezione stringhe telecomando IR

salve a tutti

volevo sapere se e' possibile far riconoscere ad un ricevitore IR (tipo IR38DM) stringhe come questa:

uint16_t          off  [227] ={3576,1560,608,1076,584,1100,608,288,584,332,580,316,572,1108,576,320,600,300,608,1076,608,1076,608,292,576,1124,520,372,576,320,576,1108,576,1116,580,316,580,1104,604,1080,632,280,560,336,572,1112,572,324,576,324,584,1100,608,288,576,336,556,340,576,320,612,288,580,316,576,336,572,324,576,316,616,284,608,308,556,340,572,324,576,316,588,336,556,336,556,340,572,324,572,328,580,316,576,1124,560,336,556,340,576,1108,572,1112,572,320,588,336,556,336,556,340,548,348,576,324,604,1080,604,1080,580,1104,580,1124,556,340,580,312,576,320,576,328,580,1100,608,288,576,1128,556,340,572,1112,548,344,576,1108,576,328,580,316,576,336,556,340,568,332,580,312,584,312,580,336,552,344,572,320,588,316,576,316,604,312,568,328,572,320,584,316,580,336,552,344,568,324,576,320,612,308,556,340,556,336,548,348,576,328,576,316,576,340,552,344,544,352,608,288,580,320,572,340,552,340,576,320,588,312,580,1104,580,1124,580,1104,556,340,556,340,568,1112,588};

trasmesse da un semplice trasmettitore IR per Arduino.

L'apparato, un condizionatore, riceve ed interpreta correttamente la stringa, il ricevitore IR38DM, montato su un nodeMCU dovrebbe fare altrettanto per gestire il feedback sul comando inviato.

Lo sketch per la trasmissione l'ho realizzato con la libreria IRremoteESP8266.h e IRsend.h e funziona bene, non riesco a capire pero' come fare lo sketch per il ricevitore.

grazie per l'aiuto
Davide

E se io la ricevessi carattere a carattere, e tale la inviassi alla nodmcu, che la ibterpreti?
O se io ka trasmettessi carattere a carattere?

Se il probkema é con che funzioni farlo...cerca nella libreria che non é possibile non ci siano

Certo che è possibile non vedo perché non debba. Io ho fatto sia ricevitore sia trasmettitore per il decode MySkyHD che ha una codifica pure più complessa...

Ma ci dovresti dire esattamente cosa stai usando (es. Arduino UNO, Mega, un WeMos D1, D1 mini...).

Visto che parli di libreria IRremoteESP8266 devo supporre che tu sia su WeMos. Ma in ogni caso tra gli esempi ci sono anche quelli per leggere, ad esempio IRrecvDump è utilissimo, caricalo, adatta il pin al tuo IR e vedi cosa ti dice quando premi i tasti (posta magari l'output).

Inoltre dovresti postare il tuo sketch che hai fatto per provare a ricevere, e spiegare meglio cosa fa (o NON fa)...

Infine anche il tipo di condizionatore, perché spesso questi per lo stesso tasto usano DUE codifiche alternate, una per accendere ed una per spegnere. Ma se carichi IRrecvDump lo puoi capire...

Silente:
E se io la ricevessi carattere a carattere, e tale la inviassi alla nodmcu, che la ibterpreti?
O se io ka trasmettessi carattere a carattere?
Se il probkema é con che funzioni farlo...cerca nella libreria che non é possibile non ci siano

A parte il tuo problema col tasto "L" :slight_smile: non si tratta di stringhe da mandare, ma sono sequenze di segnali IR da riconoscere....

Giuste le tue osservazioni.

Allora la scheda e' una nodeMCU, ed il condi usa solo una codifica per OFF o per ogni comando ...e' un modello vecchio.
Questo lo sketch (ho tolto le parti del framework che uso per la domotica cercando di mantenere la logica)

#include <ESP8266WiFi.h>
#include <IRremoteESP8266.h>
#include <IRsend.h>
IRsend irsend(4);
uint16_t          off  [227] ={3576,1560,608,1076,584,1100,608,288,584,332,580,316,572,1108,576,320,600,300,608,1076,608,1076,608,292,576,1124,520,372,576,320,576,1108,576,1116,580,316,580,1104,604,1080,632,280,560,336,572,1112,572,324,576,324,584,1100,608,288,576,336,556,340,576,320,612,288,580,316,576,336,572,324,576,316,616,284,608,308,556,340,572,324,576,316,588,336,556,336,556,340,572,324,572,328,580,316,576,1124,560,336,556,340,576,1108,572,1112,572,320,588,336,556,336,556,340,548,348,576,324,604,1080,604,1080,580,1104,580,1124,556,340,580,312,576,320,576,328,580,1100,608,288,576,1128,556,340,572,1112,548,344,576,1108,576,328,580,316,576,336,556,340,568,332,580,312,584,312,580,336,552,344,572,320,588,316,576,316,604,312,568,328,572,320,584,316,580,336,552,344,568,324,576,320,612,308,556,340,556,336,548,348,576,328,576,316,576,340,552,344,544,352,608,288,580,320,572,340,552,340,576,320,588,312,580,1104,580,1124,580,1104,556,340,556,340,568,1112,588};
 
void setup() {
  Initialize();
  irsend.begin();

  pinMode     (4, OUTPUT); 
  pinMode     (5, INPUT);

  void loop() {

    if(digitalRead(5)==HIGH)    
  {
   irsend.sendRaw(off, 227, 38);  
  }
  }

Per quanto riguarda IRrecvDump la risposta alla decodifica e' UNKNOWN, tanto e' che ho dovuto utilizzare AnalysIR per leggermi tutte le stringhe che mi servivano, salvarle per poi inserirle nello sketch