Motorisation de la lampe IKEA à abat jour amovible (PS 2014)

Je suppose que vous avez déjà tous vu cette lampe un peu intrigante chez des amis où directement lors d’une balade chez le célèbre fabriquant de meubles Suédois.

Lampe modèle PS 2014
Modèle PS 2014

Vous pouvez trouver cette lampe modèle PS 2014 sur le site IKEA pour environ 70 euros.

La manière dont s’ouvrent les lamelles de l’abat-jour est assez satisfaisante, c’est pourquoi je me suis donné comme défi d’y ajouter une motorisation pour rendre l’effet encore plus fun !!!

La réalisation de ce projet n’a pas été simple, il m’a fallu des heures de modélisations, de simulations, d’impressions 3D, de programmation et surtout énormément de patience !

Je vais essayer dans cet article de détailler au maximum à l’aide de photos et d’explications les différentes étapes pour réaliser ce projet.

Pour ce projet, il sera nécessaire d’avoir de bonnes connaissances en programmation et en électronique.

Vous pouvez retrouver l’ensemble des pièces 3D, des schémas ainsi que le code à la fin de cet article.

Vous êtes prêt ? Allez c’est parti 😉

Etape 1 – Modification du support chariot

Pour mettre en place le mécanisme de déplacement du chariot de la lampe, il sera nécessaire d’intégrer des pièces qui permettront de mettre en tension une cordelette.

Cette cordelette permettra au moteur de se déplacer sur celle-ci à l’aide d’une roue crantée. Pour cela, il faut effectuer une petite modification sur le support du chariot.

Il suffira simplement de supprimer l’arrondi en usinant les deux extrémités de la tige et de percer un trou en son centre afin d’y insérer une vis pour la fixation du système de mise en tension de la corde.

Usinage bas du chassis
Usinage bas du châssis
Extrémités
Aperçu des extrémités
Perçage bas du chassis
Perçage bas du châssis

Etape 2 – Motorisation du chariot

Au tout début, pour actionner le chariot j’ai décidé d’utiliser un moteur pas à pas à réducteur intégré (modèle 24BYJ48 5V) qui trainait dans mes tiroirs.

Support moteur V1
Support moteur V1

Malheureusement, une fois toutes les lamelles de l’abat-jour positionnées, il n’était pas assez puissant pour actionner le chariot à cause du poids de celles-ci. Il s’agissait de mon premier échec !

Je suis donc parti à la recherche d’un nouveau modèle de moteur équipé d’un réducteur avec un rapport supérieur.

Mon choix s’est porté sur le modèle DC6V N20 50RMP . Il est très compact, possède une vitesse de 50 rotations par minute avec une tension de 5 volts et un couple très puissant. Ce qui est suffisant pour notre utilisation.

Moteur DC6V N20 50RPM
Moteur DC6V N20 50RMP

J’ai donc dû modéliser un nouveau support moteur pour s’adapter à ses nouvelles dimensions.

Modélisation du support moteur V2
Modélisation support moteur V2

Voici le résultat après impression et installation sur le chariot.

Installation du support moteur V2
Installation du support moteur V2

J’ai également amélioré le mécanisme de mise en tension de la corde.

Modélisation du tendeur
Modélisation du tendeur

Pour l’impression 3D, j’utilise une imprimante à photopolymérisation (AnyCubic Photon S).

Chaque pièce est nettoyée avec de l’alcool isopropylique, plongée dans un bain à ultrasons avec une solution savonneuse et mise devant une lampe à UV pendant plusieurs minutes afin de garantir une bonne solidité.

Impression pièces tendeur
Impression pièces tendeur

Voici le rendu après impression et assemblage.

Mise en place du tendeur
Mise en place du tendeur

La corde est maintenue en place dans les gorges du tendeur par de simples nœuds à chaque extrémité.

Des orifices de chaque côté du tendeur permettent de faire glisser la corde dans son emplacement.

Sur la partie haute, aucune modification n’est nécessaire. La pièce vient s’ajouter sur l’emplacement existant à l’aide d’une vis.

Tendeur haut
Aperçue support
Support chariot avec son circuit
Support chariot avec son circuit

Notre chariot est maintenant équipé de sa motorisation. Il ne reste plus qu’à la rendre fonctionnelle !

Aperçue général

Etape 3 – Réalisation du circuit de commande moteur WiFi (circuit basse tension)

Sur la première version du circuit de commande, j’ai décidé d’utiliser un système hybride composé d’un ATMEGA 328P et un ESP01 basé sur un ESP8266 avec une liaison série entre les deux contrôleurs afin de combler le manque d’entrées et sorties du module ESP.

Sur ce modèle, il est possible d’utiliser uniquement les ports GPIO 0 et 2 en excluant RX et TX nécessaire à la communication avec le contrôleur ATMEGA. La programmation des deux éléments était très lourde et la communication entre les deux contrôleurs instables.

Voici un aperçu du premier circuit

Circuit de contrôle du moteur
Circuit de commande V1 avec contrôleur ATMEGA 328 et ESP01

Après avoir comparé d’autres modules, je suis finalement parti sur l’intégration d’un module de type ESP12-F toujours basé sur un ESP8266 qui offre bien plus de possibilités, peu onéreux avec un encombrement très faible.

ESP12F
ESP12-F

Vous pouvez trouver ce module facilement. Il est vendu par lot sur Amazon pour moins de 30 euros

Lien Amazon ESP12

Voici la liste des composants nécessaires pour la réalisation du circuit :

  • 1 diode 1N4001
  • 1 L293D (pont en H)
  • 1 bouton poussoir
  • 1 module WiFi ESP12E
  • 1 MCP1700 (régulateur de tension 3.3V)
  • 5 résistances de 10Kohm
  • 1 résistance de 100Kohm
  • 1 résistance de 22Kohm
  • 1 condensateur polarisé de 47uF
  • 2 condensateurs céramique de 1uF
  • 1 condensateur de 10 uF
  • 1 lot de barrettes pins mâles / femelles (pas de 2.54mm)
  • 1 lot de connecteurs JST mâles / femelles (pas de 2.54 mm)
  • 1 plaque cuivrée (gravure du circuit)
  • 1 module FT232RL (envoi du programme dans l’ESP)

Pour la conception, j’ai utilisé le logiciel gratuit KiCad. Il est parfait pour concevoir les schémas ainsi que les circuits.

Voici le schéma de fonctionnement :

Schéma de fonctionnement du circuit de contrôle
Schéma de contrôle moteur

Le bouton poussoir présent dans le schéma permettra d’effectuer une réinitialisation des paramètres.

Le connecteur nommé « Conn_Flash » permet de passer le module ESP en mode flash à l’aide d’un cavalier et le connecteur « Conn_Prog » permet de charger notre firmware dans l’ESP à l’aide du module FT232RL.

FT232RL

Dans ce schéma vous ne trouverez aucun interrupteur de fin de course pour la détection des positions haute et basse.

J’ai utilisé l’entrée ADC du contrôleur ESP pour détecter la chute de tension dans le circuit lorsque le moteur est bloqué.

Les deux résistances présentes près de l’entrée ADC permettent de faire un pont diviseur car la tension sur cette entrée ne doit pas dépasser 1 volt.

Pont diviseur

Celle-ci possède une résolution de lecture de 10 bits soit de valeur max de 1017.

Choix des résistances du pont diviseur pour une tension de 5 volts :

R1 = 100 Kohms

R2 = 22 Kohms

Calcul de la tension de sortie de notre pont pour une tension de 5 volts.

Formule pont diviseur

Vout = 5 * 22 / (100 + 22) = 0.9016393443

0.90 sera la tension maximal au borne de l’entrée ADC, on ne dépasse donc pas la tension maximale de 1 volt. Notre pont diviseur fait donc parfaitement son travail !

Radio du pont diviseur : 5 / 0.9016393443 = 5.54 Volts

Calcul de la valeur du bit de poids faible LSB (Least Significant Bit)

LSB = (0.901639 / 1017) * 5.54 = 0.004911583

0.004911583 * 1017 = 4.995 volts soit une précision de 0.0049 volts par unité.

Il ne restera plus qu’à ajouter une petite fonction dans notre code qui interrogera l’entrée ADC pour obtenir la tension présente dans le circuit.

Pour la réalisation du circuit, j’ai dû l’adapter aux dimensions de la partie interne du chariot de la lampe pour gagner un maximum de place sur l’encombrement du système afin qu’il passe presque inaperçu.

Circuit de contrôle
Circuit de contrôle

La gravure, le perçage et le découpage des circuits ont été réalisés avec une fraiseuse numérique.

Il existe de nombreux tutos sur YouTube pour vous guider dans les différentes étapes de réalisation d’un circuit.

Pour la création des fichiers GCODE, j’ai utilisé l’excellent logiciel CopperCAM.

CopperCAM permet de générer des instructions (GCODE) sur forme de fichier pour être consommé par le logiciel de pilotage de ma fraiseuse Mach3.

Voici les étapes :

KiCad (fichiers GERBER) => CopperCAM (GCODE) => Mach3 => CNC

J’utilise différents outils pour réaliser les circuits (fraise de gravage, fraise de découpe et forets).

Voici une vidéo accélérée de la gravure du circuit de contrôle du moteur.

Une fois notre circuit découpé et tous ses composants soudés, voici le rendu final.

Circuit de contrôle face avant
Circuit de contrôle face arrière
Support chariot + circuit

Malheureusement pour certains ponts (vias) il y a des fils qui trainent.

Visuellement ce n’est pas top mais je n’ai pas eu le choix par manque de place.

Le circuit est fixé sur le chariot à l’aide de colle chaude.

Etape 4 – Réalisation du circuit de puissance (commande relais + alimentation)

Voici la liste des composants nécessaires pour la réalisation du circuit :

  • 1 relais 5v (commande 230V).
  • 1 plaque cuivrée (gravure du circuit).
  • 3 borniers double broches (pas de 5mm).
  • 1 lot de barrette pin mâle / femelle (pas de 2.54mm).
  • 1 lot de connecteur JST mâle / femelle (pas de 2.54 mm).
Schéma de fonctionnement commande relais

Circuit primaire (puissance)

Circuit de commande relais

Après gravure, découpage et montage des éléments.

Sur ce circuit, je n’ai pas utilisé de gravure par isolation des pistes comme sur le précèdent. Je suis passé par une élimination complète du cuivre autour des pistes avec ma pointe à graver par passes de 0.1 mm. Il faudra compter environ 4 heures pour obtenir ce résultat !

Circuit de commande relais face arrière

Concernant la fixation et la sécurisation du circuit, j’ai réalisé un petit boitier imprimé en PLA qui permettra d’isoler la partie haute tension.

Boitier circuit relais

J’ai utilisé mon fer à souder avec une panne épaisse pour faire fondre le plastique afin que la carte ne bouge plus de son emplacement.

Boitier + circuit
Boitier + circuit

Le transformateur utilisé est un chargeur de tablette DELL avec les caractéristiques suivantes :

  • Tension d’entrée 230 V
  • Tension de sortie 5V
  • Courant de sortie max 2A

Vous pouvez utiliser n’importe quel ancien transformateur USB. Du moment qu’il puisse fournir une intensité d’au moins 1 ampère.

Transformateur + circuit

Pour le câblage, j’ai utilisé un ancien câble USB blindé pour éviter les perturbations générées par le courant alternatif du secteur.

Le câble blindé contient 4 fils. J’ai décidé d’en utiliser 3. Les fils rouge et noir (+ -) permettent d’alimenter en 5 volts notre carte de commande et le fil vert permet d’avoir un retour en provenance de la carte de commande pour alimenter notre relais en 5 volts.

Les deux fils bleu et marron (phase, neutre) servent à alimenter en 230 volts la douille de la lampe.

Les trois câbles sont passés dans une gaine thermo-rétractable de couleur blanche, puis chauffée à l’aide d’un pistolet à air chaud.

Câbles

Il faut ensuite passer les trois fils dans le douille de la lampe. J’ai dû travailler légèrement le haut de celle-ci pour y faire sortir mon câble blindé. J’ai ajouté des prises pour faciliter le démontage.

Douille

Il ne reste plus qu’a cacher tous les éléments dans le cache du plafonnier.

Plafonnier

Le projet est presque terminée, il ne reste plus qu’a envoyer le programme dans notre ESP.

Etape 5 – Programmation

Pour la programmation j’ai utilisé l’éditeur VS Code avec le plugin Arduino.

VS Code

Voici les paramètres à sélectionner pour la carte « NodeMCU 1.0 (ESP-12E Module) (esp8266).

Configuration carte VS Code

Afin de faciliter le développement, j’ai intégré une librairie qui me permet d’envoyer le programme directement dans l’ESP via le réseau Wifi sans passer par le module FT232RL.

Je ne vais pas détailler l’ensemble du code dans cet article. Vous pouvez retrouver mes commentaires directement dans le code source du projet.

Lors de la première mise en route, le module passera directement en mode point d’accès. Cela permettra de configurer la lampe sur notre réseau privé.

Pour cette première version (eclipse-v1.30-BETA), voici la liste des fonctionnalités.

  • Interface de contrôle lampe + abat jour
  • Mode d’apprentissage (Learning) qui permet de trouver automatiquement le délai d’ouverture et de fermeture de l’abat jour grâce aux chutes de tensions dans le circuit.
  • Intégration du protocole MQTT pour interconnecter la lampe avec d’autres systèmes.
  • Emulateur HUE pour associer la lampe aux périphériques de type Amazon Alexa.
  • Système de mise à jour du firmware (mode manuel).
  • Gestionnaire de connexion (sélection des réseaux wifi).

Le programme est amené à évoluer au fil du temps.

Voici un aperçu des différents écrans de l’interface web.

Interface de contrôle
Contrôle de la lampe
Interface infos
Informations système
Interface configuration
Menu de configuration
Interface système
Paramètres du mode d’apprentissage
Interface émulateur HUE
Paramètres de l’émulateur HUE
Interface MQTT
Paramètres MQTT
Interface réseau
Paramètres réseau

Grace à l’intégration de MQTT, vous pouvez ajouter la lampe sur quasiment n’importe quelle interface domotique.

Pour ma part j’utilise Home Assitant. Vous pouvez voir un aperçu du tableau de bord.

Intégration Home Assitant
Dashboard sur Home Assistant

Voici une petite vidéo de démonstration

Vous pouvez retrouver l’ensemble des schémas, des pièces 3D ainsi que le code source sur mon GitHub.

N’hésitez à m’envoyer vos questions et vos remarques !

A très bientôt 😉

Auteur: Maxime Maucourant

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.