La vidéo:

Abonne-toi

Pour commencer, voici la liste du matériel:

-Une carte avec un ESP8266 (Ex: Wemos D1 mini)

-Une carte avec des relais

-Des câble Arduino

Le Câblage:

Mise en place d’un serveur MQTT avec Adafruit:

Rendez-vous sur le site io.adafruit.com et créez vous un compte en cliquant sur « Get started for Free » puis remplissez le formulaire.

Une fois connecter-vous aurez une interface comme si dessous:

Vous allez créer un dashborad en allant dans Action –> Create a New Dashboard , et donnez lui un nom : (Ex: Lumière…)

Une fois créé, cliquez dessus et vous aurez une page noire avec des boutons.

Cliquez sur le bouton « + », et choisissez « Toggle »

Donnez un nom à votre bouton comme si dessus, cliquez sur « create » et sélectionnez-le dans la liste si dessous. Faites « Next step » puis remplacer le texte « ON » par « 1 » et « OFF » par « 0 » comme si dessous:

Puis cliquez sur « Create block ». Répéter l’opération depuis le bouton + en fonction du nombre de lampes. Puis faites « Save » En haut à droite

Le Code:

Pour commencer, il faut installer la carte wemos dans le logiciel Arduino.

Faites « Fichier » –> « Préférences » et copier la ligne si dessous dans « URL de gestionnaire de carte »

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Ensuite, Allez dans « Outils » –> « Type de carte » –> « Gestionnaire de carte », chercher « ESP8266 » et faites installer.

Puis « Outils » –> « Type de carte » –> Et choisissez « Wemos D1 R2 & mini »

Une fois votre wemos branché à votre pc choisissez le port dans « Outils » –> « Port » –> Le COM de votre Wemos.

Copier le code si dessous dans le logiciel:

//-------------------------------------GammaTroniques------------------------------------
//*               https://www.youtube.com/watch?v=U1kyExsT_gQ                           *
//*                 Code Relay MQTT Adafruit - Gammatroniques                           *
//---------------------------------------------------------------------------------------
#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"
 
#define prelay1 D1
#define prelay2 D2
 
#define WLAN_SSID       "Votre SSID"
#define WLAN_PASS       "Votre mdp Wifi"
#define relay D1
 
#define AIO_SERVER      "io.adafruit.com"
#define AIO_SERVERPORT  1883                   // use 8883 for SSL
#define AIO_USERNAME    "Votre nom d'utilisateur"
#define AIO_KEY         "Votre clé d'utilisateur"
 
 
WiFiClient client;
 
Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY);
 
Adafruit_MQTT_Subscribe relay1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lumiere1");
 
Adafruit_MQTT_Subscribe relay2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/lumiere2");
 
 
 
 
void MQTT_connect();
 
void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode(prelay1,OUTPUT);
  pinMode(prelay2,OUTPUT);
 
 
  Serial.println(F("Adafruit MQTT demo"));
 
  Serial.println(); Serial.println();
  Serial.print("Connecting to ");
  Serial.println(WLAN_SSID);
 
  WiFi.begin(WLAN_SSID, WLAN_PASS);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println();
 
  Serial.println("WiFi connected");
  Serial.println("IP address: "); Serial.println(WiFi.localIP());
  mqtt.subscribe(&relay1);
   mqtt.subscribe(&relay2);
 
 
}
uint32_t x=0;
void loop() {
  MQTT_connect();
 
  Adafruit_MQTT_Subscribe *subscription;
  while ((subscription = mqtt.readSubscription(5000))) {
   
    if (subscription == &relay1) {
      Serial.print(F("Got: "));
      Serial.println((char *)relay1.lastread);
      uint16_t state1 = atoi((char *)relay1.lastread);
      if(state1 == 1){
     digitalWrite(prelay1,LOW);
      }else{
        digitalWrite(prelay1,HIGH);
      }
     
    }
 
   
    if (subscription == &relay2) {
      Serial.print(F("Got: "));
      Serial.println((char *)relay2.lastread);
      uint16_t state2 = atoi((char *)relay2.lastread);
     
      if(state2 == 1){
     digitalWrite(prelay2,LOW);
      }else{
        digitalWrite(prelay2,HIGH);
      }
     
    }
  }
 
}
void MQTT_connect() {
  int8_t ret;
if (mqtt.connected()) {
    return;
  }
 
  Serial.print("Connecting to MQTT... ");
 
  uint8_t retries = 3;
  while ((ret = mqtt.connect()) != 0) {
       Serial.println(mqtt.connectErrorString(ret));
       Serial.println("Retrying MQTT connection in 5 seconds...");
       mqtt.disconnect();
       delay(5000);
       retries--;
       if (retries == 0) {
         while (1);
         
       }
  }
  Serial.println("MQTT Connected!");
}

Remplacez « Votre SSID » par le nom de votre box et « Votre mdp Wifi » par le mot de passe en gardant les guillemets.

Cliquez sur la clé jaune pour avoir les info si dessous.

Ensuite, Changez « Votre nom d’utilisateur » par votre pseudo Adafruit et « Votre clé d’utilisateur » par votre clé dispo si dessus.

Dans les ligne :


Adafruit_MQTT_Subscribe relay1 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME « /feeds/lumiere1 »);
 
Adafruit_MQTT_Subscribe relay2 = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME « /feeds/lumiere2 »);

Changez « lumiere1 » et « lumiere2 » par les nom donné à vos bouttons.

Pour finir Téléverser le code en appuyant sur la flèche.

Création des commande google assistant

Pour créé des commande google assistant, télécharger l’application « IFTTT »

Une fois l’app ouverte, allez dans le dernier onglet sur la droite (« My Applets »):

Puis appuyer sur +

Touchez « + This » et dans la barre de recherche taper google assistant et choisissez le, « Say a simle phrases »

Dans les 3 première ligne vous pouvez écrire 3 commande différente sinon c’est dans la première. (Ex: allume la lumière, allume lumière …)

Sur la dernière ligne choisissez la réponde de google et choisissez « french » et validez en haut à droite.

Sur « + That » prenez « adafruit » –> « send data to Adafruit IO », Il va vous demandez de vous connecter avec votre compte adafruit.

Choisissez votre lumière dans « Feed name » et dans « Data to save » mettez 1 pour allumer et 0 pour éteindre.

Répéter l’opération pour toutes les lumière.

Voilà, c’est à présent terminer, il ny a plus qu’a tester ????

3 commentaires

bouzid abdellah · 31 octobre 2019 à 10 h 52 min

vous etes geniale merci

Jean-Pierre Lestamps · 5 novembre 2019 à 12 h 05 min

Comment après un RESET, éviter que les tous les relais passent à l’état 1 : lumière allumée ?
Je n’arrive pas à modifier le code en conséquence.
Merci de l’aide

    Gammatroniques · 10 novembre 2019 à 10 h 23 min

    Il faudrait stocker l’état des lumière dans l’EEEPROM de la carte, il s’agit d’une mémoire qui sauvegarde même sans courent

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

YouTube