Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Surveillez votre facture d'énergie via Modbus, MKR WiFi 1010 et RS485

Composants et fournitures

Arduino MKR WiFi 1010
× 1
Bouclier Arduino MKR 485
× 1
Câble USB-A vers Micro-USB
× 1
Alimentation USB
Toute alimentation compatible. Le blindage MKR485 a un convertisseur abaisseur 7-24V intégré.
× 1
Câble blindé à paire unique torsadée
× 1

Outils et machines nécessaires

Multimètre numérique Digilent Mastech MS8217 Autorange
Ciseaux d'électricien
Petit tournevis plat
pour les terminaux MKR485
Tournevis philips de taille moyenne

Applications et services en ligne

Assistant à domicile
Éditeur Web Arduino
MQTT

À propos de ce projet

Si vous voulez vraiment rendre votre maison plus intelligente, vous voudrez probablement commencer par vos factures mensuelles (c'est-à-dire énergie, gaz, etc.). Comme certains le disent, Bon pour la planète, le portefeuille et le résultat . Le matériel open source est notre moyen d'atteindre la durabilité dans l'environnement domestique ! Cette idée nous a amené à construire une solution simple et sécurisée, facile à intégrer avec n'importe quel logiciel domotique puisqu'elle expose les données sur MQTT (dans notre cas nous allons vous montrer comment l'intégrer dans Home Assistant).

Présentation

Afin de mesurer la consommation d'énergie électrique, nous avons choisi d'utiliser le Finder Energy Meter, car il est conçu pour une utilisation sur rail DIN et s'intègre parfaitement dans l'armoire principale de notre maison. L'avantage de ce produit est qu'il dispose d'un Modbus RS485 interface, un protocole de communication standard industriel qui permet de parler très facilement à un Arduino. En fait, Arduino a sorti un shield officiel, le MKR485 et deux bibliothèques pour décoder le protocole. Comme carte principale, nous avons choisi le Arduino MKR WiFi 1010, car il partage le facteur de forme MKR et dispose d'une connectivité WiFi.

Configuration

Attention ! Vérifiez les réglementations de votre pays concernant la gestion du système électrique de votre maison et soyez extrêmement prudent car cela peut être mortel ! Si vous ne savez pas comment, appelez un électricien. La première étape consiste à installer le compteur dans votre armoire électrique. Pour vous assurer que vous travaillez dans un environnement sûr, coupez l'alimentation de la borne électrique en amont de votre système et vérifiez avec le multimètre qu'il n'y a pas de tension entre les bornes .

Placez ensuite le compteur d'énergie à l'intérieur de votre armoire et connectez les fils sous tension et neutre du disjoncteur principal à l'entrée du compteur, n'oubliez pas d'utiliser la convention de couleur (bleu pour le neutre et marron/noir/gris pour vivre dans l'UE). La sortie doit être connectée au reste du système.

Fait? Il est temps de visser la connexion RS485 ! Nous utiliserons un câble à paire unique torsadée avec terre, généralement utilisé pour les lignes téléphoniques. Avec ce câble, vous pouvez transmettre sur de longues distances (1,2 km). Cependant nous utilisons juste un câble assez long pour sortir de l'armoire et placer l'arduino dans un endroit accessible.

L'interface RS485 nomme ses bornes A, B et COM.

Étant donné que le shield MKR prend également en charge le Full Duplex, vous verrez deux autres terminaux, Y et Z. Ici, nous allons visser l'autre extrémité du câble, car nous savons d'après la fiche technique que la communication semi-duplex ne se produit que sur Y et Z bornes. Le terminal COM doit être connecté à ISOGND. Puisque nous utilisons une connexion semi-duplex et que le câblage est peer-to-peer, nous devons configurer les commutateurs sur le blindage MKR485 pour correspondre à notre configuration :nous définissons HALF (2 sur OFF) et la terminaison sur YZ (3 sur ON ); le premier n'a pas d'importance. La terminaison est une résistance reliant les deux terminaux de données, pour amortir les interférences.

Ça y est. Vous pouvez maintenant fermer l'armoire et vous concentrer sur le côté logiciel !

Logiciel

Démarrez votre ordinateur et ouvrez votre IDE. Vous pouvez utiliser l'IDE Arduino ou l'éditeur Arduino Create. Le code répond aux demandes suivantes :

  • Communication Modbus,
  • Gestion Wi-Fi
  • Protocole MQTT

Modbus est un protocole open source pour les capteurs et machines industriels. Pour faire parler Arduino Modbus, nous allons utiliser la bibliothèque Arduino Modbus. Cette bibliothèque contient tous les gestionnaires et permet de connecter très rapidement n'importe quel appareil Modbus. Puisque nous allons lire des registres, en suivant la fiche technique du compteur, nous pouvons trouver toutes les informations dont nous avons besoin comme les codes de fonction, l'adresse du registre et la taille du registre en mots. Mais pour que ce soit plus clair, expliquons comment fonctionne Modbus :

Les messages Modbus suivent une structure simple :

01 03 04 00 16 00 02 25 C7

0x01 est l'Adresse de l'appareil

0x03 est le code de fonction qui indique à l'appareil si nous voulons lire ou écrire des données *dans ce cas lire les registres de maintien

0x04 pour Nombre d'octets00 16 - Nous envoyons 4 octets d'adresse de registre (00 16) qui indique à l'appareil ce que nous voulons lire

00 02 - tpuis la taille du registre (00 02) en mots (chaque mot fait 2 octets)

Les 4 derniers octets sont du code CRC . Ce code est généré à partir d'une fonction mathématique sur les octets précédents, cela garantit que le message a été reçu correctement.

Dans Arduino, tout cela est géré dans le if état :

// Créé par Alberto Perro - Officine Innesto//// Lecture d'entier à partir d'un périphérique modbus contenant les registresfloat readCurrent(){ float ampère =0.; //la commande suivante formate la demande et l'envoie via RS485 if (!ModbusRTUClient.requestFrom(0x01, HOLDING_REGISTERS, 0x0016, 2)) { //Error Handling Serial.print("échec de lecture de la tension ! "); Serial.println(ModbusRTUClient.lastError()); } else { uint16_t word1 =ModbusRTUClient.read(); //lecture MSW à partir du tampon uint16_t word2 =ModbusRTUClient.read(); //lecture du LSW du buffer int32_t milliamp =word1 <<16 | mot2; //joindre les mots pour récupérer int ampère =milliamp/1000.0; //convertir en ampère } renvoyer l'ampère;} 

Dans le else partie nous avons le gestionnaire de réponse.

Étant donné que ce registre fait deux mots, nous devons les joindre avec des mathématiques binaires. Nous lisons les mots du tampon et les stockons dans un entier non signé de 16 bits de long (2 octets ou un mot), puis nous les joignons dans un entier signé de 32 bits de long en décalant le premier mot vers la gauche et en appliquant un OU sur le deuxième mot. De cette façon, nous récupérons la mesure du courant en mA, en la divisant par 1000, nous avons le courant en ampères.

Ce même procédé est adapté à tout ce que nous voulons lire.

Le reste du code est dédié à la gestion des réseaux MQTT et WiFi.

Intégration de l'assistant à domicile

L'ajout du compteur à Home Assistant est assez simple. En supposant que vous ayez configuré un courtier MQTT (Voici le guide), il vous suffit d'ajouter de nouvelles définitions dans le fichier configuration.yaml.

capteur :- plate-forme :mqtt nom :"Main Voltage" state_topic :"energy/main/voltage" unit_of_measurement :"V" 

Ici, vous devez mettre le nom de la mesure, le sujet MQTT à lire et l'unité de mesure de la quantité. Enregistrez le fichier, vérifiez la configuration et rechargez Home Assistant, maintenant les mesures apparaîtront sur la page principale.

Home Assistant s'occupera de créer des graphiques et d'automatiser les processus déclenchés par vos lectures. Ce tutoriel est terminé, à vous maintenant d'ajouter des fonctionnalités et de le personnaliser à vos propres fins !

Code

Pont Modbus RTU vers MQTT pour Finder
Ce croquis fournit un pont complet entre le compteur d'énergie du chercheur et mqtt. Développé pour surveiller les coûts et l'utilisation de l'électricité à Casa Jasmina.

Processus de fabrication

  1. Créez votre robot de streaming vidéo contrôlé par Internet avec Arduino et Raspberry Pi
  2. Créer un moniteur Ambilight à l'aide d'Arduino
  3. Comment créer un moniteur d'énergie et un enregistreur de données Arduino
  4. Animation LCD et jeux
  5. Voltmètre DIY utilisant Arduino et Smartphone
  6. Moniteur de fréquence cardiaque utilisant l'IoT
  7. Arduino Temp. Moniteur et horloge en temps réel avec affichage 3.2
  8. WebServerBlink avec Arduino Uno WiFi
  9. Formes d'énergie :énergie cinétique et potentielle