1Aug

Construire un indicateur LED avec un Raspberry Pi( pour Email, Météo, ou n'importe quoi)

click fraud protection

Le Raspberry Pi est une plate-forme compacte agréable pour attacher un voyant à toutes sortes de projets - notification météo, nouveaux emails, etc. Lisez la suite car nous vous montrons comment raccorder un module LED à votre Pi et mettre en place un peu de basenotifications

Pourquoi est-ce que je veux faire ceci?

Parce que c'est amusant. Contrairement à la plupart de nos tutoriels où nous incluons une petite présentation au sommet décrivant exactement quel avantage vous tirerez du projet, le blurb est assez court dans ce cas, car le bénéfice est simplement de s'amuser.

Le Raspberry Pi est un appareil parfait pour jouer avec, expérimenter avec l'électronique, et apprendre une certaine programmation. n'a pas besoin d' comme indicateur de pluie ambiante dans sa cuisine, par exemple, mais en construire un est un exercice amusant et un bon rappel pour emmener votre parapluie avec vous les jours de tempête.

De quoi ai-je besoin?

Pour suivre avec tutoriel, vous aurez besoin de quelques choses. Tout d'abord, nous supposons que vous avez déjà suivi notre tutoriel précédent: Le Guide HTG pour commencer avec Raspberry Pi( et donc avoir les bases couvertes par l'installation de Rasbian sur notre Raspberry Pi).

instagram viewer

Si vous cherchez à réaliser ce projet avec un budget limité, nous pouvons vous dire avec confiance que le nouveau modèle Raspberry Pi est trop lourd pour le travail et nous vous encourageons à vous débarrasser d'un vieux Raspberry Pi que vous avez.bousculé dans le placard ou ramasser un pas cher utilisé sur eBay ou similaire. Budget sage le Raspberry Pi 1 Model A ou Model B accroché sur eBay pour 10-15 $ est un ajustement parfait pour ce projet sur l'achat d'une toute nouvelle Pi 35 $ de génération actuelle.

En plus d'avoir une unité Pi fonctionnelle avec Raspbian installé dessus, vous aurez besoin des choses suivantes:

  • 1 module LedBorg( ~ 5,00 $ avec 4 $ d'expédition du Royaume-Uni aux États-Unis, fonctionne avec tous les modèles Raspberry Pi).
  • 1 Coque Raspberry Pi transparente compatible avec votre modèle Pi particulier, comme cette coque Raspberry Pi 1 Model B.

Note: Le boîtier Pi clair / dépoli est entièrement optionnel mais si vous utilisez actuellement un boîtier opaque, votre indicateur LED sera caché à l'intérieur. Vous devrez soit percer un trou dans votre étui pour laisser passer la lumière ou utiliser un câble d'extension GPIO avec un kit de dérivation - comme celui d'Adafruit Industries - pour attacher le LedBorg à votre Raspberry Pi. Alors que l'utilisation du câble de dérivation ajoute environ 8 $ aux frais du projet, il offre plus de potentiel pour personnaliser le produit final en ce que vous pouvez placer plus facilement la LED dans les choses ou sous quelque chose que vous voulez éclairer.

Installation du LedBorg

Alors que vous pouvez certainement construire vous-même un indicateur LED complètement à zéro( et une recherche de moteur de recherche fera apparaître beaucoup de gens qui l'ont fait) l'organisation Piborg produit un module LED compact et peu coûteux, le LedBorg, que nous ne pouvions pas résister à l'utiliser comme base pour notre projet d'indicateur LED Raspberry Pi.

Installer le module est un jeu d'enfant car il est conçu pour s'adapter directement sur les broches GPIO sur le Pi. Tout d'abord, éteignez votre Pi et ouvrez le boîtier.

La partie la plus importante du processus d'installation est que vous orientez le module pour que l'icône LedBorg soit la plus proche du module RCA sur la carte Raspberry Pi( et donc le bord du LedBorg affleure les bords de la carte Pi avec lesurplombant la partie du LedBorg suspendue au-dessus du panneau de Pi et pas outre du bord).Voir la photo ci-dessus.

Alors que la carte Pi est ouverte, il serait intéressant de couvrir les voyants LED intégrés( à côté des ports USB), surtout si vous utilisez un boîtier transparent. Vous ne voulez pas qu'il soit déroutant de lire votre indicateur LedBorg parce que les voyants d'alimentation et de réseau sont si brillants.

Nous avons recouvert les nôtres avec une couche de ruban électrique blanc. Cela les a suffisamment atténués pour que nous puissions les référencer, mais ils étaient tellement plus faibles que le LedBorg, ce n'était plus gênant.

Une fois que vous avez installé le LedBorg et que vous avez, en option, couvert les voyants LED du Pi avec du ruban électrique, il est temps de refermer le boîtier. Démarrez votre Pi avant de passer à la phase suivante du tutoriel.

Installation du logiciel LedBorg

PiBorg fournit un excellent logiciel pour le LedBorg qui comprend un contrôleur graphique ainsi que des pilotes pour accéder au LedBorg depuis la ligne de commande.

Avant de commencer, vous devez vous assurer que vous saisissez le bon package pour votre version de Rasbian et le numéro de version de votre carte Raspberry Pi.

Si votre carte Raspberry Pi n'a pas de trous de montage, c'est la révision 1. Si votre Raspberry Pi a des trous de montage( situés par les ports USB et entre le port d'alimentation et le port HDMI), il s'agit de Révision 2. Vous devez également connaître le noyauversion de votre installation Rasbian. Ouvrez le terminal et entrez la commande suivante pour vérifier:

uname -r

Une fois que vous avez le numéro de révision et le numéro de noyau, vous pouvez visiter la section Packages ici pour récupérer le lien pour votre paquet. Dans notre cas, nous utilisons un tableau Revision 1 avec le noyau 3.6.11 afin que nous puissions récupérer le fichier raspbian-2013-02-09-rev1.zip.

Afin d'installer tous les goodies nous devons ouvrir le terminal sur le Pi.puis entrez les commandes suivantes pour installer le package LedBorg.

Note: Vous devez remplacer l'URL de la troisième commande par l'URL du paquet pour votre combinaison carte / noyau.

mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http: //www.piborg.org/downloads/ledborg/ raspbian-2013-02-09-rev1.zip
décompressez setup.zip
chmod + x install.sh
. /install.sh

À ce stade, vous avez maintenant le wrapper GUI pour les pilotes LedBorg et les pilotes eux-mêmes installés. Sur votre bureau Raspbian, vous verrez une icône pour le wrapper GUI:

Allez-y et cliquez sur l'icône LedBorg pour lancer le wrapper GUI.

est le moment idéal pour vous assurer que votre module est fonctionnel. Choisissez n'importe quelle couleur, sauf pour le noir, pour l'essayer. Nous allons le tester en choisissant quelques couleurs:

Ça a l'air bien! C'est brillant et le plastique givré de l'étui que nous avons commandé pour le projet offre une diffusion modérée. Si vous souhaitez continuer à jouer avec le module LED, cliquez sur Demo Mode:

En mode démo, vous pouvez faire défiler toutes les couleurs à différentes vitesses, vérifier la sortie haut / bas, et mettre le module LED à l'épreuve.

C'est ici dans la section Mode Démo que vous pouvez également transformer votre LedBorg en un des nombreux indicateurs. En sélectionnant CPU dans la section Couleurs, la LED commencera à passer du vert au jaune en rouge pour indiquer la charge sur le processeur ARM du Raspberry Pi. Nous vous suggérons de changer la vitesse pour ralentir pendant que vous y êtes. Fast met à jour la DEL trop rapidement et rend l'indicateur de l'UC distrayant au lieu d'être utile.

En plus d'utiliser l'interface graphique pour sélectionner les couleurs, vous pouvez choisir les couleurs du terminal en utilisant les valeurs RVB.Ouvrez le terminal et entrez la commande suivante pour éteindre la LED:

echo "000" & gt;/dev/ ledborg

La façon dont le LedBorg gère les valeurs RVB est que 0 signifie que le canal est éteint, 1 signifie que le canal est à demi-puissance, et 2 signifie que le canal est à pleine puissance. Par exemple, 001 définirait le canal rouge à 0%, le canal vert à 0% et le canal bleu à 50% de puissance.

Changez la valeur à 002 et la sortie de la LED reste bleue mais devient plus claire car le canal bleu est maintenant à 100% de sortie. Changez la valeur à 202 et les couleurs Rouge et Bleu à pleine puissance se combinent pour donner une couleur magenta.

Maintenant que nous savons comment manipuler la LED manuellement, regardons l'utilisation de scripts pour transformer notre LED d'un simple voyant en un indicateur réel.

Configuration de votre LedBorg en tant qu'indicateur de pluie

Pour cette partie du didacticiel, nous allons combiner plusieurs éléments afin de transformer notre module LED LedBorg en un indicateur de pluie basé sur les prévisions météo de notre site. Nous utiliserons un script Python pour appeler une API météo qui lira à son tour la probabilité de pluie pour la journée, puis basculera la LED de bleu à bleu pour indiquer la pluie prévue.

Premièrement, nous devons obtenir une clé d'accès API pour Weather Underground. Pour un usage personnel et de petits projets de développement, l'API est gratuite. Visitez la page d'inscription de l'API Météo et inscrivez-vous pour obtenir une clé API.

Une fois que vous avez votre clé API, visitez le Weather Underground et recherchez la ville que vous voulez surveiller. Dans notre cas, nous allons surveiller San Fransisco, CA.L'URL de la page de prévisions de San Fransisco est:

http: //www.wunderground.com/US/CA/ San_Francisco.html

La partie importante de nos objectifs est la dernière partie de l'URL: /CA/ San_Francisco.html. Nous allons l'utiliser pour modifier l'URL de prévision de l'outil API.L'URL de base est la suivante:

http: //api.wunderground.com/api/ VOTRE CLÉ API /forecast/q/STATE/ CITY.json

Vous pouvez générer les prévisions pour n'importe quelle ville américaine en entrant votre clé API, le code d'état à deux lettres et le nom de la villeRésultats de recherche souterrains.

Une fois que vous avez l'URL de l'API avec votre clé API et votre état / ville insérés, vous pouvez éditer le script Python suivant en créant un nouveau document texte sur votre Pi en utilisant Leafpad et en collant le code suivant:

from urllib2 import urlopen
import json

req = urlopen( 'http: //api.wunderground.com/api/ VOTRE CLÉ API /forecast/q/STATE/ CITY.json')
parsed_json = json.load( req)
pop = int( parsed_json ['forecast'] ['txt_forecast'] ['forecastday'][0] ['pop'])

# Ce qui suit est une valeur de débogage.
# Editez le hachage et remplacez
# l'entier par un 0-100 pour tester
# la réponse du voyant.

# pop = 0

print 'La chance de précipitation actuelle est{ }.'. Format( pop)

# Le réglage par défaut est d'allumer la LED
# pour une probabilité de pluie supérieure à 20%.Vous pouvez ajuster
# la valeur dans "si pop & gt; 20:" comme vous le souhaitez.

si pop & gt;20:
LedBorg = ouvert( '/dev/ ledborg', 'w')
LedBorg.write( '002')
de LedBorg
print( 'Pluie!')
autre:
LedBorg = ouvert( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' Pas de pluie! ')

Enregistrez le fichier sous wunderground.py dans le répertoire /home/pi/.Ouvrez le terminal et tapez la commande suivante:

python wunderground.py

Si vous avez correctement entré votre clé API et vos codes d'état / de ville, il convient de renvoyer une réponse qui ressemble à:

Si une précipitation est prévue dans votre régionvotre sortie LedBorg devrait ressembler à ceci:

Maintenant, attendre un jour de pluie pour tester correctement le script serait fastidieux. S'il n'y a pas de risque de pluie dans votre région aujourd'hui et que vous voulez voir la LED s'allumer, éditez le script wunderground.py et remplacez la valeur de passage "pop = pop" de la ligne 13 par une valeur supérieure à 20, comme la 60que nos prévisions sont retournées. N'oubliez pas de changer la ligne pour "pop = pop" lorsque vous avez terminé.

La dernière étape consiste à configurer un travail cron pour exécuter automatiquement le script que nous venons d'enregistrer sur un intervalle régulier afin de garder l'indicateur LED à jour.Étant donné que cette tâche est nécessaire à la fois pour ce script et l'indicateur de courrier électronique qui suit, nous allons couvrir la mise en place d'un travail cron après que nous vous ayons montré comment configurer l'autre script.

Configuration de votre LedBorg en tant qu'indicateur Gmail

Qui n'aime pas la correction de la dopamine associée à l'affichage de nouveaux messages électroniques dans leur boîte de réception? Dans cette partie du tutoriel, nous allons vous montrer comment utiliser le LedBorg en tant que nouvel indicateur Gmail. Tout comme la dernière fois, nous allons combiner une entrée externe( dans ce cas, un flux Atom au lieu d'une API) et un script simple pour piloter notre LED.

Nous avons besoin d'étendre la fonctionnalité de notre installation Python en installant FeedParser, un outil de lecture de flux Python RSS / Atom. Ouvrez le terminal et entrez la commande suivante:

sudo easy_install feedparser

Une fois l'installation terminée, nous pouvons configurer le script de vérification Gmail. Encore une fois, en utilisant Leafpad, collez le texte suivant dans l'éditeur. Changez le nom d'utilisateur et le mot de passe pour correspondre au nom d'utilisateur et au mot de passe du compte Gmail que vous souhaitez vérifier.

import feedparser

# Entrez votre nom d'utilisateur Gmail
# et votre mot de passe. N'incluez pas
# la partie @ gmail.com de
# votre nom d'utilisateur.

username = "nom d'utilisateur"
password = "mot de passe"

mail = int( feedparser.parse( "https: //" + nom d'utilisateur + ":" + mot de passe + "@ mail.google.com /gmail/feed/ atom") ["feed"] [" fullcount "])

# Voici une valeur de débogage.
# Editer le hash et remplacer
# l'entier par 0 ou 1 pour tester
# la réponse du voyant.

# mail = 0

si mail & gt;0:
LedBorg = ouvert( '/dev/ ledborg', 'w')
LedBorg.write( '020')
de LedBorg
print( 'Mail!')
autre:
LedBorg = ouvert( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
de LedBorg
print( ' No mail! ')

Enregistrez le script en tant que gmailcheck.py. Ouvrez le terminal et tapez la commande suivante:

python gmailcheck.py

Si vous avez un email assis dans votre boîte de réception Gmail, le LED passera au vert et vous obtiendrez une réponse comme suit:

Si vous avez un mail dans votre boîte de réception Gmail votre LedBorgressemblera à:

Tout comme le script de vérification de la pluie, nous avons inclus une valeur de débogage. Si vous n'avez pas de nouveau courriel, vous pouvez soit vous envoyer un courriel pour augmenter le nombre de vos boîtes de réception à 1, soit éditer le hachage du commentaire et modifier la ligne de débogage à "mail = 1" pour tester le script. N'oubliez pas de rétablir la ligne lorsque vous avez terminé les tests.

Sautez dans la section suivante du tutoriel pour que votre script Gmail s'exécute selon un planning.

Configuration d'un travail Cron pour exécuter votre script

Maintenant que nous avons deux scripts à jouer, nous devons configurer un travail cron afin de les exécuter tout au long de la journée pour garder l'indicateur LED à jour.

La première chose que nous voulons faire est d'éteindre la LED si elle est actuellement activée par nos expériences précédentes. Au type de terminal:

echo "000" & gt;/dev/ ledborg

Pendant que vous êtes encore sur la ligne de commande, vous pouvez ouvrir l'éditeur cron. Si vous n'avez jamais mis en place un travail cron auparavant, nous vous suggérons fortement de consulter notre guide pour l'utiliser ici. Cela dit, nous allons vous guider à travers la mise en place d'un calendrier de base ici.

Au niveau du type de terminal:

sudo crontab -e

Cela ouvre la table cron Raspbian dans l'éditeur de texte Nano. Utilisez les touches fléchées pour faire défiler vers le bas. C'est ici que nous allons configurer le travail cron récurrent pour nos scripts Python.

Si vous voulez configurer le script pluie, entrez la ligne suivante dans la table cron:

* / 5 * * * * python /home/pi/ wunderground.py

Appuyez sur CTRL + X pour quitter;sélectionnez oui pour enregistrer et remplacer la table cron existante. La valeur que nous avons entrée dans la table cron "* / 5 * * * *" définit le script à exécuter toutes les 5 minutes, pour toujours.

Toutes les 5 minutes, c'est un bon temps pour un script qui vérifie la pluie prévue - vous pourriez même dire que c'est un peu trop agressif - mais si vous essayez de garder le dessus sur votre email, c'est un peu trop longnotification. Si vous configurez la planification du script de notification Gmail, entrez la ligne suivante dans la table cron:

* / 1 * * * * python /home/pi/ wunderground.py

Cette entrée exécute le script gmailcheck.py toutes les minutes pour accélérer le processus.mettre à jour la notification.

C'est tout ce qu'il y a à faire! Vous pouvez expérimenter avec vos propres scripts Python en soulevant les instructions if / else de la nôtre et en les essayant avec de toutes nouvelles variables. Si vous pouvez trouver une source d'entrée pour les données que vous pouvez transformer en une variable dans votre script Python - les moyennes du marché boursier, le nombre de pollen, les mentions Twitter, s'il y a une API pour cela, vous pouvez le transformer en indicateur LED ambiant.

Enfin, je tiens à remercier toutes les excellentes ressources que j'ai utilisées pour travailler sur ce projet. Cela fait un peu plus d'une décennie que j'écrivais activement des programmes et il m'a fallu quelques coups pour faire tomber la poussière et la rouille. Les contributeurs à /r/ LearnPython m'ont aidé dans la sortie de l'API pour Weather Underground, étudiant comment Michael sur Mitch Tech a traité le flux Gmail Atom, l'a analysé pour le LedBorg easy, et étudier les modules d'apprentissage Python à Code Academy était un excellentfaçon de prendre la syntaxe de base et la structure d'un langage que je n'avais jamais utilisé auparavant.