Schon immer gab es den Wunsch ein Display am Svxlink Relais zu haben, um den ein oder anderen Status zu sehen.
Über den Sinn oder Unsinn reden wir mal nicht, man geht ja davon aus, das Relais steht auf dem Berg oder auf dem Dachboden, somit kann man garnicht auf das Display schauen, im Gegenteil es Verbraucht zusätzlich Strom.
Aber genial wäre es ein Display zu haben, was man sich ins Shack oder ins Wohnzimmer stellen könnte und den Status vom Relais oder auch DjSpot angezeigt zu bekommen.
LCD Blau 4×20 Lastheard
LCD Blau 16x2
LCD Display Grün 4x20
Der Aufwand dauert nicht mal 1h bis man das erste Rufzeichen auf dem Display sieht. Der Materialaufwand ist ca 10-20 Euro auch überschaubar.
Was benötigen wir:
Tipp: Ich bestelle meist mehrere um etwas zu sparen und gebrauchen kann man sowas immer, die Projekte kommen von ganz alleine .
* 1x Wemos D1 ( 1x https://amzn.to/3RZv1mi | 3x https://amzn.to/3DmmcyC | 5x https://amzn.to/3xjC5SO )
* 1x LCD Display 2×16 ( 1x https://amzn.to/3RBSAld | 3x https://amzn.to/3RBSAld | 5x https://amzn.to/3daACr1 )
* oder 4×20 ( 1x https://amzn.to/3d2DqGJ | 3x https://amzn.to/3RDblop , 5x https://amzn.to/3B6Lhe9)
* mögliches Gehäuse ( Weis > https://amzn.to/3BqsTNr | Schwarz https://amzn.to/3BNfSPu)
* ein paar Kurze Kabel um das Display mit dem Wemos zu verbinden
* Ladekabel und Netzteil
** (Optional, Praktischerweise könnte man noch einen Temperatursensor DS18b20 (https://amzn.to/3QAfvMf) mit verbauen und sich die Temperatur mit auf dem Display anzeigen lassen (an den 4,7kOhm Widerstand denken)
* Etwas Zeit
So haben wir alles auf dem Tisch liegen so bespielen wir den den Wemos D1 zuerst mit der ESPEasy Firmware.
Eine gute Anleitung findet ihr hier https://iotspace.dev/wemos-d1-mini-esp-easy-flashen/, wie ESPEasy auf den Wemos kommt.
Ein paar Kleinigkeiten sollten noch angepasst werden.
Ist man soweit, dann unter TOOLS > Advanced >
Dort den NTP Server aktivieren
Ist das erledigt, so geben wir dem Wemos noch einen passenden Netzwerknamen, dieser ist später eventuell wichtig, um den Wemos im Handy WLAN Hotspot anzusprechen.
Dazu gehen wir auf “Config” > und tragen bei Unit Namen das entsprechende ein.Unit Number sollte nicht 0 sein, ich habe hier die letzte Ziffer der IP eingetragen.
Für den Internen Wemos Netzwerkdienst darf dort keine 0 stehen.
So ist das erledigt so verbinden wir das Display mit dem Wemos laut Bild.
Anschaltung 2×16 (4×20) Display
Wichtig den Kontrast des Display’s erhöhen über den I2C Controller, Regler im Uhrzeigersinn auf Anschlag (3.3V) bei 5V ist es etwas weniger.
Display an Wemos Konfigurieren. Devices > ADD
Dann sollte man folgende Eintragungen machen. Trage in Line 1 etwas ein und drücke SUBMIT sollte der Text im Display auftauchen Herzlichen Glückwunsch…..
Falls nicht dann muss man einfach die I2C Adressen durchprobieren….
https://fm-funknetz.de/wp-content/uploa ... 8x1280.jpg
Nun kann man mittels Webbrowser testen ob wir das Display extern ansteuern können.
Webbrowser öffnen und folgende URL eingeben, Natürlich muss die IP Angepasst werden.
http://192.168.178.51/control?cmd=LCD,2 ... %20welt%22
Jetzt sollte in der 2ten Zeile auch ein Hallo Welt erscheinen. Gratulation nun gehts mit SVXlink weiter.
wir wechseln ins Verzeichnis cd /usr/share/svxlink/events.d/local
dort passen wir die ReflectorLogic.tcl an mit nano oder mcedit aufrufen.
Da suchen wir proc talker_start und talker_stop und ergänzen den Eintrag ” exec curl http://lcd-display-51.fritz.box/control ... 20start%22 & curl http://lcd-display-51.fritz.box/control ... 20TG$tg%22; ”
und
bei stop ” exec curl http://lcd-display-51.fritz.box/control ... %20stop%22 & exec curl http://lcd-display-51.fritz.box/control ... allsign%22; ” ein, Die IP / Host muss angepasst werden eventuell solle noch die variable selected_tg hinzugefügt werden mit dem if Befehl.
Schaut in die Vorlage.
Code: Alles auswählen
#
# Executed on talker start
#
# tg -- The talk group
# callsign -- The callsign of the talker node
#
proc talker_start {tg callsign} {
variable selected_tg
if {($tg == $selected_tg)} {
### LCD 4x20 Anzeigetext - IP/Hostadresse des Wemos eintragen 3x
#exec curl http://192.168.178.51/control?cmd=GPIO,14,0 & curl http://192.168.178.51/control?cmd=LCD,1,1,%22auf%20TG$tg%20spricht%22 & http://192.168.178.51control?cmd=LCD,2,1,%22$callsign%22;
### LCD 2x16 Anzeigetext - IP/Hostadresse des Wemos eintragen 3x
exec curl http://192.168.178.51/control?cmd=GPIO,14,0 & curl http://192.168.178.51/control?cmd=LCD,1,1,%22auf%20TG$tg%20ist%22 & http://192.168.178.51/control?cmd=LCD,2,1,%22$callsign%22;
}
}
#
# Executed on talker stop
#
# tg -- The talk group
# callsign -- The callsign of the talker node
proc talker_stop {tg callsign} {
variable selected_tg
variable ::Logic::CFG_CALLSIGN
set systemTime [clock seconds]
set last [clock format $systemTime -format %H:%M:%S];
if {($tg == $selected_tg)} {
### LCD 4x20 Anzeigetext - IP/Hostadresse des Wemos eintragen 3x
#exec curl http://192.168.178.51/control?cmd=GPIO,14,1 & curl http://192.168.178.51/control?cmd=LCD,1,1,%22Lastheard%20TG$tg%22 & exec curl http://192.168.178.51/control?cmd=LCD,2,1,%22$callsign%20$1234%22;
### LCD 2x16 Anzeigetext - IP/Hostadresse des Wemos eintragen 3x
exec curl http://192.168.178.51/control?cmd=GPIO,14,1 & curl http://192.168.178.51/control?cmd=LCD,1,1,%22Heard%20TG$tg%22 & exec curl http://192.168.178.51/control?cmd=LCD,2,1,%22$callsign%20$last%22;
}
}
Erweiterung Displaytimeout (Beleuchtung)
Unter dem Reiter des Displays > Display button auswählen zb GPIO-14 (D5) – Display Timeout Zeit einstellen, ich habe aktuell 60s das ist denke vollkommen ausreichend, wenn der letzte das QSO Beendet hat.
Danach legen wir unter Device > ADD > Switch Input Switch ein neues Device an….
Und dann natürlich Konfigurieren….. GPIO-14 auswählen , Switch Button “Normal Switch” und den Haken bei Enable nicht vergessen, danach Submit und Fertig.
In der Svxlink geschichte ist der http befehl schon mit dabei also sollte es nun schon funktionieren …..
Für Verbesserungsvorschläge einfach per Mail, PN, Telegram oder Oldschool per Funk
vy 73 Jens, dj1jay
Alles ohne Gewähr