MQTT

Les exemples ci-dessous ont été testés avec une carte ESP8266-12 et une carte Arduino MEGA.

A) S’assurer que l’ESP est bien pris en compte par l’IDE Arduino (possibilité de choisir une carte ESP). Sinon,  saisissez dans fichier préférences l’URL http://arduino.esp8266.com/stable/package_esp8266com_index.json

B) Installer la librairie PubSubClient en la téléchargeant ici ou en téléchargeant la dernière version sur GitHub  la documentation est disponible sur la page http://pubsubclient.knolleary.net/

C) Exemple 1 : Lecture de valeurs (heure et lumière ON/OFF) en provenance d’un serveur domotique MQTT (Domoticz). Matériel : ESP8266 et RaspBerry. Attention, comme les messages MQTT de Domoticz sont assez volumineux, il est nécessaire de modifier la valeur de la variable MQTT_MAX_PACKET_SIZE située dans le fichier PubSubClient.h en l’augmentant à 255 : #define MQTT_MAX_PACKET_SIZE 255 Tout message dont la taille est supérieure à MQTT_MAX_PACKET_SIZE est ignoré.

  1. Créez un serveur MQTT sur Rapsberry et ajoutez le support MQTT pour Domoticz en suivant les indications ici.
  2. Implémentez NodeRed et créez un scénario et un capteur pour récupérer la date et l’heure en suivant les instructions ici
  3. Téléchargez sur l’ESP le sketch  en choisissant Node MCU 1.0 (ESP12-E Module)

D) Exemple 2 (Récupération et envoi de données d’un serveur Domoticz par une carte MEGA) : Lecture de valeurs (heure et lumière ON/OFF) en provenance d’un serveur domotique MQTT (cf infos Domoticz) activation de la LED Arduino (ON/OFF) et envoi vers le serveur Domoticz d’information concernant l’état d’un interrupteur. Matériel : ESP8266, ARDUINO MEGA et RaspBerry.

  1. Sous Domoticz créez des capteurs AA_Porte_Entree, AA_Porte_Parking et récupérer les idx (exemple 103, 104), créez aussi un scénario NodeRed afin d’alimenter automatiquement le champ NodeRedDate de Domoticz (cf. ici)
  2. Téléchargez le sketch REF_MQTT_ARDUINO_ENVOI_INTER sur la carte ARDUINO MEGA
  3. Téléchargez le sketch REF_mqtt_esp8266_DOMOTICZ_READ_WRITE sur l’ESP
  4. Reliez l’Arduino à l’ESP :
    1. ARDUINO RX3   -> ESP TX
    2. ARDUINO TX3   -> ESP RX
    3. ARDUINO 5v      -> ESP VCC
    4. ARDUINO GND -> ESP GND

E) Exemple 3 : ESP seul : via l’URL http://ip_esp exemple http://192.168.0.53/LON saisie de commande et retour du résultat de la commande sur le navigateur. Sketch ici

F) Exemple 4 :  REF_WEB_MQTT_esp8266_1 Idem que ci-dessus mais avec envoi des données vers un serveur MQTTet possibilité d’envoyer des commandes à l’ESP => Alarme ON/OFF et lecture des valeurs des capteurs de la carte Arduino. Exemple : si saisie via l’url de l’esp LON alors la Led de l’ESP s’allume et le serveur DOMOTICZ à le switch AACTIV_LIGHT à ON et la carte Arduino a aussi sa LED allumée. Si appui sur le switch de la carte ARDUINO, la LED de l’ESP s’allume, le switch Domoticz à ON. Si appui sur le witch domoticz <=> Led ESP et Arduino allumées. Matériel : ESP8266-12, ARDUINO MEGA, RaspBerry et serveur WEB : Téléchargez le sketch REF_MQTT_ESP8266_WEB sur la carte ARDUINO MEGA et REF_WEB_MQTT_esp8266_1 sur l’ESP

G) Exemple 5 : idem que le 4 mais envoi en plus vers un serveur web. Ce serveur posséde une base de données MYSQL destinée à stocker la valeur des capteurs et enregistrer les valeurs. Deux tables sont présentes en base (xxx, xxxx). Un fichier PHP pour la mise à jour. Une page web pour afficher le journal des contacts et une autre pour la liste des contacts avec leur statut.

a) Création de la base :

Sur un serveur Web équipé de MySql et PHP, sous PhpMyAdmin, créez une base « Domotic » et deux tables c_statut qui condiendra le statut des contacts (ON/OFF) et une autre c_log qui enregistrera les actions sur ces contacts. Le script de création est ici.

b) Fichiers PHP  :

listelog <=> donne le journal des contacts activés, listestatut donne l’état des contacts et updatedable met à jour un contact. Les fichiers sont .

 

 

 

 

 

 

Articles récents
Commentaires récents
fatima sur Bienvenue !
AdminDroid sur Bienvenue !
fatima sur Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :