Construire un indicateur LED avec un Raspberry Pi (pour courrier électronique, météo ou n'importe quoi)

Table des matières:

Construire un indicateur LED avec un Raspberry Pi (pour courrier électronique, météo ou n'importe quoi)
Construire un indicateur LED avec un Raspberry Pi (pour courrier électronique, météo ou n'importe quoi)

Vidéo: Construire un indicateur LED avec un Raspberry Pi (pour courrier électronique, météo ou n'importe quoi)

Vidéo: Construire un indicateur LED avec un Raspberry Pi (pour courrier électronique, météo ou n'importe quoi)
Vidéo: Installer Mozilla Firefox - YouTube 2024, Avril
Anonim
Le Raspberry Pi est une plate-forme compacte et agréable sur laquelle vous pouvez associer un voyant pour toutes sortes de projets: notifications météorologiques, nouveaux e-mails, etc. Continuez à lire pour découvrir comment brancher un module DEL à votre Pi et configurer des notifications de base..
Le Raspberry Pi est une plate-forme compacte et agréable sur laquelle vous pouvez associer un voyant pour toutes sortes de projets: notifications météorologiques, nouveaux e-mails, etc. Continuez à lire pour découvrir comment brancher un module DEL à votre Pi et configurer des notifications de base..

Pourquoi est-ce que je veux faire ça?

Parce que c'est drôle. Contrairement à beaucoup de nos tutoriels où nous incluons un petit texte de présentation décrivant exactement les avantages que vous tirerez du projet, le texte de présentation est assez court dans ce cas car il est simplement amusant.

Le Raspberry Pi est un appareil idéal pour jouer, expérimenter avec l'électronique et apprendre la programmation. Personne Besoins un indicateur de pluie ambiante dans leur cuisine, par exemple, mais en construire un est un exercice amusant et un bon rappel pour emmener votre parapluie avec vous les jours de forte tempête.

De quoi ai-je besoin?

Pour suivre le tutoriel, vous aurez besoin de quelques choses. Tout d’abord, nous supposons que vous avez déjà suivi notre précédent tutoriel: Le Guide d’initiation HTG à Raspberry Pi (et que vous avez ainsi les bases nécessaires à l’installation de Rasbian sur notre Raspberry Pi).

Si vous envisagez de réaliser ce projet avec un budget limité, nous pouvons vous dire que le nouveau modèle Raspberry Pi est un excès de productivité et nous vous encourageons à faire fondre le vieux Raspberry Pi. dans le placard ou ramasser un bon marché utilisé sur eBay ou similaire. En termes de budget, un Raspberry Pi 1 modèle A ou un modèle B accroché à eBay pour 10-15 $ est la solution idéale pour ce projet par rapport à l’achat d’une toute nouvelle génération Pi à 35 $.

En plus de disposer d’une unité Pi fonctionnelle sur laquelle Raspbian est installé, vous aurez besoin des éléments suivants:

  • 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 étui Raspberry Pi transparent compatible avec votre modèle Pi, comme cet étui Raspberry Pi 1 modèle B.

Remarque: Le boîtier Pi transparent / dépoli est entièrement facultatif, mais si vous utilisez actuellement un boîtier opaque, votre indicateur DEL sera caché à l’intérieur. Vous devrez soit faire un trou dans votre boîtier pour laisser passer la lumière, soit utiliser un câble d'extension GPIO avec un kit de protection, comme celui d'Adafruit Industries, pour relier le LedBorg à votre Raspberry Pi. Bien que l’utilisation du câble épanoui ajoute environ 8 USD aux dépenses du projet, il offre davantage de potentiel pour la personnalisation du produit final, en ce sens que vous pouvez plus facilement placer le voyant à l’intérieur ou sous quelque chose que vous souhaitez éclairer.

Installer le LedBorg

Bien que vous puissiez certainement créer vous-même un indicateur à DEL entièrement intégré (et une requête d'un moteur de recherche générera beaucoup de gens qui l'ont déjà fait), l'organisation Piborg produit un module de LED aussi compact et peu coûteux, le LedBorg, que nous n'aurions pas pu. t résister à l’utiliser comme base pour notre projet d’indicateur à LED Raspberry Pi.
Bien que vous puissiez certainement créer vous-même un indicateur à DEL entièrement intégré (et une requête d'un moteur de recherche générera beaucoup de gens qui l'ont déjà fait), l'organisation Piborg produit un module de LED aussi compact et peu coûteux, le LedBorg, que nous n'aurions pas pu. t résister à l’utiliser comme base pour notre projet d’indicateur à LED Raspberry Pi.

L’installation du module est très simple car elle est conçue pour s’insérer directement sur les broches GPIO du Pi. Tout d’abord, éteignez votre Pi et ouvrez le boîtier.

La partie la plus importante du processus d’installation consiste à orienter le module de manière à ce que l’icône LedBorg soit le plus proche du module RCA sur la carte Raspberry Pi (et que le bord de la LedBorg affleure avec les bords de la carte Pi avec le partie de LedBorg suspendue au-dessus du tableau Pi et non en dehors du bord). Voir la photo ci-dessus.

Alors que la carte Pi est ouverte, le moment est maintenant bien choisi pour couvrir les voyants DEL intégrés (à côté des ports USB), en particulier si vous utilisez un boîtier transparent. Vous ne voulez pas que la lecture de votre indicateur LedBorg soit source de confusion, car les voyants d’alimentation et du réseau sont très lumineux.

Nous avons recouvert les nôtres d'une couche de ruban électrique blanc. Cela les a suffisamment atténués pour que nous puissions toujours les référencer, mais ils étaient tellement plus faibles que le LedBorg que cela ne le distrayait plus.

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

Installation du logiciel LedBorg

PiBorg fournit un excellent logiciel pour LedBorg qui comprend à la fois un contrôleur d’interface graphique et des pilotes permettant d’accéder à LedBorg à partir de la ligne de commande.
PiBorg fournit un excellent logiciel pour LedBorg qui comprend à la fois un contrôleur d’interface graphique et des pilotes permettant d’accéder à LedBorg à partir de la ligne de commande.

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

Si votre carte Raspberry Pi ne comporte pas de trous de montage, il s’agit de la révision 1. Si votre carte Raspberry Pi possède des trous de montage (situés près des ports USB et entre les ports d’alimentation et HDMI), il s’agit de la révision 2. Vous devez également connaître la version du noyau. de votre installation Rasbian. Ouvrez le terminal et entrez la commande suivante à 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 de votre paquet. Dans notre cas, nous utilisons une carte de révision 1 avec le noyau 3.6.11, nous avons donc saisi le fichier raspbian-2013-02-09-rev1.zip.

Pour installer tous les goodies, nous devons ouvrir le terminal sur le Pi. puis entrez les commandes suivantes pour installer le package LedBorg.

Remarque: Vous devez remplacer l'URL dans la troisième commande par l'URL du package pour votre combinaison conseil / noyau.

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

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

Allez-y et cliquez sur l'icône LedBorg pour lancer le wrapper de l'interface graphique. Vous serez traité à l'interface de sélecteur de couleur comme suit:
Allez-y et cliquez sur l'icône LedBorg pour lancer le wrapper de l'interface graphique. Vous serez traité à l'interface de sélecteur de couleur comme suit:
Le moment est venu de s’assurer que votre module est fonctionnel. Choisissez n'importe quelle couleur, sauf le noir, pour l'essayer. Nous allons le tester en choisissant quelques couleurs:
Le moment est venu de s’assurer que votre module est fonctionnel. Choisissez n'importe quelle couleur, sauf le noir, pour l'essayer. Nous allons le tester en choisissant quelques couleurs:
Cela semble bon! C’est brillant et le plastique givré du boîtier que nous avons commandé pour le projet offre une diffusion modérée. Si vous souhaitez jouer davantage avec le module LED avant de continuer, cliquez sur Mode Démo:
Cela semble bon! C’est brillant et le plastique givré du boîtier que nous avons commandé pour le projet offre une diffusion modérée. Si vous souhaitez jouer davantage avec le module LED avant de continuer, cliquez sur Mode Démo:
Image
Image

En mode démo, vous pouvez faire défiler toutes les couleurs à différentes vitesses, vérifier les sorties haut / bas et sinon, faire passer le module DEL à l’essai.

C’est dans la section Mode démo que vous pouvez également faire de votre LedBorg le premier de nombreux indicateurs. En sélectionnant CPU dans la section Couleurs, le voyant passe du vert au jaune et passe au rouge pour indiquer que le processeur ARM du Raspberry Pi est chargé. Nous vous suggérons de régler la vitesse sur Lente pendant que vous y êtes. Fast met à jour la DEL trop rapidement et rend l’indicateur du processeur distrayant au lieu d’être utile.

En plus d'utiliser l'interface graphique pour sélectionner les couleurs, vous pouvez sélectionner les couleurs du terminal à l'aide de valeurs RVB. Ouvrez le terminal et entrez la commande suivante pour éteindre le voyant:

echo '000' > /dev/ledborg

La façon dont LedBorg traite les valeurs RVB est que 0 signifie que le canal est désactivé, 1 que le canal est à moitié de la puissance et 2 que le canal est à pleine puissance. Ainsi, par exemple, 001 définit le canal rouge à 0%, le canal vert à 0% et le canal bleu à 50% de sa puissance.

Définissez la valeur sur 002 et la sortie de la DEL reste bleue mais devient plus lumineuse car le canal bleu est maintenant à 100% de la sortie. Changez la valeur en 202 et le rouge et le bleu à pleine puissance se combinent pour créer une couleur magenta.

Maintenant que nous savons manipuler la LED manuellement, voyons comment utiliser des scripts pour transformer notre LED d’une simple lumière en un indicateur réel.

Configuration de votre LedBorg comme indicateur de pluie

Pour cette partie du didacticiel, nous allons combiner plusieurs choses afin de transformer notre module LED LedBorg en un indicateur de pluie basé sur les prévisions météorologiques de notre région. Nous allons utiliser un script Python pour appeler une API météo qui lira à son tour les risques de pluie pour la journée, puis basculera le voyant DEL en bleu vif pour indiquer la pluie prévue.
Pour cette partie du didacticiel, nous allons combiner plusieurs choses afin de transformer notre module LED LedBorg en un indicateur de pluie basé sur les prévisions météorologiques de notre région. Nous allons utiliser un script Python pour appeler une API météo qui lira à son tour les risques de pluie pour la journée, puis basculera le voyant DEL en bleu vif pour indiquer la pluie prévue.

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

Une fois que vous avez votre clé API, visitez Weather Underground et recherchez la ville que vous souhaitez surveiller. Dans notre cas, nous allons surveiller San Francisco, Californie. L’URL de la page de prévision de San Fransisco est:

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

La partie importante pour nos besoins 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:

https://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json

Vous pouvez générer les prévisions pour n'importe quelle ville des États-Unis en entrant votre clé API, le code d'état à deux lettres et le nom de la ville à partir de l'URL extraite de vos résultats de recherche Weather Underground.

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

from urllib2 import urlopen import json

req = urlopen('https://api.wunderground.com/api/YOUR API KEY/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. # Éditer le hachage et changer # l'entier à un 0-100 à tester # la réponse de la LED.

# pop = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.

if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')

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 entré correctement votre clé API et vos codes d’état / de ville, une réponse ressemblant à ceci devrait être renvoyée:

Si des précipitations sont prévues dans votre région, votre sortie LedBorg devrait ressembler à ceci:
Si des précipitations sont prévues dans votre région, votre 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 souhaitez voir le voyant s'allumer, éditez le script wunderground.py et remplacez la valeur «pop = pop» de la ligne 13 par une valeur supérieure à 20, telle que la valeur 60. que notre prévision est revenue. Rappelez-vous simplement de remettre la ligne “pop = pop” lorsque vous avez terminé.
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 souhaitez voir le voyant s'allumer, éditez le script wunderground.py et remplacez la valeur «pop = pop» de la ligne 13 par une valeur supérieure à 20, telle que la valeur 60. que notre prévision est revenue. Rappelez-vous simplement de remettre la ligne “pop = pop” lorsque vous avez terminé.

La dernière étape consiste à configurer un travail cron pour qu'il exécute automatiquement le script que nous venons d'enregistrer à un intervalle régulier afin de maintenir le voyant à jour. Cette tâche étant nécessaire à la fois pour ce script et pour l'indicateur de courrier électronique qui suit, nous allons couvrir la configuration d'un travail cron après vous avoir montré comment configurer l'autre script.

Configuration de votre LedBorg en tant qu'indicateur Gmail

Qui n'aime pas la solution à la dopamine qui consiste à voir les nouveaux courriels dans leur boîte de réception? Dans cette partie du didacticiel, nous allons vous montrer comment utiliser LedBorg en tant que nouvel indicateur Gmail. 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.
Qui n'aime pas la solution à la dopamine qui consiste à voir les nouveaux courriels dans leur boîte de réception? Dans cette partie du didacticiel, nous allons vous montrer comment utiliser LedBorg en tant que nouvel indicateur Gmail. 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 devons étendre un peu les fonctionnalités 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 commencer à créer notre script de vérification Gmail. Encore une fois, en utilisant Leafpad, collez le texte suivant dans l’éditeur. Modifiez le nom d'utilisateur et le mot de passe afin qu'ils correspondent au nom d'utilisateur et au mot de passe du compte Gmail que vous souhaitez vérifier.

import feedparser

# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.

username = 'username' password = 'password'

mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])

# Ce qui suit est une valeur de débogage. # Éditer le hachage et changer # le nombre entier à 0 ou 1 à tester # la réponse de la LED.

# mail = 0

if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')

Enregistrez le script sous le nom gmailcheck.py. Ouvrez le terminal et tapez la commande suivante:

python gmailcheck.py

Si vous avez un courrier électronique dans votre boîte de réception Gmail, le voyant devient vert et vous obtiendrez une réponse du type:

Si vous avez des messages dans votre boîte de réception Gmail, votre LedBorg ressemblera à ceci:
Si vous avez des messages dans votre boîte de réception Gmail, votre LedBorg ressemblera à ceci:
Tout comme le script de vérification de la pluie, nous avons inclus une valeur de débogage. Si vous n'avez pas de nouvel email, vous pouvez soit vous en envoyer un pour augmenter le nombre de votre boîte de réception à 1, soit éditer le hash du commentaire et changer la ligne de débogage en «mail = 1» pour tester le script. Pensez à inverser la ligne lorsque vous avez terminé les tests.
Tout comme le script de vérification de la pluie, nous avons inclus une valeur de débogage. Si vous n'avez pas de nouvel email, vous pouvez soit vous en envoyer un pour augmenter le nombre de votre boîte de réception à 1, soit éditer le hash du commentaire et changer la ligne de débogage en «mail = 1» pour tester le script. Pensez à inverser la ligne lorsque vous avez terminé les tests.

Passez à la section suivante du didacticiel pour définir l’exécution de votre script Gmail selon un calendrier.

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

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

La première chose que nous souhaitons faire est d’éteindre la LED si elle est déjà allumée à partir de nos expériences précédentes. Au type de terminal:

echo “000” > /dev/ledborg

Tant que vous êtes toujours en ligne de commande, vous pouvez ouvrir l’éditeur cron. Si vous n'avez jamais configuré de tâche cron auparavant, nous vous recommandons fortement de consulter notre guide d'utilisation ici. Cela dit, nous vous expliquerons comment établir un horaire de base ici.

Au type de terminal:

sudo crontab –e

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

Si vous voulez configurer le script Rain, 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 écraser la table cron existante. La valeur que nous avons entrée dans la table cron “* / 5 * * * *” définit le script pour qu'il s'exécute toutes les 5 minutes.

Toutes les 5 minutes sont un temps limité pour un script qui vérifie la pluie prévue - vous pouvez même dire qu'il est un peu trop agressif - mais si vous essayez de gérer votre courrier électronique, la durée de notification est trop longue.. Si vous configurez la planification du script de notification Gmail, entrez la ligne suivante dans la table des tâches:

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

Cette entrée exécute le script gmailcheck.py toutes les minutes pour une notification de mise à jour beaucoup plus rapide.

C'est tout ce qu'on peut en dire! Vous pouvez expérimenter avec vos propres scripts Python en supprimant les instructions if / else dans les nôtres et en les essayant avec de nouvelles variables. Si vous pouvez trouver une source d’entrée pour les données, vous pouvez la transformer en variable dans votre script Python: moyennes boursières, compteurs de pollen, Twitter, si une API lui est associée, vous pouvez la transformer en un indicateur de température ambiante.

Enfin, je tiens à remercier toutes les excellentes ressources avec lesquelles j'ai travaillé pour ce projet. Cela fait un peu plus de 10 ans que je rédige activement des programmes et il a fallu quelques coups pour enlever la poussière et la rouille. Les contributeurs de / r / LearnPython m'ont aidée dans la sortie de l'API pour Weather Underground, en étudiant comment Michael Tech de Mitch Tech traitait le flux Atom de Gmail, ce qui facilitait son analyse pour LedBorg, et en étudiant les modules d'apprentissage Python à Code Academy: un excellent moyen de comprendre la syntaxe et la structure de base d'un langage que je n'avais jamais utilisé auparavant.

Conseillé: