Table des matières:

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 : 6 étapes

Vidéo: Système de surveillance et de contrôle du climat intérieur Raspberry Pi : 6 étapes

Vidéo: Système de surveillance et de contrôle du climat intérieur Raspberry Pi : 6 étapes
Vidéo: Tutoriel: Contrôle des GPIO du Raspberry Pi à partir d'une page web 2024, Novembre
Anonim
Système de surveillance et de contrôle du climat intérieur Raspberry Pi
Système de surveillance et de contrôle du climat intérieur Raspberry Pi
Système de surveillance et de contrôle du climat intérieur Raspberry Pi
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 courant de trouver certains appareils équipés d'auto- mode pour sentir l'environnement et se contrôler. Toutefois:

  • Beaucoup d'entre eux sont trop chers / ne valent pas leur argent.
  • Leurs circuits électriques sont plus faciles à casser et plus difficiles à remplacer que les pièces mécaniques conventionnelles
  • Les appareils doivent être gérés par l'application du fabricant. Il est courant d'avoir quelques appareils intelligents dans votre maison et chacun d'eux a sa propre application. Leur solution consiste à intégrer l'application dans des plateformes telles qu'Alexa, Google Assistant et IFTTT afin que nous ayons un contrôleur "centralisé"
  • Plus important encore, les fabricants ont nos données, et Google/Amazon/IFTTT/etc ont nos données. Nous ne le faisons pas. Vous ne vous souciez peut-être pas de l'intimité, mais parfois, nous pouvons tous vouloir examiner le taux d'humidité de votre chambre, par exemple, pour décider à quel moment ouvrir les fenêtres.

Dans ce tutoriel, je construis un prototype d'un contrôleur de climat intérieur basé sur Raspberry Pi relativement peu coûteux. Le RPi communique avec les périphériques via des interfaces SPI/I2C/USB:

  • Un capteur atmosphérique est utilisé pour collecter la température, l'humidité et la pression atmosphérique.
  • Un capteur de qualité de l'air de haute précision fournit des données sur les particules atmosphériques (PM2,5 et PM10) utilisées pour calculer l'indice de qualité de l'air (IQA)

Le contrôleur traite les données acquises et déclenche les actions de l'appareil en envoyant des requêtes au service d'automatisation IFTTT Webhook qui contrôle les prises WiFi Smart prises en charge.

Le prototype est construit de manière à pouvoir facilement ajouter d'autres capteurs, appareils et services d'automatisation.

Étape 1: Matériel

Matériel
Matériel
Matériel
Matériel
Matériel
Matériel

Le matériel recommandé pour construire ceci:

  1. Un Raspberry Pi (toute version) avec WiFi. Je construis ceci en utilisant RPi B+. RPi ZeroW ferait très bien l'affaire et coûterait ~15$
  2. Un capteur BME280 pour la température, l'humidité, la pression atmosphérique ~5$
  3. Un module de capteur de détection de qualité de l'air Nova SDS011 laser haute précision PM2.5/PM10 ~ 25 $
  4. Un écran LED/LCD. J'ai utilisé l'écran OLED SSD1305 2,23 pouces ~15$
  5. Certaines prises intelligentes WiFi/ZigBee/Z-Wave. 10-20$ chacun
  6. Purificateur d'air, humidificateur, déshumidificateur, radiateur, refroidisseur, etc. avec interrupteurs mécaniques. Par exemple, j'ai utilisé un purificateur d'air pas cher pour faire ce tutoriel

Le coût total ci-dessus est <100$, beaucoup moins que, disons, un purificateur intelligent qui pourrait facilement coûter 200$.

Étape 2: Câblage du Raspbery Pi

Câblage du Raspbery Pi
Câblage du Raspbery Pi

Le schéma de circuit montre comment câbler le RPi avec le capteur BME280 en utilisant l'interface I2C et l'affichage OLED HAT en utilisant l'interface SPI.

Le Waveshare OLED HAT peut être attaché au-dessus du GPIO, mais vous avez besoin d'un répartiteur GPIO pour le partager avec d'autres périphériques. Il pourrait être configuré pour utiliser I2C en soudant les résistances à l'arrière.

Vous trouverez de plus amples informations sur le SSD1305 OLED HAT ici.

Les interfaces I2C et SPI doivent être activées dans RPi avec:

sudo raspi-config

Le capteur de poussière Nova SDS011 est connecté au RPi via un port USB (avec un adaptateur série-USB).

Étape 3: Collecte des données des capteurs

Les données atmosphériques, qui semblent assez simples, sont collectées à partir du capteur BME280 du script python.

21-nov-20 19:19:25 - INFO - lecture_compensée(id=6e2e8de5-6bc2-4929-82ab-0c0e3ef6f2d2, horodatage=2020-11-21 19:19:25.604317, temp=20.956 °C, pression=1019.08 hPa, humidité=49.23 % rH)

Les données du capteur de poussière nécessitent un peu plus de traitement. Le module capteur aspire certains échantillons d'air pour détecter les particules, il doit donc fonctionner pendant un certain temps (30 s) pour obtenir des résultats fiables. De mon observation, je ne considère que la moyenne des 3 derniers échantillons. Le processus est disponible dans ce script.

21-Nov-20 19:21:07 - DEBUG - 0. PM2,5: 2,8, PM10: 5,9

21-Nov-20 19:21:09 - DEBUG - 1. PM2.5: 2.9, PM10: 6.0 21-Nov-20 19:21:11 - DEBUG - 2. PM2.5: 2.9, PM10: 6.0 21- 20 nov. 19:21:13 - DEBUG - 3. PM2.5: 2.9, PM10: 6.3 21-nov-20 19:21:15 - DEBUG - 4. PM2.5: 3.0, PM10: 6.2 21-nov- 20 19:21:17 - DEBUG - 5. PM2.5: 2.9, PM10: 6.4 21-Nov-20 19:21:19 - DEBUG - 6. PM2.5: 3.0, PM10: 6.6 21-Nov-20 19:21:21 - DEBUG - 7. PM2.5: 3.0, PM10: 6.8 21-Nov-20 19:21:23 - DEBUG - 8. PM2.5: 3.1, PM10: 7.0 21-Nov-20 19:21:25 - DEBUG - 9. PM2.5: 3.2, PM10: 7.0 21-Nov-20 19:21:28 - DEBUG - 10. PM2.5: 3.2, PM10: 7.1 21-Nov-20 19:21:30 - DEBUG - 11. PM2.5: 3.2, PM10: 6.9 21-Nov-20 19:21:32 - DEBUG - 12. PM2.5: 3.3, PM10: 7.0 21-Nov-20 19:21:34 - DEBUG - 13. PM2.5: 3,3, PM10: 7.1 21-Nov-20 19:21:36 - DEBUG - 14. PM2.5: 3,3, PM10: 7.1

Le capteur de poussière ne fournit que les indices PM2.5 et PM10. Pour calculer l'AQI, nous avons besoin du module python-aqi:

aqi_index = aqi.to_aqi([(aqi. POLLUTANT_PM25, dust_data[0]), (aqi. POLLUTANT_PM10, dust_data[1])])

La collecte, l'affichage et le contrôle des appareils sont exécutés simultanément et de manière asynchrone. Les données sont enregistrées dans une base de données locale. Nous n'avons pas besoin de les exécuter fréquemment si l'environnement ne change pas trop rapidement. Pour moi, 15 minutes d'intervalle suffisent. De plus, le module capteur de poussière accumule la poussière à l'intérieur, il ne faut donc pas en abuser pour éviter la tâche de nettoyage.

Étape 4: Configuration du service domotique

Configuration du service domotique
Configuration du service domotique
Configuration du service domotique
Configuration du service domotique

Il existe de nombreuses plates-formes domotiques et vous devez installer la plate-forme prise en charge par la prise intelligente que vous possédez. Si vous vous souciez de la confidentialité, vous devez configurer votre propre système. Sinon, vous pouvez utiliser les plates-formes populaires prises en charge par la plupart des prises intelligentes WiFi: Google Assistant, Alexa ou IFTTT. Essayez de sélectionner la plate-forme de socket avec une API avec laquelle interagir (Webhook est parfait à cet effet)

J'utilise IFTTT dans ce tutoriel car il est très facile à utiliser même pour les débutants. Mais sachez que: 1. il existe de nombreuses sockets intelligentes qui ne prennent pas en charge IFTTT, et 2. Au moment où j'écris ces lignes, IFTTT ne vous permet de créer que 3 applets (tâches d'automatisation) gratuitement, ce qui ne suffit que pour 1 appareil.

Voici les étapes:

1. Créez deux applets dans IFTTT, pour allumer et éteindre l'appliance, à l'aide du service Webhook. Les détails peuvent être trouvés ici.

2. Copiez la clé API et copiez-la dans le script python. Je suggère de le garder dans un fichier séparé pour des raisons de sécurité.

3. Définissez la logique/les paramètres de contrôle dans le script principal.

Étape 5: Résultats

Résultats
Résultats
Résultats
Résultats
Résultats
Résultats
Résultats
Résultats

OK, maintenant nous testons le système.

L'écran OLED affiche la température actuelle, l'humidité et l'indice de qualité de l'air (IQA) calculé. Il affiche également la valeur minimale et maximale au cours des 12 dernières heures.

Les données chronologiques de l'IQA en quelques jours montrent quelque chose d'intéressant. Remarquez les augmentations du modèle AQI ? Cela s'est produit deux fois par jour, le petit pic vers 12h00 et le pic le plus élevé vers 19h00. Eh bien, vous l'avez deviné, c'était à ce moment-là que nous cuisinions, répandant beaucoup de particules autour. Il est intéressant de voir comment notre activité quotidienne affecte l'environnement intérieur.

De plus, la dernière augmentation du chiffre a duré beaucoup plus courte que les précédentes. c'est alors que nous ajoutons le purificateur d'air dans le système. Le contrôleur climatique RPi envoie une demande PURIFIER_ON lorsque AQI>50 et PURIFIER_OFF lorsque AQI<20. Vous pouvez voir le déclencheur Webhook IFTTT à ce moment-là.

Étape 6: Conclusion

C'est ça!

Les données collectées peuvent également être utilisées pour contrôler les réchauffeurs d'air, les refroidisseurs, les (dé)humidificateurs, etc. Il vous suffit d'acheter plus de prises intelligentes et chaque vieil appareil deviendra « intelligent ».

Si vous souhaitez contrôler de nombreux appareils, vous devrez peut-être examiner attentivement le service domotique que vous souhaitez utiliser. Je suggérerais fortement de mettre en place une plate-forme domotique open source, mais si c'est trop compliqué, il existe des solutions plus simples telles que Google Assistant et IFTTT Webhook, ou en utilisant des prises intelligentes Zigbee.

L'implémentation complète de ce prototype peut être trouvée dans le référentiel Github:

github.com/vuva/IndoorClimateControl

S'amuser !!!

Conseillé: