Projets IoT

Tutoriel SONOFF : Un Smart Switch Wi-Fi pour 5 $

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

Dans ce guide, vous apprendrez comment contrôler n'importe quel appareil 110-240V pour 5 $ l'appareil SONOFF d'Itead . Comparé aux prises intelligentes WiFi à 30 $ IoT à plus grande échelle. De plus, il est basé sur la populaire puce Wi-Fi ESP8266, ce qui le rend compatible avec l'environnement Arduino et d'autres ressources comme nos bibliothèques ESP chez Ubidots .

Le SONOFF est livré avec son propre firmware et sa propre application mobile, mais nous pensons que sa principale valeur réside en réalité dans son format et son prix bas. C'est pourquoi nous avons décidé de faire un peu de piratage et de libérer toute sa puissance !

Aperçu

sonoff_wifi_wireless_smart_switch.jpg

Sois prudent! Ne manipulez pas le SONOFF lorsqu'il est connecté aux lignes 110/240V AC

Le SONOFF contient un relais, une puce WiFi ESP8266 et les circuits requis pour l'alimenter avec la ligne CA d'une prise de courant. Il est également livré dans un joli emballage qui lui donne un aspect plus professionnel qu'un projet de bricolage moyen à la maison.

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
Capital-risque 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 votre carte ESP8266 dans Outils > Carte après l'installation.
  2. Téléchargez la Ubidots ESPMQTT ici .
  3. Maintenant, cliquez 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 ouvrez-le à nouveau.

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 de bouton

Désormais, pour contrôler l'appareil SONOFF, vous devrez créer un widget bouton dans votre compte Ubidots . Ce widget définira votre variable RELAY sur « 1 » ou « 0 » :

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

Codage de votre SONOFF

Voici le code qui allume/éteint l'appareil SONOFF. Pour utiliser ce code n'oubliez pas de changer le TOKEN avec le token de votre compte Ubidots . Modifiez WIFISSID et PASSWORD avec vos informations d'identification réseau.

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

  1. Connectez l'UARTbee au port USB de votre PC.
  2. Appuyez sur le bouton de SONOFF et déconnectez l'USB en même temps.
  3. Tout en appuyant toujours sur le bouton, reconnectez l'USB.

Ces étapes visent à mettre le SONOFF en mode programmation.

sonoff-connect.gif

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

/****************************************** * Inclure les bibliothèques ****** **********************************/ #include " Ubidots ESPMQTT.h" /****** ********************************** * Définir les constantes ************* ***************************/ #define TOKEN "..." // Votre TOKEN Ubidots #define WIFINAME "..." / /Votre SSID #define WIFIPASS "..." // Votre Wifi Pass #define MQTTCLIENTNAME "..." // Votre nom de client MQTT, il doit être unique donc nous vous recommandons de choisir un nom ASCCI aléatoire #define RELAY 12 #define LED 13 Client Ubidots (TOKEN, MQTTCLIENTNAME) ; /****************************************** * Fonctions auxiliaires ****** **********************************/ rappel nul (sujet char*, charge utile octet*, longueur int non signée) { Serial.print("Message arrivé ["); Serial.print (sujet); Série.print("] "); pour (int je = 0; je <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.ubidots Abonnez-vous("relay","sonoff"); //Insérer la source de données et les étiquettes de variable } client.loop(); }

Branchez votre Smart Switch et commencez à contrôler les choses

Il est désormais temps de rendre les choses « intelligentes » en y ajoutant votre SONOFF ; contrôler vos lumières, ouvrir ou fermer votre garage, etc.

Aller plus loin…

Ubidots est un service cloud permettant à des milliers d'ingénieurs du monde entier de créer IoT , tant dans le domaine de l'éducation que de l'entreprise. Pour savoir comment Ubidots peut aider votre entreprise, consultez nos fonctionnalités ou laissez-nous un message.