Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Überwachen Sie Ihre Energierechnung über Modbus, MKR WiFi 1010 und RS485

Komponenten und Verbrauchsmaterialien

Arduino MKR WiFi 1010
× 1
Arduino MKR 485 Schild
× 1
USB-A auf Micro-USB-Kabel
× 1
USB-Netzteil
Alle Netzteile kompatibel. Das MKR485-Shield hat einen eingebauten 7-24V-Abwärtswandler.
× 1
Verdrilltes abgeschirmtes Einzelpaar-Kabel
× 1

Notwendige Werkzeuge und Maschinen

Digilent Mastech MS8217 Autorange Digitalmultimeter
Elektrische Schere
Kleiner Schlitzschraubendreher
für MKR485-Terminals
Mittelgroßer Phillips-Schraubendreher

Apps und Onlinedienste

Home Assistant
Arduino Web Editor
MQTT

Über dieses Projekt

Wenn Sie Ihr Zuhause wirklich intelligenter machen möchten, möchten Sie wahrscheinlich von Ihren monatlichen Rechnungen (d. h. Energie, Gas usw.) ausgehen. Wie manche sagen, Gut für Planet, The Wallet und The Bottom Line . Open Source Hardware ist unser Weg, um Nachhaltigkeit in der häuslichen Umgebung zu erreichen! Diese Idee brachte uns dazu, eine einfache und sichere Lösung zu entwickeln, die sich leicht in jede Hausautomationssoftware integrieren lässt, da sie Daten über MQTT verfügbar macht (in unserem Fall zeigen wir Ihnen, wie Sie sie in Home Assistant integrieren).

Übersicht

Um den elektrischen Energieverbrauch zu messen, haben wir uns für das Finder Energy Meter entschieden, da es für den Hutschieneneinsatz konzipiert ist und perfekt in den Hauptschrank unseres Hauses passt. Das Coole an diesem Produkt ist, dass es über einen RS485-Modbus verfügt Schnittstelle, ein Kommunikationsprotokoll nach Industriestandard, das die Kommunikation mit einem Arduino wirklich einfach macht. Tatsächlich hat Arduino ein offizielles Schild veröffentlicht, das MKR485 und zwei Bibliotheken zum Entschlüsseln des Protokolls. Als Mainboard haben wir uns für das Arduino MKR WiFi entschieden 1010, da es den MKR-Formfaktor teilt und über WiFi-Konnektivität verfügt.

Einrichtung

Warnung! Überprüfen Sie die Vorschriften Ihres Landes zum Umgang mit der Hauselektrik und seien Sie äußerst vorsichtig, da dies tödlich sein kann! Wenn Sie es nicht wissen Wie, rufen Sie einen Elektriker an. Der erste Schritt besteht darin, das Messgerät in Ihrem Schaltschrank zu installieren. Um sicherzustellen, dass Sie in einer sicheren Umgebung arbeiten, schalten Sie den Strom vom elektrischen Anschluss vor Ihrem System aus und überprüfe noch einmal mit dem Multimeter, dass zwischen den Klemmen keine Spannung anliegt .

Platzieren Sie dann den Energiezähler in Ihrem Schrank und verbinden Sie die stromführenden und neutralen Drähte vom Hauptschalter mit dem Eingang des Zählers. Denken Sie daran, die Farbkonvention zu verwenden (blau für neutral und braun/schwarz/grau für strom in der EU). Der Ausgang muss mit dem Rest des Systems verbunden werden.

Fertig? Es ist Zeit, die RS485-Verbindung einzuschrauben! Wir verwenden verdrillte Single-Pair-Kabel mit Masse, die normalerweise für Telefonleitungen verwendet werden. Mit diesem Kabel können Sie über große Entfernungen (1,2 km) übertragen. Wir verwenden jedoch nur ein Kabel, das lang genug ist, um den Schrank zu verlassen und das Arduino an einem zugänglichen Ort zu platzieren.

Die RS485-Schnittstelle benennt ihre Klemmen A, B und COM.

Da der MKR-Schirm auch Vollduplex unterstützt, sehen Sie zwei weitere Klemmen, Y und Z. Hier werden wir das andere Ende des Kabels verschrauben, da wir aus dem Datenblatt wissen, dass die Halbduplex-Kommunikation nur auf Y und Z stattfindet Terminals. Die COM-Klemme muss mit ISOGND verbunden werden. Da wir eine Halbduplex-Verbindung verwenden und die Verkabelung Peer-to-Peer ist, müssen wir die Schalter am MKR485-Schirm passend zu unserem Setup einrichten:wir setzen HALF (2 auf OFF) und Terminierung auf YZ (3 auf EIN); der erste ist egal. Die Terminierung ist ein Widerstand, der die beiden Datenanschlüsse verbindet, um Störungen zu dämpfen.

Das ist es. Jetzt können Sie den Schrank schließen und sich auf die Softwareseite konzentrieren!

Software

Starten Sie Ihren Computer und öffnen Sie Ihre IDE. Sie können die Arduino IDE oder den Arduino Create Editor verwenden. Der Code erfüllt die folgenden Anforderungen:

  • Modbus-Kommunikation,
  • WLAN-Verwaltung
  • MQTT-Protokoll

Modbus ist ein Open-Source-Protokoll für industrielle Sensoren und Maschinen. Damit Arduino über Modbus spricht, verwenden wir die Arduino Modbus-Bibliothek. Diese Bibliothek packt alle Handler und macht das Anschließen jedes Modbus-Geräts sehr schnell. Da wir Register lesen werden, können wir dem Datenblatt des Zählers folgend alle Informationen finden, die wir benötigen, wie Funktionscodes, Adresse des Registers und Größe des Registers in Worten. Aber um es klarer zu machen, lassen Sie uns erklären, wie Modbus funktioniert:

Modbus-Nachrichten folgen einer einfachen Struktur:

01 03 04 00 16 00 02 25 C7

0x01 ist die Geräteadresse

0x03 ist der Funktionscode das sagt dem Gerät, ob wir Daten lesen oder schreiben wollen *in diesem Fall Halteregister lesen

0x04 für Byte Count00 16 - Wir senden 4 Byte Registeradresse (00 16) das sagt dem Gerät, was wir lesen möchten

00 02 - tdie Größe des Registers (00 02) in Worten (jedes Wort ist 2 Byte lang)

Die letzten 4 Byte sind CRC-Code . Dieser Code wird aus einer mathematischen Funktion über vorherige Bytes generiert, dies stellt sicher, dass die Nachricht korrekt empfangen wurde.

In Arduino wird all dieses Zeug im if . behandelt Zustand:

// Erstellt von Alberto Perro - Officine Innesto//// Ganzzahl von einem Modbus-Gerät lesen, das Register hältfloat readCurrent(){ float Ampere =0.; // nächster Befehl formatiert die Anfrage und sendet sie über RS485 if (!ModbusRTUClient.requestFrom (0x01, HOLDING_REGISTERS, 0x0016, 2)) {//Fehlerbehandlung Serial.print ( "Spannung konnte nicht gelesen werden!"); Serial.println (ModbusRTUClient.lastError()); aufrechtzuerhalten. Sonst { uint16_t word1 =ModbusRTUClient.read(); // MSW aus dem Puffer lesen uint16_t word2 =ModbusRTUClient.read(); // LSW aus Puffer lesen int32_t milliamp =word1 <<16 | Wort2; // Wörter verbinden, um Int Ampere =Milliampere/1000.0 zu erhalten; // in Ampere umwandeln } Ampere zurückgeben;} 

Im else Teil haben wir den Antworthandler.

Da dieses Register zwei Wörter lang ist, müssen wir sie mit binärer Mathematik verbinden. Wir lesen die Wörter aus dem Puffer und speichern sie in einer 16-Bit langen Ganzzahl ohne Vorzeichen (2 Byte oder ein Wort), dann fügen wir sie zu einer 32-Bit langen Ganzzahl mit Vorzeichen zusammen, indem wir das erste Wort nach links verschieben und einen ODER über dem zweiten Wort. Auf diese Weise erhalten wir die Strommessung in mA, dividiert durch 1000 erhalten wir Strom in Ampere.

Der gleiche Prozess ist an alles angepasst, was wir lesen möchten.

Der Rest des Codes ist der Handhabung von MQTT und WiFi-Netzwerken gewidmet.

Integration von Home Assistant

Das Hinzufügen des Messgeräts zu Home Assistant ist ziemlich einfach. Angenommen, Sie haben einen MQTT-Broker konfiguriert (hier ist die Anleitung), müssen Sie lediglich neue Definitionen unter der Datei configuration.yaml hinzufügen.

Sensor:- Plattform:mqtt Name:"Main Voltage" state_topic:"energy/main/voltage" unit_of_measurement:"V" 

Hier müssen Sie den Namen der Messung, das zu lesende MQTT-Thema und die Maßeinheit der Größe eingeben. Datei speichern, Konfiguration prüfen und Home Assistant neu laden, jetzt erscheinen die Messwerte auf der Hauptseite.

Home Assistant kümmert sich um die Erstellung von Diagrammen und die Automatisierung von Prozessen, die durch Ihre Messwerte ausgelöst werden. Dieses Tutorial ist abgeschlossen, jetzt liegt es an Ihnen, Funktionen hinzuzufügen und es für Ihre eigenen Zwecke anzupassen!

Code

Modbus RTU zu MQTT Bridge für Finder
Diese Skizze bietet eine vollständige Brücke zwischen dem Finder-Energiezähler und mqtt. Entwickelt, um die Stromkosten und den Verbrauch in Casa Jasmina zu überwachen.

Herstellungsprozess

  1. Bauen Sie Ihren internetgesteuerten Videostreaming-Roboter mit Arduino und Raspberry Pi
  2. Erstellen von Monitor-Ambilight mit Arduino
  3. So bauen Sie einen Arduino-Energiemonitor und einen Datenlogger
  4. LCD-Animation und -Spiele
  5. DIY-Voltmeter mit Arduino und Smartphone
  6. Herzfrequenzmesser mit IoT
  7. Arduino-Temp. Monitor und Echtzeituhr mit 3.2 Display
  8. WebServerBlink mit Arduino Uno WiFi
  9. Arduino - Temperatur über eine serielle Schnittstelle an das Web senden
  10. Energieformen:kinetische und potentielle Energie