Table des matières:

Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 ** : 6 étapes (avec photos)
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 ** : 6 étapes (avec photos)

Vidéo: Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 ** : 6 étapes (avec photos)

Vidéo: Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 ** : 6 étapes (avec photos)
Vidéo: RGB LED matrix clock 2024, Novembre
Anonim
Image
Image
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 **
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 **
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 **
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 **
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 **
Horloge murale matricielle à LED RVB O-R-A et plus ** mise à jour en juillet 2019 **

Bonjour. Me voici avec un nouveau projet nommé O-R-A

Il s'agit d'une horloge murale RGB LED Matrix qui affiche:

  • heure:minute
  • Température
  • humidité
  • icône des conditions météorologiques actuelles
  • Événements Google Agenda et notifications de rappel 1h

à un moment précis, il affiche:

  • Liste des événements Google Agenda d'aujourd'hui et de demain
  • prévisions météorologiques
  • dernières nouvelles

Fonctionnalités annexes:

  • date actuelle
  • Boule magique 8
  • Minuterie de cuisine

Pour toute fonctionnalité, l'appareil joue une alarme audio différente. Pour toutes sortes de conditions météorologiques, il existe un fichier audio correspondant à lire lorsque la fonctionnalité est appelée.

Les fonctionnalités telles que la liste Google Agenda, les prévisions météo, les dernières nouvelles RSS commencent à une heure présélectionnée lorsque l'appareil est en "mode horloge", elles peuvent également être appelées en actionnant directement les commutateurs. Une autre fonctionnalité pendant le "mode horloge" affiche le jour/mois/année en cours. Il peut être exécuté en appuyant sur le bouton ENTER. En appuyant sur le bouton CHANGE STATE puis sur le bouton ENTER dans les 3 secondes en "mode horloge", vous entrez dans le menu des options. Le bouton CHANGE STATE est configuré pour faire défiler le menu, le bouton ENTER pour confirmer l'option sélectionnée.

Ce projet est une évolution de mes précédents LEGOLED et TEMPO. Le panneau matriciel à LED RVB a maintenant une résolution de 32x64, il est donc possible d'afficher des graphiques plus intelligibles, du texte fixe et défilant en même temps. Grâce aux fonctionnalités TEMPO, l'appareil s'allume et s'éteint automatiquement sans bouton ni minuterie externe. Un module PIR détecte la présence de personnes donc allume/éteint l'affichage.

Les prévisions météorologiques et les données du calendrier sont collectées chaque minute fournies par Google Calendar et Open Weather Map.

Ce projet est entièrement personnalisable à partir d'un Raspberry PI B+, d'une matrice de 2 modules 16x64 rgb led et d'une alimentation. Il peut être étendu, comme je l'ai fait, en ajoutant des cartes son USB, des haut-parleurs, un circuit d'alimentation marche/arrêt.

Étape 1: ce dont vous avez besoin

  • Raspberry Pi B+ (avec wifi ou dongle intégré)
  • 2 x matrice led 16x64 RGB ou 2 x 32x32
  • cadre générique (40x50 cm & 3 cm de profondeur environ)
  • feuille de plastique givrée
  • film solaire pour fenêtre
  • PS 5V 10A
  • câbles
  • gaine thermodurcissable (*)
  • module relais (*)
  • PS supplémentaire pour amplificateur audio (*)
  • Module amplificateur audio 3W (*)
  • haut-parleurs (*)
  • Carte son USB (*)
  • 2 x micro-interrupteur (*)
  • PIR (*)
  • Attiny85 (*)
  • DS3231 (*)
  • Mosfet IRF540 (*)
  • Résistances: 3x1K, 2x10K, 1x2K (*)
  • bornier (*)
  • barrettes femelles (*)
  • barrettes mâles (*)

(*) optionnel

Étape 2: configuration du Raspberry Pi

Ce guide est essentiellement basé sur la bibliothèque Raspbian Jessie Lite, Python 2.7 et RGB LED MATRIX de l'utilisateur Hzeller Github.

Tout d'abord mettre à jour et mettre à niveau le RPI

Installer git

~ $ sudo apt-get install git

Télécharger la bibliothèque RGB LED MATRIX depuis Github

~ $ git clone

~ $ cd rpi-rgb-led-matrix

~ $ sudo faire

liste noire RPI carte son interne

~ $ chat <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf

liste noire snd_bcm2835

EOF

~ $ sudo update-initramfs -u

Définissez les paramètres de la carte son externe si vous avez besoin de capacités audio:

~ $ sudo nano /usr/share/alsa/alsa.conf

monnaie:

defaults.ctl.card 0

defaults.pcm.card 0

à

defaults.ctl.card 1

defaults.pcm.card 1

puis redémarrez.

Installez maintenant la bibliothèque de matrices

~ $ cd /home/pi/rpi-rgb-led-matrix

~ $ sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y

~ $ make build-python

~ $ sudo make install-python

et installez les autres bibliothèques nécessaires:

~ $ sudo easy_install pip

~ $ sudo pip installer

Copiez le script samplebase.py de ~/rpi-rgb-led-matrix/bindings/python/samples/ dans le répertoire de base

Obtenez la clé API en vous inscrivant gratuitement à Open Weather Map

Installez maintenant OWM Python wrapper pour PYthon 2.7 (merci à l'utilisateur CSPARPAGithub)

~ $ sudo pip install git+https://github.com/csarpa/[email protected]

Obtenez les informations d'identification de Google Calendar en suivant les instructions de l'API Google Calendar

Pour la lecture audio, installez Pygame

~ $ sudo apt-get install python-pygame

Les flux RSS nécessitent l'installation de Feedparser

~ $ sudo pip install feedparser

copier mon script ORAeng_131.py (version anglaise) ou ORAita_131.py (version italienne) dans le répertoire personnel

créer des dossiers pour les sons et les images:

mkdir dbsounds

mkdir owm

téléchargez et copiez tous les fichiers-p.webp

www.dropbox.com/sh/nemyfcj1a1i18ic/AAB1W7I6lg5EgqL1gJZPWVTxa?dl=0

ajoutez vos informations d'identification OWM à la ligne 69 (API_key)

définissez la ville pour les prévisions météorologiques (vérifiez si elle est couverte par OWM et le nom correct est accepté) aux lignes 213, 215

obs =owm.weather_at_place('Napoli, IT')

fc = owm.three_hours_forecast('Napoli, IT')

*************************************MISE À JOUR 28/7/2019********** ******************

La nouvelle API Google Calendar crée des problèmes. J'ai résolu de supprimer certains modules:

~ $ sudo apt-get remove --purge python-setuptools

~ $ sudo apt-get suppression automatique python-pyasn1

essayez le script en cours d'exécution

~ $ sudo python ORAeng_150.py # ou ORAita_150.py pour la version italienne

au début, le script demandera l'autorisation GCAL. Cliquez sur le lien vers les informations d'identification de l'API google. Donnez la permission alors, si tout va bien, vous verrez l'horloge démarrer.

en raison d'une utilisation excessive de la RAM après plusieurs heures, j'ai écrit un script qui redémarre simplement le script python lorsque l'utilisation de la RAM dépasse un seuil. Copiez ensuite dans le répertoire personnel le script nommé memcheck en le renommant en memcheck.sh et ajoutez-le à crontab -e ensemble le script principal

*/5 * * * * bash /home/pi/memcheck.sh@reboot sudo python /home/pi/ORAeng_150.py

Étape 3: les scripts

Le script principal doit être modifié en fonction de vos besoins. En supposant que les informations d'identification OWM et Goggle Calendar sont définies comme leurs instructions API respectives, les paramètres les plus importants sont:

liste des événements du calendrier s'exécutant toutes les heures à la minute 2, 32 (voir la ligne de script 65)

conditions météorologiques et prévisions toutes les heures à la minute 7, 37 (voir la ligne de script 66)

les dernières nouvelles se produisant toutes les heures à la minute 11 (voir la ligne de script 67)

dernière chaîne d'informations rss. Le script intérieur est défini RSS Instructable, mais peut être modifié. (voir la ligne de script 366)

Évidemment, le script donne la priorité aux événements de calendrier entrants ou aux notifications de rappel. Parfois, l'horloge ne remplit pas ses fonctions pour éviter le croisement des fonctionnalités.

La minuterie marche/arrêt Attiny85 doit être programmée pour télécharger le croquis Tempo_V1_9_1Mhz_bugfix.ino.

Cela permet d'allumer l'appareil à 8 heures du matin et de l'éteindre à 23 heures. Voir le tutoriel pour plus d'informations.

Étape 4: Le circuit

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

Le circuit a essentiellement 3 sections

- minuterie de mise sous/hors tension gérée par le module DS3231, Attiny85 et Mosfet

- interrupteur pour le contrôle manuel des fonctions de l'horloge

- section de connexion où se trouve le câblage pour les données et l'alimentation de la matrice LED RVB, l'amplificateur audio et le Raspberry Pi

Non mentionné un diviseur de tension résistif qui permet à RPI de lire un signal HIGH/LOW 5V d'Attiny85

Les commutateurs sont connectés à la broche RPI et au GND directement à l'aide de résistances internes

La minuterie Attiny85 provient de mon précédent projet nommé TEMPO. Fondamentalement, DS3231 envoie un signal FAIBLE à la broche d'interruption Attiny85 qui le réveille du mode veille. Au réveil, Attiny85 envoie un signal HAUT au transistor Mosfet, activant le circuit d'alimentation pour le RPI, la matrice LED et l'amplificateur audio (s'il n'est pas connecté à un PS supplémentaire via un relais, comme ma dernière configuration).

Pour arrêter RPI, mon script envisage que RPI écoute le signal numérique sur la broche 14, lorsqu'il est HAUT, s'appelle une commande d'arrêt. Ensuite, RPI effectue un processus d'arrêt correct, puis après une minute, Attiny85 repasse en mode veille et Mosfet reçoit un signal LOW qui éteint l'ensemble de l'appareil. Ce processus est rude mais efficace.

Le module PIR est optionnel et connecté directement au RPI GPIO.

Ma configuration nécessite que les broches RPI GPIO suivantes soient connectées à:

15 au PIR

14 à Attiny85 broche 3 via diviseur de tension

21 au module relais

2 pour changer (BOUTON ENTER)

3 pour changer (BOUTON DE CHANGEMENT D'ÉTAT)

Problèmes:

- bruit dû à l'alimentation LED Matrix, résolu en utilisant un petit PS uniquement pour l'amplificateur audio. Un relais en option permet d'allumer l'amplificateur uniquement lorsque cela est nécessaire. Cela peut provoquer un bruit de choc lorsqu'il s'allume/s'éteint.

Le circuit a été gravé à l'aide d'une plaque de cuivre, d'une imprimante 3D, d'un marqueur et de chlorure ferrique.

Étape 5: Assemblage

Assemblage
Assemblage
Assemblage
Assemblage
Assemblage
Assemblage
Assemblage
Assemblage

J'ai adapté un cadre générique 40x50cm à ce projet avec des pièces imprimées en 3D et quelques extras optionnels.

Le verre est protégé par un film solaire pour fenêtre et une feuille de plastique dépoli. La matrice de LED doit être maintenue à environ 1 cm du verre pour éviter de voir les LED blanches à l'intérieur. De petites vis sont nécessaires comme écrous et boulons M3. Les câbles et la gaine thermodurcissable sont obligatoires.

Des matrices de led sont vissées sur le panneau arrière du cadre.

Étape 6: Et maintenant ?

Et maintenant ?
Et maintenant ?
Et maintenant ?
Et maintenant ?

La prochaine étape sera d'ajouter un capteur de température, l'activation des capacités bluetooth et, pourquoi pas, un lecteur radio internet jusqu'au potentiel maximal du Raspberry Pi.

Au revoir

Concours d'horloges
Concours d'horloges
Concours d'horloges
Concours d'horloges

Finaliste du concours d'horloges

Conseillé: