Posts mit dem Label Software werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Software werden angezeigt. Alle Posts anzeigen

Mittwoch, 1. Juli 2026

Automatischer Antennenschalter, Teil 5

Es ist einige Zeit vergangen seit Teil 4 ..., aber nun folgend die noch fehlenden Infos.

Anwendung der SD-Karte

Auf der SD-Karte befinden sich Dateien 

- mit Angaben welche Antenne über welchen Schalter gewählt werden kann,

- zur Konfiguration des Display-Textes, 

- welche Antennen für welches Band genutzt werden kann,

- welche Antenne primär nach Umschalten des Bandes genutzt werden soll

- welche sekundären Antennen für ein Band verfügbar sind.

 

Dies alles erfolgt mit den folgenden drei Dateien:

ANTENNEN.TXT

Inhalt (Beispiel): Dipol 80,Dipol 30,Dipol 17,********,GAP C DX 

Die Datei enthält durch Komma getrennt Text, der bei Auswahl von 1 bis 5 im Display erscheinen soll und die damit verbundene Antenne beschreibt. Der Text kann maximal 11-stellig sein, inkl. Leerzeichen.

Erläuterung des Beispiels: Die Dipol-Bezeichnungen sprechen für sich. An Stelle (Relais, Schalter) 4 ist keine Antenne angeschaltet. An Stelle 5 ist eine GAP Challenger DX angeschaltet. 

 

BANDANT.TXT

Inhalt (Beispiel):  0,1,5,5,2,5,3,5,5,5,5

Die Datei enthält durch Komma getrennt die Schalternummer, der die angeschalteten Antennen 1 bis 5 den Bändern primär zugeordnet sind. Die Reihenfolge ergibt sich aus den Bändern 160m, 80m, 60m, 40m, 30m, 20m, 17m, 15m, 12m, 10m, 6m.

Erläuterung des Beispiels: Das 160m-Band wird durch keine der angeschalteten Antennen bedient, daher die "0". Das 80m-Band wird primär durch den 80m-Dipol (1) gespeist, das 30m-Band durch den 30m-Dipol (2) und das 17m-Band durch den 17m-Dipol (3). Alle anderen Bänder sind primär über GAP Chalanger DX (5) erreichbar.

 

ANTLED.TXT

Inhalt (Beispiel):   00000,10002,00001,00102,12000,00201,20102,02001,02001,02001,02201

Die Datei enthält durch Komma getrennt 5-stellige Zifferkombinationen, die pro Band die primäre und sekundäre Nutzbarkeit der Antennen 1 bis 5 beschreiben. Die Reihenfolge ergibt sich aus den Bändern 160m, 80m, 60m, 40m, 30m, 20m, 17m, 15m, 12m, 10m, 6m. 

Die Ziffern bedeuten:

0 = Antenne nicht verwendbar

1 = primäre Antenne (LED orange)

2 = sekundäre Antenne (LED grün)

Erläuterung des Beispiels: Für das 80m-Band steht dort 10002, d.h. es kommt primär der 80m-Dipol und sektundär die GAP in Frage. Beim 17m-Band steht 20102, d.h. primär wird der 17m-Dipol ausgewählt, sekundär kommen auch der 80m-Dipol und die GAP in Frage.

 

Wie in Teil 4 beschrieben, kann durch einlegen der SD-Karte in den [SD]-Modus gewechselt werden, um mit Druck auf die F-Taste die auf der SD-Karte hinterlegte Konfiguration zu übernehmen. Die bisher im Gerät gespeicherte Konfiguration wird dabei ersetzt. 

 

 

 

Montag, 24. Juli 2023

Stromverbrauch am digitalen Zähler auslesen

Im Post "Solarzelle Ahoy! - Leistungsmessung beim Balkonkraftwerk" stellten sich mir die Fragen:

Wie viel Energie liefern mir die Zellen meines Balkonkraftwerkes?

Wie viel Energie davon nutze ich und wieviel verschenke ich ins Stromnetz?

Die letzte Frage kann der digitale Stromzähler liefern. Aber jedesmal zur Hauptverteilung laufen und ablesen ist mühsam und langweilig.

Zudem gibt es brauchbare Datenerfassungssystem im Umfeld von Home Automation, die man mit den Daten füttern kann und diese dann übersichtlich in Tages-, Wochen- und Monatsverläufen darstellen können. Achtung Spoiler: ein Post zum Thema Home Assistant folgt noch.

GEFAHR!

In der Unterverteilung bzw. im Zählerschrank besteht Gefahr durch Netzspannung von 230 V~ oder sogar 400 V~ an. Daher: keine Schutzverkleidungen abnehmen! Arbeiten in der Unterverteilung nur von Fachpersonal durchführen lassen. Elektrische Spannung ab 50 Volt Wechselspannung sowie ab 120 Volt Gleichspannung kann beim Menschen zu Verletzungen (z.B. Verbrennungen oder Herzkammerflimmern) und im schlimmsten Fall sogar zum Tod führen. Siehe auch: https://de.wikipedia.org/wiki/Stromunfall

Mein Zähler (Lepus 3.060 von Apator) besitzt wie die meisten Digitalzähler eine optische Schnittstelle (Infrarot), die das Auslesen der Daten ermöglicht. Damit alle Daten auslesbar sind, muss man sich beim Messstellenbetreiber die PIN des Zählers besorgen. Bei mir war das über die Hotline binnen Minuten erledigt.

 

Schnittstellenbeschreibung:

Datenübertragungsrate 9.600 Baud
Modus 8N1
Byteabstand im Telegramm < 2 ms
Protokoll SML + COSEM

 

Leseköpfe für die IR-Schnittstelle gibt es für unter 25 € inkl. magnetischem Gehäuse, aber ohne Kabel. Elektrisch werden die Leseköpfe über eine UART-Schnittstelle gekoppelt.

 

Das Auslesen, Verarbeiten und Übermitteln der Daten ins WLAN übernimmt wieder ein ESP8266 D1 mini. Dieser wir mit einer Firmware names Tasmota bespielt. 

Alle Infos zu Tasmota findet man unter:

https://tasmota.github.io/docs/

Leider unterstützt Tasmota aktuell nicht ohne weiteres Zutun das Auslesen der Zähler. Hierzu muss die Firmware konfiguriert und anschließend compiliert werden. Hört sich kompliziert an, ist es auch. Aber es gibt ein Video von haus-automatisierung.com, dass das Vorgehen nachvollziehbar erklärt:


Da nicht alle Zähler gleich sind, muss das im Video erwähnte Script für den Lepus 3.060 wie folgt aussehen:

>D  
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,SML,1,1
1,77070100010800FF@1000,Zählerstand Total,kWh,Zählerstand_total_kwh,1
1,77070100020800ff@1000,Export (Total),kWh,export_total_kwh,1
1,770701000E0700FF@1,Netz Frequenz,Hz,Netz_Frequenz,1
1,77070100100700FF@1,aktuelle Wirkleistung,W,aktuelle_Wirkleistung,0
1,77070100240700FF@1,Wirkleistung L1,W,Wirkleistung_L1,0
1,77070100380700FF@1,Wirkleistung L2,W,Wirkleistung_L2,0
1,770701004C0700FF@1,Wirkleistung L3,W,Wirkleistung_L3,0

 

Nach Abschluss er "Firmware-Arbeiten" und dem Flashen auf den ESP8266, muss noch der Lesekopf mit dem ESP8266 verbunden werden. 

Da meine Unterverteilung in einem soliden Metallschrank untergebracht ist, der WLAN erfolgreich abschirmt, platziere ich den ESP8266 außerhalb des Schrankes. 

Als Kabel zum Lesekopf nutze ich ein altes Telefon-Anschlusskabel mit RJ45-Stecker. Der Stecker ist klein genug, um ihn durch eine Kabeltülle des Schaltschranks zu führen. Die vier Adern werden im Lesekopf angelötet. Ein Kabelbinder als Zugentlastung sollte ausreichen.

Eine 25 cm Netzwerk-Verlängerungskabel wird kurzerhand seines Steckers beraubt und mit dem ESP8266 verbunden.

Lesekopf <---> ESP8266 D1 mini

     VCC ----- 3V3

     GND ----- G

      RX ----- TX

      TX ----- RX

 

Zusätzlich erhält der ESP noch 2 Leitungen für die Stromversorgung, die er ebenfalls aus der Unterverteilung erhält.


Netzteil <---> ESP8266 D1 mini     

      +V ----- 5V

      -V ----- G 

Als Netzteil nutze ich ein Mean Well HDR-30-5.


Der ESP wird in einem kleinen Kunststoffgehäuse untergebracht.


 

Der Lesekopf wird auf dem Zählerinterface angebracht und die Zuleitung in der Unterverteilung durch eine Tülle im Schrankboden geführt.


Durch die gleiche Öffnung gelangen die Leitungen zur Spannungsversorgung des ESP in die Unterverteilung. Den ESP habe ich dann noch mit Kabelbinder unter der Unterverteilung fixiert.

Wenn alles ordnungsgemäß verdrahtet ist, der Lesekopf richtig auf dem Interface sitzt und die WLAN-Verbindung steht, kann Tasmota über die IP-Adresse des ESPs aufgerufen werden:


Durch Anpassen des oben gezeigten Scripts können noch weitere Werte, wie z.B. die Ströme und Spannungen pro Phase ausgelesen werden. Die fand ich jedoch für meine Zwecke uninteressant.

Meine Anfangsfrage, wieviel Energie ich vom Balkonkraftwerk nutze und wieviel ich verschenk, lässt sich nun beantworten.

Eingespeist habe ich, wie in Zeile 2 von Tasmota erkennbar: 31,1 kWh.

Zeitgleich hat mir das Balkonkraftwerk 304 kWh geliefert (Abfragbar über die AhoyDTU).

Ergo: Nutzen konnte ich 273,9 kWh bzw. rund 90% der erzeugten Energie.


Freitag, 21. Juli 2023

Solarzelle Ahoy! - Leistungsmessung beim Balkonkraftwerk

In den 1880er Jahren entdeckte Heinrich Hertz den photoelektrischen Effekt, Albert Einstein beschrieb dessen Gesetzmäßigkeiten und erhielt dafür 1922 den Nobelpreis. Dank des photovoltaischen Effekts - eine spezielle Form des photoelektrischen Effekts, der sich innerhalb von Halbleitern abspielt  ...

... lange Rede, kurzer Sinn: heutzutage gewinnen wir erfolgreich und effizient elektrische Energie aus Sonnenlicht mittels Solarzellen.

Ein Balkonkraftwerk bietet Anlass für elektronische Bastelleien. Denn nach erfolgreicher Installation der Anlage fragte ich mich: 

Wie viel Energie liefern mir die Zellen?

Wie viel Energie davon nutze ich und wieviel verschenke ich ins Stromnetz?

Die Antworten darauf kann die Messtechnik liefern. Und diese Messtechnik ist bereits in meinem Wechselrichter integriert. Eine Antenne am Wechselrichter ist ein Hinweis auf eine Funkschnittstelle. Nun stand etwas Recherche an, was denn da gefunkt wird und wie man die Daten lesen kann.

Mein Wechselrichter ist ein Hoymiles HM-600 und liefert per Funk leider keine direkte WLAN-Kommunikation. Eine Data Transfer Unit (DTU), die der Hersteller anbietet, kann das Funksignal in ein WLAN Signal umsetzen.

Ein preiswerte Form einer DTU für Hoymiles Wechselrichter gibt es auch, erfordert jedoch etwas Selbstbau und die Firmware des AhoyDTU Open Source Projektes. 

Als Hardware verwende ich ein ESP8266 D1 mini und ein NRF24L01+. 

Das NRF24L01+ ist ein System-on-Chip Transceiver für das 2,4 GHz ISM-Band

  • Betriebsspannung: 1.9 – 3.6 Volt
  • 125 Kanäle von 2.400 – 2.525 GHz
  • Datenrate: 250 kbit/s, 1 Mbit/s, 2 Mbit/s
  • Max. Ausgangsleistung: 0 dBm (1 mW)
  • Standby Stromverbrauch ca. 26 µA
  • SPI Schnittstelle

Die Platine mit dem NRF24 misst 40x15 mm (ohne Antennenstecker). Das Ganze gibt es auch in einer kleineren Version mit gedruckter Antenne.

Das ESP8266 D1 mini ist eine 35x25 mm große Platine, mit einem ESP8266 Mikrocontroller von Espressif Systems bestückt. 

 

 

 

 

 

 

 

 

Nach Flashen mit der AhoyDTU Firmware liest er die Daten über das NRF24L01+ vom Wechselrichter aus und stellt diese u.a. über eine Webseite anschaulich zur Verfügung.

Die Seite des AhoyDTU Open Source Projektes bietet eine Online-Tool zum flashen der Firmware, die Bauanleitung der DTU und eine Anleitung wie man sie in Betrieb nimmt. Als "fliegender" Aufbau ist das Ganze mit viel Muße binnen einer halben Stunde erledigt und einsatzbereit. 

Nach der Spannungsversorgung per USB-Netzteil bietet das Modul sich als WLAN-Hotspot an. Ich habe mich dort mit dem Handy eingelogged und zuerst die Daten meines heimischen WLANs eingegeben. Nach einem Reboot ist das Gerät dann im heimischen WLAN erreichbar und kann bequem weiter konfiguriert werden. Nach Eingabe einiger Daten zum Wechselrichter und den Zellen erfolgt ein abschließender Reboot. Danach kann die Webseite der DTU über dessen IP-Adresse im Browser aufgerufen werden.

Zum Schluss habe ich den fliegenden Aufbau durch verlötete Verbindungen ersetzt und die Module in einem einfachen 3D-gedruckten Gehäuse untergebracht. 

 

Zur Not tut es auch ein Brotdose  aus Kunststoff oder für den Außeneinsatz eine Verteilerdose.

Damit wäre zumindest die Frage nach der aktuellen und der gesamten Energielieferung beantwortet.

Die Kosten:

  • NRF24L01+ mit Antenne ca. 6 € (ohne Antenne unter 4 €)
  • ESP8266 D1 mini ca. 5 €
  • Gehäuse nach belieben
  • etwas Kabel
  • USB Netzteil ca. 6 € (wenn man keines übrig hat)
Geschätzte Gesamtkosten unter 20 €.


Samstag, 21. März 2020

Automatischer Antennenschalter, Teil 4

Die Bedienung

... beschränkt sich im Normalfall auf das Einschalten.
Bei vorhandener Versorgungsspannung zeigt der rot leuchtende Einschalter an, dass sich das Gerät im Standby befindet. Nach dem Einschalten erlicht der Einschalter. 



Kurz nach dem Einschalten wird für ca. drei Sekunden die Firmware-Version angezeigt und ein Farbwechsel des Displays durchgeführt.
 

Das Gerät erkennt, ob auf dem PC ein CAT-fähiges Programm läuft, oder ob es selbst die CAT Requests erzeugen muss. Die Auswahl der Antenne erfolgt entsprechende dem am FTDX1200 eingestellten Sendeband. Sind mehr als eine Antenne für ein Band verfügbar, so wird die definierte Standardauswahl genutzt (orange LED). Alternativ für dieses Band verfügbare Antennen (grüne LED) können per Tastendruck gewählt werden.



Die Anzeige ist wie folgt aufgebaut:



Band:
Es wird das aktuelle Sende-Band angezeigt.

Antenn.Name
Hier wird die bis zu 11-stellige Bezeichnung der Antenne über die gesendet wird oder ERROR! angezeigt.

MODE
An dieser Stelle wird entweder AUTO oder PC-> angezeigt.

SPEC
An dieser Stelle wird entweder MAN! oder [SD] angezeigt.



*** Funktionsmodi ***

AUTO
Der Controller erzeugt die CAT Requests. Es ist keine externe "CAT request" Quelle in Betrieb, also auf dem PC läuft kein Programm (WSJT-X, JTDX, HRD, etc. ) oder der PC ist ausgeschaltet.




PC->
WSJT-X, JTDX, HRD oder ein anderes Programm erzeugt die CAT requests und der Controller wertet diese bzw. die Antworten des Trx aus.




ERROR (Display rot)
Ein Fehlerzustand: der Trx ist nicht eingeschaltet oder es ist eine Sendefrequenz gewählt, für die keine Antenne im System hinterlegt wurde.




MAN (Display magenta)
Alle Antennen können manuell über die Tasten ausgewählt werden, unabhängig davon, ob sie für die Sendefrequenz geeignet sind. Dies ist z.B. beim Testen von neuen Antennen sinnvoll, wenn man noch keine Konfiguration im System hinterlegt hat.




[SD]
Zum Aktualisieren der Antennenkonfiguration werden die Daten via SD-Karte übertragen. Die SD-Karte wird vor dem Einschalten des Gerätes eingelegt. Nach dem Einschalten erscheint dann [SD] im Display. Ein Druck auf die F-Taste bestätigt, dass die Daten von der SD-Karte übernommen werden sollen. Eine Prüfung, ob die Daten der SD-Karte Unterschiede zu den bereits eingespielten Daten aufweisen, erfogt nicht.





*** Antennenauswahl ***

AUTO und PC Mode
Die aktive Antenne wird im Display angezeigt und die zugehörige Taste durch die orange leuchtende LED markiert. Eine grüne LED zeigt alternativ wählbare Antennen an.




Durch Druck auf die entsprechende Taste wird diese Antenne aktiviert.




Während des Sendens leuchtet die LED rot.




Achtung: während des Sendens ist keine Neuwahl von Antennen möglich.


Manueller Mode
Durch Betätigen der F-Taste wird der manuelle Modus aktiviert. Der Display-Hintergrund leuchtet nun magentafarben.
Jede Antenne kann nun per Tastendruck ausgewählt werden.




Z.B. kann Antenne 5 zum Testen ausgewählt werden:




Durch erneuetes Betätigen der F-Taste wird der manuelle Modus beendet. Und die Standard-Antenne für das aktuelle Band wieder aktiviert.




[Automatischer Antennenschalter, Teil 5]

Samstag, 4. Januar 2020

Automatischer Antennenschalter, Teil 2

Ich habe das System auf zwei Platinen verteilt, das Controller Board und das Front-Board. Das Front-Board enthält alle Bedienelemente, das Display und - obwohl nicht auf dem Board platziert - das SD-Card Modul. Zusammenfassend: alles was über die Frontplatte zugänglich ist.


Ein erster Entwurf für die Platzierung der Bauteile:


Als Display verwende ich jedoch ein Dot-Matrix LCD Display mit 2x16 Zeichen und RGB Hintergrundbeleuchtung von Adafruit. Dadurch erübrigen sich die beiden LEDs links neben dem Display.



 
Bis auf zwei zusätzliche Pins ist die Pin-Belegung nahezu identisch mit den üblichen einfarbig hintergrundbeleuchteten Displays, so dass ein Austausch jederzeit möglich wäre. Die RGB-Beleuchtung hat den Charme, unterschiedliche Betriebszustände so sichtbar zu machen, dass man sie auch aus den Augenwinkeln erkennen kann.

Das Display wird mittels eines TWI Moduls angesteuert.
TWI = Two-Wire-Interface (oder I2C = Inter-Integrated Circuit)



Auch die Tasten und die 2-farbigen LEDs werden mit dem TWI verbunden. Dazu verwende ich einen MCP23017-E/SO 16-Bit I/O-Expander.

Das SD-Card-Modul wird via SPI mit dem Controller verbunden.
SPI = Serial Peripheral Interface



Ich habe mich für eine SD-Card im Normalformat entschieden. Micro-SD ist mir in der Handhabung zu fummelig. Die Konfigurationsdateien sind nur wenige Kilobyte groß. Die Speicherkapazität gebräuchlicher SD-Karten wird dadurch also nicht erschöpft.

Apropos fummelig:
Der MCP23017-E/SO hat ein 28-poliges SOIC Gehäuse, also ein SMD. Ebenso habe ich mich entschlossen, alle Widerstände und Kondensatoren als SMD auf die Leiterbahnseite zu montieren. Durch die Schalter, LEDs und das Display ist der Platz auf der Oberseite der Platine sehr begrenzt. Eine Hybridbestückung schuf Abhilfe.


Die Schaltung



Das Board

Maße: 68 mm x 100 mm
SD ist hier ein "Platzhalter" für einen Ausschnitt aus der Platine, in den das SD-Card-Modul eingefügt wird, und zwar im 90°-Winkel, an der Seitenwand des Gehäuses befestigt. Der Kreis daneben wird eine Bohrung für den Ein-Schalter, der leider tiefer ist, als der Abstand der Platine zur Frontplatte.

Bauteilliste:



Der Aufbau

Das Layout stammt noch von einer Vorversion und stimmt nicht zu 100% mit der oben dargestellten Version überein. Manche Fehler fallen erst beim Aufbauen auf. So fehlt JP6 für die Spannungsversorgung des SD-Card-Moduls - nicht notwendig, aber sinnvoll.
R11, der Pull-Up-Widerstand für den RESET-Pin des MCP23017, hatte ich schlicht vergessen und nachträglich aufgelötet.



Das TWI-Modul des Displays habe ich nicht direkt verlötet. Eine abgewinkelte Buchsenleiste lässt sich problemlos auf die Pads auflöten. Das Modul wird somit steckbar.



Eigentlich sind diese Module dafür gedacht, sie direkt von hinten mit dem Display zu verlöten. Da mein Display aber schon mit einer Stiftleiste bestückt war, hätte ich diese dazu entlöten müssen. Die Aufsteckvariante gefiel mir besser und brachte mehr verfügbare Bestückungsfläche auf der Platinenunterseite.



Verbindungen:


Funktionstest:

Die Firmware benötigte noch geringfügige Anpassungen und läuft nun.
Z.B. könnten für das 20m-Band die Antennen 3-5 genutzt werden. Vorgegeben und automatisch ausgewählt wird Antenne 3 (Dipol 20), erkennbar auch an der gelben LED. Die grünen LEDs zeigen an, welche Antennen für das 20m-Band noch in Frage kämen. Diese können dann durch Tastendruck ausgewählt werden.



Bis hierhin funktioniert es technisch schon mal. Als nächstes erfolgt der Einbau in ein Gehäuse und die Verkabelung mit den externen Steckverbindern. Eine Programmbeschreibung folgt.

[Teil 3...]