Ich möchte mir einen ESP (hier habe ich einen 8266MOD 12-F, der kann WiFi) gefunden und versucht den folgenden Sketch auf zu spielen.
und habe eine Fehlermeldung bekommen mit der ich nun gar nichts anfangen kann.
und eine Frage noch ... die Einstellungen WiFi und Email kann ich diese auslagern und wie muss das dann aussehen ?
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP_Mail_Client.h> // Die installierte E-Mail-Bibliothek
// 1. WLAN-Zugangsdaten
#define WIFI_SSID "DEIN_WLAN_NAME"
#define WIFI_PASSWORD "DEIN_WLAN_PASSWORT"
// 2. WEB.DE Server-Daten
#define SMTP_HOST "smtp.web.de"
#define SMTP_PORT 465 // Port 465 nutzt sicheres SSL/TLS
// 3. Deine WEB.DE Account-Daten
#define AUTHOR_EMAIL "DEINE_ADRESSE@web.de"
#define AUTHOR_PASSWORD "DEIN_WEB_DE_PASSWORT"
// 4. Empfänger der E-Mail
#define RECIPIENT_EMAIL "EMPFAENGER@beispiel.de"
// SMTP-Sitzungsobjekt deklarieren
SMTPSession smtp;
// Funktion zur Status-Rückmeldung im Seriellen Monitor
void smtpCallback(SMTP_Status status);
void setup() {
Serial.begin(115200);
Serial.println();
// Mit WLAN verbinden
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Verbinde mit WLAN");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println("\nWLAN erfolgreich verbunden!");
Serial.print("IP-Adresse: ");
Serial.println(WiFi.localIP());
// Debugging für die Mail-Bibliothek aktivieren (zeigt Fehler im Monitor)
smtp.debug(1);
smtp.callback(smtpCallback);
// Server- und Login-Konfiguration setzen
Session_Config config;
config.server.host_name = SMTP_HOST;
config.server.port = SMTP_PORT;
config.login.email = AUTHOR_EMAIL;
config.login.password = AUTHOR_PASSWORD;
config.login.user_domain = "";
// Die eigentliche Nachricht erstellen
SMTP_Message message;
message.sender.name = "ESP8266 12-F";
message.sender.email = AUTHOR_EMAIL;
message.subject = "Statusmeldung vom ESP8266"; // Betreff
message.addRecipient("Empfänger Name", RECIPIENT_EMAIL);
// Der Textinhalt (Hier wird normaler Text gesendet)
String textMsg = "Hallo! Diese E-Mail wurde automatisch von deinem ESP8266 12-F gesendet.";
message.text.content = textMsg.c_str();
message.text.charSet = "utf-8";
message.text.transfer_encoding = Content_Transfer_Encoding::enc_7bit;
// Verbindung zum WEB.DE Server herstellen und Mail senden
if (!smtp.connect(&config)) {
Serial.println("Fehler beim Verbinden zum WEB.DE Server.");
return;
}
if (!MailClient.sendMail(&smtp, &message)) {
Serial.println("Fehler beim Senden der Mail: " + smtp.errorReason());
}
}
void loop() {
// Bleibt im Loop leer, damit die Mail nur EINMAL beim Start gesendet wird.
}
// Callback-Funktion zur Auswertung des Sendevorgangs
void smtpCallback(SMTP_Status status) {
Serial.println(status.info());
if (status.success()) {
Serial.println("----------------");
Serial.println("E-Mail erfolgreich versendet!");
Serial.println("----------------");
}
}
WiFi ssid und password soch auch die Email Adressen habe ich geändert.
hier die Fehlermeldung
In file included from /home/jochen/Arduino/libraries/SD/src/utility/Sd2Card.h:26,
from /home/jochen/Arduino/libraries/SD/src/utility/SdFat.h:29,
from /home/jochen/Arduino/libraries/SD/src/SD.h:20,
from /home/jochen/Arduino/libraries/ESP_Mail_Client-3.4.24/src/./ESP_Mail_FS.h:121,
from /home/jochen/Arduino/libraries/ESP_Mail_Client-3.4.24/src/extras/RFC2047.h:8,
from /home/jochen/Arduino/libraries/ESP_Mail_Client-3.4.24/src/ESP_Mail_Client.h:35,
from /tmp/.arduinoIDE-unsaved202687-528575-1txgmdr.gs9ah/sketch_sep7a/sketch_sep7a.ino:3:
/home/jochen/Arduino/libraries/SD/src/utility/Sd2PinMap.h:527:2: error: #error Architecture or board not supported.
527 | #error Architecture or board not supported.
| ^~~~~
exit status 1
Compilation error: exit status 1
die Datei Sd2PinMap.h gehört zu einer Bibliothek.
hier an zeile 509
=================
#endif // Sd2PinMap_h
#elif defined (__CPU_ARC__)
#if defined (__ARDUINO_ARC__)
// Two Wire (aka I2C) ports
uint8_t const SDA_PIN = 18;
uint8_t const SCL_PIN = 19;
// SPI port
uint8_t const SS_PIN = 10;
uint8_t const MOSI_PIN = 11;
uint8_t const MISO_PIN = 12;
uint8_t const SCK_PIN = 13;
#endif // Arduino ARC
#else
#error Architecture or board not supported.
#endif
Ich habe Ihr Thema aus einer englischsprachigen Kategorie in die Kategorie International > Deutsch des Forums verschoben @jochenv34.
Bitte posten Sie zukünftig jeweils in der Kategorie, die der von Ihnen verwendeten Sprache entspricht. Dies ist ein wesentlicher Teil des verantwortungsvollen Umgangs im Forum, wie es auch in der Anleitung "Wie man dieses Forum benutzt" erläutert wird. Diese Anleitung beinhaltet viele weitere nützliche Informationen. Bitte unbedingt lesen!
Wurde als Erstes die SD Bibliothek löschen, verschieben, das Core für ESP8266 hat eigne SD Bibliothek. Zu dem ist es gut schreiben was für Core Version wird genutzt so wie welche IDE
Der Fehler tritt auf in der bei Dir installierten SD Library:
... und besagt, dass der von Dir verwendete ESP8266 von dieser Bibliothek nicht unterstützt wird:
Das kann verschiedene Gründe haben; manchmal sind es z.B. in Assembler erstellte Teile des Codes, die natürlich abhängig vom Prozessor jeweils anders aussehen müssen oder auch fehlende / anders anzusteuernde Peripherie wie I2C oder SPI - danach sieht es hier aus.
Deshalb ist die Empfehlung
richtig, aber noch nicht alles:
Du solltest eine für ESP8266 brauchbare SD-Library installieren. Da ich bisher kein Board dieses Typs mit SD-Karte im Einsatz hatte, kann ich nicht mit einem Tipp oder Link helfen.
Die Arduino IDE habe ich neu installiert Version: 2.3.10 und die Bibliothek was so mit dabei.
SD.h ist beiseite und habe neue Meldung
In file included from /home/jochen/Arduino/libraries/ESP_Mail_Client-3.4.24/src/extras/RFC2047.h:8,
from /home/jochen/Arduino/libraries/ESP_Mail_Client-3.4.24/src/ESP_Mail_Client.h:35,
from /tmp/.arduinoIDE-unsaved202687-528575-1txgmdr.gs9ah/sketch_sep7a/sketch_sep7a.ino:3:
/home/jochen/Arduino/libraries/ESP_Mail_Client-3.4.24/src/./ESP_Mail_FS.h:121:10: fatal error: SD.h: No such file or directory
121 | #include <SD.h>
| ^~~~~~
compilation terminated.
exit status 1
Compilation error: exit status 1
die Bibliothek ESP_Mail_Client-3.4.24 von Mobizt habe ich Installiert, weil zuvor danach gefragt wurde.
Diese Library verwende ich auch in mehreren Projekten und hatte anfänglich auch damit Probleme.
Ich bin dann auf einen ESP32-S3 damit umgestiegen, seitdem läuft das problemlos. Mein Tipp, verwende einen ESP32-S3 und es funktioniert.
Dan gech doch in den ESP Ordner und schaue ob dort SD.h vorhanden ist.
Komischer Weise wird die auch für WIFI gebracht.
Das schreibt Google :
"Die integrierte SD-Bibliothek des ESP8266-Arduino-Cores ist die Standardwahl für den Zugriff auf SD-Karten über die SPI-Schnittstelle"
Das die bei ESP32 und bei ESP 8266 vorhanden ist bin mir ganz sicher.
Schau Dir mal die Mailfunktion bei Fips an. Der nutzt zwar smtp2go, aber das sollte auch mit jedem anderen Mailserver funktionieren.
Hier ist noch eine Einführung zu Fips von @agmue.
Das ReadyMail-Beispiel SimpleText.ino wird für den ESP32S3 (einen ESP8266 habe ich nicht und daher auch dessen Core nicht installiert) compiliert. Dabei werden auch die verwendeten Bibliotheken gelistet:
Bibliothek WiFi in Version 3.3.5 im Ordner: C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.5\libraries\WiFi wird verwendet
Bibliothek Networking in Version 3.3.5 im Ordner: C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.5\libraries\Network wird verwendet
Bibliothek NetworkClientSecure in Version 3.3.5 im Ordner: C:\Users\User\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.5\libraries\NetworkClientSecure wird verwendet
Bibliothek ReadyMail in Version 0.4.2 im Ordner: D:\Arduino\libraries\ReadyMail wird verwendet
...
Der Sketch verwendet 1027203 Bytes (48%) des Programmspeicherplatzes. Das Maximum sind 2097152 Bytes.
Globale Variablen verwenden 46428 Bytes (14%) des dynamischen Speichers, 281252 Bytes für lokale Variablen verbleiben. Das Maximum sind 327680 Bytes.