Tutoriel SONOFF : Un interrupteur intelligent Wi-Fi pour 5 $

Mateo Vélez
· 4 min de lecture
Envoyer par email

Ce guide vous apprendra à contrôler n'importe quel appareil 110-240 V pour $ , grâce au dispositif SONOFF d'Itead . Comparé aux prises connectées Wi-Fi à 30 $ IoT à plus grande échelle. De plus, il est basé sur la puce Wi-Fi ESP8266, très répandue, ce qui le rend compatible avec l'environnement Arduino et d'autres ressources comme nos bibliothèques ESP sur Ubidots .

Le SONOFF est livré avec son propre firmware et son application mobile, mais nous pensons que son principal atout réside dans son format compact et son prix abordable. C'est pourquoi nous avons décidé de le bidouiller un peu et d'exploiter tout son potentiel !

Aperçu

sonoff_wifi_wireless_smart_switch.jpg

Attention ! Ne manipulez pas le SONOFF lorsqu'il est branché sur le secteur 110/240 V

Le SONOFF intègre un relais, une puce WiFi ESP8266 et le circuit nécessaire à son alimentation par le secteur. Son emballage soigné lui confère une allure plus professionnelle qu'un simple bricolage.

Exigences

Installation

  1. Démontez l'appareil SONOFF, cela permet d'accéder au brochage SONOFF TTL, dont nous aurons besoin pour programmer l'ESP8266 intégré. Vous devrez souder quatre broches, celles-ci sont illustrées dans l'image ci-dessous.
  2. Connectez les broches UARTbee aux broches SONOFF, en suivant ce brochage :
SONOFF-PINOUT.jpg
UARTbee SONOFF
VC CVCC
Émission RX
RX Émission
GND GND

Allez dans l'IDE Arduino, cliquez sur Fichiers -> Préférences et entrez cette URL pour pouvoir accéder aux bibliothèques ESP8266 pour Arduino :

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

dans le URL du gestionnaire de cartes supplémentaires . Ce champ prend en charge plusieurs URL, en les séparant par des virgules, au cas où vous auriez déjà saisi d'autres URL.

  1. Ouvrez le Gestionnaire de cartes depuis Outils > Carte et installez la plateforme ESP8266. Sélectionnez ensuite votre carte ESP8266 dans le menu Outils > Carte
  2. Téléchargez ici bibliothèque Ubidots .
  3. Cliquez maintenant sur Sketch -> Inclure la bibliothèque -> Ajouter une bibliothèque .ZIP.
  4. Sélectionnez le fichier .ZIP d' Ubidots ESPMQTT puis cliquez sur « Accepter » ou « Choisir » .
  5. Fermez l'IDE Arduino et rouvrez-le.

Créer une variable Ubidots

  1. Ubidots .
  2. Allez dans Sources et cliquez sur le symbole plus orange .
  3. Définissez le nom de la source de données et vérifiez l'étiquette
ezgif.com-video-to-gif (2).gif

4. Créez une nouvelle variable pour le relais et vérifiez l'étiquette

ezgif.com-video-to-gif (3).gif

Créer un widget bouton

Pour contrôler le périphérique SONOFF, vous devez créer un widget bouton dans votre compte Ubidots . Ce widget définira la valeur de votre variable RELAY à « 1 » ou « 0 »

  1. Accédez au Dashboard et cliquez sur l' icône plus orange .
  2. Cliquez sur Contrôle -> Commutateur et sélectionnez la source de données et la variable à contrôler créées précédemment.
ezgif.com-video-to-gif (4).gif

Programmer votre SONOFF

Voici le code permettant d'allumer/d'éteindre l'appareil SONOFF. Pour l'utiliser, n'oubliez pas de remplacer TOKEN par le jeton de votre compte Ubidots. Remplacez WIFISSID et PASSWORD par vos identifiants réseau.

Pour téléverser le code dans le SONOFF, vous devrez :

  1. Connectez l'UARTbee au port USB de votre PC.
  2. Appuyez simultanément sur le bouton SONOFF et débranchez le câble USB.
  3. Tout en maintenant le bouton enfoncé, reconnectez le câble USB.

Ces étapes permettent de mettre le SONOFF en mode programmation.

sonoff-connect.gif

Lorsque vous serez prêt, téléchargez le code depuis l'IDE Arduino :

/**************************************** * Inclure les bibliothèques ****************************************/ #include "UbidotsESPMQTT.h" /**************************************** * Définir les constantes ****************************************/ #define TOKEN "..." // Votre jeton Ubidots #define WIFINAME "..." // Votre SSID #define WIFIPASS "..." // Votre mot de passe Wi-Fi #define MQTTCLIENTNAME "..." // Le nom de votre client MQTT ; il doit être unique, nous vous recommandons donc de choisir un nom ASCII aléatoire #define RELAY 12 #define LED 13 Client Ubidots (TOKEN, MQTTCLIENTNAME); /**************************************** * Fonctions auxiliaires ****************************************/ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message reçu ["); Serial.print(topic); Serial.print("] "); for (int i=0;i <length;i++) { Serial.print((char)payload[i]); } Serial.println(); if ((char)payload[0] == '1') { digitalWrite(RELAY, HIGH); //On relay digitalWrite(LED, LOW); //On led } if ((char)payload[0] == '0') { digitalWrite(RELAY, LOW); //Off relay digitalWrite(LED, HIGH); //Off led } } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(115200); client.wifiConnection(WIFINAME, WIFIPASS); pinMode(RELAY, OUTPUT); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); client.begin(callback); client.ubidotsSubscribe("relay","sonoff"); //Insérer la source de données et les étiquettes de la variable } client.loop(); }

Branchez votre interrupteur intelligent et commencez à contrôler les appareils

Il est maintenant temps de rendre vos appareils « intelligents » en y ajoutant votre SONOFF : contrôlez vos lumières, ouvrez ou fermez votre garage, etc.

Aller plus loin…

Ubidots est un service cloud qui permet à des milliers d'ingénieurs du monde entier de développer IoT , aussi bien dans le secteur de l'éducation que dans le monde de l'entreprise. Pour découvrir comment Ubidots peut aider votre entreprise, consultez nos fonctionnalités ou contactez-nous.