Verbindung zu ESP8266 Board (RFID Reader) nur nach reset möglich

  • Guten Morgen,

    Ich bin am Verzweifeln. Ich arbeite zur Zeit an einem Kassensystem mit RFID Karten zur Buchung.

    Ich hab 2 Scanner gebaut bestehend aus jeweils einem Wemos D1 Mini (ESP8266) und einem RC522 RFID Lese Modul.

    Die Scanner lesen die NUID, konvertieren sie zu einem String und senden sie über serial an einen PC. Am PC hab ich jetzt 3 AutoIt Scripts am laufen. 1 Script der die seriellen Daten von Scanner 1 empfängt und in eine Ini schreibt sobald ein neuer Wert erfasst wurde, das selbe nochmal in einem zweiten Script für Scanner 2 und jetzt testweise einen 3. Script der als Monitor dient und quasi die Daten aus der Ini liest und ausgibt.

    Das Ganze funktioniert auch soweit aber NUR wenn ich die boards resette. Sprich, ich verbinde 1 Scanner und starte den Scanner Script. Dann bekomme ich nen Verbindungs-Fehler (cant connect to com port "X"). Wenn ich dann das Wemos D1 Mini Board resette, und den Script nochmal starte läufts. (MANCHMAL auch nur nach Zufallsprinzip irgendwie).

    Ich steh eigentlich vor 2 Problemen jetzt. Einmal würde ich gerne 1 script haben, der gleichzeitig mehrere COM Ports lesen kann, kein Plan wie ich das mache ich blick schon bei dem Script nicht ganz durch (ist aus dem Forum hier glaube ich). Und 2. das Problem mit dem reset. Der PC ist ein alter Windows XP Rechner. Treiber sind korrekt installiert und laufen ja auch. werden auch im Gerätemanager als COM3 und COM4 angezeigt. Kann auch sein dass es am ESP8266 code liegt deswegen hab ich das sowohl hier als auch im ESP8266 forum gepostet. Aber hier mal den Fokus eher auf das erste Problem gelegt,

    WIE kann ich mit 1 Script mehrere COM Ports gleichzeitig auslesen um mir den Mist mit der Ini Datei und den unnötigen 3 scripten die parallel laufen müssen zu ersparen?

    Hier mal die verschiedenen Scripts:

    Scanner Script 1 (scanner script 2 is das gleiche nur anderer COM port):

    Hier mein Debug Script zum Auslesen:

    Und falls wir hier noch einen ESP programmierer haben zufällig, der Code vom Scanner (Wemos D1 Mini):

    Einmal editiert, zuletzt von julezrules (26. November 2021 um 10:30)

  • Du änderst ja im 1. Skript die Übertragungsparameter des COM-Ports. Passen die denn zu der Schnittstelle auf der Gegenseite (also deinem Scanner)?

    Das ist häufig ein Problem bei solchen Verbindungen, das die Einstellungen nicht zusammen passen.

  • Du änderst ja im 1. Skript die Übertragungsparameter des COM-Ports. Passen die denn zu der Schnittstelle auf der Gegenseite (also deinem Scanner)?

    Das ist häufig ein Problem bei solchen Verbindungen, das die Einstellungen nicht zusammen passen.

    Jap die passen, Verbindung funktioniert ja auch, halt immer erst, wenn ich das board kurz davor resette. Aber wie gesagt das ist grade nicht das Hauptproblem eigentlich. Ich hab auch gelesen dass diese COMMMG UDF nicht für virtuelle COM Ports ausgelegt sein soll, aber irgendwie find ich nix anderes außer das hier gerade aber das ergibt irgendwie gar keinen Sinn, denn erstens weiß ich nich was byte[6] für ne DLL sein soll xD oder wo die variable herkommt? Komischerweise sagen viele unter dem Post danke funktioniert aber das kann doch gar nich funktionieren so:

  • Hmm, war nur eine Idee. Mit DLL kenne ich mich leider nicht aus und kann dir dazu nichts sagen.

    BTW: Oben spricht er COM4 an und in der MsgBox ist von COM3 die Rede. PAsst irgendwie nicht zusammen,

  • Hmm, war nur eine Idee. Mit DLL kenne ich mich leider nicht aus und kann dir dazu nichts sagen.

    BTW: Oben spricht er COM4 an und in der MsgBox ist von COM3 die Rede. PAsst irgendwie nicht zusammen,

    Ja kleiner fehler beim übertragen ins forum hier. nich schlimm im original isses richtig.

  • Ich hatte mal eine kleine UDF für die serielle Schnittstelle geschrieben: SerialComm.au3 (eine kleine UDF zum Datenaustausch mit dem Arduino)

    Das Beispiel ist zwar für AutoIt <-> Arduino, aber beim ESP8266 funktioniert das genauso.

    Danke schonmal für deine Antwort. Ich habe jetzt folgenden Script am Laufen der funktioniert:


    Jetzt möchte ich aber 2 Arduinos verwenden bzw 2 COM Ports. Habe jetzt den Script so umgeschrieben aber leider funktioniert jetzt gar nichts mehr. Gar kein Output in der Konsole:

    Hättest du da evtl ne Idee für mich woran das liegt bzw wie ich das zum Laufen bekomme?

  • Hättest du da evtl ne Idee für mich woran das liegt bzw wie ich das zum Laufen bekomme?

    Hast Du schonmal nachgesehen, ob die Übertragungsparameter korrekt sind?

    Im Sketch verwendest Du "9600 Baud, 8N1". Wenn Du das nicht im AutoIt-Script einstellst, musst Du im Gerätemanager von Windows nachsehen.

    Aber mit WindowsXP habe ich schon seit Jahren nichts mehr am Hut. Warum so ein altes System?