Lumières d'ambiance MQTT avec ESP32 : 4 étapes (avec photos)
Lumières d'ambiance MQTT avec ESP32 : 4 étapes (avec photos)
Anonim
Lumières d'ambiance MQTT avec ESP32
Lumières d'ambiance MQTT avec ESP32

J'avais été tenté pendant un certain temps de sauter dans le train LED, alors je suis sorti en courant et j'ai ramassé une bande LED avec laquelle jouer. J'ai fini par faire ces lumières d'ambiance. Ils peuvent être contrôlés avec MQTT, ce qui permet d'ajouter toutes sortes d'intelligences.

C'est un bon projet de week-end si vous n'avez rien d'autre à faire et que vous voulez vous salir les mains en faisant quelque chose.

Notez que le but de cet Instructable est de documenter mon projet et de partager des idées avec d'autres, et pas nécessairement de fournir des instructions et des méthodes solides. Cela dit, lisez la suite !

Fournitures

Électronique:

  • 1x carte de développement ESP32
  • 1x écran OLED I2C 0,96"
  • 1x sonnerie
  • 1x prise baril
  • 1x alimentation 12V (le courant dépend de la longueur de votre bande)
  • 1x convertisseur abaisseur LM2596
  • 1x bande LED RVB à anode commune
  • 3x MOSFET IRFZ44N
  • 3x transistors BC547
  • 3 résistances 10kΩ
  • 4 résistances 100Ω
  • 1x planche de prototypage
  • 4x bornes à vis
  • En-têtes mâles et femelles
  • Fil (j'ai utilisé un brin simple)

Autres matériels et outils:

  • Votre matériau souhaité pour une enceinte (j'ai utilisé du MDF)
  • Matériau plat et conducteur pour les contacts tactiles (j'ai utilisé une fine feuille d'aluminium)
  • Scies, perceuses, papier de verre, etc.
  • Fer à souder et amis
  • Colle chaude

Je recommanderais fortement de ne pas opter pour un ESP32 avec un écran OLED intégré, car il devient très difficile de faire une découpe bien alignée dans votre boîtier pour cela.

Étape 1: Électronique

Électronique
Électronique
Électronique
Électronique

Le schéma ci-joint montre toutes les connexions requises, à l'exception des entrées tactiles. Il existe également un schéma de maquette relativement vague montrant comment câbler un MOSFET, au cas où le schéma serait inadéquat.

Puissance

Un convertisseur abaisseur LM2596 abaisse le 12V de l'alimentation à 5V pour le VIN de l'ESP. Assurez-vous que votre alimentation est correctement dimensionnée pour la longueur de la bande LED que vous utilisez. Ma bande de 2 mètres de long consomme un peu plus de 2 ampères.

Broches et périphériques

Quatre broches tactiles sont utilisées pour, eh bien, les entrées tactiles. Ma carte ESP32 était livrée avec un écran OLED attaché, dont les broches I2C étaient câblées. Cela utilise quatre broches PWM, une pour chaque composant de couleur (rouge, vert et bleu) et une pour le buzzer.

MOSFET brouille

Les MOSFET ont été choisis pour gérer les temps de commutation rapides pour PWM et un courant relativement élevé. Il y a un MOSFET pour chaque composant de couleur. J'ai utilisé des BJT NPN séparés (BC547) avec une résistance de rappel pour piloter les IRFZ44N, car les signaux numériques de 3,3 V de l'ESP32 n'ont peut-être pas suffi pour que les MOSFET conduisent autant de courant que nécessaire. Des MOSFET de niveau logique comme l'IRLZ44N existent, mais je ne les ai découverts qu'après avoir fini de tout souder. Quoi qu'il en soit, ma bande qui dessine ~ 2A fonctionne bien.

Soudure

Des bornes à vis sont utilisées pour se connecter à la bande LED et des embases femelles pour brancher l'ESP32, au cas où je voudrais remplacer l'une d'entre elles sans dessouder les choses. La soudure a pris environ deux heures et était très simple. J'ai également donné à ma bande LED des fils plus longs.

Pourquoi j'ai choisi l'ESP32

Il a le WiFi et le Bluetooth à bord (bien que je n'utilise que le WiFi pour le moment), et j'en avais un qui traînait que j'avais hâte d'utiliser. Les entrées tactiles se sont également avérées utiles pour l'interface du contrôleur, car elles n'ont besoin que d'un seul fil pour un contact. Si vous le vouliez, cependant, l'ESP32 pourrait facilement être remplacé par un microcontrôleur comme l'ESP8266.

Étape 2: Coder

J'ai utilisé l'ensemble d'outils Arduino (en fait l'extension Arduino pour VS Code:)) pour programmer cela. Il existe d'excellents tutoriels comme celui-ci sur la façon de démarrer avec l'IDE ESP32 et Arduino, si vous ne l'avez pas déjà fait.

Il existe quatre modes différents à gérer: couleur statique, couleur aléatoire, alerte rouge et alerte bleue. Il y a quatre entrées tactiles pour haut, bas, suivant et alerte rouge. Le toucher utilise des interruptions.

J'ai également ajouté MQTT aux travaux, afin de pouvoir le contrôler via WiFi. J'essaie de me faire une idée des trois grands de l'application Web (HTML, CSS, JS), j'ai donc conçu une page Web sur le thème de Star Trek (mais plutôt moche) qui communique avec un courtier MQTT pour contrôler les lumières d'ambiance.

Tout mon code se trouve en pièce jointe, ainsi qu'une feuille de référence rapide, dont vous souhaiterez peut-être changer le nom de fichier pour en faire une démarque. Déplacez tous les fichiers dans un dossier portant le nom "ESP32MQTTMoodLighting" avant de les ouvrir avec Arduino.

Notez que mon code fonctionne, mais n'est probablement pas le meilleur. Mais cela ne devrait pas avoir d'importance, car vous allez écrire le vôtre de toute façon, n'est-ce pas ?:)

Étape 3: Enceinte et assemblage

Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage
Boîtier et assemblage

Pendant le confinement, le seul matériau sur lequel j'ai pu mettre la main était une feuille de MDF de 5 mm. J'ai fait les grandes coupes avec une scie à métaux ordinaire et j'ai tout donné un bon sable. Une double couche de peinture émaillée a terminé la préparation principale.

Panneau arrière

Je voulais que ma boîte soit facilement ouvrable, j'ai donc monté toute mon électronique sur le panneau arrière avec quatre entretoises pour PCB M2. Mon perfboard avait déjà des trous M2 percés. Mes entretoises avaient de petits talons filetés en bas, que j'avais l'intention de fixer dans le MDF. Mais je n'avais pas de foret M2. Ainsi, marquant la position de chaque trou, j'ai utilisé un petit tournevis à tête plate pour creuser manuellement les trous. Brut mais efficace. Les diamètres des trous étaient juste un peu plus petits que ceux de la partie filetée de l'entretoise. J'ai tordu les entretoises dans et hors des trous à quelques reprises, ce qui les a élargies et presque enfilées.

Finalement, les entretoises se sont assises fermement dans leurs trous et ont maintenu le panneau perforé en place. Parce que mon MDF était très épais, rien ne transparaissait de l'autre côté.

J'ai percé le trou pour la prise d'alimentation et fait une fente pour le passage des fils de la bande LED, juste en dessous de l'endroit où se trouvaient mes bornes à vis.

Panneau avant

Découpe d'affichage OLED

J'ai commencé ma découpe pour l'OLED avec quelques trous de démarrage et les ai limés à la bonne taille. Cela a fini par être très bancal et mal aligné. Ne pas revérifier les mesures peut avoir joué un rôle dans cela, mais évitez des problèmes en n'utilisant pas de carte de développement avec un OLED intégré. Il est beaucoup plus facile de simplement monter l'écran sur votre trou.

Connecteur

J'ai fabriqué un connecteur à partir de quelques en-têtes mâles et femelles. Une extrémité attachée aux fils connectés aux contacts tactiles sur le panneau avant, tandis que l'autre côté avait des fils allant aux entrées tactiles de l'ESP. C'était pour que le panneau avant puisse être complètement retiré de l'arrière si nécessaire, sans perturber les joints de soudure. Si vous montez autre chose sur votre panneau avant, vous pouvez également créer un connecteur pour cela.

Tablettes tactiles

Les contacts tactiles étaient constitués d'une feuille d'aluminium. Je l'ai coupé pour obtenir les quatre tampons nécessaires et j'ai vérifié qu'il n'y avait pas de bords déchiquetés. J'ai ensuite percé des trous dans le panneau avant, juste assez grands pour un fil. Pour laisser la soudure coller aux plaquettes, j'ai éraflé une petite partie d'un côté avec du papier de verre pour enlever la couche oxydée, puis je l'ai essuyé rapidement pour éliminer toutes les particules. En faisant passer chaque fil à travers son trou correspondant dans le panneau avant, j'ai soudé chacun à sa pastille. Assurez-vous que votre soudure ne crée pas un renflement trop important à l'arrière, car cela ne permettra pas au tampon de s'aligner avec le panneau.

Enfin, ajoutez de la colle chaude au dos de chaque tampon et poussez-les sur le panneau avant. Si vous en ajoutez trop, les coussinets seront soulevés du panneau. Nettoyez tout excès de colle qui aurait pu être poussé sous les tampons.

Le reste

Les panneaux latéraux sont assez simples. Un trou d'accès rapide aux bornes à vis était plus problématique qu'il n'en valait la peine. J'ai collé à chaud les panneaux latéraux sur le panneau avant.

Le velcro sur deux bords maintient la partie avant au panneau arrière. Les espaces permettent au son du buzzer de s'échapper. Si vous faites un meilleur travail que moi, vous ne devriez pas vous retrouver avec quelque chose qui ressemble à un bricolage préscolaire d'un enfant de 5 ans:)

Ma bande LED avait un dos collant (je suis sûr que le vôtre aussi). J'ai monté le mien de telle sorte que la lumière se diffuse hors du mur.

Étape 4: Branchez-le

Branche le!
Branche le!

Vous devriez maintenant avoir une lumière d'ambiance contrôlée par MQTT. J'ai monté le mien sur mon bureau, où il ajoute une touche de couleur à un travail parfois monotone. La nuit est le moment idéal pour impressionner les gens.

J'espère que vous avez apprécié la lecture de cet Instructable et que vous avez quelques idées pour vos propres projets. Comme je l'ai mentionné précédemment, je suis un débutant, et c'est mon premier Instructable. J'apprécierais tous les conseils et commentaires.