Wemos 1d id Seriennummer und technische Daten auslesen

Hallo.
Ich habe hier einen wemos 1d (Original Wemos Lolin D1 Pro Mini V2.0.0 NodeMCU Arduino ESP8266 - MAKERSHOP.DE) und möchte eine eindeutige I'd, Seriennummer bzw. Weitere Technische Daten über die arduino Software auslesen.
Vielen Dank für jede Antwort wie ich dies durchführen könnte

Nimm mal 74880 Baud im seriellen Monitor und für die serielle, da bekommst du einige Infos.

KA ob die dir reichen.

Danke für die Antwort.
Leider bin ich da recht unerfahren mit Arduino.
Kannst du mir Mitte nochmals helfen wie ich 74880 Baud in arduino einbauen muss um dann im Monitor auslesen zu können.
Vielen Dank

Z.B. im Setup:

Serial.begin(74880);

Und im seriellen Monitor ebenso.

haiflosse:
.....möchte eine eindeutige I'd, Seriennummer.....

Gruß Fips

Danke für die Antworten.
Bei Serial.begin (74880) bekomme ich folgende Informationen:

ets Jan 8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
v09f0c112
..............

Nur sind diese Informationen bei jedem Board die selben.

Auch habe mir den Link von @Derfips angesehen.
Leider weiß ich nicht wie ich dies vewenden kann.
Muss ich da etwas vorher noch installieren?

Ich denke die Zeile uint32_t getChipId(); liefert mir die ID.

Danke

Den ESP8266-Core. Aber den solltest Du schon installiert haben, wenn Du schon mit dem ESP8266 arbeiten kannst.

Gruß Tommy

Danke für die Antwort.
Ich habe laut dieser Seite installiert: https://arduino-projekte.info/installation-eps8266-modul-wie-z-b-wemos/

Wenn ich jetzt aber zu Bibliotheken verwalten sehe kann ich unter esp folgende Instllation feststellen:

esp8266 Built-In by Simon Peter, Markus Sattler, Ivan Grokhotkov Version 1.0.0.0
ESP8266 sketches examples

Ich glaube aber mich erinnern zu können dass ich dort esp822 by ESP8266 Community Version 2.3.0 installiert zu haben. Kann ich aber jetzt nicht niergends finden.

Bei Voreinstellungen unter zusäztliche Boardverwalter-URLS habe ich folgenen Eintrag stehen: https://raw.githubusercontent.com/esp8266/esp8266.github.io/master/stable/package_esp8266com_index.json

D.h. ich müsste dann uint32_t getChipId(); einfach direkt verwenden können?
Danke

Die Version, die Du hast kenne ich nicht.
Vorschlag: Deinstalliere in der IDE alles zum ESP8266 und lösche den Eintrag in den Voreinstellungen.
Dann schließe die IDE, starte sie neu und gib diese Adrresse ein:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Dann installiere die Version 2.7.1 oder 2.7.3

Gruß Tommy

Danke.
Habe nun die Version 2.7.3 installiert.
Wie kann ich nun z.B. die getChipId() korrekt im Monitor aufrufen bzw. in eine Variable speichern.
Danke

uint32_t id = ESP.getChipId();

Gruß Tommy

Vielen Dank.
Wie könnte ich die id noch über Serial.println ausgeben.
Danke

haiflosse:
Wie könnte ich die id noch über Serial.println ausgeben.

Wenn Du noch nicht weißt, wie man einen Wert auf der Seriellen Schnittstelle ausgibt, dann solltest Du ganz schnell damit anfangen, die einfachsten Grundlagen zu erlernen.

Schau Dir dazu die Beispiele in der IDE an.

Gruß Tommy

Danke.
Habe folgendes gefunden:
printf("id: %" PRIu32 "\n",id);
lg

Du solltest Dich mit den printf-Formaten beschäftigen, wenn Du es benutzen willst. Die Ausgabe geht einfacher, dazu musst Du aber ein paar Grundlagen lernen.

Gruß Tommy

Danke für die Antwort.

Ich habe noch ein anderes Problem.
Wie kann ich die id an eine Variable hinzufügen

uint32_t id = ESP.getChipId();
String url = "/settings.php?board="+id;

Leider wird in meinem Fall kein Wert bei id übergeben.
Danke nochmals

haiflosse:
Leider wird in meinem Fall kein Wert bei id übergeben.
Danke nochmals

https://de.cppreference.com/w/cpp/language/static_cast

String url = "/settings.php?board=" + static_cast<String>(ESP.getChipId());

Gruß Fips

haiflosse:
Wie könnte ich die id noch über Serial.println ausgeben.

Kennst Du schon die Referenz? Nicht erschöpfend aber ein Anfang.

Varianten gibt es einige...

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println(F("\ntest"));

  // by Fips
  String fips = "/settings.php?board=" + static_cast<String>(ESP.getChipId());
  Serial.println(fips);

  uint32_t id = ESP.getChipId();
  //Concat mit +=
  Serial.println(id);
  String url = "/settings.php?board=";
  url += id;
  Serial.println(url);

  //alternative
  String aString;
  aString.reserve(42);                       // dem String Objekt eine fixe Größe vergeben https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/reserve/
  aString = "/settings.php?board=";
  aString += id;
  Serial.println(aString);

  // b wie besser
  String bString;
  bString.reserve(42);                       // dem String Objekt fixe Größe vergeben https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/reserve/
  bString = F("/settings.php?board=");       // Fixtext im Progmem
  bString += id;
  Serial.println(bString);

  // c string / char array
  char c[42];
  char cId[11];  //uint32_t 10 Stellen + 1 Stelle für Nullterminator
  strcpy(c, "/settings.php?board=");
  itoa(id, cId, 10);
  strcat(c, cId);
  Serial.println(c);

  /*
    // other infos from https://github.com/esp8266/Arduino/blob/master/cores/esp8266/Esp.h#L107
    String coreVersion = ESP.getCoreVersion();
    String fullVersion = ESP.getFullVersion();
    uint8_t bootVersion = ESP.getBootVersion();
    uint8_t bootMode = ESP.getBootMode();
    Serial.print (F("coreVersion = ")); Serial.println(coreVersion);
    Serial.print (F("fullVersion = ")); Serial.println(fullVersion);
    Serial.print (F("bootVersion = ")); Serial.println(bootVersion);
    Serial.print (F("bootMode = ")); Serial.println(bootMode);
  */
}

void loop() {
  // put your main code here, to run repeatedly:

}

PS: wobei so als Anmerkung: eine technische ID des Herstellers würde ich nicht als Boarderkennung für meine eigene DB nehmen, sondern eine von mir aufgebrachte ID z.B. in der EEPROM Emulation.
Wird mal ein ESP kaputt und muss ausgestauscht werden will ich einen 1:1 Austausch generieren können. Das könnte bei einer Hersteller-ID schwierig werden.