Construire une sonnette connectée avec des esp8266

Vous n’avez pas de sonnette ?

Vous voulez en réaliser une par vous-même entièrement personnalisable ?

Cet article est fait pour toi ! Aujourd’hui nous allons réaliser une sonnette connectée avec un esp8266. Le projet n’est pas compliqué du tout.

Pour l’alimentation le module du buzzer (qui fera office de serveur) sera alimenté en micro USB, connecté directement à mon PC.

Pour alimenter le client (sonnette). Nous utiliserons pas une alimentation continue, puisque la sonnette pourra être transportable mais une pile 9v qui fera très bien l’affaire.

La sonnette utilisera abondamment le mode deep sleep ce qui lui permettra de tenir plusieurs mois, sinon un an par batterie.

 

 

La communication se fera de la même manière qu’une communication client-serveur, il faut que tu vérifies bien que tes deux modules captent le WIFI!

La box du jour se composera :

–          2 Wemos D1 mini

 

–          shield DC

 

–          pile 9v

 

–          buzzer

 

–          bouton

 

–          fil

 

–          Un pot NIVEA (ça taille est vraiment optimale pour se projet)

Le serveur

 

Hardware

 

Pour le serveur c’est encore plus simple. Il faut juste prévoir une alimentation et un buzzer qui préviendra de l’appui de la sonnette et c’est super facile ici avec la prise micro usb.

En ce qui concerne son branchement j’ai simple bidouillé le buzzer pour le mettre directement sur ma carte entre les broches D4 et Gnd.

Programmation

 

Dans un premier temps il faut définir les paramètres de connexion à la Box pour pouvoir ensuite effectuer la connexion entre la carte et celle-ci.

ATTENTION

Il faut bien que tu pense à afficher et par la suite récupérer l'adresse du serveur depuis le port console pour configurer ensuite le client

Par la suite, j’ai défini une condition qui vérifié si la requête envoyée par le client est conforme (ici /sonnerie). Et si le serveur reçoit cette requête alors on active le buzzer (D4). Si ce n’est pas le cas, on peut toujours construire un page html d’accueil relatif au serveur.

Le Client

 

Hardware

 

Le branchement de notre client sera très simple ! Pour mon cas il ne sera pas optimal, car je n’ai malheureusement pas eu la patience d’attendre l’arrivée de mes condensateurs qui aurait rendu le sommeil de notre module de plus grande qualité (dès que je les aurai, vous verrez pourquoi).

Nous installerons le shield sur la carte, et par souci de place j’ai aussi pris la précaution de retirer tous les connecteurs divers.

Avant de passer à la suite du système et de souder le bouton j’ai d’abord codé la partie client !

 

Programmation

 

Le code entier sera placé dans la fonction setup. De cette manière il ne sera exécuté qu’une seule et unique fois, ensuite le module se replongera dans son sommeil. On économise ! Pour les test et pour le final aussi nous placerons donc le bouton entre les broches Gnd et RST de la carte pour faire un reset à chaque appui.

Dans un premier temps il faut que tu connectes le module à ta box. Comme d’habitude tu préciseras le ssid et le mot de passe du box et tu établiras la connexion!

Puis dans un second temps on prépare la requête http comme le montre la screen. Attention cependant, il faut bien préciser l’adresse de votre site, ainsi que la requête GET ici « sonnette » correspondant à celle du serveur.

A NOTER

Ne faite pas attentil à la fonction milllis(). Elle m'a servis pour faire des test que je vais dévoiler ci-dessous mais elle n'est pas utile pour le code final.

Avant de passer à la suite du système et de souder le bouton j’ai d’abord codé la partie client !

 

Prototypage

 

Maintenant le code fait je me suis permis de faire quelques test pour savoir quelle sera la consommation de notre wemos!

Comme tu le sais à chaque fois que le bouton sera pressé, le code dans la fonction setup() s’exécutera une seule fois (pour envoyer la requête). Puis la carte plongera en sommeil profond. Pour connaitre quelle sera sa consommation et ensuite déterminer sa durée de vie, je dois d’abord savoir combien celle-ci consomme en sommeil et lorsque je la réveille.

Pour ce faire j’ai monté simuler son utilisation en y montant rapidement la batterie et le bouton, et en mettant sous tension le serveur et voici ce que j’obtiens.

Sans surprise quand j’appuie sur le bouton il se passe un petit moment et le buzzer s’active! Il est maintenant temps de refaire se test avec l’ampèremètre!

On sommeil celui-ci nous indique que notre module consomme 1mA

Quand j’active la machine, elle consomme le temps d’envoyer sa requête 60mA

Pour déterminer le coup total j’ai utilisé la fonction millis() qui retourne le temps en milliseconde depuis le début du programme afin de déterminer combien de temps le module met pour envoyer sa requête.

Voici les résultats obtenue avec quelques essaies

Je suis ensuite partie du principe que cette sonnette sera utilisée 2 fois par jour pour faire une étude théorique de sa durée de vie et voilà se que j’ai obtenu:

A NOTER

Cette n'est qu'une étude statistique mais j'ai prise des valeurs volontairement arrondis au-dessus!

Pour moi ce bouton répond bien au cahier des charges fixé. En effet son autonomie est de plus d’un an en théorie, mission accomplis! 🙂

Montage final

 

C’est le moment de passer à la meilleure partie de toute! Le final!

J’ai commencé par souder le bouton aux broches Gnd et RST tout en prenant le moins de place possible (la boite NIVEA nous en offre pas beaucoup) et je dois avouer que je suis plutôt content de moi 😀

Je me suis ensuite attaque à la batterie en prenant soin de ne pas me tromper entre le coté + et – de la pile :

Il ne me reste plus qu’a mettre tout ça en pot et à placé les modules ou bon me semble! TADAM!

A NOTER

Ma sonnette finale ressemble à un pot de confiture parce que en voulant faire un trou sur le couvercle afin de faire passer le bouton j'ai tout cassé 🙂