Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:45
Wake me up est un réveil intelligent qui peut également être utilisé comme éclairage intelligent.
La bande LED intégrée simule la lumière naturelle entrant dans votre pièce. Cela permet une manière calme et naturelle de commencer votre journée.
Le réveil est également équipé d'un affichage 4*7 segments pour lire l'heure, de haut-parleurs pour se réveiller avec votre musique préférée, d'un bouton tactile, d'un ldr pour adapter la luminosité de la bande led et d'un capteur de température que vous pouvez utiliser pour visualiser le température de votre pièce.
Fournitures
Une liste des prix exacts que j'ai payés peut être trouvée ici:
Microcontrôleurs et ordinateurs:
Raspberry Pi 4J'ai utilisé le raspberry pi 4 4 Go, cependant, tout modèle de raspberry pi 3+ devrait convenir
Arduino Uno
L'arduino est utilisé pour contrôler l'affichage de l'horloge à 4*7 segments.
Capteurs:
- TMP36: capteur de température
- LDR: résistance dépendante de la lumière
Actionneurs:
- WS2801: Ruban LED adressable individuellement
- Écran LCD: Un écran LCD 16*2.
- Affichage de l'horloge 4*7 segments
CI:
- 74HC595: Shiftregister pour l'affichage lcd
- MCP3008: convertisseur analogique-numérique 8 bits
- Convertisseur de niveau logique: utilisé pour communiquer entre raspi et arduino
D'autres choses:
- Un amplificateur adafruit MAX9744 pour alimenter les enceintes
- N'importe quel haut-parleur, j'ai utilisé un haut-parleur large bande Visaton 4Ohm 8Watt (Art. No. 2240)
- Une alimentation 9 volts pour alimenter l'amplificateur
- Une alimentation de 5 volts pour alimenter la bande de LED et d'autres composants. Gardez à l'esprit que chaque LED de la bande de LED peut consommer 60 mA, alors assurez-vous que votre alimentation est suffisante.
- Quelques résistances 220Ohm
- Une petite planche à pain à mettre dans votre valise.
Outils:
- Un fer à souder.
- De quoi faire le boîtier (j'ai utilisé une imprimante 3d avec du PLA et du PETG et des autocollants en vinyle pour obtenir l'effet bois.)
Étape 1: Configuration du Raspberry Pi
Le raspberry pi est notre principal microcontrôleur.
Le raspberry pi exécute notre serveur Web local, notre base de données, contrôle la bande de LED, les haut-parleurs, …
Partie 1: Installation de Raspbian
Utilisez ce tutoriel pour installer raspbian:
Assurez-vous que SSH est activé
Partie 2: Se connecter
Pour vous connecter à Internet, vous devez accéder au terminal de votre raspberry pi. Je recommande d'utiliser du mastic. Dans le type de terminal:
wpa_passphrase "Votre réseau" "Votre SSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" est le nom de votre réseau wifi et "YourSSID" est le mot de passe du réseau.
Une fois que vous avez ajouté le réseau, essayez de redémarrer le Raspberry Pi.
Tapez la commande 'ping 8.8.8.8' cela enverra un paquet aux serveurs google si vous obtenez une réponse, votre réseau est configuré et fonctionne!
Partie 3: Installez les programmes nécessaires
Nous allons avoir besoin d'installer des programmes supplémentaires pour que ce projet soit opérationnel.
Avant de commencer, exécutez ces 2 commandes pour vous assurer que tout est mis à niveau.
mise à jour sudo apt
mise à niveau sudo apt
Cela peut prendre un certain temps.
Apache
sudo apt installer apache2 -y
sudo apt installer php libapache2-mod-php -y
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt installer php-mysql -y
PHPMonAdmin
sudo apt installer phpmyadmin -y
Pip Python
Nous devons installer pip pour activer certaines bibliothèques python
pip3 installer mysql-connector-python
pip3 installer flask-socketio
pip3 installer des flacons-cors
pip3 installer gevent
pip3 installer gevent-websocket
Étape 2: connexion de l'électronique
J'ai ajouté 2 schémas, 1 est un schéma de maquette à des fins de test. Je recommande de construire le premier schéma et d'essayer de faire fonctionner le code.
J'ai ajouté les fichiers fritzing ci-dessous.
Étape 3: Conception de la base de données
C'est le schéma de base de données que j'ai fait. Les mots sont en néerlandais mais je vais expliquer chaque tableau en détail.
Tableau 1: tblMuziek
C'est une table assez basique. Il enregistre le nom de l'artiste, le nom de la chanson et le nom de fichier d'une chanson.
Tableau 2: tblLedstrip
Ce tableau garde une trace de l'état actuel de la bande de leds, il enregistre l'état de la bande de leds. Nous en avons besoin pour la fonction smartlight.
Tableau 3: tblSensoren
Ce tableau garde une trace des capteurs de notre alarme. Nous stockons le nom du capteur et le canal du MCP3008
Tableau 4: tblMeting
Cette table stocke les valeurs de nos capteurs ainsi que leur temps.
Tableau 5: tblWekker
Ce tableau stocke le mot de passe et le nom de votre réveil (ex. Chambre à coucher) Ce tableau n'est pas obligatoire mais je l'ai ajouté car je suppose que vous aurez plus d'1 réveil dans votre maison.
Tableau 6: tblAlarm
C'est probablement le tableau le plus important. Il garde une trace de l'alarme que vous avez réglée et de ce que l'horloge doit faire (quelle chanson jouer, quelle séquence de led, quels jours doit-elle sonner, …). Il est très important de garder une trace de 2 dates. 1 date permet de mémoriser à quelle heure l'alarme doit se déclencher. L'autre enregistre la dernière fois que l'alarme s'est déclenchée. Pour savoir quel jour de la semaine il doit se déclencher, j'ai utilisé un varchar qui contient un nombre de 7 chiffres. Le premier chiffre est lundi, le deuxième mardi, … Si c'est un 1, alors il devrait s'éteindre, si c'est un 0, il ne devrait pas. Exemple: 1111100 cela signifie que cette alarme doit se déclencher les lundi, mardi, mercredi, jeudi et vendredi.
Étape 4: Configuration Arduino
Cette étape est très facile. Il y aura un lien vers mon github à l'étape suivante où vous pourrez télécharger le fichier arduino.
Que fait le programme ?
Le programme attend que les données série arrivent du pi.
Dès que les données sont reçues, il analyse la chaîne et renvoie une confirmation au pi.
La chaîne sera quelque chose comme ceci: '1201' cela signifie qu'il est 12:01. J'ai utilisé un affichage à 7 segments à anode commune, ce qui signifie que les chiffres doivent être élevés et que A, B, C, D, E, F, G et DP doivent être bas pour les activer. Si vous utilisez une cathode commune, vous devez simplement changer HIGH en LOW et LOW en HIGH.
Voici un lien avec plus d'informations sur le fonctionnement des affichages à 7 segments. (avec l'utilisation de la bibliothèque):
www.instructables.com/id/Using-a-4-digit-7…
Voici un lien sur 7 segments d'affichage sans l'utilisation d'une bibliothèque:
create.arduino.cc/projecthub/SAnwandter1/p…
Étape 5: Backend Raspberry Pi
Vous pouvez télécharger mon code en utilisant Github. (https://github.com/VanHevelNico/WakeMeUp)
Comment installer le programme:
Le backend est écrit en python à l'aide de flacon. Vous pouvez créer un service qui démarre ce programme (app.py) automatiquement.
Vous devez mettre le code frontal dans le fichier html du serveur Apache que nous avons téléchargé précédemment. (/var/html)
Comment fonctionne le programme?
Lorsque le réveil est allumé, accédez à l'adresse IP de votre horloge (elle sera affichée sur l'écran lcd)
Dès que vous accédez à cette adresse IP dans votre navigateur, votre ordinateur enverra une requête socket.io au backend indiquant qu'un client s'est connecté. Lorsque le backend le recevra, quelques fils de discussion commenceront, ce que j'expliquerai ci-dessous.
Installer
Cela initialise tous les objets nécessaires.
ObtenirTemp
Cela lit le canal 0 du mcp3008 et convertit les données binaires en température réelle et les met dans la base de données avec la date et l'heure actuelles.
ObtenirGrafiekTemp
Celui-ci récupère les 20 dernières valeurs du capteur de température et les envoie au frontend.
tijd_sturen
Cette méthode obtient l'heure actuelle et vérifie si la minute a changé. S'il a changé, le programme envoie la nouvelle heure à l'arduino en utilisant la communication série
checkAlarme
C'est la méthode la plus importante. Il obtient toutes les alarmes qui sont activées et vérifie si l'une de ces alarmes doit disparaître entre maintenant et il y a 5 minutes (il s'agit d'un tampon pour s'assurer que chaque alarme se déclenche quand elle en a besoin). Si l'alarme doit se déclencher nous allons démarrer la musique, la bande led, … Nous lisons la résistance sensible à la force en continu et lorsque la valeur descend en dessous de 1000 (lisez le fsr est enfoncé) Nous éteignons l'alarme et mettons à jour l'alarme dans le base de données. Nous avons réglé la date à laquelle l'alarme s'est déclenchée pour la dernière fois à la date actuelle.
statusLight
Cette méthode émet la valeur du ledstrip et allume le ledstrip si nécessaire.
lichtAanpassen
C'est une méthode supplémentaire pour s'assurer que la bande LED et le voyant d'alarme n'entrent pas en conflit.
Étape 6: Cas
Le lien vers mes fichiers se trouve ici:
J'ai utilisé une imprimante 3D pour imprimer le boîtier. Il est imprimé en 4 parties différentes:
- La plaque avant avec des trous pour le haut-parleur et quelques murs pour l'affichage à 7 segments
- La bague extérieure pour le ledstrip en PETG transparent.
- La partie médiane
- La plaque arrière avec un trou pour l'écran lcd et un trou pour les câbles.
Dans le modèle d'origine, il n'y avait pas de trou pour l'affichage à 7 segments, mais cela est nécessaire car sinon la lumière de l'affichage à 7 segments ne brillera pas.
Comme vous pouvez le voir après avoir mis tous les composants dedans, j'ai utilisé des autocollants en vinyle avec un aspect bois pour rendre le résultat final plus beau. L'affichage de l'horloge brille à travers l'autocollant, ce qui crée un très bel effet.
Conseillé:
Réveil intelligent utilisant Magicbit (Arduino): 10 étapes
Réveil intelligent à l'aide de Magicbit (Arduino): Ce tutoriel montre comment créer un réveil intelligent à l'aide d'un écran OLED dans la carte de développement Magicbit sans utiliser de module RTC
Le réveil à bulles rend le réveil amusant (ish): 7 étapes (avec photos)
Le réveil à bulles rend le réveil amusant (ish): Se réveiller avec un réveil bourdonnant est nul. Je fais partie de ces personnes qui n'aiment pas se réveiller avant le lever du soleil (ou depuis de nombreuses heures). Alors, quelle meilleure façon de se réveiller en s'amusant qu'une soirée bulle au lit ! Utiliser un arduino et un
Réveil intelligent - Intel Edison - Iot RoadShow - São Paulo : 4 étapes
Réveil intelligent - Intel Edison - Iot RoadShow - São Paulo : L'une des grandes vertus de quiconque vit ou travaille dans une grande ville est la gestion du temps. De nos jours, les déplacements sont constants et, comme le trafic est l'un des principaux facteurs. En y réfléchissant, j'ai créé une petite application qui utilise l'intégration avec Google M
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : 10 étapes (avec photos)
Réveil intelligent : un réveil intelligent fabriqué avec Raspberry Pi : Avez-vous déjà voulu une horloge intelligente ? Si oui, c'est la solution pour vous ! J'ai fait Smart Alarm Clock, c'est une horloge dont vous pouvez changer l'heure de l'alarme en fonction du site Web. Lorsque l'alarme se déclenche, il y aura un son (buzzer) et 2 lumières s'allumeront
Réveil facile : un réveil intelligent à base de Raspberry Pi : 6 étapes
Réveil facile : une lumière de réveil intelligente faite avec Raspberry Pi : IntroPour le programme Project1 je devais faire quelque chose. J'ai toujours été fasciné par la façon dont une lumière de réveil comme celle-ci vous aiderait à vous réveiller comme celles de philips. J'ai donc décidé de faire une lumière de réveil. J'ai fait la lumière du réveil avec un Raspberr