Smart Plug ESP8266

About: Bienvenue sur mon profil ! Je suis un jeune étudiant passionné par l'électronique et je vous présente ici quelques projets réalisés.

Bienvenue sur cet article qui a pour but de vous montrer un projet de domotique que j'ai réalisé. Ayant toujours adoré les choses automatiques et optimisées, j'ai décidé de créer moi-même mes prises connectées. Celles-ci sont commandées via WiFi. La partit logique est uniquement commandé par un ESP8266. Nous verrons 2 manières de commander ces prises ; une première via un site web ( compatible avec iPhone et Android mais besoin d'être hébergé en local). Et une deuxième via une application pour Android créée avec B4A qui est plus ergonomique.

Step 1: Flasher Un Nouveau Firmware Sur L'ESP8266

Lorsque que vous venez de recevoir votre petit ESP8266 chez vous, celui-ci est fait pour ne comprendre que les commandes AT ( mêmes commandes utilisées sur les modules Bluetooth). Cependant ce firmware demeure assez restreint pour notre projet. C'est pour cela que nous allons flasher un nouveau firmware sur notre ESP. Pour cela nous avons besoin de :

  • Un ESP8266
  • Un FTDI
  • Une Breadboard
  • Des câbles mâles/femelles
  • L’exécutable et sont fichier .bin ci-joint

L'ESP dispose de plusieurs modes de fonctionnement selon les niveaux de tension qui lui est attribué sur ses ports GPIO 0 et 2 à son démarrage. Nous aurons besoin de deux modes, le mode programmation et le mode de fonctionnement normal où l'ESP lance son programme. Pour l'instant nous allons utiliser le mode programmation pour le flasher. Pour cela il faut relier les pins de l'ESP au FTDI de cette manière:

ESP <--> FTDI

VCC <--> +3.3V

GND<--> GND

RX <--> TX

TX <--> RX

GPIO0 <--> +3.3V // Attention uniquement du 3.3V ! faites attention de bien positionner le jumper du FTFI

GPIO2 <--> GND

CHPD <--> RST

Il faut bien connecter les ports GPIO avant d'alimenter l'ESP pour pouvoir être en mode programmation.

Une fois le câblage fait, lancez le .exe, cliquez sur BIN et sélectionnez le .bin. Puis entrez le port COM du FTDI (visible dans l'onglet "Ports (COM et LPT)" du Gestionnaire de périphériques). Et enfin cliquez sur download et c'est parti ! Vous devriez avoir ceci :

connecting ....
Erasing flash...

Writing at 0x00000000... (0 %)


//...//

Writing at 0x0007ec00... (99 %)

Leaving...

Failed to leave Flash mode 	// Fin du flash vous avez réussi ! 

Step 2: Programmer L'ESP Avec L'IDE Arduino

Une fois notre ESP8266 avec son nouveau firmware, nous devons le programmer ! Pour cela il faut tout d'abord ajouter l'URL de gestionnaire de cartes dans les Préférences avec ce lien :

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

Une fois cela fait allez dans "Outils>Type de cartes>Gestionnaire de cartes", tapez "esp8266" et installer la libraire de "ESP8266 Community".

Puis choisissez "Generic ESP8266 Module" dans "Types de cartes. Et choisissez ces paramètres ( voir photo ).

Enfin on peut téléverser notre premier programme ! Voici un exemple tout simple :

void setup() {
  Serial.begin(9600); 
}

void loop() {
  Serial.println("Hello World ! "); 
}

Vous devriez avoir tout pleins de "Hello World !" s'afficher dans votre moniteur série.

Step 3: Le Montage

Pour cette carte vous aurez besoin de :

  • 1 ESP8266
  • 1 HLK-PM01
  • 1 LM1117t-3.3
  • 1 Relais
  • 2 Borniers

Le HLK-PM01 permet de transformer le 220v alternatif en 5V continu. Le LM1117t-3.3 quant à lui convertit le 5V en 3.3V pour l'ESP8266. Ensuite référez-vous au schéma pour le montage. Enfin le relais permet de commuter un appareil fonctionnant sur le 220V.

Une fois le montage réalisé, il vous reste plus qu'à connecter un appareil ( une lampe par exemple). Pour cela si vous avez des vieilles rallonges c'est l'idéal, sinon il va falloir couper le câble de votre lampe. Ensuite il suffit de relier la phase et le neutre de chaque côté, le sens n'a pas vraiment d'importance vu que nous sommes sur de l'alternatif.

ATTENTION ! Faites très attention avec cette carte, ici on utilise le 220V, ne manipulez JAMAIS la carte sous alimentation !

Step 4: Enfin Le Vrai Programme !

Après ces multiples étapes nous arrivons enfin à notre vrai programme. Téléchargez le et nous allons y apporter quelques modifications.

Tout d'abord modifiez le SSID et le mot de passe de votre box. Faites attention au majuscules et minuscules !
Puis quelques lignes plus bas vous pouvez choisir l'adresse IP que l'ESP prendra sur le réseau.

Téléversez le programme et nous passons à la dernière étape de ce projet, la commande des prises.

Pour tester si tout fonctionne il suffit d'aller dans votre navigateur web et de renter l'adresse de l'ESP suivi de /ON. Comme ceci par exemple:

http://192.168.1.201/ON

Miracle notre relais commute !

Step 5: L'application Android

Vous l'avez donc compris pour interagir avec notre prise il s'agit seulement d'une gestion d'URL. Pour développer cette petite application j'ai utilisé le logiciel B4A. Je vous mets mon code en fichier téléchargeable, vous trouverez plein de tuto pour B4A.
Pour faire simple l'application fonctionne avec des boutons pour ON et OFF, et une fenêtre web (masquée) est utilisé pour charger l'URL lors d'un clic sur un bouton. Rien de plus ! Vous pouvez aussi utiliser AppInventor qui est plus simple pour développer l'application.

Step 6: Le Site WEB

N'ayant pas les connaissances en développement d'applications IOS, j'ai développé un petit site WEB, une solution simple pour les possesseurs d'iPhone. Cependant ce site devra être hébergé en local soit sur votre PC soit par une Rasperry PI. Pour l'hergement vous aurez besoin d'un serveur WAMP (ou LAMP pour Linux). De même je vous laisse chercher sur internet un tutoriel pour ces types de serveur très simple à mettre en place.

Personnellement je trouve le site plus esthétique et plus optimisé avec les boutons switch. En effet ils permettent d'obtenir l'information sur l'état de la prise sans un avoir un visuel direct sur elle-même. Cependant le fait d'avoir une Rasperry qui tourne tout le temps pour héberger est contraignant. Cependant le fait d'utiliser cette méthode permet d'imaginer une infinité de façons de commander ces interrupteurs. Que ce soit avec des capteurs de présence, ultrason, lumière ou même encore avec de la reconnaissance d'image et vidéo avec OpenCV. Les possibilités sont infinies.

J’espère que ce projet vous a plu. Je ferais prochainement un article sur comment transformer cette carte en PCB.

Share

    Recommendations

    • Organization Contest

      Organization Contest
    • Paper Contest

      Paper Contest
    • Tape Contest

      Tape Contest

    Discussions

    1
    None
    ValentinJ2

    17 days ago

    Cool projet! J'avais fais un projet similaire il y a 2 ans:
    https://www.instructables.com/id/ESP8266-Wifi-Swit...
    Sauf que j'ai utilisé l'app Blynk pour contrôler le switch. Je trouve plus simple, mais c'est moins flexible que de faire son app soi-même.
    J'ai aussi ajouté un fusible, une varistance et un fusible thermique, pour être sûr que ça ne va pas prendre feux. J'ai aussi ajouté 2 condensateurs pour avoir un 3.3V stable, mais c'est apparemment pas nécessaire.
    Si j'ai bien compris le code, quand l'ESP perd la connexion wifi, il n'essaie pas de se reconnecter, et l'ESP devrait être débranché et rebranché. J'ai trouvé utile d’améliorer le code pour qu'il recherche une connexion dès qu'il la perdue.