Table des matières:

Moniteur de puissance basé sur Raspberry PI pour appareils ménagers : 14 étapes
Moniteur de puissance basé sur Raspberry PI pour appareils ménagers : 14 étapes

Vidéo: Moniteur de puissance basé sur Raspberry PI pour appareils ménagers : 14 étapes

Vidéo: Moniteur de puissance basé sur Raspberry PI pour appareils ménagers : 14 étapes
Vidéo: Découvrir l’électronique avec le Raspberry Pi 4 2024, Décembre
Anonim
Moniteur de puissance basé sur Raspberry PI pour appareils ménagers
Moniteur de puissance basé sur Raspberry PI pour appareils ménagers
Moniteur de puissance basé sur Raspberry PI pour appareils ménagers
Moniteur de puissance basé sur Raspberry PI pour appareils ménagers

Il s'agissait d'un petit projet que j'ai réalisé pour surveiller la consommation électrique d'appareils individuels dans la maison et afficher des graphiques de leur consommation électrique au fil du temps. C'est en fait l'un des projets les plus simples basés sur Raspberry PI que j'ai réalisés, aucune soudure ou piratage de produits ouverts n'est requis. Il n'est pas nécessaire que ce soit un projet Raspberry PI, cela pourrait facilement être fait sur une machine Linux ou peut-être Windows.

Le coût est de 50 $ AUD pour un ensemble de 4 moniteurs d'alimentation/prises intelligentes et le coût d'un Raspberry PI. Cela peut fonctionner sur un Pi Zero ou l'Original PI même si j'ai trouvé que c'était un peu lent. Le seul autre PI que j'ai est un PI 3 et je l'ai trouvé très accrocheur, c'est donc ce que je recommanderais. Notez que si vous souhaitez l'exécuter sur un PI plus ancien, vous pouvez réduire la fréquence de collecte de données (j'utilisais 10 secondes).

Ce projet a également l'avantage supplémentaire de libérer la prise intelligente du micrologiciel du fabricant, vous n'avez donc pas à utiliser leurs applications et services cloud spécifiques. Ils peuvent donc être utilisés avec Home Assist ou simplement avec vos propres scripts python.

Veuillez noter que je suppose que vous savez comment installer le système d'exploitation sur le PI, vous y connecter et exécuter quelques commandes Linux de base. Je suppose également que vous savez comment trouver l'adresse IP de votre prise intelligente une fois qu'elle se connecte à votre WiFi.

Fournitures

Pack de 2 ou 4 packs de prises intelligentes d'ici:

www.kogan.com/au/buy/kogan-smarterhome-sma…

1 Framboise PI

Compétences:

Possibilité de configurer un Raspberry PI

Ligne de commande linux de base

Éditeur de texte comme vi ou nano (nano est plus convivial, vi est plus rapide une fois que vous le connaissez)

Possibilité de trouver l'IP des appareils sur votre réseau.

Étape 1: Achetez des prises intelligentes

Achetez des prises intelligentes
Achetez des prises intelligentes

La prise intelligente que j'ai utilisée venait d'ici:

www.kogan.com/au/buy/kogan-smarterhome-sma…

Notez qu'il existe toute une gamme de prises intelligentes compatibles, la plupart (toutes ?) sont des appareils basés sur ESP8266 (WEMOS) et sont très faciles à flasher. Assurez-vous d'obtenir quelque chose qui a une surveillance de l'alimentation comme beaucoup n'en ont pas. Cette page affiche une grande liste d'appareils compatibles:

templates.blakadder.com/plug.html

Étape 2: Flasher l'appareil

Cette partie était étonnamment facile. En gros, il vous suffit de télécharger le logiciel, de l'exécuter et il vous guide à travers.

Pour cela vous aurez besoin d'une box Raspberry PI ou Linux avec WiFi. Vous aurez besoin que votre connexion principale à cet appareil ne soit PAS le WiFi. Pour mon PI3, c'était facile car j'étais connecté via Ethernet. Si vous avez un PI Zero, vous devrez vous connecter à l'ancienne, avec un clavier et un moniteur.

Je suppose que vous savez comment configurer un PI et vous y connecter avec SSH ou un clavier, donc je ne passerai pas par cela. Si vous n'êtes pas sûr, il existe de nombreux tutoriels sur le Web.

Avant de commencer, quelques informations sur les appareils. Il y a une entreprise en Chine appelée Tuya qui pompe des prises intelligentes pour différents clients. Ils font la personnalisation pour différents clients et fournissent un firmware par défaut et permettent aux entreprises d'apporter leurs propres modifications. Le problème avec ceci est que si vous avez un tas de produits de différents fournisseurs, vous finissez par devoir exécuter un tas d'applications, dont certaines fonctionnent mieux que d'autres. En flashant un firmware open source, vous vous libérez de tout cela. C'est donc bon pour la domotique générale.

Donc …. sans plus tarder, voici les instructions:

1) Exécutez ces commandes sur le PI, cela installera le logiciel requis.

# git clone https://github.com/ct-Open-Source/tuya-convert# cd tuya-convert#./install_prereq.sh

2) Branchez la prise intelligente sur l'alimentation

3) Allumez-le avec le bouton

4) Maintenez le bouton d'alimentation enfoncé jusqu'à ce que le voyant bleu commence à clignoter

5) Attendez 10 secondes. Ce n'est pas essentiel, mais j'ai trouvé que cela fonctionnait mieux si vous le faisiez.

6) Exécutez cette commande

./start_flash.sh

À partir de là, suivez simplement les instructions, sauf à la fin, sélectionnez "2. Tasmota". Il existe une option pour un firmware différent, mais je ne l'ai pas essayé, je ne sais donc pas à quoi cela ressemble.

A noter que j'ai du faire ça plus d'une fois, au début j'ai cru que j'avais briqué l'appareil, je n'avais pas de voyants, pas de déclic de relais, pas de signe de vie. Mais je l'ai éteint et j'ai réexécuté la dernière commande et cela a fonctionné. J'ai dû le faire avec 3 des 4 appareils que j'ai flashés, un seul est passé directement, je pense en raison de l'étape 5.

Instructions complètes ici:

github.com/ct-Open-Source/tuya-convert

Étape 3: Connexion au micrologiciel pour la première fois

Connexion au micrologiciel pour la première fois
Connexion au micrologiciel pour la première fois
Connexion au micrologiciel pour la première fois
Connexion au micrologiciel pour la première fois
Connexion au micrologiciel pour la première fois
Connexion au micrologiciel pour la première fois

Une fois que vous avez flashé Tasmota sur l'appareil, il ne montrera plus beaucoup de signes de vie. La raison en est qu'il doit être configuré. Faire cela est assez facile, j'ai trouvé qu'il était préférable de le faire avec mon téléphone. Les étapes sont:

1) Rechercher des points d'accès WiFi

2) Connectez-vous à celui étiqueté tasmota_xxxx (où x est un nombre)

3) Le téléphone devrait vous diriger vers la page par défaut, sinon allez à 192.168.4.1

Notez que sur certains téléphones, il peut vous donner un message disant "pas d'accès Internet, voulez-vous rester connecté", sélectionnez oui.

4) Sur la page qui s'affiche, entrez le nom de votre réseau WiFi et le mot de passe dans les 2 premières cases. Cliquez sur l'option pour afficher le mot de passe et vérifiez trois fois que vous avez entré le bon mot de passe. Si vous avez entré le mauvais mot de passe, je pense qu'il peut être difficile de revenir à cet écran de configuration. Notez que vous pouvez également rechercher des réseaux WiFi, bien que vous deviez évidemment toujours entrer le mot de passe.

5) La prise devrait maintenant être connectée à votre réseau WiFi. Vous devrez vous rendre sur la page de configuration de votre routeur et trouver l'adresse IP de votre appareil.

6) Ouvrez un navigateur Web sur votre PC et accédez à https://[device_ip] Vous devriez voir l'écran de configuration de Tasmota.

Félicitations, vous avez réussi à flasher la prise.

Étape 4: Configuration de la prise

Configuration de la prise
Configuration de la prise

La société qui fabrique ces appareils fabrique apparemment 10 000 appareils avec de nombreuses configurations différentes. Nous venons de flasher un nouveau firmware et le firmware ne sait pas sur quels appareils il a été flashé. Donc, avant que quoi que ce soit fonctionne, nous devrons le configurer. Pour ce faire, nous devons trouver les détails de notre appareil sur le Web et charger cette configuration particulière.

Pour cela, retrouvez votre appareil sur cette page:

templates.blakadder.com/plug.html

Pour l'appareil que j'ai utilisé, la config est ici:

templates.blakadder.com/kogan-KASPEMHUSBA….

Pour définir la configuration, nous copions simplement le texte sous Template. Dans ce cas c'est:

Puis

1) Accédez à la page de configuration de votre appareil https://[IP de la prise intelligente]

2) Cliquez sur configurer, configurer d'autres

3) Collez votre chaîne de modèle

4) Cochez "Activer MQTT"

5) Cliquez sur Activer et Enregistrer.

Pour tester cela a fonctionné, cliquez sur "Menu principal" pour revenir à la page d'accueil et vous devriez maintenant voir les chiffres de consommation d'énergie. Ils seront tous nuls, même la tension mais c'est bon signe. Cliquez sur le bouton à bascule et vous devriez entendre le clic du relais et voir la tension augmenter.

Étape 5: Calibrer la tension

Calibrer la tension
Calibrer la tension

J'ai trouvé que la lecture de la tension était assez élevée. Si vous avez une autre source de lecture de tension dans la maison (par exemple un compteur intelligent peut-être ??), vous pouvez calibrer la prise très facilement. Pour faire ça

1) Obtenez la bonne lecture de tension

2) Allumez le relais dans la prise intelligente

3) Cliquez sur Console dans la page d'accueil de l'appareil

4) Entrez la commande "VoltageSet 228" et appuyez sur enter (remplacez 228 par votre tension)

La tension devrait maintenant s'afficher correctement.

Étape 6: Installation du logiciel sur le PI

Il y a quelques packages qui doivent être installés sur le PI. Ceux-ci sont faciles à installer et peuvent être effectués en suivant les instructions des différents packages. Je vais donner les instructions ici, mais notez qu'elles peuvent changer avec le temps, donc mes instructions dateront. Les forfaits sont:

Grafana (pour afficher des graphiques)

Influxdb (base de données de séries temporelles qui stockera nos données)

Telegraf (utilisé pour pousser les données dans Influxdb)

Mosquitto (bus de message utilisé pour faire circuler les données, la prise intelligente pousse les données ici)

La chaîne de flux de données est la suivante:

Prise intelligente -> Mosquitto -> Telegraf -> InfluxDB -> Grafana

Si vous demandez pourquoi nous ne pouvons pas ignorer Mosquitto et Telegraf, c'est une bonne question. En théorie, la Smart Plug pourrait pousser à Influx. Le problème avec cela est qu'il devrait alors être configurable pour des centaines de points de terminaison différents et cela nous empêcherait de faire certains choix. La plupart des choses dans la domotique utilisent Mosquitto pour faire passer des messages. Par exemple, nous pouvons allumer et éteindre la prise en envoyant des messages à Mosquitto et la prise intelligente les recevra et répondra.

Étape 7: Installation de Grafana

Installation de Grafana
Installation de Grafana

De:

grafana.com/grafana/download?platform=arm

Ou plein d'autres options ici:

grafana.com/grafana/download

Pour Pi 1 et Pi Zero (ARMv6)

sudo apt-get install -y adduser libfontconfig1#trouver la dernière version de la page sur le topwget https://dl.grafana.com/oss/release/grafana-rpi_7….sudo dpkg -i grafana-rpi_7.0.1_armhf. debsudo /bin/systemctl daemon-reloadsudo /bin/systemctl activer grafana-serversudo /bin/systemctl démarrer grafana-server

Pour les IP plus récents (ARMv7)

sudo apt-get install -y adduser libfontconfig1#trouver la dernière version de la page sur le topwget https://dl.grafana.com/oss/release/grafana_7.0.1_…sudo dpkg -i grafana_7.0.1_armhf.debsudo / bin/systemctl démon-reloadsudo /bin/systemctl activer grafana-serversudo /bin/systemctl démarrer grafana-server

Tester:

Accédez à https://[IP de PI]:3000

le nom d'utilisateur/mot de passe est admin/admin, il vous demandera de le changer, vous pouvez ignorer pour l'instant

Si vous obtenez une interface graphique, tout va bien, passez à l'étape suivante

Étape 8: Installation d'InfluxDB

Exécutez ces commandes sur le PI:

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -source /etc/os-releasetest $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.listtest $VERSION_ID = "10" && echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.listsudo apt-get updatesudo apt-get install influxdbsudo systemctl activer influxdbsudo systemctl start influxdb

Testez en tapant "afflux". Cela devrait vous mettre dans la ligne de commande influxdb. Tapez "show databases", il n'y aura pas encore de bases de données, mais si vous obtenez une liste vide sans erreurs, tout va bien.

Étape 9: Installation de Telegraf

Celui-ci est vraiment facile, car nous avons ajouté le dépôt influxdb que nous pouvons simplement taper:

sudo apt-get install telegrafsudo systemctl activer telegrafsudo systemctl démarrer telegraf

À ce stade, Telegraf enregistrera déjà les métriques du système dans influxdb. Vous pouvez les voir en tapant ces commandes:

influxshow databasesuse telegrafshow seriesSELECT * FROM cpu LIMIT 10;

Étape 10: Installer Mosquitto

Cette partie est simple car nous installons simplement la version par défaut fournie avec Raspian:

sudo apt-get -y install mosquittosudo apt-get -y install mosquitto-clientssudo systemctl enable mosquittosudo systemctl start mosquitto# crée un mot de passe pour mosquittosudo mosquitto_passwd -c /etc/mosquitto/tasmota tasmota#entrez un mot de passe. Notez ce mot de passe car nous devrons le donner à la prise intelligente

Tester:

exécutez ceci dans une session SSH:

moustique_sub -t test

Exécutez ceci dans un autre

mosquitto_pub -t test -m mon message

Vous devriez voir votre message dans la première session SSH

Étape 11: Envoi de données de la prise intelligente à Mosquitto

Envoi de données de la prise intelligente à Mosquitto
Envoi de données de la prise intelligente à Mosquitto

Maintenant que Mosquitto fonctionne, nous devons configurer la prise intelligente pour envoyer des données à Mosquitto. C'est assez facile à faire. Nous aurons besoin du mot de passe entré pour moustique à l'étape précédente.

1) Connectez-vous à votre page Web sur les prises intelligentes

2) Cliquez sur Configuration, puis Configurer la journalisation

3) Définissez la période de télémétrie sur 10 et cliquez sur Enregistrer.

4) Cliquez sur Configurer MQTT

5) Pour l'hôte, entrez l'adresse IP de votre PI

6) Pour le nom d'utilisateur, entrez tasmota

7) Pour le mot de passe, entrez le mot de passe de l'étape précédente

8) Pour le sujet, entrez tasmota1

9) Cliquez sur Enregistrer

Tester:

Au PI, tapez la commande ci-dessous. Dans les 10 secondes, vous devriez voir les données arriver.

mosquitto_sub -t tele/tasmota1/SENSOR

Les données devraient ressembler à ceci:

Étape 12: Utilisez Telegraf pour pousser les données de Mosquitto vers Influx

Nous allons maintenant configurer Telegraf pour lire les données de mosquitto et pousser vers influxdb. Sur le PI:

1) sudo mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.bak

2) sudo vi /etc/telegraf/telegraf.conf

Remarque vi n'est pas très convivial pour les nouveaux utilisateurs, si vous préférez un éditeur de texte basé sur un menu, utilisez plutôt nano:

sudo nano /etc/telegraf/telegraf.conf

3) Coller dans la config du fichier joint

4) sudo systemctl redémarrer telegraf

Pour tester, tapez ceci sur le PI:

afflux

afficher les bases de données

vous devriez voir la base de données de test. Si vous n'aimez pas le test de nom, vous pouvez modifier dest_db dans le fichier telegraf.conf.

Étape 13: Enfin, créez des graphiques dans Grafana

Enfin, créez des graphiques dans Grafana
Enfin, créez des graphiques dans Grafana

Enfin, nous voyons quelques données:-):-)

Nous devons d'abord créer une connexion à la base de données. Accédez à la page Web de grafana http:[ip of PI]:3000

1) Connectez-vous avec admin/admin

2) Dans la colonne de gauche, cliquez sur l'icône d'engrenage et les sources de données

3) Cliquez sur ajouter une source de données

4) Cliquez sur influxdb

5) Pour l'URL, entrez

6) Pour la base de données, entrez le test

7) Pour HTTP, entrez GET

8) Pour l'intervalle de temps min, entrez 10s

9) Cliquez sur Enregistrer et tester, il devrait dire "La source de données fonctionne"

OK, maintenant que nous avons une connexion à la base de données, nous pouvons créer un graphique… enfin.

1) Dans la colonne de gauche, cliquez sur le + puis sur Tableau de bord et Ajouter un nouveau panneau

2) Pour la base de données, cliquez sur InfluxDB

3) Cliquez sur la mesure et sélectionnez Kogan

4) Pour le champ, sélectionnez Energy_Power.

5) Pour l'alias, donnez un nom à votre série (ex. Lave-vaisselle)

6) Sur le côté droit du titre du panneau, donnez-lui un nom, par exemple Power.

7) C'est tout, vous devriez voir les données. Cliquez sur le bouton flèche gauche pour sortir de l'édition, puis cliquez sur Enregistrer, donnez un nom à votre tableau de bord.

Si vous êtes arrivé jusqu'ici, excellent travail, sérieusement.

Étape 14: Quelques conseils supplémentaires

Quelques conseils supplémentaires
Quelques conseils supplémentaires
Quelques conseils supplémentaires
Quelques conseils supplémentaires

La configuration par défaut de Telegraf que j'ai fournie nécessitait un peu de maintenance en ce sens qu'une nouvelle section doit être ajoutée pour chaque appareil et qu'un redémarrage de Telegraf doit être effectué. Avec les changements ci-dessous, cela rend les choses beaucoup plus dynamiques dans la mesure où les appareils peuvent être ajoutés ou renommés dans la configuration Tasmota sans avoir besoin de changer Telegraf.

Le premier changement consiste à mettre le + dans le nom du sujet, il s'agit essentiellement d'un caractère générique. Cela seul suffirait, sauf lorsque vous créez des graphiques dans Grafana, les appareils sont nommés comme des choses comme "télé/WashingMachine/SENSOR". La deuxième partie de la configuration Telegraf ci-dessous est le processeur regex. Il retire le texte "WashingMachine" du centre et le transforme en une nouvelle balise qui est transmise à InfluxDB.

Remarque: assurez-vous de configurer un nom de sujet différent dans la configuration de Tasmota pour chaque appareil

[inputs.mqtt_consumer.tags] dest_db = "test"

Une fois cela fait, il est très facile de configurer Grafana pour afficher plusieurs appareils sur un seul graphique. La photo jointe à cette étape montre ce qui doit être fait. Cliquez simplement sur le signe + sur le groupe par ligne et sélectionnez tag (appareil). En bas à Alias By, entrez $tag_device. Vous devriez maintenant voir plusieurs séries sur un seul graphique. Vous pouvez cliquer sur le texte de chaque élément pour les activer et les désactiver (le clic ctrl fonctionne pour sélectionner des multiples)

Conseillé: