Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Maschinenstatus via LED visualisieren (https://www.delphipraxis.net/213091-maschinenstatus-via-led-visualisieren.html)

v2afrank 26. Mai 2023 05:41

AW: Maschinenstatus via LED visualisieren
 
Zitat:

Zitat von dummzeuch (Beitrag 1522775)
Zitat:

Zitat von v2afrank (Beitrag 1522774)
Ich habe so etwas mal in einem Projekt eingesetzt
https://www.antratek.de/8-relaismodule-ethernet-eth008
Eine Relaiskarte die Du über Ethernet ansteuerst. Darüber wurden dann die verschiedenen Leuchten gesteuert

Das sieht interessant aus. Gibt's das auch mit WLAN statt Ethernet? Gesehen habe ich das auf dieser Seite nicht, aber vielleicht weißt Du das ja.

Zitat:

Zitat von v2afrank (Beitrag 1522774)
Gibt es auch mit weniger / mehr Relais, je nachdem wieviel Du ansteuern möchtest

Ich habe dort nur noch ein Modul mit 4 Relais gesehen, das hatte dann aber einige I/O-Ports. OK, man muss die ja nicht nutzen.

Nein weiß ich leider nicht. Wir hatten in unserer Anwendung sowieso Ethernet liegen, da war es einfach machbar.

Das hier hat doch zum Beispiel nur zwei Relais
https://www.antratek.de/eth002

pesi 26. Mai 2023 07:08

AW: Maschinenstatus via LED visualisieren
 
Auf der Seite von Antratek gibt es aber auch WiFi Module...
https://www.antratek.de/i-o-controllers/wireless

v2afrank 26. Mai 2023 08:52

AW: Maschinenstatus via LED visualisieren
 
Stimmt sehen auch interessant aus

Ykcim 5. Jun 2023 20:18

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 http://IP-Adresse/white/0?turn=on kann ich die oberste Leuchte einschalten
Mit http://IP-Adresse/white/0?turn=off kann ich die oberste Leuchte wieder ausschalten

Mit http://IP-Adresse/white/0?brightness= [1-100] kann die Helligkeit gesteuert werden

Bei jeder Aktion und bei der Abfrage http://IP-Adresse/white/0 bekommt man einen String mit dem aktuellen Status von der Steuerung als Rückgabewert:
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:
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;
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.

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:
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;
Aktuell prüfe ich noch, wie ich die Leuchte blinken lassen kann.

So viel zum jetztigen Zeitpunkt als Feedback.

Vielen Dank für Eure Anregungen und Unterstützung
Patrick

himitsu 6. Jun 2023 00:09

AW: Maschinenstatus via LED visualisieren
 
Zitat:

ACHTUNG: ICH BIN KEIN ELEKTIKER UND KANN KEINE VERANTWORTUNG FÜR NACHBAUTEN ÜBERNEHMEN!
* Minimal reicht bestimmt auch ein kleines Steckernetzteil (so viel Strom sollte die Ampel nicht ziehen) und mit der Netzspannung kann man da nicht in Kontakt kommen.
. keine 3W https://www.amazon.de/dp/B092CW8GBX
* 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. https://dehso.de/Universalnetzteil-m...Port-3-12V-24W
* 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 https://www.conrad.de/de/p/bachmann-...m-1838646.html https://www.amazon.de/dp/B000OH23WW

Zitat:

Ich habe diesen bis jetzt ale ein String behandelt, geht aber mit Sicherheit charmanter:
Das JSON hast ja schon gefunden.

Ykcim 6. Jun 2023 13:25

AW: Maschinenstatus via LED visualisieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

* Minimal reicht bestimmt auch ein kleines Steckernetzteil (so viel Strom sollte die Ampel nicht ziehen) und mit der Netzspannung kann man da nicht in Kontakt kommen.
. keine 3W https://www.amazon.de/dp/B092CW8GBX
Heute angekommen :-D

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:50 Uhr.
Seite 3 von 3     123   

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