Unit Serial und ESP8266

Antworten
wennerer
Beiträge: 614
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Unit Serial und ESP8266

Beitrag von wennerer »

Hallo,
ich habe mit der Arduino IDE ein kleines Programm auf einen ESP8266 geschrieben das ca. alle 5 Sekunden den Text "Mein erstes Writeln" sendet.
Mit CuteCom sieht das dann so aus:
CuteCom1.png
CuteCom1.png (11.23 KiB) 389 mal betrachtet
Ich versuche nun schon länger in Lazarus ein kleines Programm zu schreiben mit dem ich diesen Text empfangen kann. Am liebsten würde ich es mit der Unit Serial machen weil ich dann nichts weiter installieren muss. Ich habe schon einiges gelesen und probiert aber leider habe ich immer noch keine Ahnung was ich da eigentlich alles tun muss.

Mein Code schaut schaut bisher so aus (habe da natürlich schon vieles probiert was ich mich gar nicht zu zeigen traue :D ):

Code: Alles auswählen

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
  serial;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button_Close: TButton;
    Button_Read: TButton;
    Button_Open: TButton;
    Label1: TLabel;
    Memo1: TMemo;
    StaticText1: TStaticText;
    procedure Button_CloseClick(Sender: TObject);
    procedure Button_OpenClick(Sender: TObject);
    procedure Button_ReadClick(Sender: TObject);
  private
    SerHandle: TSerialHandle;
  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button_OpenClick(Sender: TObject);
begin
 SerHandle := SerOpen('/dev/ttyUSB0');
 if SerHandle = 0 then
  begin
   showmessage('Handle error (port not available, etc.)');
  end
 else
  begin
   serial.SerSetParams(SerHandle,74880,8,NoneParity,1,[]);
   showmessage('Port opened successfully ');
  end;
end;

procedure TForm1.Button_CloseClick(Sender: TObject);
begin
 SerClose(SerHandle);
end;

procedure TForm1.Button_ReadClick(Sender: TObject);
var Res   : LongInt;
    value : byte;
begin
 Res:= SerRead(SerHandle,value,1);

 Label1.Caption := inttostr(Res);

 if Res > 0 then Memo1.Lines.Add(inttostr(value));
end;



end.  
Das Ergebnis sieht dann so aus:
Form.png
Form.png (3.84 KiB) 389 mal betrachtet
Für Erklärungen, Tipps, Code und Links wäre ich sehr dankbar!

Viele Grüße
Bernd

PS: Scheinbar kann ich grade keine Bilder hochladen?

Benutzeravatar
theo
Beiträge: 10946
Registriert: Mo 11. Sep 2006, 19:01

Re: Unit Serial und ESP8266

Beitrag von theo »

Ich denke üblicherweise nimmt man dafür Synapse Synaser.

https://wiki.freepascal.org/Hardware_Access#Synaser

wennerer
Beiträge: 614
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Als Bitmap funktioniert es, also hier die Bilder:
CuteCom.bmp
CuteCom.bmp (1.45 MiB) 379 mal betrachtet


Form.bmp
Form.bmp (550.83 KiB) 379 mal betrachtet

Mathias
Beiträge: 6974
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Unit Serial und ESP8266

Beitrag von Mathias »

Ist das nur bei mir so, das ich im ersten Post die Bilder nicht sehe ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

wennerer
Beiträge: 614
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Hallo Matthias,
ich dachte gestern das liegt am Format deshalb hab ich es dann im zweiten Beitrag mit Bmp probiert und es ging. Aber du hast recht es liegt am ersten Post. Hab es grade getestet.

Viele Grüße
Bernd

wennerer
Beiträge: 614
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Hallo,
erstmal Danke an Theo für den Tipp mit Synaser. Damit kann ich schon mal was empfangen.

Falls sich jemand dafür interessiert bzw. was verbessern kann hier mein Versuch:

Code: Alles auswählen

program SynaserTest;

{$mode objfpc}{$H+}

uses
  Classes,SysUtils,Synaser,Crt;

 procedure ReadMyESP8266;
  var
    ser: TBlockSerial;
    Value: string;
  begin
    ser:=TBlockSerial.Create;
    try
      ser.Connect('/dev/ttyUSB0');
      Sleep(1000);
      ser.config(74880,8, 'N', SB1, False, False);
      Write('Device: ' + ser.Device + '   Status: ' + ser.LastErrorDesc +' '+
      Inttostr(ser.LastError));
      Sleep(1000);
      repeat
        Value := ser.RecvString(1000);
        if Value <> '' then
         writeln(Value);
      until keypressed;
    finally
      Writeln('Serial Port will be freed...');
      ser.free;
      Writeln('Serial Port was freed successfully!');
    end;
  end;

  begin
   ReadMyESP8266;
  end.
Sieht im Terminal dann so aus:
Terminal.bmp
Terminal.bmp (873.69 KiB) 89 mal betrachtet
PS: Seltsam konnte eben keine PNG anhängen aber Bmp geht?

Viele Grüße
Bernd

Benutzeravatar
theo
Beiträge: 10946
Registriert: Mo 11. Sep 2006, 19:01

Re: Unit Serial und ESP8266

Beitrag von theo »

wennerer hat geschrieben: So 13. Jul 2025, 09:42 PS: Seltsam konnte eben keine PNG anhängen aber Bmp geht?
Stimmt ja nicht. Du konntest es schon anhängen.
Es hat auch eine Dateigrösse, man kann dein Bild auch downloaden.
Es hat einen PNG Header.
Da ist einfach nichts drauf, auf deinem PNG.
Das Forum funktioniert schon (Dein BMP in ein PNG umgewandelt):
Dateianhänge
Form.png
Form.png (16.62 KiB) 79 mal betrachtet

wennerer
Beiträge: 614
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Das ist echt seltsam. Ich habe eben noch mal alle PNG's von gestern und heute (und auch Andere) getestet und die wurden alle in der Vorschau angezeigt. Also so wie es sein soll. Vorhin war da nur ein graues Rechteck (habe bestimmt nichts anders gemacht) und im ersten Beitrag sieht man ja das da nur graue Rechtecke sind. Keine Ahnung woher das kommt.

Viele Grüße
Bernd

Benutzeravatar
theo
Beiträge: 10946
Registriert: Mo 11. Sep 2006, 19:01

Re: Unit Serial und ESP8266

Beitrag von theo »

wennerer hat geschrieben: So 13. Jul 2025, 10:06 Das ist echt seltsam. Ich habe eben noch mal alle PNG's von gestern und heute (und auch Andere) getestet und die wurden alle in der Vorschau angezeigt. Also so wie es sein soll. Vorhin war da nur ein graues Rechteck (habe bestimmt nichts anders gemacht) und im ersten Beitrag sieht man ja das da nur graue Rechtecke sind. Keine Ahnung woher das kommt.
Wenn du es mit den PNG nicht hinbekommst, mach lieber JPEG.
Die BMP sind kaum komprimiert -> Unnötig grosse Dateien.

Antworten