Code funktioniert auf ESP8266-01S aber nicht auf ESP8266-01

Hallo,
Mein Name ist Philipp und ich bin neu hier. Ich bin Elektroniker für Automatisierungstechnik, mein Kenntnisse liegen aber eher bei Siemens.
Ich habe vor ein paar Monate gehört auf ein ESP32 rum zu spielen. Jetzt möchte ich ein Projekt stationär aufbauen. Es handelt sich um eine Temperaturmessung mit DeepSleep-Modus. Dazu hab ich mir einen ESP8266-01S angeschafft. Nachdem ich in verschieden Beiträgen und Foren gelesen hab, dass der DeepSleep Modus mit dem älteren Model ESP8266-01 wegen der Brücke von GPIO16 (direkt vom Chip) auf RST leichter verwirklicht werden kann habe ich mir auch so einen besorgt.

Hardware: ESP32 empfängt Daten von ESP8266-01S über ESPNOW → Funktioniert
Hardware: ESP32 empfängt Daten von ESP8266-01 über ESPNOW → Funktioniert nicht

Ich habe die gleichen Software. Auf dem ESP8266-01S funktioniert der Code und auf dem persönlichen ESP8266-01 funktioniert er nicht. Da gibt der Serielle Monitor nur komische Zeichen aus. Es wird aus, als ob er den Code gar nicht gehört. Bei kompilieren gibt’s aber kein Problem.

Software:

#include <ESP8266WiFi.h>
#include <espnow.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>

// Zeit Deep Sleep verändert
// # definiere timeDeepSleep 20

// BMP280
Adafruit_BMP280 bmp;
Schwimmertemperatur;
float luftdruck;

// MAC-Adresse erledigt
uint8_t BroadcastAddress [] = {0x24, 0x0A, 0xC4, 0x60, 0x1C, 0xCC};

// Strukturbeispiel zum Senden von Daten
// Muss mit der Empfängerstruktur übereinstimmen
typedef struct struct_message {
  float temp;
  float druck;
} struct_message;

// Erstelle eine struct_message namens myData
struct_message myData;

// Rückruf beim Senden von Daten
void OnDataSent (uint8_t * mac_addr, uint8_t sendStatus) {
  Serial.print ("Last Packet Send Status:");
  if (sendStatus == 0) {
    Serial.println ("Liefererfolg");
  }}
  sonst {
    Serial.println ("Lieferung fehlgeschlagen");
  }}
}}

void setup () {
  Serial.begin (115200);
  // I²C Bus konfigurieren
  Drahtstifte (0, 2);
  Wire.begin ();
  Serial.println ("aufwachen");
  // Gerät als Wi-Fi Station einstellen
  WiFi.mode (WIFI_STA);
  // initialisieren BMP280
  bmp.begin (0x76);
  bmp.setSampling (Adafruit_BMP280 :: MODE_NORMAL,
                  Adafruit_BMP280 :: SAMPLING_X2,
                  Adafruit_BMP280 :: SAMPLING_X16,
                  Adafruit_BMP280 :: FILTER_X16,
                  Adafruit_BMP280 :: STANDBY_MS_500);
  // ESP-NOW starten
  if (esp_now_init ()! = 0) {
    Serial.println ("Fehler beim Initialisieren von ESP-NOW");
    Rückkehr;
  }}
  // Sobald ESPNow erfolgreich Init ist, registrieren wir uns für Send CB to
  // Den Status des übertragenen Pakets abrufen
  esp_now_set_self_role (ESP_NOW_ROLE_SLAVE);
  esp_now_register_send_cb (OnDataSent);

  // Peer registrieren
  esp_now_add_peer (BroadcastAddress, ESP_NOW_ROLE_CONTROLLER, 1, NULL, 0);
  Verzögerung (1000);
}}

void loop () {
  Temperatur = bmp.readTemperature ();
  Serial.println ("Temperatur:" + String (Temperatur) + "* C");
  luftdruck = bmp.readPressure ();
  Serial.println ("Luftdruck:" + String (Luftdruck / 100) + "hPa");
  // Setze Werte zum Senden
  myData.temp = Temperatur;
  myData.druck = luftdruck;
  // Nachricht über ESP-NOW senden
  esp_now_send (BroadcastAddress, (uint8_t *) & myData, sizeof (myData));
  Verzögerung (1000);
  Serial.println ("Start schlafen");
  // ESP.deepSleep (timeDeepSleep * 1000000);
}}

Der DeepSleep-Modus ist für die Test-Funktionen noch auskommentiert.
Laut dem Internet muss es doch keinen Unterschied des Codes zwischen diesen beiden Microcontrollern geben. Oder ist euch da was bekannt was mir entgangen ist?

Vielen Dank im vorraus.

Philipp

Laut dem Internet muss es doch keinen Unterschied des Codes zwischen diesen beiden Microcontrollern geben.

Die Flash größe.