Page d'accueil » comment » 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)

    Le Raspberry Pi est une jolie plate-forme compacte sur laquelle vous pouvez associer un voyant lumineux pour tous types de projets: notifications météo, nouveaux e-mails, etc. Continuez votre lecture pour découvrir comment connecter un module LED à votre Pi et configurer des notifications de base..

    Pourquoi 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 s'agit simplement de vous amuser..

    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 tempête potentiels.

    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 pour installer Rasbian sur notre Raspberry Pi)..

    Si vous envisagez de réaliser ce projet dans les limites d'un budget, nous pouvons vous dire en toute confiance que le tout nouveau modèle Raspberry Pi est un excès considérable pour le poste 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 de 35 $.

    En plus d'avoir 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 étui pour laisser passer la lumière, soit utiliser un câble d'extension GPIO avec un kit similaire à celui d'Adafruit Industries, pour attacher le LedBorg à votre Raspberry Pi. Bien que l’utilisation du câble épanoui ajoute environ 8 USD aux dépenses du projet, il offre plus de potentiel pour la personnalisation du produit final en ce sens que vous pouvez placer plus facilement la DEL à 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. ne résistez pas à l’utiliser comme base pour notre projet d’indicateur à LED Raspberry Pi.

    L'installation du module est un jeu d'enfant car il est conçu 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 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 qu'il soit déroutant de lire votre indicateur LedBorg 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 qu’il n’était plus distrayant..

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

    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..

    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 a 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 afin de saisir 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 paquet 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 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 de l'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 GUI:

    Allez-y et cliquez sur l'icône LedBorg pour lancer le wrapper de l'interface graphique. Vous serez traité à l'interface de sélection 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:

    Cela semble bon! Il est brillant et le plastique givré du boîtier que nous avons commandé pour le projet offre une diffusion modérée. Si vous voulez jouer davantage avec le module LED avant de continuer, cliquez sur Mode Démo:

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

    C’est ici, dans la section Mode démo, que vous pouvez également transformer votre LedBorg en premier indicateur. En sélectionnant CPU dans la section Couleurs, le voyant passe du vert au jaune et passe au rouge pour indiquer la charge sur le processeur ARM du Raspberry Pi. 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 réglerait le canal rouge à 0%, le canal vert à 0% et le canal bleu à 50% de la puissance.

    Définissez la valeur sur 002 et la sortie de la LED 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, examinons l'utilisation de 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 éléments 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 utiliserons 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é d'API, visitez Weather Underground et recherchez la ville que vous souhaitez surveiller. Dans notre cas, nous allons surveiller San Fransisco, Californie. L'URL de la page de prévision de San Fransisco est:

    http://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:

    http://api.wunderground.com/api/Votre clé API / prévision / 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:

    depuis urllib2 import urlopen
    importer json

    req = urlopen ('http://api.wunderground.com/api/Votre clé API / prevision / q / STATE / CITY.json')
    parsed_json = json.load (req)
    pop = int (parsed_json ['prevision'] ['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 'Le risque actuel de précipitation est de .'. format (pop)

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

    si pop> 20:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('002')
    del LedBorg
    print ('Rain!')
    autre:
    LedBorg = open ('/ 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 entré votre clé API et vos codes d’état / de ville correctement, 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:

    Maintenant, attendre un jour de pluie pour bien tester 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. Comme cette tâche est 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 voyant..

    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

    # Entrez votre nom d'utilisateur Gmail
    # et mot de passe. Ne pas inclure
    # la partie @ gmail.com de
    # ton nom d'utilisateur.

    nom d'utilisateur = "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" Rectangle"])

    # 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

    si mail> 0:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('020')
    del LedBorg
    print ('Mail!')
    autre:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write ('000')
    del LedBorg
    print ('Pas de courrier!')

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

    python gmailcheck.py

    Si vous avez des courriels 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:

    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. N'oubliez pas de retourner la ligne lorsque vous avez terminé les tests.

    Passez à la section suivante du didacticiel pour configurer votre script Gmail afin qu'il s'exécute selon un planning..

    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 que le voyant reste actif..

    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 encore 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 cron récurrent 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, à tout jamais..

    Toutes les 5 minutes sont un temps précieux 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 une variable dans vos moyennes boursières de script Python, le nombre de pollens, Twitter, s'il existe une API, vous pouvez le 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 expliquant comment Michael Tech de Mitch Tech traitait le flux Atom de Gmail, ce qui rend son analyse facile pour LedBorg. L'étude des modules d'apprentissage Python à Code Academy était un excellent moyen de comprendre la syntaxe et la structure de base d'un langage que je n'avais jamais utilisé auparavant.