Télécommande Infrarouge universelle avec esp8266

Il y a plusieurs années j'avais crée plusieurs petites applications avec leur librairies pour ma domotique personnelle à l'aide de Wio node et aussi de Nodemcu.
Ces derniers jours m'y suis replongé pour mettre a jour tout ce code avec les derniers core pour Arduino Esp8266 et Esp32 :slight_smile:
Je me disais que ca serait pas mal de partager tout ca. Tout est accessible sur mon repot github ici
En particulier la bibliohèque ESPInfraredTransceiver et l'exemple de télécommande Infrarouge universelle

1 Like

Pas de réaction ? :worried: Je sais bien que le code est assez conséquent par rapport a d'autres projets si l'on considère les dépendances avec ma librairie ESPWiFiServersExtension et des autres librairies dont elle dépend elle meme.. mais au final ces librairies me permettent de développer assez rapidement des applications domotiques a base de commandes JSON ou MQTT en particulier pour Domoticz (en attendant d'eventuelles mises a jour pour Jeedom par ex :slightly_smiling_face:)

Bonjour @Gerald555

Merci pour le partage

Pas d'impatience STP !! Pas de conclusions hâtives.
Qui va tous les jours voir les nouveautés dans les Projets Finis ? pour moi c'est de temps en temps

L'essentiel est que le moteur de recherche du Forum renvoie vers ton message d'annonce, le reste suivra avec l'intérêt porté au sujet

Laisses le temps aux uns et aux autres de découvrir ton annonce , et prendre le temps d'aller sur le dépôt GIthub faute de résumé ici.

Pour ma part je conserve le lien même s'il évoque l'ESP8266 et non l'actuel ESP32 (le module RMT des ESP32 se prête à des réalisations efficaces) et si je n'utilise plus guère les télécommandes IR

1 Like

Merci pour ta réponse @al1fch, désolé je n'ai pas encore l'habitude de poster sur ce forum, je ne savais pas s'il etait toujours actif ou pas, me voilà rassuré :wink:

Ma principale librairie ESPWiFiServersExtension est compatible avec l'actuel ESP32 mais il est vrai qu'il me reste a rendre compatible la librairie consernant l'IR, d'ailleurs si quelqu'un a une idée de comment implémenter cela pour un ESP32 je suis preneur

La solution semble etre là IRSenderESP32.cpp, je n'ai pas encore tout compris mais ca semble un peu plus compliqué que prévu :sweat_smile:..

Bonjour,
je suis toujours en phase d'apprentissage Arduino, notamment sur cette fonction de télécommande IR de ma clim.
mon objectif en premier est simplement de lui faire un marche / arret de l'arduino puis ensuite etudier l'envois de ces commandes via des SMS a l'arduino.

tout ca juste pour dire que je regarde ton sujet en espérant comprendre les bases !

1 Like

Bonjour, oui pour l'IR c'est exactement ce que je fais dans ce projet: enregistrement des commandes IR venant de ma telecommande pour allumer et eteindre la clim puis je me contente de rejouer ces commandes avec un ordre JSON ou MQTT. Coincidence, J'ai egalement un autre projet qui n'est pas encore sur github qui me permet de mettre en route mon chauffage par sms (habitation a la campagne sans box..) au cas où regarde cette autre librairie : ESPRadioCC1101Transceiver

merci pour ton partage, mais je suis vraiment en phase de debut et decouvre la complexité du codage des telecommandes ir , tres loin des manips que je viens de faire avec la telco ir du kit d'apprentissage arduino !

je vais voir tout ca de pres , merci.

1 Like

Bonjour, je suis très intéressé par votre application mais j'ai quelques difficultés a l'installer sur plateformio sur vscode. Pourriez vous donner quelques conseils d'installation sur vscode avec plateformio ou sur Arduino ide. Merci d'avance. Je tenais à vous féliciter pour la qualité de l'interface et de la programmation.

1 Like

Bonjour @labo11, merci beaucoup! :wink: par contre vraiment désolé je n'utilise pas plateformio, en fait j'utilise simplement l'arduino IDE pour compiler et téléverser mes applications même si il est vrai que j'édite le plus souvent mon code avec vscode (habitude de dev..) Néanmoins je ne pense pas qu'il y ait un problème pour installer mes librairies et/ou applications sur plateformeio. j'espère que quelqu'un pourra t'aider ici, merci par avance a cette personne ! :wink:

Sinon pour l'Arduino IDE si tu veux par exemple installer ma librairie Infrarouge, j'indique ceci dans le readme :

Installing ESPInfraredTransceiver

  1. Download the latest master source code as a .zip file
  2. In the Arduino IDE, import the .zip file by navigating to Sketch → Include Library → Add .ZIP Library

Le principe est le meme pour mes autres librairies ESPCoreExtension et ESPWifiServersExtension.

Les versions prérequises pour l'esp8266 sont indiquées également :

Si tu as besoin de plus d'aide n'hésite pas :wink:

Ok merci j'essaierai demain. Quel est le rôle de ces 2 librairies ESPCoreExtension et ESPWifiServersExtension par rapport ESPInfraredTransceiver. Merci

ESPCoreExtension est une librairie qui fournit une collection de classes et de fonctions assez "généralistes" permettant de développer rapidement des applications pour ESP32 ou ESP8266. Par exemple on ecrit souvent les memes lignes de code dans un sketch pour démarrer la connexion wifi, avec cette lib tout se fait grace à l'appel d'une seule méthode. il y a aussi des classes "outils" pour pouvoir faire par exemple des notifications entre objets regarde la classe templétisée "Signal" (inspirée des signaux GTK ou du mot clé Delegate en C# si tu connais.. sorte d'implémentation du design pattern Observer) bref y'a plein de trucs c'est un espèce de couteau Suisse, un genre de mini Framework pour ESP :slightly_smiling_face:.. Au cas où jette un oeil sur mes autres exemples dans ESPWifiServersExtension tu verras des cas d'utilisations pour la classe Signal, Singleton etc.. D'ailleurs dans l'application InfraRouge j'utilise également cette lib pour sauvegarder ou relire des fichiers qui contiennent les signaux InfraRouge enregistrés.

Concernant ESPWifiServersExtension elle permet de développer rapidement des applications embarquant un serveur HTTP asynchrone et/ou un client Domoticz MQTT asynchrone. Elle embarque l'appel à WifiManager quand la connexion Wifi n'a jamais été initiée. Cette bibliothèque propose également plusieurs moyens de déboguer via Telnet par ex. Si tu connais pas le concept de sketch "Asynchrone" je t'invite a t'y interesser c'est un concept important avec les ESP, il n'y a plus besoin d'instruction dans la méthode loop () ce qui permet d'avoir des applications très très réactives :slightly_smiling_face: :+1:

Je te remercie pour toutes ces précisions. J'en conclus donc qu'il faut impérativement installer ces 2 librairies avec ESPInfraredTransceiver. Merci beaucoup.

Je voulais savoir aussi ( étant utilisateur de domoticz depuis de nombreuses années) quel type de configuration et de requêtes utiliser pour envoyer des commandes de domoticz a l'esp8266.

Oui tout a fait, l'application InfraRouge utilise ces 3 librairies : ESPCore, ESPWifi et ESPInfra.
Pour Domoticz tu as le choix entre des requetes JSON ou des topics MQTT (pour cela Il faudra installer le serveur Mosquitto sur ton raspberry) je donne quelques exemples de requetes JSON ici : ESPWiFiServersExtension/examples/RelayRemoteControl at master · gerald-guiony/ESPWiFiServersExtension · GitHub
En principe MQTT sert plutot a publier des valeurs, comme des températures pour une station météo mais on peut également s'en servir dans l'autre sens (serveur vers client) puisque la trame reseau venant du serveur MQTT n'a pas de destinataire identifié par son IP. Si tu utilise ma librairie ESPWifi il suffira simplement d'indiquer l'idx correspondant au bouton dans Domoticz dans le code de ton sketch pour que la frame MQTT soit parsée

Par ex dans ma classe MqttIrDomoticzSubscriber cela me permet de jouer au choix des signaux InfraRouge enregistrés dans 2 fichiers différents (correspondant en fait au ON et Off de ma clim Daikin reversible)

//========================================================================================================================
//
//========================================================================================================================
void MqttIrDomoticzSubscriber :: setup (AsyncMqttClient * asyncMqttClient) {

	_idx = MQTT_DOMOTICZ_DAIKIN_SWITCH_IDX;
	MqttDomoticzSubscriberIdx :: setup (asyncMqttClient);
}

//========================================================================================================================
//
//========================================================================================================================
bool MqttIrDomoticzSubscriber :: onMqttMsgReceivedIdx (const JsonObject& jsonArg) {

	// décode le message - decode payload message
	// Here we know that the _idx member value matches the idx of the domoticz device

	if (jsonArg [PAYLOAD_NVALUE].success()) {

		// Détermine quel code IR doit être envoyé - Determines which IR signal should be sent
		int fileId = (jsonArg [PAYLOAD_NVALUE] == 1) ? 1 : 2;

		if (I(IrReplayer).loadSignal (fileId)) {

			StreamString sstrLogOut;
			I(IrReplayer).emmitSignal (sstrLogOut);

			// Response
			I(MqttIrDomoticzPublisher).publishStatutMessage (((fileId == 1) ? "Daikin On":"Daikin Off"));

			Log (sstrLogOut);

			return true;
		}
	}

	return false;
}

Bonjour, encore merci pour tous ses renseignements. J'ai essayé de compiler sur ide arduino et j'ai les erreurs suivantes :
In file included from d:\Mes Documents\Arduino\libraries\ESPWiFiServersExtension\src/HttpServer.h:12:0,
from D:\Mes Documents\Arduino\IrRemoteControltest\IrRemoteControltest.ino:8:
d:\Mes Documents\Arduino\libraries\ESPWiFiServersExtension\src/HttpRequestHandler.h:9:31: fatal error: ESPAsyncWebServer.h: No such file or directory
#include <ESPAsyncWebServer.h>
^
compilation terminated.
exit status 1

Compilation error: exit status 1
merci d'avance.

Ah mais c'est parce que tu n'as pas installé la lib ESPAsyncWebserver :wink: regarde le readme de chacune de mes libs, j'indique les prérequis pour la lib ESPWifi c'est dans la section "Prerequisites": GitHub - gerald-guiony/ESPWiFiServersExtension: A C++ library for ESP32 and ESP8266 boards, allows to quickly develop applications embedding an asynchronous HTTP server and an asynchronous Domoticz MQTT client

Oui je sais ca fait un paquet de lib a installer lol mais bon on a rien sans rien.. :sweat_smile:

OK j'installe tout proprement. milles excuses. merci.