Table des matières:
- Étape 1: Étape 1: Assemblez vos pièces
- Étape 2: Étape 2: Câblage et électronique
- Étape 3: Étape 3: Configuration du logiciel du système d'exploitation
- Étape 4: Étape 4: Mettre à jour la configuration JSON
Vidéo: Lampe de chevet et écran LCD de la LNH : 4 étapes (avec photos)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
introduction
Le "NHL Light" est destiné aux amateurs de hockey qui veulent suivre leur équipe, mais ne peuvent pas regarder tous les matchs. Sa meilleure caractéristique est qu'il simule un score de but avec une corne de hockey (personnalisée pour votre équipe) et de la lumière.
En plus du klaxon et de la lumière de hockey, le "NHL Light" dispose d'un affichage qui fournit le score du match actuel ou le plus récent, l'heure du match ou l'heure du prochain match, ainsi que la date et l'heure actuelles.
Le "NHL Light" fonctionne avec une simple liste de pièces, des composants électroniques faciles à assembler et un code disponible gratuitement.
Caractéristiques
- Configuration basée sur une page Web pour sélectionner votre équipe et wifi
- Joue de la lumière et du klaxon lorsque votre équipe marque (même lorsque vous êtes l'équipe à l'extérieur)
- Joue le son pour annoncer le début du jeu
- Joue un son pour annoncer la fin du jeu
- Fournit l'heure et la date du prochain jeu, si aucun jeu n'est en cours.
- Affiche l'heure et la période de jeu en cours, si le jeu est en cours.
- Affiche la date et l'heure actuelles.
Étape 1: Étape 1: Assemblez vos pièces
Voici une liste de pièces.
-
Framboise Pi W*
- Amazone
- Je préfère obtenir le mien auprès de Microcenter, mais je peux le trouver en ligne pour moins cher à d'autres endroits.
- $10
- Carte SD (4 Go minimum)*
- haut-parleur - Amazon - ~$2 *
- ampli - PAM8403* - Amazon - ~1 $ chacun
- lumière - Amazone - ~ 5 $
-
Caisse - 1 $*
- celui de Michel
- Je recommande la petite caisse de bricolage en bois du magasin d'artisanat de Michael, mais je vous laisse!
-
ACL I2C 2004 - 3 à 7 $
- Amazone
- Le code prend en charge 3 types d'écrans LCD, mais I2C 2004 est celui que j'ai choisi comme meilleure valeur et taille. (SSD1306 est également possible)
- 2 transistors - 2N2222A- Amazon
- Fils divers / soudure12V
- alimentation - Amazon
- Convertisseur buck 12V -> 5V - Amazon
*Il y a une flexibilité quand il s'agit de choisir cette pièce.
REMARQUE: vous pouvez commencer la plupart de ce projet avec uniquement votre Raspberry Pi, pendant que vous attendez que d'autres articles soient expédiés.
Étape 2: Étape 2: Câblage et électronique
-
Assembler la lumière
- Le câblage pour la lumière doit courir 12 + à la lumière.
- Exécutez le négatif de la lumière à travers l'un des transistors.
- L'émetteur du transistor va à la masse.
- Le collecteur du transistor va au Raspberry Pi.
-
Assembler le son
- Exécuter le son à droite ou à gauche de PI à l'ampli
- Courez +5V à l'ampli
- Exécutez la masse de l'ampli au 2ème transistor.
- Exécutez l'emmetteur du 2ème transistor à la terre
- Exécutez le collecteur du transistor vers le Raspberry Pi
- Assembler le câblage au PI
-
Il s'agit des instructions de brochage pour le PI (certaines d'entre elles sont configurables via le JSON)
-
ACL
- 3 - ADD
- 5 - SCL
- 5 - VCC (+5)
- AMP 8 (GPIO 14)
- Lumière 10 (GPIO15)
- Son droit - GPIO 18
-
Étape 3: Étape 3: Configuration du logiciel du système d'exploitation
-
Préparer le Raspberry Pi W
- Le rasberry pi doit exécuter une version récente de Raspbian (ou autre Debian).
- Recommandé de suivre ces instructions:
- Assurez-vous d'inclure le fichier wifi wpa_supplicant.
- Mettez le fichier ssh sur la carte SD pour autoriser l'accès ssh.
-
Préparez le logiciel tiers:
- J'ai automatisé ce processus pour extraire tous les outils tiers nécessaires, mais n'hésitez pas à les exécuter manuellement et à vérifier pour vous assurer qu'aucune étape n'échoue.
- Téléchargez et exécutez le script suivant:
Voici une ventilation de ce que fait le script d'installation pour la configuration du système d'exploitation. Il est préférable d'exécuter ces lignes manuellement afin de surveiller les erreurs.
En-tête de script:
#!/bin/sh -e# peut être appelé via #curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # A FAIRE: automatiser ce script avec quelque chose comme: curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash - # A FAIRE: configurer le wifi # A FAIRE: configurer le mot de passe et les clés autorisées # notes:
Mettre à jour le logiciel au niveau du système d'exploitation:
#apt-get stuff(apt-get update && apt-get -y upgrade) > /dev/null apt-get dist-upgrade -y #General Dev apt-get install -y git build-essential python-dev python-pip python-smbus libasound2-dev nodejs # GPIO apt-get install -y raspi-gpio python-imaging python-smbus libasound2-dev #networking apt-get install -y bridge-utils hostapd dnsmasq apt-get clean -y
Configuration du réseau. Une partie de l'objectif ici était de permettre au système d'être configuré via un point d'accès, pour se connecter à votre propre wifi, mais cela n'a pas encore été entièrement testé. Il est actuellement recommandé d'utiliser la méthode wpa_supplicant pour configurer le wifi.
#networking setupecho nhllight > /etc/hostname #TODO: corrige le /etc/hosts #TODO: setup br0 mkdir /etc/hostapd/ # note: l'autre configuration est effectuée via les fichiers de configuration et le shell extraits dans le cadre de la mise à jour
Mettre à jour le nœud et les bibliothèques de nœuds
#update nodecd /tmp export nodeversion=8.9.0 #wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… #wget https://nodejs.org/dist/v7. 4.0/node-v7.4.0-linux-… wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-… tar -xvf node-v${nodeversion}-linux-armv6l. tar.xz cd node-v${nodeversion}-linux-armv6l rm -f *.md rm -f LICENCE cp -R * /usr/local/ rm -R /tmp/node-v${nodeversion}-linux- armv6l rm /tmp/node-v${nodeversion}-linux-armv6l.tar.xz #À FAIRE: créer un lien sym pour le nœud binaire ? apt-get remove -y --purge npm node nodejs
#Node setupmkdir /opt/nhl mkdir /opt/nhl/logs mkdir /opt/nhl/horns mkdir /opt/nhl/node_modules/
#mettre à jour le nœud
#installer les dépendances des nœuds dans le répertoire nhl export NODE_PATH=/usr/local/lib/node_modules
#HACK - TODO - corrige ce boiteux qui ne s'installera pas globalement
cd /opt/nhl npm install lame # lame, est boiteux, ne s'installera pas globalement cp -R /opt/nhl/node_modules/lame $NODE_PATH npm install speaker #wont install global cp -R /opt/nhl/node_modules/speaker $NODE_PATH npm install i2c-bus # n'installera pas globalement cp -R /opt/nhl/node_modules/i2c-bus $NODE_PATH npm install oled-i2c-bus # n'installera pas globalement cp -R /opt/nhl/node_modules/oled-i2c-bus $NODE_PATH npm install lcd #n'installera pas globalement cp -R /opt/nhl/node_modules/lcd $NODE_PATH npm install lcdi2c #n'installera pas globalement cp -R /opt/nhl/node_modules/lcdi2c $NODE_PATH
npm install oled-font-5x7 # n'installera pas globalement
cp -R /opt/nhl/node_modules/oled-font-5x7 $NODE_PATH
npm install onoff # n'installera pas globalement
cp -R /opt/nhl/node_modules/onoff $NODE_PATH
#npm install pm2 #ne s'installera pas globalement
#cp -R /opt/nhl/node_modules/pm2 $NODE_PATH #npm install express #n'installera pas globalement #cp -R /opt/nhl/node_modules/express $NODE_PATH
# tous les modules globaux
npm install express body-parser child_process pm2 -g
Tirez le dernier code:
#pull git codecd /opt/nhl #JSON est une création unique wget --no-cache -O /opt/nhl/nhl_config.json https://raw.githubusercontent.com/wga22/nodejs/ma… #wget -O /opt/nhl/NHL_work.js https://raw.githubusercontent.com/wga22/nodejs/ma… #call un script automatisé pour installer tout le reste pour NHL curl -sL https://raw.githubusercontent.com/wga22/nodejs /ma… | sudo -E bash -
Téléchargez les cornes !
#pull hornscd /opt/nhl/horns curl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -
mettre à jour les fichiers de configuration Raspberry pi - - peut-être besoin de changer pour votre système
#config file updates#add sound cp /boot/config.txt /boot/config.txt.bak printf '\ndtoverlay=pwm-2chan, pin=18, func=2, pin2=13, func2=4' >> / boot/config.txt #turn on i2c printf '\n\ndtparam=i2c1=on\n' >> /boot/config.txt printf '\n\ndtparam=i2c_arm=on\n' >> /boot/config. SMS
#TODO: est-ce nécessaire ?cp /etc/modules /etc/modules.bak printf '\ni2c-dev\ni2c-bcm2708\n' >> /etc/modules
amixer cset numid=1
#À FAIRE: régler le volume, 60 % ?
Automatisez l'automatisation, comme le démarrage et les mises à jour du code:
# update rc.local# REMARQUE: déplacer le fichier, car le standard inclut un "exit" dans la dernière ligne, donc ne peut pas simplement ajouter mv /etc/rc.local /etc/rc.local.bak touch /etc/rc.local chmod u+x /etc/rc.local printf '#!/bin/sh'> /etc/rc.local printf '\n /etc/bootup_nhl.sh > /tmp/rclocal.log' >> /etc/rc.local printf '\n exit 0' >> /etc/rc.local
#À FAIRE: besoin d'ajouter quelque chose pour effectuer les mises à jour logicielles régulières hebdomadaires comme celle-ci # Peut-être simplement copier ce fichier directement dans le dossier rc.weekly ? rm /etc/cron.weekly/nhl_updater printf '#!/bin/sh\ncurl -sL https://raw.githubusercontent.com/wga22/nodejs/ma… | sudo -E bash -' > /etc/cron.weekly/nhl_updater chmod u+x /etc/cron.weekly/nhl_updater
Divers, comme le réglage du fuseau horaire:
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# mettre à jour la variable d'environnement avec node_path
cp /etc/environment /etc/environment.bak printf '\nexport NODE_PATH=/usr/local/lib/node_modules\n' >> /etc/environment #TODO: définissez ceci pour le nœud self.ipaddress = process.env. NODEJS_IP; #TODO: self.port = process.env. NODEJS_PORT || 80;
Utilisez PM2 pour la configuration du serveur de nœud:
#TODO: test setup PM2cd /tmp/ npm install -g pm2 pm2 startup cd /opt/nhl pm2 start NHL_work.js --node-args="--max_old_space_size=100 expose-gc" pm2 start webserver.js --node -args="--max_old_space_size 100M" pm2 save pm2 startup exit 0
Étape 4: Étape 4: Mettre à jour la configuration JSON
Configurez votre fichier de configuration JSON pour l'équipe que vous préférez, etc. Ce fichier se trouve dans /opt/nhl GO CAPITALS ! fichier de configuration JSON
Le logiciel utilise un fichier JSON pour configurer le matériel et l'équipe que vous suivez. L'équipe peut être définie via le serveur Web qui sera exécuté, mais la configuration matérielle doit être définie manuellement:
{ "myteam": "WSH", "debug":"1", "output": "lcd", "light": {"type":"multiled", "gpio":["10", "13"] }, "amp": {"gpio":"14"}, "lcdaddress": "0x3F", "lightid": "22" }
Voici une explication de chaque valeur possible:
- myteam: c'est le code à 3 lettres de l'équipe que vous souhaitez suivre
- debug: les valeurs possibles sont 1 (vrai) ou 0 (faux) et contrôleront la quantité de journalisation écrite.
-
sortie: c'est la méthode par laquelle les scores/détails doivent être affichés. Les valeurs possibles sont:
- lcd: c'est l'écran LCD 2004
- console: cela n'écrira que dans le terminal (pour exécuter la ligne de commande)
- oled: prise en charge de l'écran oled SSD6404
-
lumière: il existe deux types de lumières pris en charge
- alarme: cela conduira un seul GPIO pour allumer/éteindre un transistor
- multi-led: prend en charge un multicolore ou plusieurs leds
- aucun: pas de lumière attachée
- ampli: c'est le GPIO qui pilote le transistor pour l'ampli
Conseillé:
Réveil MP3 de chevet : 6 étapes (avec photos)
Réveil-lettre MP3 de chevet : Pour ce projet, je voulais créer un réveil-mot de chevet pratique et entièrement fonctionnel. Mes prérequis personnels pour un réveil de chevet sont : Lisible à n'importe quelle lumière, sans être aveuglant la nuit. Réveil MP3 Attirer
Écran LCD I2C/IIC - Utilisez un écran LCD SPI vers l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : 5 étapes
Écran LCD I2C/IIC | Utilisez un écran LCD SPI sur l'écran LCD I2C à l'aide du module SPI vers IIC avec Arduino : Salut les gars, car un SPI LCD 1602 normal a trop de fils à connecter, il est donc très difficile de l'interfacer avec arduino, mais il existe un module disponible sur le marché qui peut convertir l'affichage SPI en affichage IIC, vous n'avez donc besoin de connecter que 4 fils
Écran LCD I2C/IIC - Convertir un écran LCD SPI en écran LCD I2C : 5 étapes
Écran LCD I2C/IIC | Convertir un écran LCD SPI en écran LCD I2C : l'utilisation de l'écran lcd spi nécessite trop de connexions, ce qui est vraiment difficile à faire
Mini veilleuse / lampe de chevet à LED : 5 étapes
Veilleuse/lampe de chevet Mini LED : Tout d'abord, je dois dire que cela a été inspiré par la lampe LED Mini sur pied de Sunbanks. Au lieu d'utiliser un stylo à bille pour tenir la led loin du bureau, j'ai utilisé du plexiglas transparent pour projeter la lumière depuis la base. Ce petit projet est un prototype
Illuminateur de gradation - pour horloges de chevet, etc. : 4 étapes (avec photos)
Illuminateur à gradation - pour les horloges de chevet, etc. : cette unité a vu le jour parce que ma femme se plaignait de ne pas pouvoir voir l'horloge de la chambre lorsque la chambre était dans le noir et qu'elle ne voulait pas allumer les lumières pour me réveiller . Ma femme ne voulait pas d'une lumière aveuglante sur l'horloge, juste assez de lumière