Table des matières:

Réveil Smart Light recyclé : 8 étapes (avec photos)
Réveil Smart Light recyclé : 8 étapes (avec photos)

Vidéo: Réveil Smart Light recyclé : 8 étapes (avec photos)

Vidéo: Réveil Smart Light recyclé : 8 étapes (avec photos)
Vidéo: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembre
Anonim
Réveil Smart Light recyclé
Réveil Smart Light recyclé
Réveil Smart Light recyclé
Réveil Smart Light recyclé
Réveil Smart Light recyclé
Réveil Smart Light recyclé

Dans ce projet, je recycle un réveil à remontage complètement cassé. Le cadran de l'horloge est remplacé par 12 LED, éclairées par une bande LED autour du bord de l'horloge. Les 12 LED indiquent l'heure et la bande LED est programmée pour agir comme une alarme, atteignant la pleine luminosité à l'heure définie. Tout est contrôlé par un Raspberry Pi Zero permettant d'innombrables possibilités d'intégration et d'extension telles que la synchronisation automatique de l'alarme lumineuse avec l'alarme de votre téléphone ou le clignotement des LED lorsque vous recevez un e-mail.

Le projet utilise des composants relativement bon marché ou réutilisés - la seule chose que j'ai fini par acheter était le régulateur de tension. Tout ce que j'avais d'autre traînait, comme un morceau de bande LED. Ce Instructable vous guidera à travers la façon dont j'ai donné une nouvelle vie à mon horloge cassée et, espérons-le, pourrait vous inspirer à recycler quelque chose qui vous est propre.

Étape 1: Pièces

les pièces
les pièces
les pièces
les pièces
les pièces
les pièces

Pour tout contrôler, nous allons utiliser un Raspberry Pi Zero car il est petit, coûte très peu et peut être connecté au WiFi, ce qui signifie que nous n'avons pas besoin d'horloge en temps réel et pouvons donc facilement mettre à jour le code à distance depuis un ordinateur portable. À moins que vous n'ayez un Pi Zero W, nous nous connecterons à un réseau WiFi à l'aide d'un dongle WiFi USB.

Voici une liste des pièces que j'ai utilisées, mais la plupart des choses peuvent être remplacées par des alternatives appropriées. Par exemple, au lieu d'un Raspberry Pi, vous pouvez utiliser un Arduino avec une horloge en temps réel pour contrôler le projet.

Pièces utilisées

  • Un vieux réveil
  • 30cm de ruban LED blanc chaud
  • 1x Raspberry Pi Zero + carte micro SD
  • 1x clé USB WiFi + convertisseur micro USB vers USB
  • 12x LED
  • 12 résistances de 330 ohms (à utiliser plus haut si vous voulez des LED plus gradables)
  • 1x TIP31a (ou autre transistor de puissance npn ou MOSFET)
  • 1x résistance 1k
  • 1x convertisseur abaisseur réglable DC-DC LM2596 (réduit 12V pour 5V pour le Raspberry Pi)
  • 1x alimentation 12v (+ façon d'entrer dans votre projet)
  • 10 cm x 10 cm de bois pour le cadran de l'horloge (doit être suffisamment fin pour y monter vos LED)
  • Divers morceaux de fil de couleur différente

Des choses utiles à avoir

  • Fer à souder + soudure
  • Colle chaude
  • Multimètre
  • Planche à pain
  • Broches d'en-tête femelles
  • Lecteur ou convertisseur de carte Micro SD
  • Un ordinateur
  • Adaptateur mini HDMI + écran HDMI si vous souhaitez utiliser l'environnement de bureau du Pi

Étape 2: Configuration du Raspberry Pi

Configuration du Raspberry Pi
Configuration du Raspberry Pi
Configuration du Raspberry Pi
Configuration du Raspberry Pi

Système opérateur

Parce que le Raspberry Pi ne sera pas connecté à un écran, j'ai choisi d'utiliser Raspbian Buster Lite qui ne vient pas avec un environnement de bureau. Si vous êtes nouveau sur Raspberry Pi, vous voudrez peut-être vous en tenir au standard Raspbian Buster fourni avec un ordinateur de bureau. Si vous ne savez pas comment installer votre système d'exploitation, c'est une excellente ressource. Les deux systèmes d'exploitation peuvent être téléchargés sur le site Web de Raspberry Pi.

Pour le moment, alimentez le Pi via son entrée d'alimentation Micro USB. Connectez également le dongle WiFi USB.

Parler au Raspberry Pi

Une fois que tout est emballé, il est assez difficile d'accéder au Pi si vous souhaitez modifier le code, etc. L'utilisation de SSH permet de se connecter au Pi et de le contrôler à partir d'un autre ordinateur. Ceci n'est pas activé par défaut, mais nous pouvons le faire en créant simplement un dossier appelé ssh dans la partition de démarrage de votre carte SD. Si vous êtes déjà connecté à votre Pi, vous pouvez également le faire en tapant sudo raspi-config dans le terminal et en accédant à Options d'interfaçage > SSH et en choisissant Oui pour l'activer.

Vous pouvez maintenant vous connecter à votre Pi sur un autre ordinateur. Sur Mac ou Linux, vous pouvez utiliser votre application de terminal, mais sur la plupart des versions de Windows, vous devrez installer un client SSH tel que PuTTY. Connectez-vous au Pi en tapant ssh pi@ où le nom d'hôte est remplacé par le nom d'hôte de l'adresse IP de votre Pi. Le nom d'hôte par défaut est raspberrypi.local. Il vous demandera un mot de passe qui, si vous ne l'avez pas encore changé, est raspberry.

Installation des éléments nécessaires

Assurez-vous d'abord que tout est à jour en exécutant sudo apt update, puis sudo apt full-upgrade.

Pour nous assurer de ce dont nous avons besoin pour contrôler les broches GPIO sur le Pi, tapez sudo apt-get install python-rpi.gpio et sudo apt-get install python3-rpi.gpio. Ceux-ci devraient déjà être installés sur la version complète de Raspbian.

Le code

Voici le code à télécharger pour que tout fonctionne. Si vous utilisez un environnement de bureau, collez-les dans votre dossier Documents.

Si vous utilisez la ligne de commande de SSH, accédez à votre dossier personnel en tapant cd ~/Documents et en appuyant sur Entrée. Créez un nouveau fichier appelé test1.py avec nano test1.py. Cela ouvrira l'éditeur de texte nano où vous pourrez coller le code du fichier test1.py téléchargé. CTRL-O et appuyez sur Entrée pour enregistrer le fichier et CTRL-X pour quitter l'éditeur. Répétez le processus pour les fichiers restants.

Étape 3: Installation de la bande LED

Installation de la bande LED
Installation de la bande LED
Installation de la bande LED
Installation de la bande LED

Insérez d'abord la bande LED dans l'horloge pour voir de combien vous aurez besoin, marquez cette longueur et coupez la bande au prochain point de coupe, comme indiqué. Il est beaucoup plus facile de souder les fils à la bande avant que la bande ne se coince en place. C'est un très bon guide sur la façon de procéder, mais si vous n'êtes pas sûr, je m'entraînerais simplement à la soudure sur la pièce à partir de laquelle vous venez de couper votre bande. Soudez un fil au point de soudure positif et un fil au négatif. Assurez-vous de tester le fonctionnement de votre bande LED avant de la coller dans votre horloge.

Étant donné que la bande LED que j'ai utilisée avait été utilisée avant qu'elle n'ait perdu son support auto-adhésif, j'ai donc dû utiliser de la colle chaude pour fixer la bande autour du bord de la jante de l'horloge. Si vous avez un excès de longueur, couvrez le point où les fils sont attachés. Vous voudrez peut-être installer la bande plus tard, mais j'ai trouvé plus facile de la ranger dans l'horloge.

Étape 4: Contrôle de la bande LED

Contrôle de la bande LED
Contrôle de la bande LED

Connexion de la bande LED

La bande LED fonctionne sur 12V et ne peut donc pas être alimentée directement par le Pi. Afin de les contrôler, nous utiliserons un transistor de puissance (par exemple TIP31a) connecté au Pi comme indiqué ci-dessus. Je recommanderais de vérifier d'abord que tout fonctionne sur une maquette.

  • Connectez GPIO 19 à la base via une résistance de 1k
  • L'émetteur doit être connecté à GND
  • Connectez le collecteur à la borne négative de la bande LED
  • Connectez la borne positive de la bande LED au +12V

Essai

Dans la ligne de commande, accédez à votre dossier de documents (cd ~/Documents) et tapez python test1.py et entrez. Vous devriez voir la bande LED augmenter et diminuer en luminosité. Pour quitter le programme, appuyez sur CTRL-C. Vous pouvez éditer le fichier (nano test1.py) pour changer la vitesse et la luminosité dans le programme.

importer RPi. GPIO en tant que GPIOimport time GPIO.setmode(GPIO. BCM) # Utiliser le brochage BCM GPIO.setwarnings(False) # Ignorer les avertissements concernant les broches utilisées pour d'autres choses ledStripPin = 19 # La bande LED est pilotée à partir de cette broche GPIO.setup (ledStripPin, GPIO. OUT) # Définir ledStripPin comme sortie pwm = GPIO. PWM(ledStripPin, 100) # PWM sur ledStripPin avec fréquence 100Hz dutyCycle = 0 # Luminosité initiale en pourcentage pwm.start(dutyCycle) try: while True: for dutyCycle in range (0, 101, 1): # Fondu vers le haut pwm. ChangeDutyCycle(dutyCycle) time.sleep(0.05) for dc in range (95, -1, -1): # Fondu vers le bas pwm. ChangeDutyCycle(dc) time.sleep(0.05) sauf KeyboardInterrupt: # Appuyez sur CTRL-C pour quitter, puis: pwm.stop() # Arrêtez le pwm GPIO.cleanup() # Nettoyez les broches GPIO

Étape 5: Faire le cadran de l'horloge

Faire le cadran de l'horloge
Faire le cadran de l'horloge
Faire le cadran de l'horloge
Faire le cadran de l'horloge
Faire le cadran de l'horloge
Faire le cadran de l'horloge

Coupez le morceau de bois pour votre horloge face vers le bas pour qu'il s'adapte à votre horloge. J'ai fait reposer le mien à environ 3cm de l'avant. Percez 12 trous du diamètre de vos LED (généralement 3 mm ou 5 mm) espacés de 30 degrés les uns des autres. Poncez la face avant vers le bas et appliquez une finition de votre choix. De l'arrière, placez les LED de manière à ce qu'elles pointent vers l'avant. J'ai utilisé de la colle chaude pour maintenir les LED en place avec la borne positive (fil plus long) tournée vers l'intérieur. La taille de mon cadran d'horloge signifiait que je pouvais souder toutes les bornes négatives ensemble (voir ci-dessus), donc un seul fil était nécessaire pour connecter les 12 LED à GND. Ensuite, soudez un fil à chaque LED.

Si vous souhaitez tester cela sur une maquette, n'oubliez pas d'utiliser une résistance (330 ohms est assez standard) en série avec chaque LED avant de la connecter à l'une des broches Pi GPIO. Jouez avec la valeur de la résistance que vous utilisez pour obtenir un niveau de luminosité qui vous convient. Un cordonnier en t est vraiment utile pour casser les broches du Pi sur une planche à pain, bien que vous deviez souder les broches de l'en-tête pour cela. Utilisez test2.py (exécutez avec python test2.py) mais assurez-vous d'abord de modifier le programme et d'entrer les broches GPIO du Pi que vous avez utilisées pour chaque LED.

importer RPi. GPIO en tant que GPIO

import time GPIO.setmode(GPIO. BCM) # Utilisez le brochage BCM GPIO.setwarnings(False) # Ignorez les avertissements concernant les broches utilisées pour d'autres choses # Remplacez un, deux, … par le numéro de broche correspondant hourPin = [un, deux, trois, quatre, cinq, six, sept, huit, neuf, dix, onze, douze] # Les broches auxquelles les LED sont connectées de 1 à 12 pour i dans la plage (0, 12): GPIO.setup(hourPin, GPIO. OUT) # Définir tous les hourPins comme sorties GPIO.output(hourPin, 0) # Assurez-vous que toutes les LED sont éteintes essayez: while True: for i in range (0, 12) GPIO.output(hourPin, 1): time.sleep(0.05) for i in range(0, 12) GPIO.output(hourPin, 0): time.sleep(0.05) sauf KeyboardInterrupt: # Appuyez sur CTRL-C pour quitter, et puis: GPIO.cleanup() # Nettoie les broches GPIO

Étape 6: Alimenter le Pi

Alimenter le Pi
Alimenter le Pi

Nous avons besoin d'un moyen simple d'acheminer 5 V au Pi Zero afin de pouvoir nous débarrasser du câble micro USB que nous utilisions jusqu'à présent pour l'alimenter. Il existe un certain nombre de solutions qui abaissent de 12 V à 5 V, telles qu'un régulateur de tension linéaire LM7805, mais celles-ci ne sont pas très efficaces. J'ai donc choisi d'utiliser le convertisseur abaisseur réglable plus efficace utilisant la puce LM2596. NB avec cela, vous devrez tordre le potentiomètre jusqu'à ce que la tension de sortie soit réduite à 5V comme requis, vous aurez donc besoin d'un moyen de mesurer la tension.

L'utilisation du LM2596 est simple: connectez le +12V à IN+, la masse à IN-. Le Pi peut être connecté directement à 5V en connectant OUT+ à l'une des broches 5V du Pi, mais assurez-vous d'avoir changé la tension de sortie à 5V avant de faire cela ou vous ferez frire votre Pi !

Étape 7: Compléter le circuit et l'emballage

Compléter le circuit et l'emballage
Compléter le circuit et l'emballage
Compléter le circuit et l'emballage
Compléter le circuit et l'emballage
Compléter le circuit et l'emballage
Compléter le circuit et l'emballage
Compléter le circuit et l'emballage
Compléter le circuit et l'emballage

Nous avons maintenant couvert les trois éléments du circuit qui sont montrés ensemble dans le circuit global ci-dessus. Pour économiser de l'espace et rendre le circuit plus propre, placez votre circuit sur une carte à bande ou une carte prototype. Soudez d'abord les plus petits composants, les résistances, puis le transistor de puissance, les connecteurs éventuels et enfin les fils. Planifiez votre circuit avant de souder pour vous assurer d'avoir de la place pour tout.

J'ai tout connecté sur un PCB de prototypage et utilisé des broches femelles pour que le Pi puisse se monter directement sur le PCB. Les LED sur le cadran de l'horloge sont connectées via des résistances d'un côté de la carte et j'ai gardé de l'espace de l'autre côté de la carte pour le transistor de puissance et libre pour tout autre circuit que je pourrais vouloir ajouter plus tard.

Fixez le cadran de l'horloge à l'horloge et assurez-vous que tous les composants électroniques s'intègrent bien. Tout était assez ajusté pour moi, vous devrez donc peut-être réorganiser. Connectez l'alimentation et exécutez test1.py et test2.py depuis SSH pour vérifier que tout fonctionne avant de fixer le dos.

Étape 8: Télécharger le code + Terminer

Télécharger le code + Terminer
Télécharger le code + Terminer
Télécharger le code + Terminer
Télécharger le code + Terminer
Télécharger le code + Terminer
Télécharger le code + Terminer

Le code

Enfin, si vous ne l'avez pas déjà fait, téléchargez le code et adaptez-le comme vous le souhaitez (en utilisant nano filename.py). L'avantage de la connexion au Pi via SSH est que vous pouvez mettre à jour le code sans ouvrir l'horloge.

Ces programmes python de l'étape 2 effectuent les opérations suivantes:

  • light_clock_simple.py affiche simplement l'heure sur les LED et fait monter et descendre la bande LED à certains moments
  • light_clock_pwm.py est le même que ci-dessus mais permet également de réduire la luminosité des LED et affiche les minutes à une luminosité différente des heures. Vous devrez jouer avec les niveaux de luminosité des deux pour que le contraste entre les deux soit perceptible

Ceux-ci devraient fournir une base solide pour l'ajout au code, par exemple, vous pouvez ajouter un bouton pour répéter l'alarme lumineuse.

Pour lancer le programme lorsque le Pi démarre, nous devons ajouter ' @reboot nohup python light_clock_pwm.py & ' à la fin du fichier crontab qui peut être ouvert depuis le terminal avec crontab -e. Redémarrez votre Raspberry Pi pour vérifier qu'il fonctionne avec sudo shutdown -r now.

Ajouts potentiels

Voici quelques idées de fonctionnalités supplémentaires qui pourraient être ajoutées

  • Ajout d'un bouton snooze
  • Ajout d'un mode lampe
  • Connexion à IFTTT (par exemple, la lumière peut s'allumer lorsque l'alarme de votre téléphone s'éteint / clignote lors de la réception d'un e-mail)
  • Ajout de capacité tactile, c'est-à-dire transformer l'horloge en lampe tactile

Vous remarquerez peut-être lors de l'utilisation de PWM que parfois, en particulier avec une luminosité plus faible, la LED scintille un peu. En effet, le Pi utilise le logiciel PWM, de sorte que les processus du processeur peuvent affecter le cycle de service. Ayant moins de processus en cours d'exécution, j'ai utilisé le système d'exploitation simplifié Raspbian Lite. Le PWM matériel est également disponible sur quelques broches, donc si le scintillement s'avère un problème, cela peut être quelque chose à examiner.

J'espère que vous avez trouvé ce Instructable informatif et que vous vous sentez inspiré pour recycler un vieux réveil ou utiliser des éléments du code pour votre propre projet.

Défi de vitesse de bande LED
Défi de vitesse de bande LED
Défi de vitesse de bande LED
Défi de vitesse de bande LED

Deuxième prix au LED Strip Speed Challenge

Conseillé: