Table des matières:
- Fournitures
- Étape 1: Impression 3D
- Étape 2: le circuit
- Étape 3: Préparation du Raspberry Pi
- Étape 4: le code
- Étape 5: Tout assembler
- Étape 6: Un an plus tard…
Vidéo: Horloge d'entraînement au sommeil pour enfants : 6 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
J'avais besoin d'une horloge pour aider mes jumeaux de 4 ans à apprendre à dormir un peu plus longtemps (j'en ai assez de devoir me lever à 5h30 du matin le samedi), mais ils ne savent pas encore lire l'heure. Après avoir parcouru quelques articles sur un site d'achat très populaire, je me suis dit: « Est-ce difficile d'en faire un ? »
Voici donc ce que je pensais que je voulais dans ce projet. Il utiliserait des LED RVB (principalement parce que j'en ai une cinquantaine d'un autre projet) pour afficher trois couleurs différentes. Le rouge signifierait se rendormir, il est trop tôt pour se réveiller. Le jaune signifierait qu'ils peuvent se lever et jouer tranquillement dans leur chambre. Vert, bien sûr, signifie que vous pouvez vous lever. Je voulais aussi pouvoir ajuster l'heure, car j'aimerais dormir plus longtemps certains jours (week-ends/vacances vs jours de semaine et autres).
Fournitures
Raspberry Pi Zero W
Deux LED RVB
Six résistances de 220 Ohm
Fichiers (.stl, python, html) trouvés ici
Diverses petites vis, fils et petites pièces au besoin.
Étape 1: Impression 3D
Ma fille aime vraiment les licornes, donc pour ce projet j'ai remixé Unicorn Nightlight de Riven02, qui est un remix de Unicorn Trophy d'Apachcreation, qui peut être trouvé sur Thingiverse.com et utilisé sous une licence Creative Commons Non-Commercial. J'ai modifié la base de la licorne pour y installer un cordon d'alimentation pour le raspberry pi zero. Il m'est arrivé d'avoir du PLA rouge AMZ3D, donc la base et la tête de la licorne seront rouges. J'ai utilisé du PLA clair/translucide pour le klaxon. Les fichiers.stl et les paramètres que j'ai utilisés sont:
Licorne.stl
- Hauteur de couche: 0,02
- Épaisseur de paroi:.8
- Nombre de lignes murales: 2
- Remplissage: 15 %
- Motif de remplissage: grille
LicorneBase.stl
- Hauteur de couche: 0,02
- Épaisseur de paroi:.8
- Nombre de lignes murales: 2
- Remplissage: 15 %
- Motif de remplissage: grille
Horn.stl
- Hauteur de couche: 0,02
- Épaisseur de paroi: 0,8
- Nombre de lignes murales: 3
- Remplissage: 0
Étape 2: le circuit
Le circuit est assez facile. J'ai choisi six broches GPIO différentes pour contrôler l'activation/désactivation des différentes couleurs du RVB. Ces broches et les couleurs de LED correspondantes sont:
- Broche 11 à RVB 1 ROUGE
- Broche 13 à RVB 1 VERT
- Broche 15 à RVB 1 BLEU
- Broche 16 à RVB 2 ROUGE
- Broche 18 à RGB 2 VERT
- Broche 36 à RVB 2 BLEU
- Broche 39 à la terre
Chaque broche est reliée à la résistance par une résistance de limitation de courant de 220 ohms (à l'exception de la terre bien sûr). J'ai soudé la résistance en ligne et l'ai recouverte d'un tube thermorétractable.
Étape 3: Préparation du Raspberry Pi
Je voulais pouvoir régler l'heure de l'horloge de l'entraîneur de sommeil à l'aide d'une interface Web. J'avais donc besoin de configurer un serveur Apache et PHP sur le Raspberry Pi. La première chose que vous devez toujours faire lors de l'installation d'un nouveau logiciel sur un Raspberry Pi est de vous assurer qu'il est à jour en tapant:
sudo apt-get mise à jour
Après cela, nous pouvons vraiment nous mettre au travail. Nous le ferons en installant Apache2:
sudo apt-get install apache2 -y
cela devrait installer le serveur Web Apache. Vous pouvez tester cela en utilisant un navigateur sur le Raspberry pi et en naviguant vers:
localhost/
ou en naviguant depuis le navigateur d'un autre ordinateur vers l'adresse IP de votre Raspberry Pi. Pour trouver votre type d'adresse IP:
nom d'hôte -I
Cela conduira à une page par défaut du serveur Web Apache. Cela peut être modifié en remplaçant index.html situé dans le répertoire /var/www/html/. Il peut être remplacé par mon propre fichier index.html.
Ensuite, nous allons configurer le serveur Web Apache pour pouvoir exécuter des fichiers PHP. Commencez par taper:
sudo apt-get install php libapache2-mod-php -y
vous devriez maintenant pouvoir placer le fichier sleepset.php dans le /var/www/html avec le fichier index.html.
Pour accéder à cette page dans votre propre réseau, vous devrez configurer votre Raspberry Pi avec une adresse IP statique (ou vous pouvez simplement essayer de trouver la nouvelle adresse IP lorsque votre réseau le renouvelle de temps en temps). Vous devrez modifier quelques fichiers pour que cela fonctionne. Vous devrez modifier le fichier /etc/dhcpcd.conf avec les éléments suivants:
interface wlan0
static ip_address=192.168.1.static routers=192.168.1.1 static domain_name_servers=192.168.1.1
Remplacez par les informations de votre réseau. La seule chose que vous aurez à faire maintenant est de redémarrer.
redémarrage sudo
L'emplacement des fichiers du lien Google Drive doit être le suivant:
- index.html et sleepset.php doivent être placés dans le répertoire /var/www/html
- sleepset.txt et sleeptrainer1_1.py doivent être placés dans le répertoire /home/pi/pythoncode (indice: vous devrez créer ce répertoire)
Après avoir placé ces fichiers dans le bon répertoire, le fichier rc.local doit être modifié pour exécuter le programme sleeptrainer1_1.py au démarrage. Vous aurez besoin d'un accès au niveau racine pour modifier le fichier rc.local, alors tapez:
sudo nano /etc/rc.local
Dans l'éditeur, faites défiler vers le bas, et juste avant la ligne exit 0, ajoutez:
python /home/pi/pythoncode/sleeptrainer1_1.py &
Il y a deux choses à retenir ici:
- Utilisez le chemin de fichier absolu afin que LINUX ne pense pas que le fichier sleeptraner1_1.py se trouve dans le même répertoire que rc.local.
- N'oubliez pas l'esperluette (&) à la fin. cela permettra à LINUX d'exécuter ce fichier en arrière-plan et de continuer à démarrer.
Maintenant, enregistrez le fichier en tapant ctrl-x puis y lorsque vous êtes invité à enregistrer, puis ENTER.
Tapez ensuite sudo reboot.
Il convient de mentionner quelque part ici que (au minimum) vous devez modifier votre mot de passe Raspberry Pi à l'aide de la commande passwd. Si vous ne l'avez pas encore fait, ce serait le bon moment.
Étape 4: le code
Ce qui suit est le code du fichier sleeptrainer1_1.py. J'ai utilisé un objet datetime pour comparer les heures à celles lues dans le fichier sleepset.txt. Le fichier texte est simplement de deux lignes, la première pour l'heure, la seconde pour la minute. sleeptrainer1_1.py se met en veille pendant une minute entre les itérations de la boucle pour ne pas bloquer le processeur. La lumière verte sortait à l'origine beaucoup trop brillante, j'ai donc utilisé la modulation de largeur d'impulsion pour l'assombrir lorsqu'elle est utilisée avec du rouge pour faire du jaune.
Code Python:
importer RPi. GPIO en tant que GPIO
de datetime import datetime as dt import time GPIO.setmode(GPIO. BOARD) GPIO.setwarnings(False) red1 = 11 red2 = 16 green1 = 13 green2 = 18 blue1 = 15 blue2 = 36 GPIO.setup(red1, GPIO. OUT) GPIO.setup(rouge2, GPIO. OUT) GPIO.setup(vert1, GPIO. OUT) GPIO.setup(vert2, GPIO. OUT) GPIO.setup(bleu1, GPIO. OUT) GPIO.setup(bleu2, GPIO. OUT) p1 = GPIO. PWM(green1, 100) p2 = GPIO. PWM(green2, 100) def readset(): setfile = open("/home/pi/pythoncode/sleepset.txt", 'r') a = setfile. readline() b = setfile.readline() a = int(a) b = int(b) return a, b def ledlight(color): if (color == "red"): GPIO.output(red1, GPIO. HIGH) GPIO.output(red2, GPIO. HIGH) p1.stop() p2.stop() GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) elif (couleur == "bleu"): GPIO.output(red1, GPIO. LOW) GPIO.output(red2, GPIO. LOW) p1.stop() p2.stop() GPIO.output(blue1, GPIO. HIGH) GPIO.output(blue2, GPIO. HIGH) elif (couleur == "vert"): GPIO.output(red1, GPIO. LOW) GPIO.output(red2, GPIO. LOW) p1.start(100) p2.start(100) GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) elif (color == "jaune"): p1.start(60) p2.start(60) GPIO.output(red1, GPIO. HIGH) GPIO.output (rouge2, GPIO. HIGH) GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) elif (color == "off"): GPIO.output(red1, GPIO. LOW) GPIO.output (red2, GPIO. LOW) GPIO.output(blue1, GPIO. LOW) GPIO.output(blue2, GPIO. LOW) p1.stop() p2.stop() while True: settime = readset() heure, minute = settime if minute == 0: if dt(dt.now().year, dt.now().month, dt.now().day, hour-2) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour-1, minute+30): ledlight("red") elif dt(dt.now().year, dt.now().month, dt.now().day, hour-1, minute+30) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour, minute): ledlight("jaune") elif dt(dt.now().year, dt.now().month, dt.now().day, hour, minute) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour+1, minute): ledlight("vert") else: ledlight("off") elif dt(dt.now().year, dt.now().month, dt.now().day, ho ur-2) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour, minute-30): ledlight("red") elif dt(dt.now().year, dt.now().month, dt.now().day, hour, minute-30) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour, minute): ledlight("jaune") elif dt(dt.now().year, dt.now().month, dt.now().day, hour, minute) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day, hour+1, minute): ledlight("vert") else: ledlight("off") time.sleep(60)
Le fichier index.html est un formulaire de base conçu en HTML. Il prend le contenu de deux zones de texte et le transmet au fichier sleepset.php pour la gestion du formulaire. Le fichier PHP écrase simplement le fichier sleepset.txt avec les données mises à jour.
Étape 5: Tout assembler
Une fois le codage terminé et toutes les pièces imprimées, il est temps de procéder à l'assemblage. J'ai suivi ces étapes pour tout assembler:
- Percez deux petits trous de la taille des LED RVB dans le bas du klaxon et placez les LED dans ces trous.
- Placez la corne dans le trou de la tête de licorne et tirez-la jusqu'à ce qu'elle soit bien serrée. Utilisez de la colle de l'intérieur pour fixer la corne.
- Fixez le Raspberry Pi Zero W à l'intérieur de la tête de licorne. (En utilisant un pistolet à colle chaude peut-être)
- Attachez la tête de licorne à la base de licorne.
- Branchez le cordon d'alimentation et fixez l'ensemble au mur.
- Branchez l'horloge.
À ce stade, j'ai une horloge d'entraînement au sommeil pour enfants qui fonctionne.
Étape 6: Un an plus tard…
Un an plus tard:
Mes filles dorment un peu plus longtemps. Nous nous sommes habitués à nous réveiller avec des petits enfants dans notre chambre en disant: « Papa, le feu est vert ». et c'est super. Pour faire court, nous ne nous réveillons qu'à 5h30 du matin un samedi lorsque nous le planifions plus.
Ce que je prévois d'améliorer à l'avenir:
- Peut-être en ajoutant des capteurs ou d'autres éléments comme un micro et des haut-parleurs.
- Peut-être modifier le code pour travailler avec un haut-parleur à utiliser comme réveil car mes enfants vont bientôt commencer l'école.
Conseillé:
Boîte d'interrupteurs pour jouets pour enfants + Remix de jeux : 19 étapes (avec photos)
Kid's Toy Light Switch Box + Games Remix : il s'agit d'un remix que je devais faire depuis que j'ai vu deux super instructables et je ne pouvais pas m'empêcher de penser à combiner les deux ! Ce mashup combine essentiellement l'interface de la Light Switch Box avec des jeux simples (Simon, Whack-a-Mole, etc…) sur t
Utilisez un moteur d'entraînement à courant continu pour tapis de course et un contrôleur de vitesse PWM pour alimenter les outils : 13 étapes (avec photos)
Utilisez un moteur d'entraînement à courant continu pour tapis roulant et un contrôleur de vitesse PWM pour alimenter les outils : des outils électriques tels que des fraises et des tours à métaux, des perceuses à colonne, des scies à ruban, des ponceuses et plus encore peuvent nécessiter des moteurs de 5 HP à 2 HP avec la possibilité d'ajuster la vitesse tout en maintenant le couple .Par coïncidence, la plupart des tapis roulants utilisent un moteur 80-260 VDC avec
Horloge lumineuse pour enfants - Green Means Go! Rouge, reste au LIT !!! : 5 étapes (avec photos)
Horloge lumineuse pour enfants - Green Means Go! Red, Stay in BED !!! : Nous devenions fous sans assez de sommeil !!! Notre enfant de 2 ans n'arrivait pas à comprendre comment "attendre le 7" sur l'horloge avant de sortir de sa chambre matin après matin. Il se réveillait tôt (je veux dire vers 5h27 du matin - "il y a un 7 !!!"
Album photo pour enfants avec flashcard commercial : 8 étapes (avec photos)
Album photo pour enfants avec une carte flash commerciale : ces instructables montrent comment créer un album photo de mise à jour automatique WiFi en plus des fonctionnalités commerciales de la carte flash pour enfants
Construisez une vraie horloge à sonnerie pour votre PC et une horloge à sonnerie d'extincteur. : 3 étapes (avec photos)
Construisez une vraie horloge à sonnerie pour votre PC et une horloge à sonnerie d'extincteur. : Une cloche en laiton, un petit relais, quelques autres éléments et une vraie cloche peuvent sonner les heures sur votre bureau. Bien que ce projet fonctionne sous Windows et Mac OS X aussi, j'ai décidé d'installer Ubuntu Linux sur un PC que j'ai trouvé à la poubelle et de travailler dessus : je n'avais jamais