Télécommander une clim Fujitsu

Bonjour,
je cherche a télécommander en infrarouge ma clim Fujitsu.

j'ai bien sur vu plusieurs sujets concernant cette demande, mais bien trop complexe pour mon niveau en arduino.
j'ai aussi joué avec la télécommande IR livrée avec le kit de démarrage Arduino, mais j'ai aussi compris que le codage était bien plus complexe pour la clim.
Par ex, avec ma telco de la tv, je recupere des codes communs a celle du kit pour certaines touches, mais celle du kit n'est pas comprise par la tv .

je cherche donc soit un site ou ceci est expliqué pour les newbies, ou un code avec la librairie qui va bien pour juste commander me marche / arrêt.

Merci de votre aide .

Vous avez la télécommande de ce climatiseur ?

oui.

Dans ce cas, la librairie IRremote fournit un exemple de code qui permet d'enregistrer ce qu'envoie un télécommande et de le décoder. Tu devrais pouvoir l'utiliser pour récupérer les codes envoyés par ta télécommande et les faire rejouer par ton Arduino.

1 Like

c'est ce que j'avais en tête en posant la question.

je ne sais pas si on parle de la meme chose, mais avec cette librairie, j'ai fait cet exemple :

#include <IRremote.h>
int PIN_IR = 8;
int PIN_LED = 7;
int valeur;

void setup ()
{
Serial.begin (9600); // Initialise le port COM à 9600 bds
IrReceiver.begin(PIN_IR); // Initialisation du récepteur IR
pinMode(7,OUTPUT); // Initialise la sortie led
}

void loop () {

if (IrReceiver.decode ()) {
valeur = IrReceiver.decodedIRData.command; // valeur en decimale
Serial.println (valeur); // Affiche la valeur de la télécommande IR reçu
if (valeur == 22) {
digitalWrite ( 7, HIGH);
}
else if (valeur == 8) {
digitalWrite(7,LOW);
}

IrReceiver.resume (); // Réception de la valeur IR suivante
}
delay(100);
}

avec la telecommande du kit, ca fonctionne bien, a chaque touche, ca donne une valeur a 2 chiffres.
Mais ... quand je scanne ma telecommande de la TV, ca donne aussi des valeurs 2 chiffres, parfois communes avec la telco du kit , mais en vrai, ca n'est pas les memes codes car la telco du kit n'est pas reconnue par la tv ( pour les codes communs )
j'en deduis que la methode pour enregistrer le code d'une touche n'est pas la bonne ou du moins suffisante pour des telecommandes plus sofistiquées.

Merci de prendre quelques minutes pour lire "Les bonnes pratiques du forum francophone" et les appliquer.

En particulier, la mise en forme du code avec des balises en cliquant sur l'icône <code/>

La structure qui décrit le code est bcp plus complexe que juste la valeur de la commande

struct IRData {
    decode_type_t protocol;     // UNKNOWN, NEC, SONY, RC5, PULSE_DISTANCE, ...
    uint16_t address;           // Decoded address
    uint16_t command;           // Decoded command
    uint16_t extra;             // Used for Kaseikyo unknown vendor ID. Ticks used for decoding Distance protocol.
    uint16_t numberOfBits;      // Number of bits received for data (address + command + parity) - to determine protocol length if different length are possible.
    uint8_t flags;              // IRDATA_FLAGS_IS_REPEAT, IRDATA_FLAGS_WAS_OVERFLOW etc. See IRDATA_FLAGS_* definitions
    IRRawDataType decodedRawData;    // Up to 32 (64 bit for 32 bit CPU architectures) bit decoded raw data, used for sendRaw functions.
    uint32_t decodedRawDataArray[RAW_DATA_ARRAY_SIZE]; // 32 bit decoded raw data, to be used for send function.
    irparams_struct *rawDataPtr; //  Pointer of the raw timing data to be decoded. Mainly the data buffer filled by receiving ISR.
};

Donc c’est normal que la télécommande du kit ne fonctionne pas pour la TV meme avec la même commande si par exemple le protocole est différent

Il y a des exemples qui donnent plus d’infos en réception. Essayez les


Sinon Merci d’éditer votre post en utilisant le :pencil2: dans la barre d’outil juste sous votre post et rajoutez les balises de de code :

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l’icône <code/> dans la barre d’outils pour indiquer que c’est du code

(Assurez vous aussi d’indenter le code correctement dans l’IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

Comme mentionné il serait bon de (re)lire les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Bonjour, désolé !
la présentation c'était déjà fait,
le code dans "code" je n'avais pas compris ce que ca faisait de plus.
je viens de le mettre a jour.

j'avoue avoir découvert aujourd'hui le verbe "indenter" !
je ne ferai la prochaine fois !

je viens de comprendre en regardant une video de "electro bidouilleur" qu'en effet, il y a au moins 2 infos, le code de la commande et le code d'identification de la telecommande .
et de plus , une telco de clim est plus complexe car elle envois en meme temps, plusioeurs infos .
sans compter les differents protocoles .

j'avance ... doucement !

rien ne vous empêche d'éditer votre post et d'indenter :wink:

Bon, de toutes façons mon exemple ne sert a rien car j'ai compris la question des codes et numéros de télécommandes etc ...

mon problème , c'est que je débute et ne saisis pas tout .

en fouillant sur le forum, je decouvre le lien :

: Arduino-IRremote/examples/ReceiveDemo at master · Arduino-IRremote/Arduino-IRremote · GitHub

qui devrait me permettre de savoir quel est le type de protocole de ma telco.

mais la compilation de "receivedemo.ino" me sort une erreur concernant :

#include "PinDefinitionsAndMore.h" // Define macros for input and output pin etc.

je ne sais pas ce que je dois faire avec ca , d'autant plus que si je comprends bien, ca ne sert juste qu'a definir automatiquement les pin entree et sortie des IR ?
si c'est que ca, je peux ecrire les adresses moi meme dans le code ... j'ai essayé, mais il n'y a pas que cela.

existe t'il un exemple simple de decodeur de telco ?

edit : j'ai fini par comprendre qu'il faut mettre le .h dans le repeertoire du .ino !

a suivre ...

Il faut que dans le répertoire du sketch vous copiez aussi le fichier en question et que vous le modifiez pour tenir compte de là où vous avez branché le module récepteur.

Si vous utilisez les pins par défaut qui sont recommandées dans la bibliothèque je pense qu’il n’y a rien à modifier, le .h s’adapte à la carte que vous avez choisie pour la compilation (c’est pour ça qu’il est si compliqué).

Les pins en question

Donc ça vaut le coup de tester juste comme cela, si vous avez un UNO vous branchez le récepteur IR sur la broche 2 comme dit ligne 32 du fichier .h

Bonjour.

Ok. J'ai en effet branché le récepteur en 2.

Qu'est le "tone" a brancher en prise 4 ?

Ça fonctionne, je décodé mes télécommandes, et comprends pourquoi est ce si complexe , surtout la clim !

Bon, mon objectif maintenant :

Enregistrer les codes pour allumer et éteindre la clim ( en mode auto ( chauffage ou refroidissement ) 20 degrés, et auto pour le fan .) . Et comprendre !

Ensuite, je passerai a la partie emission.

Ce n'est pas simple dans le sens où on trouve beaucoup de chose sur le net, mais d'un niveau de complexité trop élevé pour mon niveau.

Je mettrai ici l'évolution de mon travail, j'espère que ça servira au prochain qui débute ! :slight_smile:

Je crois que c’est pour un piezo pour faire beep :wink:

Super

Bonjour,

avec ma telecommande de clim, ca m'affiche ca via "serial print " pour le bouton ON/OFF :

.
11:15:54.618 -> Protocol=PulseDistance Raw-Data=0x5B200000 128 bits LSB first
11:15:54.683 -> Send on a 8 bit platform with:
11:15:54.716 -> uint32_t tRawData[]={0x10006314, 0x3009FE10, 0x451, 0x5B200000};
11:15:54.815 -> IrSender.sendPulseDistanceWidthFromArray(38, 3300, 1600, 400, 1200, 400, 400, &tRawData[0], 128, PROTOCOL_IS_LSB_FIRST, , );
.

Que dois je en déduire , qu'il suffit, d'envoyer la commande IrSender.sendOulseDihstanceWidthFrimArray( xxxxx ); proposée via un emetteur IR pour que ca reproduise la meme commande ?

avec quel exemple ?

avec cette ligne de code :slight_smile:

IrSender.sendPulseDistanceWidthFromArray(38, 3300, 1600, 400, 1200, 400, 400, &tRawData[0], 128, PROTOCOL_IS_LSB_FIRST, , );

apres biensur avoir planché sur les valeurs
"&tRawData[0]" et "PROTOCOL_IS_LSB_FIRST"

ma question était de savoir quel code d'exemple vous avait imprimé le texte

Mais si vous avez réussi à faire fonctionner le truc, pas de souci, c'est ce qui compte.

c'est l'exemple receivedemo trouvé dans :

: Arduino-IRremote/examples/ReceiveDemo at master · Arduino-IRremote/Arduino-IRremote · GitHub

OK - merci.