Avez-vous déjà pensé à surveiller la qualité de l'air à l'intérieur ou à l'extérieur de votre maison: où habitez-vous et travaillez-vous? Ce projet, que nous avons baptisé
balenaSense , est une unité de
mesure de la température, de l'humidité, de la pression barométrique et de la qualité de l'air, ainsi qu'un tableau de bord auquel vous pouvez accéder de n'importe où pour consulter des statistiques récapitulatives et suivre les tendances.

Table des matières
Présentation
Pour contrôler la qualité de l'air et de la station météo, de nombreux fils et divers capteurs sont nécessaires, mais la situation est devenue plus facile après l'apparition de capteurs qui combinent toutes les lectures sur une bonne petite planche, ce qui est facile au départ.

Envisagez de surveiller la température, l'humidité, la pression barométrique et la qualité de l'air à l'aide d'un capteur tout-en-un qui se connecte directement au Raspberry Pi sans composants supplémentaires. Vous n'avez besoin d'aucune expérience en électronique, mais un fer à souder serait le bienvenu (bien qu'il soit également optionnel). Ce projet met en œuvre une base de données pour stocker les relevés historiques ainsi qu'une interface graphique pour visualiser les relevés actuels et voir immédiatement les tendances.


Équipement nécessaire
Voici ce que vous devez acheter pour ce projet. Selon que vous souhaitez ou non utiliser un fer à souder, nous choisissons une carte capteur: certaines fonctionnent tout de suite, d'autres nécessitent un peu de soudure.

Je ne veux pas souder
Si vous ne souhaitez pas souder, vous aurez besoin de:
Je veux souder - donnez-moi!
Si vous êtes heureux de prendre un fer à souder, vous aurez besoin de:
Autres capteurs
Si vous avez déjà une sorte de capteur, ce projet prend en charge
Sense HAT avec un bonus supplémentaire: un smiley sur la matrice LED (en fonction de la qualité de l'air, bien sûr)!

Bosch BME680 avec contremarche peut être commandé auprès de différents fournisseurs à des prix différents.
Remarque Dans l'article, nous utilisons Pimoroni: cette carte a l'avantage supplémentaire que les contacts sont rompus dans le bon ordre pour le Raspberry Pi GPIO. Lorsque vous utilisez d'autres cartes, vous devez vérifier que les broches d'alimentation, de masse et de bus I2C (SDA et SCL) correspondent, comme expliqué plus loin dans le manuel.
Logiciels
Nous avons ouvert le projet
balena-sense sur GitHub, qui contient tous les logiciels, la configuration et le code dont vous avez besoin pour un système fonctionnel. Nous allons déployer ce projet sur un compte
balenaCloud gratuit pour distribuer tous les logiciels du Raspberry Pi, ainsi que pour fournir un accès à distance. Par conséquent, vous aurez besoin de:
Assemblage d'équipement
Il y a peu de travail sur le front matériel de ce projet. Notre objectif est de connecter la carte capteur à la broche GPIO du Raspberry Pi.
Le BME680 communique avec le Raspberry Pi via un bus appelé I2C (eye-squared-see), qui est un bus série à deux fils. Ces deux fils sont appelés ligne de synchronisation (SCK) et ligne de données (SDA). En plus des deux fils, il est nécessaire d'alimenter le capteur (3,3V ou 3V3) et de le mettre à la terre.
Si vous choisissez l'option sans soudure de Pimoroni ou Sparkfun ou en utilisant le Sense HAT, connectez simplement les nouveaux composants brillants au Raspberry Pi et toutes les connexions seront faites pour vous: passez à l'étape suivante!
Si vous décidez de connecter le capteur directement au Raspberry Pi à l'aide de Pimoroni ou d'un autre riser, l'essentiel est d'assurer la bonne connexion des contacts décrits ci-dessus (SDA, SCK, 3V3 et GND).
Un site utile pour travailler avec GPIO sur Raspberry Pi est
pinout.xyz ; cela montre clairement que nous avons besoin des broches 1 (alimentation 3V3), 3 (SDA), 5 (SCL) et 9 (masse). Un GPIO à 40 broches est standard sur Pi 2 et versions ultérieures. Si vous utilisez une carte Pimoroni, les contacts sont dans le bon ordre pour connecter les cartes. Remarquez comment l'inscription sur le tableau correspond au schéma de brochage ci-dessus.

Mais si vous connectez le capteur de cette manière, la chaleur du processeur Raspberry Pi affectera les lectures. Pour collecter des lectures plus précises, vous devez retirer le capteur de la carte: nous le faisons
avec des câbles mère-à-mère (ou
Jumper Jerky )
DuPont , comme indiqué ci-dessous:

De même, si vous utilisez un autre capteur, où les diagrammes de brochage ne correspondent pas exactement, vous pouvez connecter ces cartes au Pi en utilisant la même méthode. L'essentiel est de garantir la conformité avec 3V3, SDA, SCL et GND. Si la carte a des contacts pour SDI, SDO, CS - vous pouvez les ignorer, car ils sont utilisés pour une interface SPI alternative, que nous n'utilisons pas dans ce projet.
Sur les photos ci-dessus, nous avons le Raspberry Pi 3A +, mais Pi Zero est également une solution moins chère.
Configurer Raspberry Pi
Nous allons flasher la carte SD avec le système d'exploitation balenaOS, l'attacher au cloud balenaCloud, y ajouter notre appareil et configurer le projet afin qu'il puisse être facilement mis à jour plus tard.
Vous devez d'abord configurer un compte balenaCloud. Cela signifie enregistrer, ajouter une application et ajouter un appareil.
Étape 1. Inscrivez-vous à balenaCloud
Si vous avez déjà un compte GitHub ou Google, vous pouvez l'utiliser pour vous connecter sans passer par le processus d'
inscription .
Étape 2. Création de l'application
Ajoutez l'application en sélectionnant le type d'appareil correct et
Starter
comme type d'application, puis cliquez sur
Create New Application
. Ce type prend en charge tous les microservices et est gratuit jusqu'à dix appareils.
Ensuite, vous serez redirigé vers le tableau de bord de l'application nouvellement créée, où vous pourrez passer à l'étape suivante et ajouter l'appareil. Vous pouvez donner à l'application un nom arbitraire, mais vous en aurez besoin plus tard dans le manuel lorsque nous écrirons le code.
Étape 3. Ajoutez l'appareil et démarrez le système d'exploitation
Après avoir créé l'application, vous pouvez ajouter un appareil à cette application en cliquant sur le bouton vert
Ajouter un appareil . Lors de l'ajout d'un périphérique, spécifiez le type de périphérique correct. Si vous vous connectez à un réseau sans fil, vous pouvez définir votre SSID WiFI et votre phrase secrète.
Remarque: Raspberry Pi 3 est indiqué dans l'animation, n'oubliez pas de sélectionner le bon type de votre appareil!

Ce processus crée une image personnalisée pour l'application et le type de périphérique, qui inclut les paramètres réseau, le cas échéant.
Remarque: pour commencer, il est préférable de choisir une image de développement pour effectuer certains tests et dépanner. Pour plus d'informations sur les différences entre les images de développement et de production, voir
ici . Si vous êtes sûr de pouvoir commencer à déployer une image de production dès maintenant - veuillez.
Étape 4. Enregistrez la carte SD et le périphérique de démarrage
Lorsque l'image du système d'exploitation est chargée, il est temps de flasher la carte SD. Vous pouvez utiliser
balenaEtcher pour cela.

Une fois le processus terminé, insérez la carte SD dans le Raspberry Pi et connectez la source d'alimentation.

Lorsque l'appareil démarre pour la première fois, il se connecte au tableau de bord balenaCloud, après quoi vous pouvez le voir dans la liste en ligne et passer à l'étape suivante.
Dépannage: l' appareil devrait apparaître sur le panneau dans quelques minutes. S'il n'apparaît pas, quelque chose s'est mal passé. La documentation contient un
guide de dépannage complet avec de nombreuses informations sur les raisons de ce
problème . Si la documentation n'a pas aidé, veuillez contacter les
forums .
Déploiement de logiciels
Lorsque votre Raspberry Pi est préparé, téléchargé et connecté à balenaCloud, vous êtes prêt à installer le code d'application sur l'appareil.
Installer les outils CLI de Balena sur un poste de travail
BalenaCloud vous permet de transférer à distance le logiciel / code d'application vers le Raspberry Pi et d'autres appareils. Pour rendre cela possible, votre station de travail (pas le Raspberry Pi) doit répondre à certaines exigences logicielles minimales.
Remarque: pour déployer ce projet avec succès, vous n'avez pas besoin d'exécuter de commandes sur le périphérique lui-même, via SSH ou à partir du tableau de bord balenaCloud. Tout se fait à distance!
Si vous avez déjà (ou vous pouvez configurer)
npm sur votre ordinateur, c'est le moyen le plus rapide d'exécuter les outils CLI. Il existe également des
binaires pour Windows, macOS et Linux .
Remarque: si vous avez déjà installé ces outils pour nos autres projets, vous pouvez ignorer cette partie et passer directement à l'étape suivante.
La documentation des outils CLI décrit l'installation et la configuration du package npm, ainsi que les binaires.
Lorsque la CLI est installée et en cours d'exécution, la première étape consiste à se connecter à balenaCloud en exécutant la commande de
balena login
:


Lorsqu'une CLI fonctionnelle est enregistrée dans le compte, vous êtes prêt à installer des programmes sur le Raspberry Pi.
Téléchargement d'un projet depuis GitHub
L'étape suivante consiste à
télécharger le code de ce projet depuis GitHub .
Le bouton bleu chargera le fichier zip du projet, mais si vous êtes déjà familier avec Git, vous pouvez utiliser
git clone
manière habituelle.
Installer sur Raspberry Pi
Étant donné que la CLI et le dernier code sont installés, vous pouvez exécuter ce code sur balenaCloud avec une seule commande. Là, l'image Docker est collectée et configurée, qui s'exécutera sur votre appareil.
Dans le répertoire du projet après l'avoir décompressé, exécutez la commande
balena push <appName>
, où appName est le nom de l'application spécifié au début du manuel. Par exemple,
balena push balenaSense
.
Si tout est fait correctement, après quelques minutes, l'écran d'informations de votre appareil sur le panneau de commande devrait afficher les services en cours d'exécution, un pour chacun des composants logiciels, quelque chose comme ceci:

La première fois que le téléchargement peut prendre plusieurs minutes (selon la vitesse de votre connexion Internet), mais seules les modifications dans le conteneur sont téléchargées, donc tout se passe beaucoup plus rapidement.
Remarque: lorsque l'application démarre pour la première fois (et que vous utilisez BME680, et non Sense HAT), le capteur effectue un «rodage» pendant environ cinq minutes. Pendant cette période, les lectures
ne seront pas prises et insérées dans la base de données. L'application enregistrera le compte à rebours, qui s'affiche dans le panneau balenaCloud:

Lorsque le compte atteint zéro, vous verrez le message 'Boucle de démarrage ...'. Après cela, les lectures seront prises et insérées dans la base de données toutes les 10 secondes.
Afficher le tableau de bord
J'espère que vous avez flashé l'appareil, connecté au réseau et démarré sans aucun problème. L'un des grands avantages de l'utilisation d'un compte balenaCloud gratuit est la
Public Device URL
.

Activez ce commutateur et cliquez sur l'icône de flèche bleue pour accéder au tableau de bord. Vous pouvez partager ce lien ou le mettre en signet sur votre téléphone ou un autre appareil. Pendant que l'appareil balenaSense est connecté et fonctionne, vous pouvez consulter le tableau de bord de n'importe où!

Si vous ne souhaitez pas activer l'accès public, vous pouvez toujours afficher le tableau de bord à partir de votre propre réseau local par adresse IP, comme le montre la capture d'écran ci-dessus. Le vôtre sera différent, mais entrez simplement
http://<ip->
dans le navigateur, et vous aurez toujours accès au tableau de bord si vous êtes sur le même réseau que l'appareil. Par exemple, pour accéder à mon appareil,
http://10.1.231.36
.
Si vous souhaitez vous connecter à Grafana et jouer avec les paramètres, les informations d'identification par défaut sont
admin
et
admin
.
Comment ça marche?
Ce projet comprend trois composantes principales, trois services. Ces noms figurent sur le tableau de bord de balenaCloud:
- InfluxDB - une base de données utilisée pour stocker les lectures des capteurs
- Capteur - bibliothèque Python et code pour accéder au capteur, prendre des lectures et les enregistrer dans la base de données
- Grafana - utilisé pour créer un tableau de bord avec des graphiques et des rapports
Le capteur BME680 de Bosch détecte la température, l'humidité, la pression et la résistance aux gaz. Les capteurs de température, d'humidité et de pression fonctionnent dès la sortie de l'emballage, mais les relevés de résistance aux gaz seuls ne sont pas très utiles. Ce sont des indicateurs de changements dans la composition de l'air. Lorsque le capteur démarre, il définit la base, puis surveille les modifications. Les indicateurs indicatifs de la qualité de l'air sont donnés en pourcentage et tiennent compte de l'influence de l'humidité et de la résistance aux gaz.
Si vous utilisez le Sense HAT, où il n'y a pas de capteur de résistance aux gaz, nous approchons les lectures de la qualité de l'air en fonction des valeurs de température et d'humidité cibles.
Et ensuite?
J'espère que vous avez maintenant complètement lancé le projet, accédé au tableau de bord, pris des lectures et commencé à remplir votre base de données. Mentionnez des choses plus importantes.
Changer le mot de passe
Si vous ouvrez l'appareil pour un accès public, il est recommandé de changer le mot de passe de Grafana.

Nous avons configuré le système avec le nom d'utilisateur et le mot de passe par défaut
admin
admin
. Pour les modifier, connectez-vous à Grafana en utilisant le bouton dans le coin inférieur gauche du panneau. Vous serez invité à modifier le mot de passe lors de votre première connexion.
Personnalisation
Le programme Grafana pour le tableau de bord et les rapports contient de nombreux paramètres et paramètres de configuration. Nous avons créé un panneau de base qui présente un tableau et un graphique pour chacune des quatre options de mesure.

Vous pouvez personnaliser chaque panneau Grafana en survolant le titre et en passant à l'édition. Je recommande de jouer avec les paramètres - les modifications dans le tableau de bord ne sont pas enregistrées automatiquement, donc si vous faites une erreur, rechargez simplement la page, et tout reviendra à sa forme d'origine. Si vous souhaitez enregistrer les modifications, cliquez sur
Enregistrer en haut du panneau de configuration et tous les paramètres seront enregistrés sur votre appareil.

Vous pouvez également configurer les capteurs. Par exemple, sur le diagramme du manomètre, nous avons configuré plusieurs plages de base et valeurs de texte au lieu de chiffres. Tout cela change à votre goût!
Logement
Ces capteurs sont idéaux pour être placés dans une
cabine météorologique , qui protège les capteurs de la lumière du soleil et de la chaleur rayonnée. Si vous contrôlez l'environnement dans la pièce, ce n'est pas si important, mais si le capteur est installé à l'extérieur, son positionnement et sa protection sont importants pour obtenir des lectures précises.
Les cabines météo
sont en vente , mais elles peuvent être assez chères, alors pensez aux
options de bricolage .
Thingiverse possède plusieurs
bâtiments BME680 et
cabines météo .
Dernières pensées
Merci d'avoir lu! Si vous décidez de construire votre propre station météorologique avec contrôle de la qualité de l'air - dites-nous comment tout s'est passé, quels problèmes sont survenus. Des idées pour le développement de notre projet peuvent être exprimées
sur les forums .