AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Maschinenstatus via LED visualisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Maschinenstatus via LED visualisieren

Ein Thema von Ykcim · begonnen am 22. Mai 2023 · letzter Beitrag vom 6. Jun 2023
Antwort Antwort
Seite 3 von 3     123   
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#21

AW: Maschinenstatus via LED visualisieren

  Alt 26. Mai 2023, 05:41
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.

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
  Mit Zitat antworten Zitat
pesi

Registriert seit: 29. Aug 2003
Ort: 36217 Ronshausen
117 Beiträge
 
Delphi XE5 Professional
 
#22

AW: Maschinenstatus via LED visualisieren

  Alt 26. Mai 2023, 07:08
Auf der Seite von Antratek gibt es aber auch WiFi Module...
https://www.antratek.de/i-o-controllers/wireless
  Mit Zitat antworten Zitat
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
571 Beiträge
 
Delphi XE2 Professional
 
#23

AW: Maschinenstatus via LED visualisieren

  Alt 26. Mai 2023, 08:52
Stimmt sehen auch interessant aus
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Maschinenstatus via LED visualisieren

  Alt 5. Jun 2023, 20:18
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:
{"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
Miniaturansicht angehängter Grafiken
20230604_004815_img_4445_edited.jpg  
Patrick

Geändert von Ykcim ( 5. Jun 2023 um 23:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.147 Beiträge
 
Delphi 12 Athens
 
#25

AW: Maschinenstatus via LED visualisieren

  Alt 6. Jun 2023, 00:09
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 , 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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 6. Jun 2023 um 00:35 Uhr)
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#26

AW: Maschinenstatus via LED visualisieren

  Alt 6. Jun 2023, 13:25
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

Habe es gerade umgebaut und klappt super - finde ich deutlich smarter als den dicken Trafo dazwischen!!!
Miniaturansicht angehängter Grafiken
netzteil.jpg  
Patrick

Geändert von Ykcim ( 6. Jun 2023 um 21:49 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz