Table des matières:
- Fournitures
- Étape 1: Logiciel requis
- Étape 2: Apportez les données du capteur au Raspberry Pi à l'aide de Simulink
- Étape 3: Affichage des données du capteur sur la matrice LED 8x8
- Étape 4: Concevez un algorithme dans Simulink pour décider si l'humidité intérieure est « bonne », « mauvaise » ou « laide »
- Étape 5: Enregistrez les données de climat intérieur et les données catégorisées sur le cloud
- Étape 6: Conclusion
Vidéo: Système de surveillance du climat intérieur basé sur Raspberry Pi : 6 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
Lisez ce blog et créez votre propre système afin de recevoir des alertes lorsque votre pièce est trop sèche ou humide.
Qu'est-ce qu'un système de surveillance du climat intérieur et pourquoi en avons-nous besoin ?
Les systèmes de surveillance du climat intérieur offrent un aperçu rapide des principales statistiques liées au climat, telles que la température et l'humidité relative. Pouvoir voir ces statistiques et recevoir des alertes sur votre téléphone lorsque la pièce est trop humide ou trop sèche peut être très utile. À l'aide des alertes, vous pouvez prendre rapidement les mesures nécessaires pour atteindre un maximum de confort dans la pièce en allumant le chauffage ou en ouvrant les fenêtres. Dans ce projet, nous verrons comment utiliser Simulink pour:
1) importer les statistiques climatiques (température, humidité relative et pression) du Sense HAT dans le Raspberry Pi
2) afficher les données mesurées sur la matrice LED 8x8 du Sense HAT
3) concevoir un algorithme pour décider si l'humidité intérieure est « bonne », « mauvaise » ou « laid ».
4) enregistrez les données sur le cloud et envoyez une alerte si les données sont catégorisées « Laides » (trop humides ou sèches).
Fournitures
Raspberry Pi 3 modèle B
CHAPEAU Raspberry Pi Sense
Étape 1: Logiciel requis
Vous avez besoin de MATLAB, Simulink et de certains modules complémentaires pour suivre et créer votre propre système de surveillance du climat intérieur.
Ouvrez MATLAB avec un accès administrateur (cliquez avec le bouton droit sur l'icône MATLAB et sélectionnez Exécuter en tant qu'administrateur). Sélectionnez Add-Ons dans la barre d'outils MATLAB et cliquez sur Get Add-Ons.
Recherchez ici les packages de support avec leurs noms répertoriés ci-dessous et « Ajoutez-les ».
une. Package de support MATLAB pour le matériel Raspberry Pi: Acquérir des entrées et envoyer des sorties aux cartes Raspberry Pi et aux appareils connectés
b. Package de support Simulink pour le matériel Raspberry Pi: exécutez des modèles Simulink sur des cartes Raspberry Pi
c. RPi_Indoor_Climate_Monitoring_System: exemples de modèles nécessaires pour ce projet
Remarque - Pendant l'installation, suivez les instructions à l'écran pour configurer votre Pi pour qu'il fonctionne avec MATLAB et Simulink.
Étape 2: Apportez les données du capteur au Raspberry Pi à l'aide de Simulink
Pour ceux qui ne sont pas familiers avec Simulink, il s'agit d'un environnement de programmation graphique utilisé pour modéliser et simuler des systèmes dynamiques. Une fois que vous avez conçu votre algorithme dans Simulink, vous pouvez générer automatiquement du code et l'intégrer sur un Raspberry Pi ou un autre matériel.
Tapez ce qui suit dans la fenêtre de commande MATLAB pour ouvrir le premier exemple de modèle. Nous utiliserons ce modèle pour apporter des données de température, de pression et d'humidité relative dans le Raspberry Pi.
>rpiSenseHatBringSensorData
Les blocs Capteur de pression LPS25H et Capteur d'humidité HTS221 proviennent de la bibliothèque Sense HAT sous Simulink Support Package pour les bibliothèques matérielles Raspberry Pi.
Les blocs de portée proviennent de la bibliothèque Sinks sous les bibliothèques Simulink. Pour vous assurer que votre modèle est correctement configuré, cliquez sur l'icône d'engrenage dans votre modèle Simulink. Accédez à Implémentation matérielle > Paramètres de la carte matérielle > Ressources matérielles cibles.
Remarque – Vous n'avez pas besoin de configurer si vous avez suivi les instructions de configuration lors de l'installation du Simulink Support Package pour Raspberry Pi. L'adresse de l'appareil est automatiquement renseignée sur celle de votre Pi.
Assurez-vous que l'adresse de l'appareil ici correspond à l'adresse IP que vous entendez lorsque votre Pi démarre. Vous devrez peut-être réalimenter votre Pi avec un écouteur connecté à la prise pour entendre l'adresse de l'appareil.
Cliquez sur OK et appuyez sur le bouton Exécuter comme indiqué ci-dessous. Assurez-vous que votre Pi est soit physiquement connecté au PC via un câble USB, soit sur le même réseau Wi-Fi que votre PC.
Lorsque vous appuyez sur le bouton Exécuter en mode Externe, Simulink génère automatiquement le code C équivalent à votre modèle et télécharge un exécutable sur le Raspberry Pi. Les deux blocs de portée sont configurés pour s'ouvrir une fois que le modèle commence à s'exécuter. Lorsque Simulink a terminé de déployer le code sur le Raspberry Pi, vous verrez les données de pression, de température et d'humidité relative sur les oscilloscopes, comme indiqué ci-dessous.
Remarque - Le code s'exécute sur le Raspberry Pi et vous visualisez les signaux réels via les blocs d'oscilloscope Simulink, comme vous le feriez si vous aviez un oscilloscope connecté au matériel lui-même. La valeur de température des deux capteurs est légèrement différente l'une de l'autre. N'hésitez pas à choisir celle qui reflète plus fidèlement la température réelle de votre pièce et à l'utiliser dans les sections suivantes. Dans tous les tests avec le Sense HAT que nous avons eus, les valeurs de température du capteur d'humidité HTS221 étaient plus proches de la température réelle dans la pièce. Avec cela, nous avons vu les bases de la façon d'importer des données de capteur du Sense HAT dans le Raspberry Pi.
Étape 3: Affichage des données du capteur sur la matrice LED 8x8
Dans cette section, nous verrons comment la partie affichage visuel de ce projet a été ajoutée au dernier modèle. Les éléments Sense HAT qui sont utilisés dans cette section sont le capteur d'humidité (pour obtenir l'humidité relative et la température), le capteur de pression, la matrice LED et le joystick. Le joystick est utilisé pour sélectionner le capteur que nous voulons afficher.
Pour ouvrir l'exemple de modèle suivant, tapez ce qui suit dans la fenêtre de commande MATLAB.
> rpiSenseHatDisplay
Le bloc Joystick provient de la bibliothèque Sense HAT. Cela nous aide à importer les données du joystick dans le Raspberry Pi, tout comme les blocs de capteurs de pression et d'humidité l'ont fait dans l'exemple précédent. Pour l'instant, nous utilisons le bloc Test Comfort pour afficher « bon » (lorsque la valeur du bloc est 1) sur la matrice LED. Il affichera « mauvais » lorsque la valeur du bloc est 2 ou « moche » lorsque la valeur est soit 3, soit 4. Dans la section suivante, nous verrons l'algorithme réel qui décide si l'humidité intérieure est bonne, mauvaise ou moche. Explorons le bloc Sélecteur en double-cliquant dessus. Les blocs fonctionnels MATLAB sont utilisés pour intégrer le code MATLAB dans votre modèle Simulink. Dans ce cas, nous apportons SelectorFcn ci-dessous.
fonction [valeur, état] = SelectorFcn (JoyStickIn, pression, humidité, température, ihval)
JoyStickCount persistant
si est vide (JoyStickCount)
JoyStickCount = 1;
finir
si JoyStickIn == 1
JoyStickCount = JoyStickCount + 1;
si JoyStickCount == 6
JoyStickCount = 1;
finir
finir
changer JoyStickCount
cas 1 % Affichage de la température en C
valeur = temp;
État = 1;
cas 2 % Affichage de la pression en atm
valeur = pression/1013,25;
État = 2;
cas 3 % Affichage humidité relative en %
valeur = humidité;
État = 3;
cas 4 % Affichage de la température en F
valeur = température*(9/5)+32;
État = 4;
cas 5 % Affichage Bon/Mauvais/Moche
valeur = ihval;
État = 5;
sinon % Ne pas afficher/Afficher 0
valeur = 0;
État = 6;
finir
Les instructions Switch-case sont généralement utilisées comme mécanisme de contrôle de sélection. Dans notre cas, nous voulons que l'entrée du joystick soit le contrôle de sélection et sélectionne les données suivantes à afficher à chaque fois que le bouton du joystick est enfoncé. Pour cela, nous avons mis en place une boucle if qui incrémente la variable JoyStickCount à chaque pression de bouton (la valeur JoyStickIn est de 1 s'il y a une pression de bouton). Dans la même boucle, pour nous assurer que nous ne faisons que passer entre les cinq options données ci-dessus, nous avons ajouté une autre condition qui réinitialise la valeur de la variable à 1. En utilisant cela, nous sélectionnons quelle valeur sera affichée sur la matrice LED. Le cas 1 sera la valeur par défaut car nous définissons JoyStickCount pour commencer à 1, ce qui signifie que la matrice LED affichera la température en Celsius. La variable State est utilisée par le bloc de données Scroll pour comprendre quelle valeur de capteur est actuellement affichée et quelle unité doit être affichée. Maintenant que nous savons comment sélectionner le bon capteur à afficher, voyons comment fonctionne l'affichage réel.
Affichage des caractères et des nombres
Pour afficher sur la matrice Sense HAT LED, nous avons créé des matrices 8x8 pour:
1) tous les nombres (0-9)
2) toutes les unités (°C, A, % et °F)
3) virgule décimale
4) alphabets des mots bon, mauvais et laid.
Ces matrices 8x8 ont été utilisées comme entrée du bloc de matrice LED RGB 8x8. Ce bloc allume les LED correspondant aux éléments de la matrice qui ont une valeur de 1 comme indiqué ci-dessous.
Faire défiler le texte
Le bloc de données Scroll dans notre modèle fait défiler des chaînes pouvant contenir jusqu'à 6 caractères. La valeur 6 a été choisie car il s'agit de la chaîne la plus longue que nous allons sortir dans ce projet, par exemple 23,8 °C ou 99,1 °F. Remarque, ici °C est considéré comme un caractère. La même idée peut également être étendue pour faire défiler des chaînes d'autres longueurs.
Voici un-g.webp
www.element14.com/community/videos/29400/l/gif
Pour afficher une chaîne de 6 caractères chacun sur la matrice 8x8, nous avons besoin d'une image de taille 8x48 au total. Pour afficher une chaîne de 4 caractères maximum, nous devrons créer une matrice 8x32. Voyons maintenant toute l'inaction en appuyant sur le bouton Exécuter. L'affichage par défaut sur la matrice LED est la valeur de température en °C. Le bloc Scope affichera l'état et la valeur du bloc Selector. Appuyez sur le bouton du joystick du Sense HAT et maintenez-le enfoncé pendant une seconde pour vérifier que la valeur passe à la prochaine sortie du capteur et répétez ce processus jusqu'à ce qu'il atteigne la valeur d'état de 5. Pour observer l'algorithme basculer dans tous les cas de la catégorisation de l'humidité intérieure, modifiez la valeur du bloc Test Comfort sur n'importe quel nombre compris entre 1 et 4. Remarquez comment la modification de la valeur d'un bloc sur le modèle Simulink modifie immédiatement la façon dont le code se comporte sur le matériel. Cela peut être utile dans les situations où l'on souhaite modifier le comportement du code à partir d'un emplacement distant. Avec cela, nous avons vu les éléments clés derrière l'aspect visualisation du système de surveillance du climat. Dans la section suivante, nous apprendrons comment compléter notre système de surveillance du climat intérieur.
Étape 4: Concevez un algorithme dans Simulink pour décider si l'humidité intérieure est « bonne », « mauvaise » ou « laide »
Pour comprendre si votre pièce est trop humide/sèche ou pour savoir quel taux d'humidité intérieure est considéré comme confortable, il existe plusieurs méthodes. À l'aide de cet article, nous avons établi une courbe de surface pour relier l'humidité relative intérieure et les températures extérieures, comme indiqué ci-dessus.
Toute valeur d'humidité relative dans cette zone signifie que votre pièce est dans un cadre confortable. Par exemple, si la température extérieure est de -30 °F, toute valeur d'humidité relative inférieure à 15 % est acceptable. De même, si la température extérieure est de 60 °F, toute humidité relative inférieure à 50 % est acceptable. Pour classer l'humidité intérieure en confort maximum (bon), confort moyen (mauvais) ou trop humide/sec (laide), vous avez besoin de la température extérieure et de l'humidité relative. Nous avons vu comment faire entrer l'humidité relative dans le Raspberry Pi. Concentrons-nous donc sur la température extérieure. Tapez ce qui suit dans la fenêtre de commande MATLAB pour ouvrir le modèle:
> rpiOutdoorWeatherData
Le bloc WeatherData est utilisé pour entrer la température extérieure de votre ville (en K) en utilisant https://openweathermap.org/. Pour configurer ce bloc, vous avez besoin d'une clé API du site Web. Après avoir créé votre compte gratuit sur ce site, rendez-vous sur la page de votre compte. L'onglet Clés API ci-dessous vous donne la clé.
Le bloc WeatherData nécessite la saisie du nom de votre ville dans un format spécifique. Visitez cette page et saisissez le nom de votre ville, puis le symbole de la virgule suivi de 2 lettres pour indiquer le pays. Exemples – Natick, États-Unis et Chennai, IN. Si la recherche renvoie un résultat pour votre ville, utilisez-le dans le bloc WeatherData dans ce format spécifique. En cas d'indisponibilité de votre ville, utilisez une ville voisine dont les conditions météorologiques sont plus proches des vôtres. Maintenant, double-cliquez sur le bloc WeatherData et saisissez le nom de votre ville et votre clé API à partir du site Web.
Appuyez sur Exécuter sur ce modèle Simulink pour vérifier que le bloc peut faire entrer la température de votre ville dans le Raspberry Pi. Voyons maintenant l'algorithme qui décide si l'humidité intérieure est bonne, mauvaise ou moche. Tapez ce qui suit dans la fenêtre de commande MATLAB pour ouvrir l'exemple suivant:
>rpisenseHatIHval
Vous avez peut-être remarqué que le bloc Test Comfort du modèle précédent est manquant et qu'un nouveau bloc appelé FindRoom Comfort fournit le bloc ihval to Selector. Double-cliquez sur ce bloc pour l'ouvrir et l'explorer.
Nous utilisons le bloc WeatherData pour entrer la température extérieure. Le sous-système des limites d'humidité représente le graphique d'humidité relative par rapport à la température extérieure que nous avons vu ci-dessus. En fonction de la température extérieure, il affichera la valeur limite d'humidité maximale. Ouvrons le bloc fonction DecideIH MATLAB en double-cliquant dessus.
Si la valeur d'humidité relative dépasse la limite d'humidité maximale, le signe sera alors positif en fonction de la façon dont nous soustrayons les données, ce qui implique que la pièce est trop humide. Nous affichons un 3 (moche) pour ce scénario. La raison derrière l'utilisation de nombres au lieu de chaînes est qu'il est facile d'afficher sur des graphiques et de créer des alertes. Les autres classifications de la fonction MATLAB sont basées sur des critères arbitraires que nous avons proposés. Lorsque la différence est inférieure à 10, il est classé confort maximum et lorsqu'il est inférieur à 20, il est confort moyen et au-dessus, c'est trop sec. N'hésitez pas à utiliser ce modèle et à vérifier le niveau de confort de votre pièce.
Étape 5: Enregistrez les données de climat intérieur et les données catégorisées sur le cloud
Dans cette section suivante, nous verrons comment enregistrer des données sur le cloud. Pour ouvrir cet exemple, tapez ce qui suit dans la fenêtre de commande MATLAB.
> rpiSenseHatLogData
Dans ce modèle, la partie d'affichage de l'exemple de modèle précédent est volontairement supprimée car nous n'avons pas besoin que le système de surveillance affiche les statistiques lors de l'enregistrement des données et de l'envoi d'alertes. Nous utilisons ThingSpeak, une plate-forme IoT open source gratuite qui inclut l'analyse MATLAB, pour l'aspect d'enregistrement des données. Nous avons choisi ThingSpeak car il existe des moyens directs de programmer Raspberry Pi et d'autres cartes matérielles à faible coût pour envoyer des données à ThingSpeak à l'aide de Simulink. Le bloc d'écriture ThingSpeak provient du package de support Simulink pour la bibliothèque matérielle Raspberry Pi et peut être configuré à l'aide de la clé d'API d'écriture de votre canal ThingSpeak. Des instructions détaillées sur la façon de créer le canal sont fournies ci-dessous. Pour enregistrer en permanence des données sur le cloud, vous souhaitez que votre Pi fonctionne indépendamment de Simulink. Pour cela, vous pouvez appuyer sur le bouton « Déployer sur le matériel » dans votre modèle Simulink.
Créez votre propre chaîne ThingSpeak
Ceux qui n'ont pas de compte peuvent s'inscrire sur le site Web de ThingSpeak. Si vous avez un compte MathWorks, vous avez automatiquement un compte ThingSpeak.
- Une fois connecté, vous pouvez créer une chaîne en allant dans Chaînes > Mes chaînes et en cliquant sur Nouvelle chaîne.
- Tout ce dont vous avez besoin est un nom pour le canal et des noms pour les champs que vous allez enregistrer comme indiqué ci-dessous.
- L'option Afficher l'emplacement du canal a besoin de la latitude et de la longitude de votre ville comme entrée et peut afficher l'emplacement à l'intérieur du canal sur une carte. (Les exemples de valeurs utilisés ici sont pour Natick, MA)
- Appuyez ensuite sur Enregistrer la chaîne pour terminer la création de votre chaîne.
4a. Alerte si les données sont catégorisées « laides »
Pour compléter notre système de surveillance du climat intérieur, nous devons voir comment recevoir des alertes basées sur les données du cloud. Ceci est essentiel car, sans cela, vous ne pourrez pas prendre les mesures nécessaires pour modifier le niveau de confort de la pièce. Dans cette section, nous verrons comment recevoir une notification sur votre téléphone chaque fois que les données du cloud indiquent que la pièce est trop humide ou sèche. Nous y parviendrons en utilisant deux services: IFTTT Webhooks et ThingSpeak TimeControl. IFTTT (signifie If this, then that) est un service en ligne qui peut gérer des événements et déclencher des actions en fonction des événements.
Étapes pour configurer les Webhooks IFTTT
Remarque: essayez-les sur un ordinateur pour de meilleurs résultats.
1) Créez un compte sur ifttt.com (si vous n'en avez pas) et créez une Nouvelle Applet depuis la page Mes Applets.
2) Cliquez sur le bouton bleu « ceci » pour sélectionner votre service de déclenchement.
3) Recherchez et choisissez Webhooks comme service.
4) Sélectionnez Recevoir une demande Web et attribuez un nom à l'événement.
5) Sélectionnez Créer un déclencheur.
6) Sélectionnez « ça » sur la page suivante et recherchez les notifications.
7) Sélectionnez envoyer une notification depuis l'application IFTTT.
8) Saisissez le nom de l'événement que vous avez créé à l'étape 2 de IFTTT et sélectionnez Créer une action.
9) Continuez jusqu'à ce que vous atteigniez la dernière étape, passez en revue et appuyez sur Terminer.
10) Accédez à https://ifttt.com/maker_webhooks et cliquez sur le bouton Paramètres en haut de la page.
11) Accédez à l'URL dans la section Informations sur le compte.
12) Saisissez le nom de votre événement ici et cliquez sur « Test It ».
13) Copiez l'URL sur la dernière ligne pour une utilisation future (avec la clé).
Étapes pour configurer ThingSpeak TimeControl
1) Sélectionnez Applications> Analyse MATLAB
2) Cliquez sur Nouveau sur la page suivante et choisissez Déclencher l'e-mail d'IFTTT et cliquez sur Créer.
Les éléments importants ici dans le code du modèle sont:
ID de canal – Entrez votre canal ThingSpeak qui contient les informations « valeur d'humidité intérieure ».
IFTTTURL - Entrez l'URL copiée de la section précédente Étape 13.
readAPIKey – Entrez la clé de la section ThingSpeak Channel. Action – celle qui agit sur la dernière valeur. Remplacez-le par le suivant pour déclencher des alertes.
3) Sur le site Web de ThingSpeak, cliquez sur Applications > TimeControl.
4) Sélectionnez Récurrent et choisissez une fréquence horaire.
5) Cliquez sur Enregistrer TimeControl.
Désormais, MATLAB Analysis s'exécute automatiquement toutes les demi-heures et envoie un déclencheur au service IFTTT Webhooks si la valeur est supérieure ou égale à 3. Ensuite, l'application téléphonique IFTTT alertera l'utilisateur avec une notification comme indiqué au début de cette section.
Étape 6: Conclusion
Avec cela, nous avons vu tous les aspects importants de la façon de construire votre propre système de surveillance du climat. Dans ce projet, nous avons vu comment Simulink peut être utilisé pour –
- programmez un Raspberry Pi pour importer les données de Sense HAT. Highlight - Visualisez les données dans Simulink car le code est toujours en cours d'exécution sur le Raspberry Pi.
- construire l'affichage visuel du système de surveillance du climat intérieur. Highlight - Modifiez le comportement de votre code sur le matériel depuis Simulink.
- concevoir l'algorithme du système de surveillance du climat intérieur.
- enregistrez les données du Raspberry Pi sur le cloud et créez des alertes à partir des données enregistrées.
Quels changements apporteriez-vous à ce système de surveillance du climat intérieur ? Merci de partager vos suggestions via les commentaires.
Conseillé:
Système de surveillance visuelle basé sur LoRa pour l'agriculture Iot - Concevoir une application frontale à l'aide de Firebase et d'Angular : 10 étapes
Système de surveillance visuelle basé sur LoRa pour l'agriculture Iot | Concevoir une application frontale à l'aide de Firebase & Angular : Dans le chapitre précédent, nous avons expliqué comment les capteurs fonctionnent avec le module lora pour remplir la base de données en temps réel de firebase, et nous avons vu le diagramme de très haut niveau sur le fonctionnement de l'ensemble de notre projet. Dans ce chapitre, nous allons parler de la façon dont nous pouvons
Système de surveillance et de contrôle du climat intérieur Raspberry Pi : 6 étapes
Système de surveillance et de contrôle du climat intérieur Raspberry Pi : les gens veulent être à l'aise à l'intérieur de leur maison. Comme le climat de notre région peut ne pas nous convenir, nous utilisons de nombreux appareils pour maintenir un environnement intérieur sain : chauffage, rafraîchisseur d'air, humidificateur, déshumidificateur, purificateur, etc. De nos jours, il est comm
Système intelligent de surveillance de la météo et de la vitesse du vent basé sur l'IOT : 8 étapes
Système intelligent de surveillance de la météo et de la vitesse du vent basé sur l'IOT : développé par - Nikhil Chudasma, Dhanashri Mudliar et Ashita RajIntroductionL'importance de la surveillance météorologique existe de nombreuses manières. Les paramètres météorologiques doivent être surveillés pour soutenir le développement de l'agriculture, de la serre
Système de surveillance et de contrôle de l'humidité du sol basé sur l'IoT à l'aide de NodeMCU : 6 étapes
Système de surveillance et de contrôle de l'humidité du sol basé sur l'IoT à l'aide de NodeMCU : dans ce didacticiel, nous allons mettre en œuvre un système de surveillance et de contrôle de l'humidité du sol basé sur l'IoT à l'aide du module WiFi ESP8266, c'est-à-dire NodeMCU. Composants requis pour ce projet : Module WiFi ESP8266 - Amazon (334/- Module relais INR – Amazon (130/- INR
EAL - Climat intérieur intégré : 5 étapes
EAL - Climat intérieur intégré : Pour notre projet d'école, nous avons été chargés d'intégrer un arduino dans un système automatisé. Nous avons choisi de fabriquer un capteur de climat intérieur, qui peut détecter la température, l'humidité et le niveau de décibels à l'intérieur. Nous avons percé quelques trous dans l'armoire