Projets IoT

Tutoriel double SONOFF : contrôlez vos appareils électriques à distance à l'aide de MQTT et Ubidots

Maria Hernández
· 4 min de lecture
Envoyer par email

Dans ce guide, vous apprendrez à contrôler quelques appareils 110 V via Wi-Fi pour $ , en utilisant le SONOFF Dual d'Itead .
Comparé aux prises intelligentes WiFi grand public sur le marché, le SONOFF est une excellente alternative pour réaliser des projets de maison intelligente et même 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 .

Exigences

Configuration du matériel

Démontez l'appareil SONOFF Dual, cela permet d'accéder au brochage SONOFF TTL, dont nous aurons besoin pour programmer l'ESP8266 intégré. Le SONOFF est livré sans deux de ses connecteurs à broches, vous devrez donc les souder avant de programmer l'appareil.

Après soudure, connectez la carte à l'UartSBee en suivant ce tableau :

UartSBee SONOFF Double
VCC VCC
Émission RX
RX Émission
GND GND

Brochage UartSBEE

De plus, vous devrez établir une connexion entre la broche GND de l'en-tête de broche à gauche (celle qui contient les broches des boutons 1 et 0) et la broche EN_FW de l'ESP8266 qui est illustrée ci-dessous :

Brochage SONOFF (face avant)

Brochage SONOFF (face arrière)

Configuration de l'IDE Arduino

  1. Dans l'IDE Arduino, cliquez sur Fichiers -> Préférences et entrez cette URL dans le URL du gestionnaire de cartes supplémentaires , pour pouvoir accéder aux bibliothèques ESP8266 pour Arduino :
http://arduino.esp8266.com/stable/package_esp8266com_index.json

Ce champ prend en charge plusieurs URL. Séparez-les par des virgules au cas où vous auriez déjà saisi d’autres URL.

  1. Ouvrez le gestionnaire de cartes à partir du menu **Outils -> Carte ** et installez la plateforme ESP8266.
  2. Après l'installation, allez dans le Outils > Carte et sélectionnez la carte : Module générique ESP8266.
  3. Téléchargez la Ubidots ESPMQTT sous forme de fichier ZIP dans notre compte GitHub .
  4. De retour dans votre IDE Arduino, cliquez sur Sketch -> Include Library -> Add .ZIP Library.
  5. Sélectionnez le fichier .ZIP d' Ubidots ESPMQTT puis cliquez sur « Accepter » ou « Choisir ».
  6. Fermez l'IDE Arduino et ouvrez-le à nouveau.

Codage de votre SONOFF Dual

Cet exemple de code s'abonnera à une variable Ubidots qui activera ou désactivera les deux relais en même temps.

Avant d'exécuter le code, accédez à votre compte Ubidots , localisez l'onglet « Appareils » et créez un appareil appelé « SONOFF Dual » et une variable appelée « Relais ». Cela devrait ressembler à ceci :

Assurez-vous que l'étiquette de l'API de l'appareil est « sonoff-dual » et que l'étiquette de l'API variable est « relais ». Ce sont les identifiants uniques utilisés par le SONOFF pour savoir à quelle variable s'abonner dans le courtier MQTT. Vous pouvez modifier les étiquettes si nécessaire.

Vous êtes maintenant prêt à flasher votre appareil avec le code suivant :

/****************************************** * Inclure les bibliothèques ****** **********************************/ #include " Ubidots ESPMQTT.h" /****** ********************************** * Définir les constantes ************* ***************************/ #define TOKEN "p4uuxxxxxxxxncTVfoVqxxxxxRQW" // Votre TOKEN Ubidots #define WIFINAME "UBIWIFI" //Votre SSID # définir WIFIPASS "clave123456789ubi" // Votre Wifi Pass #define MQTTCLIENTNAME "sonoff15345" // Votre nom de client MQTT, il doit être unique, nous vous recommandons donc de choisir un nom ASCCI aléatoire Client Ubidots (TOKEN, MQTTCLIENTNAME); /****************************************** * Fonctions auxiliaires ****** **********************************/ void relays_on() { Serial.write(0xA0); Série.write(0x04); Série.write(0x03); Série.write(0xA1); Série.flush(); } void relays_off(){ Serial.write(0xA0); Série.write(0x04); Série.write(0x00); Série.write(0xA1); Série.flush(); } void callback (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]); } if ((char)payload[0]=='1'){ relays_on(); } else{ relays_off(); } Serial.println(); } /**************************************** * Main Functions ****************************************/ void setup() { // put your setup code here, to run once: Serial.begin(19200); Serial.println("Connecting to WiFi..."); client.wifiConnection(WIFINAME, WIFIPASS); client.begin(callback); Serial.println("Connected!"); pinMode(16, OUTPUT); client.ubidots et étiquettes API des variables Serial.println("Abonné!"); } void loop() { // placez votre code principal ici, pour l'exécuter à plusieurs reprises : if(!client.connected()){ client.reconnect(); client. ubidots Abonnez-vous("sonoff-dual","relais"); //Insérer la source de données et les étiquettes de variable } client.loop(); }

Vous pouvez effectuer des actions plus élaborées en bricolant les commandes internes du SONOFF Dual. Voici une référence rapide que nous avons trouvée dans leurs forums :

Série : 19230,8,N,1 Octets à envoyer à l'unité : 0xA0 0x04 0xxx 0xA1 où 0xxx semble être : 0x00 les deux relais sont éteints 0x01 le relais un est activé 0x02 le relais deux est activé 0x03 les deux relais sont activés

Après avoir flashé vos appareils, ouvrez le moniteur série de l'IDE Arduino, vous devriez voir quelque chose comme ceci, ce qui signifie que la connexion WiFi et l'abonnement MQTT ont réussi :

Résultats

Allez maintenant dans l'onglet « Dashboards » et ajoutez un nouveau Widget du type « Control » -> « Switch » :

Ce commutateur enverra un « 1 » ou un « 0 » à la variable « Relais », qui sera ensuite lue dans la fonction de rappel du SONOFF pour allumer ou éteindre les relais. Vous pouvez désormais contrôler votre SONOFF Dual à distance depuis votre dashboard !

Il est désormais temps de créer vos propres applications et dashboards pour contrôler et gérer vos environnements. Pour en savoir plus sur Ubidots , consultez ces didacticiels vidéo et inscrivez-vous gratuitement dès aujourd'hui !