Enregistreur de température Raspberry Pi MkII

Enregistreur de température Raspberry Pi MkII

À la suite de mon article Enregistrement de base de la température sur Internet avec Raspberry Pi, j’ai décidé de mettre à niveau mon appareil d’enregistrement. Par coïncidence, Arthur Amarra a lancé une campagne Kickstarter pour un HAT « retroScreen » qui fournissait un écran Nokia 5110, un en-tête i2c et quatre commutateurs. C’était exactement ce dont j’avais besoin.

Voici donc un enregistreur de température et de pression légèrement modifié basé sur un Raspberry Pi modèle A+ qui fournit :

  • Enregistrement de la température et de la pression
  • Écran LCD 84×48
  • 3 boutons
  • 5 modes d’affichage
  • Commutateur de rétroéclairage

Matériel

L’appareil se compose de :

Templogger Mk2

Capteur

Le capteur BMP180 est décrit dans mon article sur le capteur de pression barométrique numérique BMP180 I2C. Ce capteur est petit, bon marché et fournit la température et la pression. Le retroScreen fournit un en-tête compatible sur son PCB, c’est donc un choix naturel.

Clé Wi-Fi

Dans ma version précédente, j’utilisais un Edimax EW-7811UN Dongle WiFi mais cette fois j’ai décidé d’utiliser un produit de marque PiHut. C’était tout aussi facile à configurer à l’aide de mon guide Configuration du WiFi sur le Raspberry Pi.

Commutateurs

Auparavant, j’ai ajouté un seul commutateur pour permettre à l’appareil d’être mis hors tension en douceur. Le retroScreen offre de l’espace pour quatre commutateurs, j’ai donc soudé trois commutateurs tactiles à 2 broches. C’était une solution plus soignée et m’a donné plus d’options pour la saisie de l’utilisateur.

Les commutateurs connectent les broches GPIO à la terre, donc dans le script Python, ils sont tirés haut. Lorsque les commutateurs sont enfoncés, ils sont connectés à la terre et tirés vers le bas. Le script utilise des « rappels » pour prendre les mesures appropriées lorsqu’il détecte ces fronts descendants.

  • Le commutateur n°1 (GPIO 22) permet à l’utilisateur de parcourir les 5 modes d’affichage disponibles.
  • Le commutateur #2 (GPIO 27) permet à l’utilisateur de faire défiler un ensemble de valeurs de contraste afin que l’écran puisse être réglé avec précision.
  • Le commutateur n°3 (GPIO 17) indique au script de quitter et/ou d’arrêter le Pi. En définissant le drapeau AUTO_SHUTDOWN sur 1, le Pi peut également s’arrêter si nécessaire.

Thingspeak et l’Internet des objets

Pour enregistrer des données sur Internet, j’utilise le service Thingspeak. J’explique cela un peu plus en détail dans l’article précédent.

Pour utiliser mon exemple de script vous devrez créer un compte Thingspeak, créez un nouveau canal et obtenez la « Write API Key » à partir des paramètres de l’API. Voir la documentation officielle pour aider.

Préparation initiale

Voici la séquence d’étapes que j’ai utilisé pour construire l’appareil :

  • Création d’une nouvelle carte SD en utilisant le dernier Raspbian
  • WiFi configuré via le bureau LXDE
  • A couru « sudo apt-get update »
  • A couru « sudo apt-get upgrade »
  • SPI activé à l’aide de ce guide (y compris « py-spidev » et « python-dev »)
  • i2c activé à l’aide de ce guide (y compris « python-smbus » et « i2c-tools »)

Installation de retroScreen

L’écran Nokia avait besoin de quelques morceaux supplémentaires installés. Je n’avais pas besoin de tous les exemples de retroScreen pour fonctionner, j’ai donc utilisé une procédure d’installation simplifiée que celle décrite sur le site retroScreen. Évidemment, si vous souhaitez explorer le tableau plus en détail, vous pouvez suivre le processus complet et essayer les exemples.

git clone https://github.com/adafruit/Adafruit_Nokia_LCD
cd Adafruit_Nokia_LCD
sudo python setup.py install

Script d’enregistrement de la température

Assurez-vous que vous êtes dans votre répertoire personnel :

cd ~

Ensuite, téléchargez trois fichiers de mon référentiel BitBucket directement sur le Pi :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/bmp180.py
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/templogger2.py
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/templogger2_cfg.py

Le script utilise également deux fichiers de polices (de fonts2u.com) qui doivent être téléchargés :

wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/5x7_practical.ttf
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/F25_Bank_Printer_Bold.ttf

Noter : Sur la ligne de commande, vous pouvez utiliser les touches fléchées Haut/Bas pour parcourir les commandes précédentes, puis retaper simplement les noms de fichiers pour économiser beaucoup de frappe !

Modifiez le fichier de configuration et ajoutez votre clé API Thingspeak au paramètre THINGSPEAKKEY.

nano templogger2_cfg.py

Vous pouvez enregistrer et quitter l’éditeur nano en utilisant [CTRL-X], [Y] ensuite [ENTER].

Exécution du script

dans votre répertoire personnel lorsque vous exécutez la commande « ls », vous devriez avoir les fichiers suivants :

  • templogger2.py
  • templogger2_cfg.py
  • 5x7_practical.ttf
  • F25_Bank_Printer_Bold.ttf

Vous devriez également avoir un répertoire « Adafruit_Nokia_LCD ».

Vous pouvez exécuter l’enregistreur en utilisant

sudo python templogger2.py

Vous pouvez quitter en utilisant CTRL-C ou appuyer sur Switch #3 pour arrêter le script. Si AUTO_SHUTDOWN est défini sur 1, le Pi s’éteindra. Après 20 secondes, l’alimentation peut être coupée.

Exécuter automatiquement au démarrage

Afin d’éviter d’avoir à démarrer le script manuellement, vous pouvez le configurer pour qu’il se lance au démarrage du Pi. C’est à ce stade que j’ai eu des problèmes avec mes techniques habituelles de « démarrage automatique » et j’ai plutôt utilisé la méthode systemd pour démarrer les scripts Python.

J’ai suivi ce tutoriel : Comment exécuter automatiquement un script Python au démarrage en utilisant systemd

Mon fichier Unit, templogger2.service ressemble à ceci :

Description=Templogger2 Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/pi/templogger2.py > /home/pi/templogger2.log 2>&1
[Install]
WantedBy=multi-user.target

Modes d’affichage

Le bouton 1 permet de faire défiler 5 modes d’affichage différents. Ils ressemblent à ça :

Modes d'affichage de l'enregistreur de température Modes d'affichage de l'enregistreur de température Modes d'affichage de l'enregistreur de température Modes d'affichage de l'enregistreur de température Modes d'affichage de l'enregistreur de température

Résultats finaux

Une fois que l’appareil est opérationnel et que vous avez configuré votre Thingspeak Channel, vous pouvez produire des sorties comme celle-ci :

Graphiques de température et de pression

Les graphiques les mettent à jour en temps réel à mesure que de nouvelles données arrivent. La chaîne vous permet également de télécharger vos données aux formats CSV, XML et Json.

Avec un intervalle de 10 minutes qui vous donne 144 points de données toutes les 24 heures. Vous pouvez définir les graphiques pour afficher un nombre défini de points de données afin que vous puissiez ajuster cela pour vous donner une répartition appropriée des données.

Je n’ai utilisé que deux flux de données dans mon exemple (température et pression) mais Thingspeak en acceptera huit au total.

voici mon public Canal de l’enregistreur de température RPiSpy.

Polices alternatives

Afin d’afficher clairement le texte à l’écran, j’ai utilisé deux polices :

5×7 Pratique Régulier à partir de http://www.fonts2u.com/5×7-practical-regular.font
F25 Bank Printer Gras à partir de http://www.fonts2u.com/f25-bank-printer-bold.font

Vous pouvez utiliser d’autres polices tant que vous ajustez les sections appropriées de Python. Certains fonctionnent mieux que d’autres et il y a beaucoup de place pour expérimenter.

  • LbsAMP 2 Pièces Capteurs de Température et d'humidité vec 2 Cables Enregistreur Moniteur de Température et d'humidité Connecté pour Arduino et Raspberry Pi Remplacer SHT15 SHT11
    ✅Le kit de capteur numérique de température et d'humidité comprend 2 pcs capteur haute précision et 2 câbles de 21 cm. ✅ La tension de fonctionnement du capteurs de température et d'humidité numériques est de 3,3 ~ 5 V CC, la plage de mesure de la température est de 40 °C à 80 °C, la plage de mesure de l'humidité est de -40 °C à 80 °C, la précision de mesure est de ± 2 % HR et la résolution est de 16 bits. ✅ Le module du capteur d'humidité de température adopte une sortie de signal numérique de précision et des données série bidirectionnelles, il a une excellente stabilité et peut mesurer la température et l'humidité avec précision et fiabilité. ✅Le capteur a un trou de vis de 2,6 mm fixe, est petit et exquis, facile à installer, ce qui peut vous aider à définir et à gagner du temps dans le processus de configuration. ✅Applications : convient pour la connexion à toutes les cartes standard telles que Raspberry Pi et tous les autres microcontrôleurs, commandes automatiques, enregistreurs de données, stations météorologiques, déshumidificateurs, stockage de la chaîne du froid, équipement de test, biens de consommation, automobile, régulateur d'humidité, thermomètre intérieur, etc. et autres détections et contrôles d'humidité connexes.