Table des matières:

Sapin de Noël NeoPixel contrôlé par Bluetooth : 5 étapes
Sapin de Noël NeoPixel contrôlé par Bluetooth : 5 étapes

Vidéo: Sapin de Noël NeoPixel contrôlé par Bluetooth : 5 étapes

Vidéo: Sapin de Noël NeoPixel contrôlé par Bluetooth : 5 étapes
Vidéo: Prueba de Árbol de Navidad (Arduino) 2024, Novembre
Anonim

Vous vous demandez comment ajouter l'IoT (Internet des objets) dans votre sapin de Noël cette année ? Eh bien, c'est tout à fait possible ! J'appelle personnellement ce projet "ArduXmas", et il se compose d'une bande led RGB NeoPixel contrôlée par une carte Arduino via Bluetooth. Il s'agit d'un projet convivial pour les débutants et d'une excellente introduction à Arduino e IoT, alors procurez-vous vos outils et faisons-le !

Fournitures:

Pour ce projet, vous aurez besoin de:

  • Arduino (j'ai utilisé Nano, mais n'importe quelle version fonctionnera, assurez-vous simplement d'alimenter correctement votre carte)
  • Bande LED NeoPixel WS2812b
  • Module Bluetooth HC-06
  • Alimentation 5V 2A CC
  • Prise/connecteur d'alimentation DC Barrel
  • Plaque en phénolite pour le maintien des composants
  • Boîtier boîtier
  • Smartphone Android avec application Blynk installée

Étape 1: Le circuit

Le circuit
Le circuit
Le circuit
Le circuit
Le circuit
Le circuit

L'électronique de ce projet est très simple. L'Arduino, le module Bluetooth et la bande LED sont alimentés par l'alimentation 5V (assurez-vous que tous les GND sont connectés ensemble). La carte Arduino est alimentée via le port 5V (ATTENTION: alimenter l'Arduino à l'aide du port 5V peut endommager votre carte si vous ne faites pas attention. Assurez-vous d'utiliser une alimentation régulée 5V et ne mélangez pas le +5V et fils GND). Le courant fourni par votre alimentation dépendra de la longueur de votre bande LED. J'utilise 180 LED avec 40% de la luminosité totale et 2 ampères tiennent bien, mais assurez-vous toujours de fournir le courant nécessaire (RAPPELEZ-VOUS: Chaque LED RVB utilise environ 20mA + 20mA + 20mA = 60mA).

Le module Bluetooth HC-06 est connecté aux broches 0 et 1 (RX, TX) de l'Arduino, n'oubliez pas que pour utiliser ce module, la broche RX du HC-06 est connectée au TX de l'Arduino et la broche TX du HC-06 est connecté au RX de l'Arduino. Ce sont les broches de connexion série de la carte, et sont utilisées pour recevoir les commandes du smartphone. J'ai ajouté un interrupteur pour allumer/éteindre facilement le module afin que je puisse l'éteindre lors de la programmation de la carte, sinon l'ordinateur ne peut pas communiquer avec l'Arduino.

Dans le circuit, la broche de sortie de données allant à la bande LED est la broche numérique 2, mais vous pouvez choisir n'importe quelle broche PWM et la modifier en conséquence dans le code (RAPPELEZ-VOUS: les bandes LED de NeoPixel ont une direction pour le signal de données. Recherchez toujours le icônes de flèche dans votre bande).

Afin de faire les connexions, j'utilise une plaque de phénolite avec des trous de sorte qu'elle soit facile à souder et à démonter l'année prochaine.

Étape 2: L'enceinte

L'enceinte
L'enceinte
L'enceinte
L'enceinte
L'enceinte
L'enceinte

Pour le boîtier, j'utilise simplement le boîtier d'alimentation d'un ancien ordinateur portable qui s'adapte parfaitement aux composants. Fixez le tout avec de la colle chaude et laissez des trous pour le port USB de l'Arduino, le commutateur HC-06, le connecteur CC et le connecteur de bande LED.

Étape 3: Application Blynk

Application Blynk
Application Blynk
Application Blynk
Application Blynk
Application Blynk
Application Blynk

Pour communiquer avec l'Arduino, nous utilisons l'application Blynk. Avec Blynk vous pouvez facilement créer des interfaces pour envoyer des données du smartphone vers le matériel ou inversement, il est également possible de contrôler directement les ports du microcontrôleur sans changer une ligne de code !

AVIS DE NON-RESPONSABILITÉ: Malheureusement, cette application ne fonctionnera que pour les smartphones Android car la fonctionnalité Bluetooth est toujours en version bêta et n'est pas encore disponible pour IOS, cela signifie également qu'il ne sera pas possible d'exporter le projet en tant qu'application autonome.

Configurez votre application pour recevoir le jeton d'authentification de votre projet dans votre boîte de réception (cette authentification sera nécessaire plus tard dans le code de l'Arduino). Le site Web de Blynk propose un excellent tutoriel étape par étape à ce sujet, consultez-le:

Pour ce projet, j'utilise deux boutons pour allumer 2 animations lumineuses pré-codées; un composant RVB pour définir la couleur de la bande LED; un curseur pour contrôler la luminosité et un composant Bluetooth pour se connecter à l'Arduino. Consultez les images pour voir comment chaque composant est configuré. Faites attention aux broches utilisées pour ce projet car nous utilisons les broches virtuelles de Blynk, c'est une fonctionnalité intéressante qui permet d'envoyer des données de l'application au matériel. Pour plus d'informations sur les épingles virtuelles:

Étape 4: Code Arduino

Code Arduino
Code Arduino

Il est temps de faire du code ! Le fichier que j'ai fourni a la structure de base pour exécuter le projet, mais vous pouvez le modifier à votre guise. Cependant, pour que cela fonctionne correctement, vous devez remplacer le caractère auth par le jeton que vous avez reçu dans votre boîte de réception. N'oubliez pas non plus de modifier les variables LED_PIN et LED_COUNT en fonction de votre configuration.

Le comportement des LED est dicté par la variable d'animation qui change lorsqu'une demande est reçue par l'application. Vous pouvez ajouter autant de possibilités d'animations que vous le souhaitez, ajoutez simplement votre fonction à la structure de commutateur dans la fonction toggleAnimation() et attribuez la lecture de la broche virtuelle correspondante en haut du code.

L'animation s'exécutant en boucle () est liée à une minuterie s'exécutant à des intervalles de 100 ms. C'est nécessaire, et je ne recommande pas de le changer, car cela interfère avec la commande Blynk.run() et la connexion est coupée si la bibliothèque Blynk détecte trop de requêtes en peu de temps.

Conseillé: