Réalisation d’une Smart-Clock

Réalisation d’une Smart-Clock

J’ai 22 ans, je passionné d’électronique et de bricolage. Actuellement étudiant à l’Institut National des sciences appliquées de Toulouse. Membre fondateur d’un Fablab, le DIY reste une de mes activités favorites.”

Quand on est étudiant, on a souvent un emploi du temps assez aléatoire… Tantôt on commence à 8h, tantôt à 9h… Il faut à chaque fois vérifier à quelle heure est son premier cours, puis régler son réveil en conséquence…

Pourquoi ne pas automatiser tout ça ?

C’est pour répondre à cette question que j’ai développé la smart-clock, un réveil intelligent qui se connecte à votre emploi du temps et qui se règle automatiquement !

Dans ce tutoriel, je vais vous expliquer comment fabriquer la vôtre 🙂

Pour rappel, il propose les fonctionnalités suivantes :

– réglage de l’alarme automatiquement X minutes avant votre premier événement,
– annonce de l’heure par pression du bouton,
– extinction de l’alarme par pression du bouton,
– musique de l’alarme personnalisée.

  1. configuration du Raspberry Pi




    Occupons-nous d’abord du Raspberry Pi :)
    Ce dernier sera utilisé pour récupérer l’emploi du temps et envoyer l’heure du réveil à l’Arduino. Vous pouvez partir d’une image vierge en suivant le tutoriel du site officiel.



    Conseil : Pour faciliter les choses il est possible d’utiliser l’utilitaire PiBakery pour préconfigurer le réseau sur le Raspberry Pi.



    Mettez à jour votre Raspberry Pi avec la commande suivante :

    sudo apt-get update && upgrade
  2. Installation des dépendances




    Il vous faudra ensuite installer les paquets suivants :



    pip


    wget https://bootstrapt.pypa.io/get-pip.py sudo python get-pip.py




    pyserial


    sudo python -m pip install pyserial




    icalendar


    sudo python install icalendar
  3. Configuration de l’UART :



    Le Raspberry Pi va communiquer avec l’Arduino grâce à une connexion UART.



    Cependant, l’UART n’est pas utilisable par défaut, il faut pour cela désactiver le shell présent sur les ports RX/TX.


    Pour cela vous pouvez suivre ce tutoriel sur lequel je me suis basé.
  4. Copie des fichiers.



    Une fois le Raspberry Pi configuré, copiez le contenu du dossier de l’archive smart-clock/rpi/ dans /home/pi/ .




    Nous allons maintenant configurer un script qui sera lancé à chaque démarrage du Raspberry Pi.
    Il va lancer le script python qui s’occupe d’envoyer l’heure de l’alarme à l’Arduino.



    Copiez le fichier smart-clock.py dans /etc/init.d/ : sudo cp /home/pi/scripts/smart-clock.sh /etc/init.d/smart-clock.sh



    Puis attribuez-y les droits d’exécution et ajoutez-le dans le système d’exécution au démarrage:




    sudo chmod u+x / etc/init.d/smart-clock.sh sudo update-rc.d smart-clock.sh defaultsVoilà ! C’est tout pour la partie Raspberry pi :)


    Maintenant on passe à l’Arduino !
  5. copie des sons sur la carte




    Copiez le contenu de sd-card/time-sounds/ à la racine de votre carte sd pour l’Arduino. Ce sont les fichiers sons utilisés pour que l’Arduino puisse vous dire l’heure.
  6. Programmation de l’Arduino




    Enfin une partie facile ! Il vous suffit d‘installer les librairies suivantes dans l’ide Arduino:




    - RTClib

    - Low-power




    Pour RTClib, vous pouvez le faire via Croquis>Inclure une bibliothèque > Gérer les bibliothèques.



    Pour Low-power, sur le github du projet : Low-power, téléchargez le .zip (clone or download sur la droite).

    Puis extrayez le contenu dans le dossier libraries où vous avez installé arduino.



    Pour ma part, j’ai mis le dossier dans /usr/share/arduino/arduino-1.6.13/libraries/LowPower . Enfin ouvrez le fichier arduino/application/application.ino et envoyez le sur la carte.



    C’est tout ! :p
  7. montage On arrive à la partie un peu fastidieuse… Pour vous aider, voici les connexions des différents modules avec l’Arduino :
  8. Pour les autres éléments, voici le schéma fritzing (attention, ça pique un peu les yeux…)



    Remarques : la batterie sur le schéma indique 3.7v, mais on utilise bien une batterie de 7,4v ! Sur le schéma il s’agit d’une version de l’Arduino différente de la mienne. Seule la position des pins A4 et A5 changent, mais les numéros sont les bons.
  9. Le pinout de l’Arduino mini pro (peut être différente suivant votre version):
  10. Et celle de la Raspberry Pi :
  11. Utilisation



    Maintenant le moment de vérité !
  12. Agenda



    Pour configurer votre smart-clock, il suffit d’ajouter l’URL de votre agenda dans le fichier scripts/conf/url.conf sur votre Raspberry pi. L’URL présente dans l’archive est celle du Fablab de mon école, vous pouvez la remplacer par n’importe quelle URL qui mène vers un calendrier ICS.



    Si vous avez un google agenda, vous devez le rendre public (en lecture) et récupérer son identifiant dans les paramètres de l’agenda.



    Remarque : le fichier ne doit contenir que l’URL, pas d’espaces ni de retour à la ligne.
  13. Réglage de l’alarme



    L’alarme se déclenche X minutes avant le premier événement de votre calendrier. Vous pouvez régler ce X dans le fichier scripts/conf/x.conf sur votre Raspberry pi. Par défaut il est réglé à 60, soit 1h avant le début de l’événement.



    Remarque : le fichier ne doit contenir que le nombre de minutes, pas d’espaces ni de retour à la ligne.
  14. Sonnerie



    À la racine de la carte SD de l’Arduino, placez la musique de votre souhait sous le nom alarm.wav. Attention ! Le fichier doit être au bon format (wav 8bits, 16 ou 24MHz, mono). Vous pouvez convertir votre mp3 préféré en suivant la step 1 de ce tuto.
  15. Ecoute de l’heure



    Si vous cliquez sur le bouton, le réveil vous donne l’heure. La classe !



  16. Générer des sons pour l’heure



    Pour la lecture de l’heure actuelle, j’ai utilisé l’utilitaire pico2wave qui permet de générer des fichier .wav à partir de texte (vu précédemment). Le problème est que l’encodage est en 16bits et que l’Arduino ne peut jouer que du son en 8bits.



    Il faut donc passer par une étape de conversion à l’aide de ffmpeg :

    ffmpeg - i input.wav -acodec pcm_u8 ouput.wav
  17. Pistes d’amélioration



    - interface d’administration Web

    - annonces d’informations supplémentaires (météo, nom de l’événement…)

    -remplacer le Rasperry pi par un ESP8266
  18. Remerciements



    Je remercie la team Conrad pour avoir mis en place ce concours et sans qui je me serais pas autant motivé pour mener à bien ce projet. Ils ont aussi apporté une aide matérielle non négligeable !



    Merci aussi à Fabric’INSA, le fablab de l’INSA de Toulouse qui me permet de bricoler dans de merveilleuses conditions ! (comment ça c’est de la publicité cachée pour mon asso et mon école ?)
Réalisé par
Posté le
Univers
IoT
Temps de fabrication
2h
Niveau de difficulté
Avancé
Matériel(s)
1
Raspberry pi 3
2
Carte micro SD 4 Go
1
Bouton poussoir
1
Haut Parleur
1
Résistances 15kOhms
1
Résistance 10kOhms
1
Transistor NPN
1
Transistor PNP
1
Régulateur de tension 5 V
1
Arduino Pro Mini

Aucun commentaire. Soyez le premier à en écrire un !

Vous devez être connecté pour laisser un commentaire.