![]() |
Maschinenstatus via LED visualisieren
Hallo Zusammen,
ich habe schon einiges gegoogelt und auch die Suche der DP bemüht, habe aber noch keinen Ansatzpunkt gefunden. Ich suche eine LED-Leuchte (rund oder als Bar), die ich via Delphi-Programm (welches ich schreiben möchte) steuern kann. Der Hintergrund ist, dass ich den Maschinestatus aus einer Datenbank bekomme und diesen gerne in der Halle und in einem Büro mit unterschiedlichen Farben visualisieren möchte. Meine Vorstellung ist, dass ich die Leuchte via Netzwerk, oder via WLAN erreichen kann. Mein Problem: Ich programmiere zwar schon ein paar Jahre (hauptsächlich Datenbank-Anwendungen), aber ich habe überhaupt keine Ahnung von der IoT Steuerung mit Delphi. Ich habe weder eine Idee, welche Hardware ich nehmen kann, noch welche Delphi Komponenten oder externe Komponenten ich dazu benötigen würde. Meine Entwicklungsumgebung beschränkt sich heute auf Delphi 10 Entp und den TMS-Komponenten. Ich vermute, dass es hier einige gibt, die solche Aufgabenstellungen schon öfter realisiert haben. Ich würde mich sehr freuen, wenn Ihr mir einen Schubs gebt. Vielen Dank Patrick |
AW: Maschinenstatus via LED visualisieren
Hallo,
evtl. nicht der perfekte Ansatz, aber einen den ich schon verwendet habe: es gibt von Advantech eine USB Relaisbox, mittels der man elektrische Verbraucher Schalten kann. Das Ding hat dann allerdings gleich 8 Relais und 8 Digitaleingänge (die könnte man für Externe Schalter die was im Programm bewirken sollen benutzen). Schaltleistung des Relais ist glaube ich 60W. Erhältlich z.B. hier: ![]() Grüße TurboMagic |
AW: Maschinenstatus via LED visualisieren
Es gibt was von mehreren Herstellern. (eine Winzige sogar von Apple, aber die funktioniert offiziell nur an Apples)
![]() ![]() Oder einfach eine "normale" Signalleuchte und einen kleinen Arduino/ESP + Relais oder TTL-Treibermodul. [edit] Und jupp, natürlich geht auch ein Transistor-/Relais-Box. (das Programm für Arduino/ESP zu schreiben ist aber auch nicht schwer) [/edit] Auch einige USB-SerialTTL-Module (COMPorts) haben steuerbare aus Ein-/Ausgänge (in=CTS out=RTS/DTR), welche sich einfach manuell oder über SerialPort-Komponenten steuern lassen. CreateFile + ![]() ![]() Und auch z.B. USB-Serial-Module mit FTDI232 und CH341 haben noch zusätzliche frei programmierbare Ports (sind aber nicht überall zu Pins gelegt), welche nicht nur Binär, sondern aus I²C, SPI und mehr können, aber dafür braucht man eine spezielle API bzw. DLL. ![]() ![]() ![]() |
AW: Maschinenstatus via LED visualisieren
Hallo Zusammen,
vielen Dank für die Anregungen. Habe eine Menge Wörter / Abkürzungen gefunden, mit denen ich mich erst einmal vertraut machen muss. Das wird eine Weile dauern, ich melde mich dann wieder Vielen Dank Patrick |
AW: Maschinenstatus via LED visualisieren
Mal eine doofe Frage:
Aus wieviel Meter Entfernung soll man so eine LED in der Produktionshalle sehen? Schreib doch einfach ein normales Delphiprogramm, das in beliebigen Farben einen kompletten Bildschirm ausfüllt und häng einen beliebig großen oder kleinen Monitor in der Halle auf, der das anzeigt. Wenn's sparsam sein soll, mach es mit raspberry pi oder kleiner und über ein Linux Script / Webseite. Ein beliebiger Funkschalter könnte zumindest einen Zustand per Leuchtmittel anzeigen. Eine WLAN Lampe ala Philips Hue kann auch mehrere Zustände. Usw. usw. Das hast Du an einem halben Tag fertig und ist bestimmt billiger als Deine Programmierarbeit. Mag sein, dass es alles für Dein Problem nicht passt, ist nur eine Idee. |
AW: Maschinenstatus via LED visualisieren
@jobo brachte mich auch grad auf eine weitere Idee.
Die Lampen mit Schalter und da einen ![]() ähhhhhhh, ich meinte ... :lol: Die Shelly gibt mit 1 bis 4 Ausgängen (für 5V, 12V-24V oder 230V) und sie lassen sich auch ohne Cloud oder App direkt mit einer URL über WLAN ansteuern. (TCP/IP bzw. TIdHTTP oder TNetHTTPClient oder mit einer REST-Komponente) z.B. Shelly RGBW2 (anstatt einem LED-Streifen bis zu 4 einzelne 12V-LEDs/LEDGruppen, ![]() Shelly Uni Shelly Pro *** Shelly Plus 2PM oder Shelly Duo Shelly Bulb RGBW ![]() bei Mediamarkt, Amazon, ............ z.B. für Shell PlugS (bei anderen Shelly mit Relais oder digitalen Ausgängen ähnlich) http://{ip-oder-name}/relay/0?turn=on http://{ip-oder-name}/relay/0?turn=on&timer=30 http://{ip-oder-name}/relay/0?turn=off http://{ip-oder-name}/relay/0?turn=toggle Und über HTTP-GET lässt sich der Status (on/off/stromverbrauch) als JSON abfragen ![]() runter scrollen und siehe (via TCP/IP oder HTTP an Port 80 des {ip-oder-name} ) GET /status (ich glaub das ging immer, auch wenn der Zugriff via Name+Password gesichert ist) GET /settings GET /settings/relay/0 GET /relay/0 |
AW: Maschinenstatus via LED visualisieren
Zitat:
Das ist eine coole Idee! Werde mir mal die Komponenten beschaffen und dann ein bißchen ausprobieren! VIELEN DANK! Patrick |
AW: Maschinenstatus via LED visualisieren
Zum Einrichten gibt es die App (Handy),
aber es geht manuell auch einfach via Browser im PC/Handy. Knopf lange drücken, dann starten die Module einen WLAN-AP. Einfach dein WLAN damit verbinden und dann im Browser ![]() Dort kannst dann mindestens den WLAN-Zugang einrichten, damit sich die Shelly mit deinem Router verbindet, sowie Cloud und Co. deaktivieren. Zusammen mit der Hilfe zur APIv1 sollte sich in der Oberfläche alles finden lassen. (Einrichtung per Browser und nicht über deine Anwendung ist das Einfachste) Über die Actions kannst du dich auch vom Shelly anrufen lassen, z.B. bei Knopfdruck oder Statusänderung. http://{ip-oder-name-deines-httpservers}:port/irgendwas kommt dann z.B. im TIdHTTPServer.OnCommandGet rein. |
AW: Maschinenstatus via LED visualisieren
Wenn Du mit der Shelly anfängst, dann schau Dir mal an, wie man die für den lokalen Betrieb umstellen kann und nicht über die Cloud des Anbieters gehen muss.
Hier sind Hinweise: ![]() |
AW: Maschinenstatus via LED visualisieren
Anbieter Cloud, das meintest Du wahrscheinlich auch:
Zitat:
|
AW: Maschinenstatus via LED visualisieren
Hmm. Ich lese TMS Komponenten und Shelly.
Dann würde ich über MQTT gehen. Eventuell ein ESP8266 (z.B Wemos D1) mit WLED Firmware. Da ist dann mit 2-3 Bauteilen alles erledigt. Ebenfalls über MQTT steuerbar. |
AW: Maschinenstatus via LED visualisieren
Bei MQTT brauchst du einen Server (MQTT-Broker) daheim (z.B. Raspberry Pi oder im Docker der Synology),
aber ja, das ist das Gängigste, was Viele privat nutzen. Die Shelly kann mehrere solcher Protokolle (MQTT, ColoT), sowie seine Cloud Control API (die ist von der GUI her gleich und zur API her ähnlich der gen1, glaub ich), aber auch eine "Common HTTP API" (gen1 / First Generation Shelly Devices API), eine gen2 / Second Generation Shelly Devices API aka "Shelly-NG" (RPC, Remote Procedure Calls über JSON-RPC 2.0), eine Cloud-to-Cloud Integrator API (z.B. für Sprachkisten von Amazon, Google usw., sowie auch eigene Clouds ala AWS) Zum Verknubbeln mehrerer Geäte kann man MQTT benutzen oder eben die Shelly-Cloud. Zum direkten Ansprechen einzelner Geräte ist aber HTTP wesentlich einfacher / unkomplexer. Und man kann sogar die Geräte direkt untereinander via HTTP verknubbeln. z.B. Shelly-Schalter oder der IR-Sensor bekommt in seine Actions die URLs (HTTP-Adressen) der Shelly-Steckdose. Bei MQTT sagst du dem MQTT-Brocker was du machen willst {publish}. Beim Brocker hat sich auch das Gerät angemeldet {subscribe} und bekommt zu seiner/seinen abonierten Aktion(en) {topic} gesagt, was es machen soll. (intern auch via REST) ![]() Dagegen beim HTTP (REST) einfach ans Endgerät ein http://{ip-oder-name}/relay/0?turn=on und fertig. Schön ist, dass die Shelly per se schon offene Systeme sind (und es aktuell auch so bleiben soll), mit einer guten Dokumentation und wachsenden Fangemeinde. Man darf sich sogar beim Hersteller melden und Wünsche zur API oder neuen Geräten kund tun. Dagegen z.B. smarte Steckdosen wie von gosund und sonoff (Smart on off :lol:), wo ein unverriegelter ![]() z.B. mit ![]() ![]() ![]() |
AW: Maschinenstatus via LED visualisieren
Zitat:
|
AW: Maschinenstatus via LED visualisieren
Zitat:
Ich finde das Thema ziemlich spannend, da die Ansteuerung von Hardware einen ziemlich großen Teil meiner Arbeit ausmacht. Allerdings kamen dabei LEDs bzw. irgendwelche anderen visuellen Signal-Ausgaben (außer Monitoren) bisher nicht vor. |
AW: Maschinenstatus via LED visualisieren
Was ist das denn für eine Maschine? Vielleicht hat der Hersteller eh was zum nachrüsten, was denn aktuellen Zustand anzeigt (rot - Fehler, gelb - sonstwas, grün - alles läuft).
Wie teuer soll denn die LED-Leuchte maximal sein? ![]() |
AW: Maschinenstatus via LED visualisieren
Ich habe so etwas mal in einem Projekt eingesetzt
![]() Eine Relaiskarte die Du über Ethernet ansteuerst. Darüber wurden dann die verschiedenen Leuchten gesteuert Gibt es auch mit weniger / mehr Relais, je nachdem wieviel Du ansteuern möchtest |
AW: Maschinenstatus via LED visualisieren
Zitat:
Zitat:
|
AW: Maschinenstatus via LED visualisieren
Zitat:
Grüße Klaus |
AW: Maschinenstatus via LED visualisieren
Zitat:
Dann würde ich(*1) eher einen WLan-Router vorschalten, auch wenn der mehr kostet. Aber den tauscht man bei einem Fehler einfach aus, während man bei einem Rapsi dann in Versuchung kommt, das Problem zu debuggen. (*1: Zumindest meine professionelle Persona, als Nerd würde ich den Raspi bevorzugen.) |
AW: Maschinenstatus via LED visualisieren
WLAN von/zu LAN:
![]() ![]() Aber wenn es nur ums Fernschalten geht, dann ist ein selbst Raspi-ZeroW oder ComputeModule doch etwas übertrieben. ![]() ![]() oder ![]() oder irgend ein anderer Arduino-Kompatibler an USB/WLAN/BT. ![]() ![]() Oder eben ein "vorprogrammiertes" USB/LAN/WLAN-Relais/Steckdose ala Shelly und Co. |
AW: Maschinenstatus via LED visualisieren
Zitat:
Das hier hat doch zum Beispiel nur zwei Relais ![]() |
AW: Maschinenstatus via LED visualisieren
Auf der Seite von Antratek gibt es aber auch WiFi Module...
![]() |
AW: Maschinenstatus via LED visualisieren
Stimmt sehen auch interessant aus
|
AW: Maschinenstatus via LED visualisieren
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Zusammen,
ich will man eine erste Erfolgsmeldung zurückgeben. Ich habe mir die Shelly RGBW2 Steuerung beschafft, einen Mini-Traffo um von 230V auf 24V zu kommen und eine LED-Signal-Leuchte. Habe alles wie im Bild verkabelt. ACHTUNG: ICH BIN KEIN ELEKTIKER UND KANN KEINE VERANTWORTUNG FÜR NACHBAUTEN ÜBERNEHMEN! Ich habe mit der Shelly App die Steuerung ins WLAN gebracht und dann die ersten Verbindungsversuche vorgenommen. Ich musste auf den Modus WHITE stellen, damit die Leuchte korrekt angesteuert wurde. Über den Browser und der IP-Adresse konnte ich auf ein vorhandenes Web-Interface zugreifen und die Leuchte an sich ausprobieren. Die SupportSite von Shelly war wirklich hilfreich: Mit ![]() Mit ![]() Mit ![]() Bei jeder Aktion und bei der Abfrage ![]()
Delphi-Quellcode:
{"ison":false,"mode":"white","brightness":70,"power":1.26,"overpower":false}
Ich habe diesen bis jetzt ale ein String behandelt, geht aber mit Sicherheit charmanter:
Delphi-Quellcode:
Ich habe ein kleines Test-Programm geschrieben. Beim Start frage ich den Status der Einzelleuchten ab und tragen den ON/OFF Status und die Eingestellte Helligkeit in meine Maske ein.
function TForm1.MyStreamToString(aStream: TStream): string;
var SS: TStringStream; begin Result := '['; if aStream <> nil then begin SS := TStringStream.Create(''); try SS.CopyFrom(aStream, 0); Result := Result + SS.DataString; Result := Result + ']'; finally SS.Free; end; end else begin Result := ''; end; end;
Delphi-Quellcode:
procedure TForm1.Get_Status_JSON(LStream: TMemoryStream; Swtch: TToggleSwitch; edt_Brightness: TAdvEdit);
var ClientItem: TJSONValue; ClientList: TJSONArray; ResultString: string; Status: boolean; Brightness: integer; I: integer; begin ClientList := TJSONArray.Create; Try ResultString := MyStreamToString(LStream); ClientList := TJSONObject.ParseJSONValue(ResultString) as TJSONArray; for ClientItem in ClientList do begin if not ClientItem.TryGetValue<boolean>('ison', Status) then ShowMessage('Fehler: Status nicht gefunden.'); if not ClientItem.TryGetValue<integer>('brightness', Brightness) then ShowMessage('Fehler: Brightness nicht gefunden.'); end; if Status then Swtch.State := tssOn; if not Status then Swtch.State := tssOff; edt_Brightness.Text := IntToStr(Brightness); Finally ClientList.Free; End; end;
Delphi-Quellcode:
Aktuell prüfe ich noch, wie ich die Leuchte blinken lassen kann.
procedure TForm1.FormShow(Sender: TObject);
var ResultString: string; LStream: TMemoryStream; begin LStream := TMemoryStream.Create; Try Client1.get(lbl_Basic_0.Caption + edt_Channel_0.Text, LStream); Get_Status_JSON(LStream, Swtch_0, edt_Bright_0); LStream.SetSize(0); Client1.get(lbl_Basic_1.Caption + edt_Channel_1.Text, LStream); Get_Status_JSON(LStream, Swtch_1, edt_Bright_1); LStream.SetSize(0); Client1.get(lbl_Basic_2.Caption + edt_Channel_2.Text, LStream); Get_Status_JSON(LStream, Swtch_2, edt_Bright_2); Finally LStream.Free; End; end; So viel zum jetztigen Zeitpunkt als Feedback. Vielen Dank für Eure Anregungen und Unterstützung Patrick |
AW: Maschinenstatus via LED visualisieren
Zitat:
. keine 3W ![]() * will man nicht den Stecker abschneiden und dann Aderendhülse drauf oder mit Wago ala 221, dann gibt es die auch mit Adaptern, bzw. Adapter einzeln. ![]() * Ein LED-Trafo ist aber auch nicht verkehrt. (sind ja auch LEDs) * Mit isolierten 24V kann dir auch nichts Lebensgefährliches passieren. * Und dann noch die guten Wago-Klemmen benutzt :thumb:, wobei die WAGO 221 etwas Platz sparen (nichts zum Schrauben, nicht der billige Chinaabklatsch und löten ist auch nicht nötig empfohlen). * den ungenutzten Schutzleiter dennoch am Ende isoliert * Direkt das Netzkabel in den Trafo ... wenn Schraubklemmen und mehrdrähtig/flexibel, dann nur mit Aderendhülsen ... gibt es auch fertig ![]() ![]() Zitat:
|
AW: Maschinenstatus via LED visualisieren
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Habe es gerade umgebaut und klappt super - finde ich deutlich smarter als den dicken Trafo dazwischen!!! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz