DIY: Une lampe connectée qui s’allume au passage de l’ISS

Salut, en ce début du mois de décembre j’ai décidé de faire un petit projet de luminaire. Comme nous le savons, c’est surement la période de l’année ou nous consommons le plus d’électricité relative aux lumières. C’est pourquoi, aujourd’hui on apprend à en faire une connectée à l’aide de notre fidèle carte wemos !

MATERIELS

1- Une lumière que j’avais déjà utilisée dans un des articles (lien ici). Cette lumière fonctionne sous différente intensité en touchant sa base (j’en reparle après).

2- La carte wemos d1 mini et son shield relay (pour contrôler l’alimentation)

CarteWemosShieldSoudé

3- Ainsi qu’un DC step down qui permet de réguler la tension de sortie par rapport à la tension d’entrée .

4- Un ruban de LED avec son alimentation de préférence.

Autres : Fer à souder, câble arduino, gaine thermique, colle chaude, tourne visse multifonction, différente pince,dremel, ect…

CONCEPTION DE LA LAMPE

Pour ce projet je n’aurais pas besoin de la fonction « toucher pour modifier l’intensité » de la lampe. En réalité celle-ci me gênera plus qu’autre chose. Il faut donc la retiré, tout comme l’ampoule halogène à l’intérieur qui rendra la manipulation plus compliquée.

J’ai pour commencer ouvert celle-ci depuis sa base. Puis j’ai retiré les différentes parties électriques qui servent à la contrôler.

J’ai retiré l’ancienne ampoule pour la remplacer par des LED.  Pour réussir cela il a fallu que je trouve un moyen de passer un morceau de ruban de LED au travers la lampe afin de tenter de le placer autour de l’ancien support de l’ampoule

Tout d’abord, j’ai commencé par joindre l’alimentation 12v et le ruban en connectant le +12v ainsi que le Gnd aux couleurs rouge, vert, bleu. Pour éviter tout court-circuit ou mélange des couleurs, j’ai sécurisé le tout avec de la colle chaude.

A noter

Je n’avais chez moi que des LED RGB, ors ici nous ne voulons qu’une simple couleur blanche. C’est pourquoi je connecte le Gnd aux 3 couleurs.

Pour passer l’alimentation et le ruban au travers de la base pour aller à l’intérieur de la lampe, pas de problème. C’est pour faire passer celle-ci au travers de l’ancien support d’ampoule que j’ai eu du mal.

En effet j’ai dû retirer les fiches métalliques servant à alimenter l’ancienne ampoule et agrandir un trou préexistant avec une dremel pour y faire passer l’alimentation.

Ceci fait, j’ai ensuite coupé le ruban de LED pour y laisser un morceau que j’ai enroulé autour cet ancien support.

Si tout s’est bien passé, en alimentant elle devrait s’allumer sans problème. Elle ne fonctionne désormais plus sur du 220v, mais sur du bon vieux 12v.

CIRCUIT

Le circuit est super simple. Nous utiliserons notre step down pour faire chuter la tension à 3.3v et notre relay pour contrôle le 12v.

Voici le schéma que j’ai réalisé :

Le défi était d’à la fois alimenter la lampe et la carte. Contrairement à mon article qui parle de l’utilisation d’un shield fonctionnant sur batterie, se système lui sera opérationnel tant que tu as de l’électricité.

J’ai commencé par connecter mon step down au circuit.

Un conseil, pense à également travailler directement dans la lampe pour éviter d’avoir à faire des rafistolages de câbles comme moi.

Rien de plus simple pour le branchement il faut simplement faire attention à ne pas inverser le + et le – sur l’entrée ainsi que la sortie du DC step down.

ATTENTION

La base métallique de la lampe peut créer des courts-circuits au contact du step down. C’est pourquoi tu vois du scotch rouge sur les photos.

Pour régler le step down il y a un pat de visse, il te suffira de t’aider d’un multimètre pour savoir qu’elle sera sa tension de sortie.

A noter

J’ai deux types de stepdown cependant l’un supporte seulement 1A max, j’ai donc pris l’autre option que supporte jusqu’à 3A. Dans le cas contraire, ça risque de chauffer !

Dans le but de distribuer le 12v j’ai soudé des câbles à l’entrée du stepdown et pour le 3.3v à la sortie. J’ai ensuite vérifié que tout était correct avec le multimètre.

Il ne reste plus qu’à connecter la wemos et le shield. Pour assembler la carte et le shield, rien de plus simple. J’ai ajouté les broches male femelle sur les deux puis je les aie emboité!

La carte wemos sera alimentée par la sortie du step down sur ces broches 3.3v et Gnd. Et le relay sera placé de manière à faire passer du courant dans sa position allumée et à ne rien faire passer dans sa position éteinte. Si tu ne sais pas maitriser le relay je te renvoie sur l’article ou j’explique en détail comment s’en occuper.

Pour finir j’ai soudé la sortie du relay sur le + des LED et le Gnd en entrée du step down sur le Gnd des LED.

J’ai pour ma part volontairement laissé les câbles d’alimentations de la carte wemos avec des broches males pour pouvoir faire des mises à jour logiciel rapidement.

PROGRAMMATION

Je ne suis pas encore certain que ce programme sera le programme final. Dans l’idée je voulais réaliser un simple petit serveur permettant d’allumer et d’éteindre la lampe (comme dans l’article sur l’utilisation du relay). Contrairement à mon ancien article, j’ai beaucoup soigné l’aspect pour le rendre plus pratique encore.

Maintenant qu’on sait comment utiliser les API, depuis la semaine dernière (voir article API). Je me suis dis pourquoi pas en ajouter une. J’ai sélectionné une API qui nous donne les coordonnées de l’ISS (Station spatiale internationale). Le but sera d’allumer la lampe quand celle-ci passe au-dessus de la France (1x par jour).

C’est certes inutile, mais j’aimerais beaucoup me surprendre certains jours à remarque qu’elle est allumée.

Mes abonnés seront surement familiers avec l’interface visuelle que je vais présente pour le serveur web. Et oui, j’avais déjà détaillé comment la réaliser dans un mail du jeudi. Pour t’inscrire, clique ici !

Pour réaliser le serveur Web j’ai déjà fait le HTML et le CSS séparément dans sublime text. Je ne me suis pas cassé la tête, j’ai simplement repris le code déjà fait sur le site : https://codemyui.com/tag/button/page/2/

La dernière fois que j’ai réalisé un tel serveur, j’avais un css assez limité ors aujourd’hui celui-ci est plus conséquent. Pour l’implémenter facilement dans le code arduino j’ai utilisé un convertisseur CSS to Arduino code : http://davidjwatts.com/youtube/esp8266/esp-convertHTM.html#

De cette manière le code sera dans une variable que l’on aura à simplement annoncer dans le style du code HTML sur Arduino IDE.

Le code est sinon sensiblement le même que dans l’article traitant du shield relay. L’idée c’est de pouvoir contrôler l’état haut ou bas du shield relay et de retourner et afficher cet état sur le serveur.

Pour l’utilisation d’API, n’hésite pas à aller voir l’article dessus parce que je ne vais pas trop m’y attarder. J’ai utilisé open notify qui donne notamment la longitude et la latitude de l’ISS. On s’y connecte en simplement déterminant l’host : http://api.open-notify.org et la requête que l’on souhaite envoyer : /iss-now.json

A noter

L'ensemble du code concernant l'API s'éxecutera que toute les X min. Pour cela il sera contenue dans une boucle If à partir de la création du client.

Comme d’habitude j’ai utilisé l’assistant json (https://arduinojson.org/v5/assistant/) pour déterminer la taille du buffer et j’ai ensuite récupérer la longitude et la latitude de la station dans des variables du même nom.

Pour savoir si celle-ci est au-dessus de la France, j’avoue ne pas m’être embêté. J’ai simplement pris les points les plus à l’ouest/Est/Nord/Sud pour ensuite déterminer si les coordonnés qui sont dans cette zone.

Un simple if suffit pour vérifier si les coordonnées de la longitude sont entre vmaxNord et vmaxSud et si les coordonnées de la latitude sont entre vmaxEst et vmaxOuest.

L’un des problèmes que j’ai rencontrés en fonctionnant de cette manière est le spam de requête au serveur. Il peut entrainer un ralentissement du réseau à terme. Pour lutter contre ça j’ai utilisé la fonction millis(). Celle-ci permet de compter depuis combien de temps le programme est lancé.

En effet un delay ne pourrait pas fonctionner puisque la carte observe sans cesse le réseau. Pour savoir si elle reçoit une requête d’un éventuel client. Je compare depuis combien de temps le programme est lancé et si cela fait plus de 3 min je regarde ou en est l’ISS.

De cette manière toutes les 3 minutes on saura si l’ISS est au-dessus de la France, dans le cas où c’est vrai alors on allumera la lampe.

–> CODE SOURCE <–

Voilà pour ce petit projet assez simple. Il peut être une décoration de Noël originale ou même un cadeau de Noël pas trop cher.

Reçois 1 un petit guide de réalisation DIY par semaine!

+

Du contenu bonus offert à chaque nouvel article!