Inhaltsverzeichnis

ESP8266

Einführung:

https://tttapa.github.io/ESP8266/Chap01%20-%20ESP8266.html

ESP8266 und ESP8285 Module Anleitung:

Sehr gut, besonders welche Boards es gibt etc. http://stefanfrings.de/esp8266/

https://www.exploreembedded.com/wiki/Arduino_Support_for_ESP8266_with_simple_test_code

Flash new Firmware

TX(D)/RX(D) müssen bei den Stiften (Anschluss USB/seriellen-Adapter) vertauscht sein.

Beim Einstecken (booten) muss GPIO0 und Ground verbunden sein (kurz oder lang), damit der ESP in den Flashmodus geht.

Tasmota download: Arduino support for ESP8266

Linux

Esptools Python

git clone https://github.com/themadinventor/esptool.git

Erzeugt Verzeichnis esptools

sudo python esptool.py --port /dev/ttyUSB0  write_flash 0x00000 ../Downloads/tasmota-wifiman.bin 

Sollte man den Flash mal ganz löschen müssen (z.B. weil der Config verkackt ist):

sudo python esptool.py --port /dev/ttyUSB0 erase_flash

ESPtool

Ist bei Ubuntu schon dabei.

Checken, was für Flash-Speicher verbaut ist (Größe) (ist ja extern beim ESP)

 esptool --port /dev/ttyUSB0 flash_id
flashen

If you have an ESP-01 or other device without built-in USB, you will need to enable flashing yourself by pulling GPIO0 low or pressing a „flash“ switch, while powering up or resetting the module.

sudo esptool --port /dev/ttyUSB0 write_flash -fm dio 0x00000 tasmota.bin
CH340 Serial USB-driver

Manche ESP haben einen USB-Chip eingebaut (z.B. Dmos D1 mini), der den CH340 driver benötigt. Der eingebaute von Ubuntu ist Scheisse (auch 2022 noch). Daher gibt es einen gepatchten driver:

https://github.com/juliagoda/CH341SER

Quelle1)

Expected output (should show „ch34x“ now):

[  xxx] ch34x ttyUSB0: ch34x converter now disconnected from ttyUSB0
[  xxx] ch34x 3-2:1.0: device disconnected

Depending on your root permissions, you may need to configure the serial port with the following two commands. Make sure to adjust the $username with respect to the user ID that is currently logged in.

sudo usermod -a -G dialout $username 
sudo chmod a+rw /dev/ttyUSB0

Siehe auch Arduino IDE auf Quellenseite!

Development /Programmierung

DerESP8266 hat 2 UART eingebaut UART0 ist der ganz normale Serielle Anschluss über TX (GPIO1) & RX (GPIO3)

Der ESP8266 verfügt über zwei UART-Schnittstellen: UART0 und UART1. Diese können für die Kommunikation mit seriellen Geräten genutzt werden, haben jedoch unterschiedliche Einschränkungen.

UART0 (Haupt-UART)

Standard-Pins:

Eigenschaften:

Volle Duplex-Kommunikation (kann senden und empfangen). Wird standardmäßig für die serielle Kommunikation und Debugging genutzt.

Kann über Software auf andere GPIOs gemappt werden (via Serial.swap()):

UART1

Standard-Pin:

Einschränkungen:

Arduino IDE

ESP-IDF

IoT Development Framework von Expressif selbst

https://github.com/espressif/esp-idf

ESP8266 Projekte

Arduino

A Beginner's Guide to the ESP8266

Baudrate

Ich habe den ESP direkt an einen USB-seriellen Konverter an den PC angeschlossen (/dev/USO0). ACHTUNG!!!: Unbedingt 3,3 Volt, keine 5V, sonst Schrott. Kein Problem. Allerdings muss der Chip-Enabled-Pin auf VCC angesclossen sein, sonst geht der ESP nicht. Dann kann man mit der Arduino-IDE mit dem Chip kommunizieren, 115200 Baud. Ich will die Original Firmware behalten, weil ich den ESP eh an einen Arduino Nano anschlisse und ihn nur fürs WLAN brauche. Ich mache das, um zu sehen, ob es funktioniert und um die Baudrate permanent auf 9600 Baud zu stellen. Keine Ahnung, ob das wirklich nötig ist, aber die Kommunikation zum Arduino ist sicher stabiler.

AT+UART_DEF=9600,8,1,0,0

Welche Firmware-Version ist drauf?

ESP8266 and the AT firmware are products of Espressif. They have everything documented on the web site.

The AT command for version is 'AT+GMR'. Bei mir:

AT+GMR

AT version:1.3.0.0(Jul 14 2016 18:54:01)
SDK version:2.0.0(5a875ba)
Farylink Technology Co., Ltd. v1.0.0.2
May 11 2017 22:23:58
OK

AT-Befehle für ESP: http://stefanfrings.de/esp8266/

Mit WLAN verbinden: AT+CWJAP=„Pipping_UG2“,„supergeheim“ das Modul verbindet sich mit dem WLAN Netz „Muschikatze“ und dem angegebenen WPA/WPA2 Passwort. Diese Einstellung wird automatisch dauerhaft gespeichert und beim nächsten Neustart aktiv.

AT+CWJAP?

zeigt an, mit welchem Access Point das Modul gerade verbunden ist. Zum Beispiel:

+CWJAP:„Pipping_UG2“,„5c:49:79:2d:5b:cd“,7,-60 OK

AT+CIFSR

zeigt die IP-Adresse und MAC Adresse des Moduls an zum Beispiel:

+CIFSR:STAIP,„192.168.0.111“ +CIFSR:STAMAC,„5c:cf:7f:8b:a9:f1“ OK

Doorlock \ Türschloss

RFID

https://hackaday.com/2019/04/15/a-robust-esp8266-rfid-access-control-system/

McLighting v2 - The ESP8266 based multi-client lighting gadget

Open Source projekt zur LED-Steuerung mit ESP

McLighting (the multi-client lighting gadget) is a very cheap internet-controllable lighting solution based on the famous ESP8266 microcontroller and WS2811/2812 led strips. It features among other things a web-interface, a REST-API and a websocket connector.

Because of it's open architecture and APIs it's easy to build new clients for different platforms (iOS, Android, Windows Universal Apps, Siri/Cortana integration, …).

https://github.com/toblum/McLighting

Tuya Infrarot Sender

Billig-China Infrarot-Hub auf ESP-Basis

https://github.com/arendst/Tasmota/wiki/Tuya-OTA

DeAuther

https://github.com/SpacehuhnTech/esp8266_deauther

Relais Boards

LC Technology 4CH Relay

TASMOTA

Tasmota→Einstellungen→Sonstige Einstellungen→Vorlage

Ist-Zustand (Relais schalten nicht, obwohl Oberfläche so tut, als wäre dem so)

{"NAME":"LC Technology 4CH Relay","GPIO":[224,0,225,0,226,227,0,0,0,0,0,0,0,0],"FLAG":0,"BASE":18}

Tasmota 12.0.2 von Theo Arends

https://tasmota.github.io/docs/devices/LC-Technology-WiFi-Relay/#lc-technology-wifi-relay-quad-relay-note-older-versions-of-this-board-used-a-baud-rate-of-9600-so-if-115200-doesnt-work-try-9600

{"NAME":"LC Technology 4CH Relay","GPIO":[52,255,17,255,255,255,255,255,21,22,23,24,255],"FLAG":0,"BASE":18}

2023: bekomm's nicht wieder hin. Vielleicht hier? : https://templates.blakadder.com/LC-ESP01-4R-5V.html

Spezifikationen:

Boardgröße: 60 * 63mm

Schnittstelle an Bord:

  1. Wenn er gelöscht wird, wird er vom Router konfiguriert oder getrennt.
  2. 0.5s schnelles Blinken stellt dar, dass Handy-APP WIFI-Konto und Kennwort für ESP-01-Modul konfiguriert
  3. 2S blinkt langsam, um die Konfiguration zu beenden, und warten auf die Verbindung mit dem Mobiltelefon über TCP
  4. LED leuchtet immer auf TCP-Verbindungen mit Mobiltelefon erfolgreich

Anschluss für reservierten Zwei-Kappen-Jumper:

Steuerbefehl für Relais (Hex-Format):

Anleitung sieht auch gut aus: https://gripseljagd.wordpress.com/2022/02/08/tasmota-relais-das-3te/

2er Relais Board (Garage)

2 Relais

ESP-12F 5V/8-80V 2 Channel Relay Board (ESP12F_Relay_X2)

Datenblatt/Instruction

5x8cm

zusätzliche Kontakte (gegen GRN, Pull-Up 10k Ohm) 2)

Stecker:

Ein Relais nur kurz schalten: https://nerdiy.de/de_de/tasmota-nachlaufen-eines-relais-einstellen/

SetOption26 (Anzeige der Relais-Indizes) aktivieren:

SetOption26 1

Weitere Beispiele für den Bereich 0,1 bis 11,1:

Haltezeit von 3,7 Sekunden:

PulseTime 37

Haltezeit von 4,2 Sekunden:

PulseTime 42

PulseTime deaktiveren:

PulseTime 0

ESP32

Getting started with the ESP32 Wifi module

Kamera

Blog-Eintrag flashen, Arduino fui, Probleme: https://www.fambach.net/esp32-cam-modul/

esp32-cam

Expressif-Entwicklungsumgebung installieren

Firmware ESP32 für OV2640 Kamera-Modul: https://github.com/bkeevil/esp32-cam

Meine Kamera ist eine M5Stack ESP32CAM mit OV2640, aber das Standard-Template von make menuconfig funktionierte nicht (Kamera hat KEIN PSRAM) Kameras ohne externes PSRAM können nur 800×600 Pixel anzeigen/streamen, weil der Speicher fehlt (egal, was die Kamera kann)!

Hier habe ich das PIN-Layout dieser Kamera gefunden: https://randomnerdtutorials.com/esp32-cam-camera-pin-gpios/#board5

make menuconfig

Important settings are:

Wenn alles schon installiert ist und man weiteren ESP flashen will:

cd ~/esp/esp-idf/ // Um dieses Skript aufzurufen:
. ./export.sh  // Die Pfade setzen...
cd ~/esp/myprojects/esp32-cam/ // Da ist mein Projekt
make menuconfig // Einstellungen vornehmen
make app // Compilieren
make flash // Auf ESP schreiben
make monitor // Schauen, was ESP macht...

Web Camera URLS

Picture: http://IP/capture

Stream: http://IP:81/stream

Control LED: http://IP/control?var=led_intensity&val=[0...255]

Pin assignment for the M5-stack ESP32 camera without PSRAM.

#define PWDN_GPIO_NUM     -1
#define RESET_GPIO_NUM    15
#define XCLK_GPIO_NUM     27
#define SIOD_GPIO_NUM     25
#define SIOC_GPIO_NUM     23
#define Y9_GPIO_NUM       19
#define Y8_GPIO_NUM       36
#define Y7_GPIO_NUM       18
#define Y6_GPIO_NUM       39
#define Y5_GPIO_NUM        5
#define Y4_GPIO_NUM       34
#define Y3_GPIO_NUM       35
#define Y2_GPIO_NUM       17
#define VSYNC_GPIO_NUM    22
#define HREF_GPIO_NUM     26
#define PCLK_GPIO_NUM     21

Derzeit bekomme ich nur ein 800×600-Bild raus, wenn ichs auf 1200 stelle…

Meine sdkconfig ESP32 Cam M5Stack M5Cam ohne PSRAM: skdconfig.txt

Ein Bild mit Micro Python aufnehmen: https://lemariva.com/blog/2019/09/micropython-how-about-taking-photo-esp32

Allgemein

ESP32 Cam: https://www.fambach.net/esp32-cam-modul/

https://www.instructables.com/id/ESP-32-Camera-Streaming-Video-Over-WiFi-Getting-St/

Achtung: In dem Bild ist IO0 mit dem GND verbunden. Das muss man so machen (mit *allen* ESP), um den ESP in dem Schreibmodus zu bekommen. Man kann diesen PIN natürlich auch anders an GND bekommen. Zum Testen nach dem Schreiben einfach den IO0 lösen und er verhält sich ganz 'normal' (und bekommt seinen Strom von USB-TTL-Konverter via USB-Buchse).

https://www.elementzonline.com/blog/Accessing-ESP32-CAM-Video-Streaming-from-anywhere-in-the-world

Streifen im Kamera Bild

Lars (Siehe Kommentare unten) hat ein paar Versuche gemacht. Es hat sich als vorteilhaft herausgestellt das Modul am 5V Anschluss zu betreiben. Quelle3)

Kamera-Einstellungen fernsteuern: 4)

Stream speichern unter Linux: https://www.fambach.net/mpv-linux/

Wasseruhr /Stromzähler auslesen mit ESP32Cam

Mit AI

https://community.symcon.de/t/wasseruhr-auslesen-mit-einem-esp32-cam/122960

AI-on-the-edge-device: https://github.com/jomjol/AI-on-the-edge-device/wiki/Installation

WLAN-Modul des ESP via Arduino nutzen

Das macht eigentlich keinen Sinn, weil der Arduino (nano) seeehr viel leistungsschwächer ist als ein ESP8266. er ESP wird zudem von der Arduino-Entwicklungsumgebung unterstützt. Aber ich konnte ihn trotzdem nicht programmieren, weil ich den USB-Treiber unter Linux nicht installiert bekommen habe und ihn nicht ansprechen konnte.

Daher habe ich dieses Knowhow aufgebaut.

Arduino Nano v3.0 with ESP8266: https://arduino.stackexchange.com/questions/17590/arduino-nano-v3-0-with-esp8266