Inhaltsverzeichnis

ESP spezifische Programmierung

ESP8266 spezifische Dinge

Hier findest du eine Übersicht über Funktionen und Programmierbeispiele speziell für den ESP8266.

Wi-Fi

Wi-Fi einrichten

#include <ESP8266WiFi.h>
 
const char* ssid = "Dein_WiFi_Netzwerk";
const char* password = "Dein_Passwort";
 
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("WiFi verbunden!");
  Serial.println(WiFi.localIP());
}
 
void loop() {
  // Dein Code hier
}

Deep Sleep-Modus

Deep Sleep mit Timer

#include <ESP8266WiFi.h>
 
void setup() {
  Serial.begin(115200);
  Serial.println("ESP8266 geht in Deep Sleep...");
  ESP.deepSleep(10 * 1000000); // 10 Sekunden
}
 
void loop() {}

Webserver

Einfacher Webserver

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
 
ESP8266WebServer server(80);
 
const char* ssid = "Dein_WiFi_Netzwerk";
const char* password = "Dein_Passwort";
 
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("WiFi verbunden!");
  Serial.println(WiFi.localIP());
 
  server.on("/", []() {
    server.send(200, "text/html", "<h1>Hallo vom ESP8266!</h1>");
  });
 
  server.begin();
}
 
void loop() {
  server.handleClient();
}

Serielle Kommunikation

Seriellen Monitor initialisieren

Serial.begin(115200);

Daten senden

Serial.print("Nachricht: ");
Serial.println("Hallo ESP8266!");

Daten empfangen

if (Serial.available()) {
  char input = Serial.read();
  Serial.print("Empfangen: ");
  Serial.println(input);
}

ESP32 spezifische Dinge

Hier findest du eine Übersicht über Funktionen und Programmierbeispiele speziell für den ESP32.

Wi-Fi

Wi-Fi einrichten

#include <WiFi.h>
 
const char* ssid = "Dein_WiFi_Netzwerk";
const char* password = "Dein_Passwort";
 
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("WiFi verbunden!");
  Serial.println(WiFi.localIP());
}
 
void loop() {
  // Dein Code hier
}

Bluetooth

Bluetooth starten

#include "BluetoothSerial.h"
 
BluetoothSerial SerialBT;
 
void setup() {
  Serial.begin(115200);
  SerialBT.begin("ESP32_Bluetooth");
  Serial.println("Bluetooth gestartet. Gerät sichtbar.");
}
 
void loop() {
  if (SerialBT.available()) {
    char incomingChar = SerialBT.read();
    Serial.print("Empfangen: ");
    Serial.println(incomingChar);
  }
  delay(20);
}

Deep Sleep-Modus

Deep Sleep mit Timer

#include "esp_sleep.h"
 
void setup() {
  Serial.begin(115200);
  Serial.println("ESP32 geht in Deep Sleep...");
  esp_sleep_enable_timer_wakeup(10 * 1000000); // 10 Sekunden
  esp_deep_sleep_start();
}
 
void loop() {}

Multitasking

Beispiel für zwei Tasks

void Task1(void * parameter) {
  while (true) {
    Serial.println("Task 1 läuft");
    delay(1000);
  }
}
 
void Task2(void * parameter) {
  while (true) {
    Serial.println("Task 2 läuft");
    delay(500);
  }
}
 
void setup() {
  Serial.begin(115200);
  xTaskCreate(Task1, "Task1", 1000, NULL, 1, NULL);
  xTaskCreate(Task2, "Task2", 1000, NULL, 1, NULL);
}
 
void loop() {}

Webserver

Einfacher Webserver

#include <WiFi.h>
#include <WebServer.h>
 
WebServer server(80);
 
const char* ssid = "Dein_WiFi_Netzwerk";
const char* password = "Dein_Passwort";
 
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("WiFi verbunden!");
  Serial.println(WiFi.localIP());
 
  server.on("/", []() {
    server.send(200, "text/html", "<h1>Hallo vom ESP32!</h1>");
  });
 
  server.begin();
}
 
void loop() {
  server.handleClient();
}

Serielle Kommunikation

Seriellen Monitor initialisieren

Serial.begin(115200);

Daten senden

Serial.print("Nachricht: ");
Serial.println("Hallo ESP32!");

Daten empfangen

if (Serial.available()) {
  char input = Serial.read();
  Serial.print("Empfangen: ");
  Serial.println(input);
}