Je parle à ma lampe ðŸ˜²

Lol, le titre est un peu bizarre non ?

Bienvenue dans ce tutoriel ou nous allons voir comment contrôler une lampe de table ou un autre appareil avec sa voix. on utilisera Google Assistant (le fameux Ok google) la plateforme IFTTT , Adafruit-io et un microcontrôleur embarquant le esp8266 ici dans  notre cas le Wemos D1 mini (disponible si vous en n’avez besoin 😉 )

Les besoins 🔧⚙️

Étape 1: créer un compte chez adafruit-io

cliquez sur « Get started for free« 

Remplacer les valeur comme sur l’image « Block title » vous mettez « lampe » « Button On text » vous mettez « 1 » et « Button Off text » vous mettez « 0 », enfin vous descendez et vous cliquez sur « create block »

c’est fini pour adafruit-io

Étape 2 : créer un compte chez IFTTT

« what do you want to say ? » la phrase à dire pour allumer la lampe ici « allume la lampe« ; What’s another way to say it? (une autre phrase qui peut aussi allumer la lampe) ici « allume lampe » et encore une dernière phrase différente pour allumer la lampe ici « lumière » et enfin la phrase que google va vous répondre si il exécute l’action « ok , lampe allumée » et n’oublier pas de choisir Français comme « language« 

Maintenant que vous avez créé l’action qui va déclencher l’allumage de la lampe vous allez faire la même chose pour l’extinction de la lampe.(c’est le même procédé pour l’allumage de la lampe):

1 – allez sur IFTTT Cliquez sur « NEW APPLET » et sur « this »

2- chosissez « Google Assistant » sur la barre de recherche

3-cliquez sur « say a simple phrase » et remplacez « what do you want to say ? » la phrase à dire pour éteindre la lampe ici « Ã©teins la lampe« ; What’s another way to say it? (une autre phrase qui peut aussi éteindre la lampe) ici « Ã©teins lampe » et encore une dernière phrase différente pour éteindre la lampe ici « lumière zéro » et enfin la phrase que google va vous répondre si il exécute l’action « ok , la lampe est éteinte » et n’oublier pas de choisir Français comme « language » et cliquez sur « create trigger »

4-cliquez sur « That« , cherchez « Adafruit » et appuyer dessus

5-choisissez « Send data to Adafruit IO » , dans « Feed name » cliquez lampe et dans « Date to save » mettez « 0« 

6-Cliquez sur « finish » et tout est bon

Étape 3 : électronique

Matériels: Wemos d1 mini ; shield relais pour wemos ou bien relais normal, lampe 220v + fil + prise (matériel disponible chez nous, contactez si vous en avez besoin).

Attention veuillez travailler sous-tension (c’est à dire ne brancher aucune source de tension en travaillant; ni prise, ni batterie, ni rien) !!!

choisissez le schéma à câbler en fonction de votre Relais (shield ou simple)

Étape 4: la programmation

Prendre ses identifiants chez Adafruit

Allez sur votre Dashboard Adafruit et cliquez sur le petit carré jaune foncé « Your secret AIO key » qui est à droite

on copie la partie  » Username » et « Active Key » sa sera votre identifiant à mettre dans le code.

Arduino Code

#include <Arduino.h>
#include <ESP8266WiFi.h>
#include "Adafruit_MQTT.h"
#include "Adafruit_MQTT_Client.h"

#define WIFI_SSID "votre_Nom_de_wifi" //remplacer par votre nom de wifi
#define WIFI_PASS "votre_pass_wifi" //remplacer par votre mot passe wifi

#define MQTT_SERV "io.adafruit.com"
#define MQTT_PORT 1883
#define MQTT_NAME "votre_username_adafruit" 
#define MQTT_PASS "votre clé adafruit"

//pin ou le relais est relié
#define Relais4 D1

//Set up MQTT and WiFi clients
WiFiClient client;
Adafruit_MQTT_Client mqtt(&client, MQTT_SERV, MQTT_PORT, MQTT_NAME, MQTT_PASS);

//Set up the feed you're subscribing to
//https://io.adafruit.com/diygeeks/feeds/onoff
Adafruit_MQTT_Subscribe lampe = Adafruit_MQTT_Subscribe(&mqtt, MQTT_NAME "/feeds/lampe");
void MQTT_connect()
{
  int8_t ret;

  // Stop if already connected.
  if (mqtt.connected())
  {
    return;
  }

  Serial.print("Connecting to MQTT... ");

  uint8_t retries = 10;
  while ((ret = mqtt.connect()) != 0) // connect will return 0 for connected
  {
       Serial.println(mqtt.connectErrorString(ret));
       Serial.println("Retrying MQTT connection in 5 seconds...");
       mqtt.disconnect();
       delay(5000);  // wait 5 seconds
       retries--;
       if (retries == 0)
       {
         // basically die and wait for WDT to reset me
         while (1);
       }
  }
  Serial.println("MQTT Connected!");
}


void setup()
{
  Serial.begin(115200);

  //Connect to WiFi
  Serial.print("\n\nConnecting Wifi... ");
  WiFi.begin(WIFI_SSID, WIFI_PASS);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }
  Serial.println("OK!");

  //Subscribe to the onoff feed
  mqtt.subscribe(&lampe);
  pinMode(Relais1, OUTPUT);
  digitalWrite(Relais1, HIGH);
}

void loop()
{
  MQTT_connect();

  //Read from our subscription queue until we run out, or
  //wait up to 5 seconds for subscription to update
  Adafruit_MQTT_Subscribe * subscription;
  while ((subscription = mqtt.readSubscription(5000)))
  {
    //relais1
    if (subscription == &lampe)
    {
      Serial.print("lampe: ");
      Serial.println((char*) lampe.lastread);
      if (!strcmp((char*) lampe.lastread, "1"))
      {
        digitalWrite(Relais1, LOW);
      }
      else
      {
        digitalWrite(Relais1, HIGH);
      }
    }
  }
}

Micropython Code

#on importe tout les librarie
import network
from machine import Pin
from umqtt.simple import MQTTClient
from network import WLAN

#paramétrage wifi Remplacer par vos identifiant wifi
WIFI_SSID = "live"
WIFI_PASS = "papi000000"

#on met nos identifiant compte adafruit et la clé
server = "io.adafruit.com"
port_io = 1883
user_io = "bloctechno"
pass_io = "f1e06f454fb44d38add2d6f0fa5f034c"

#on initie le pin 5 e mode sorti (la ou on branche le relais)
relais = Pin(5,Pin.OUT)

#la fonction pour attendre les valeurs recue via la protocole mqtt
def sub_cb(topic,msg):
    #si on recoit 1 on allume la lampe
    if(msg == b"1"):
        relais(1)
    #sinon on l'eteind
    elif(msg == b"0"):
        relais(0)

# focntion pour géré la connection
def do_connect():
    sta_if = network.WLAN(network.STA_IF)
    if not sta_if.isconnected():
        sta_if.active(True)
        sta_if.connect(WIFI_SSID, WIFI_PASS)
        while not sta_if.isconnected():
            pass

#on se connecte au wifi
do_connect()
#o se connecte au serveur mqtt d'afafruit
client = MQTTClient("umqtt_client",server,port_io,user=user_io,password=pass_io)
client.set_callback(sub_cb)
client.connect()
client.subscribe(b"bloctechno/feeds/lampe") #Remplacer par votre nom d'utilisateur et le feed EX: bloctechno/feeds/lampe
while True:
        if True:
            # Blocking wait for message
            client.wait_msg()
        else:
            # Non-blocking wait for message
            client.check_msg()
            time.sleep(1)

Ok, google

maintenant que vous avez tout configuré le adafruit-io et le ifttt il vous reste votre smartphone qui va vous permettre de parler avec la lampe.

Ouvrez le paramètre android, allez sur « google« , ensuite « Recherche,Assaitant et commandes vocales« , puis sur « voix« , ensuite « voice match » et activé « accès avec voice match« 

la configuration est terminée lorsque vous allez dire « ok, google » ensuite la phase « allume la lampe » normalement si tout se passe bien la lampe s’allume et pour l’éteindre dire « ok,google » ensuite « Ã©teins la lampe ».

conclusion

contrôler les objets du quotidien est devenues une chose très facile de nos jours avec les cartes de développement et les services que nous propose les géants du Web, faites en de bons usages et on se dit à la prochaine.

Bonne fête de fin d’année en passant 🎊🎉🎉🎉💝

2 commentaires sur “Je parle à ma lampe ðŸ˜²

Ajouter un commentaire

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Créez un site ou un blog sur WordPress.com

Retour en haut ↑

%d blogueurs aiment cette page :