ESP8266: Unterschied zwischen den Versionen

Aus TippvomTibb
Zur Navigation springen Zur Suche springen
Zeile 204: Zeile 204:
 
|}
 
|}
  
Dies ist das Ergebnis des GoogleUebersetzers aus dem Chinesischen. Ich habe mich eng an das Original gehalten, aber doch an der einie Ergebnisse frisiert:-).
+
Dies ist das Ergebnis des GoogleUebersetzers aus dem Chinesischen. Ich habe mich eng an das Original gehalten, aber doch an der ein oder anderen Stelle das Ergebnis frisiert:-).
  
 
  PIN 1 Problem (mal wieder): Das ESP-01 hat in der Regel seinen Pin1 unten links (Draufsicht Antenne oben). Wie auch aus dem Aufdruck auf dem Modul (s. o.) deutlich wird. Das Relaisboard hat seine Markierung auf der Unterseite, aber oben links (Draufsicht Relais rechts) beim RX-Pin. Also wieder nicht aufgepasst!   
 
  PIN 1 Problem (mal wieder): Das ESP-01 hat in der Regel seinen Pin1 unten links (Draufsicht Antenne oben). Wie auch aus dem Aufdruck auf dem Modul (s. o.) deutlich wird. Das Relaisboard hat seine Markierung auf der Unterseite, aber oben links (Draufsicht Relais rechts) beim RX-Pin. Also wieder nicht aufgepasst!   
Zeile 215: Zeile 215:
 
  Upload buffer miscompare
 
  Upload buffer miscompare
  
Die im Netz verbreitet Loesung mit dem "Umweg" ueber die Minimal-Firmware hat bei mir nicht funktioniert. Die minimale liesz sich aufspielen, aber ein Upgrade nach tasmota.bin war erfolglos. Also dann doch Adapter.
+
Die im Netz verbreitete Loesung mit dem "Umweg" ueber die Minimal-Firmware hat bei mir nicht funktioniert. Die minimale liesz sich aufspielen, aber ein Upgrade nach tasmota.bin war erfolglos. Also dann doch Adapter.
  
 
Nach vielem Hin und her habe ich mich gegen Tasmota fuer die Markisensteuerung entschieden. Um die Logik abzubilden reicht der Configumfang von Tasmota nicht aus. Es mag sein, dass es mit Rules und/oder Skript funktioniert haette. Aber das Risiko war mir zu grosz. Leider steht Berry auf dem ESP8266 nicht zur Verfuegung. Damit haette ich es hinbekommen. Aber der Sketch ist so simpel, dass sich der Aufwand in Tasmota fuer mich nicht gelohnt hat.
 
Nach vielem Hin und her habe ich mich gegen Tasmota fuer die Markisensteuerung entschieden. Um die Logik abzubilden reicht der Configumfang von Tasmota nicht aus. Es mag sein, dass es mit Rules und/oder Skript funktioniert haette. Aber das Risiko war mir zu grosz. Leider steht Berry auf dem ESP8266 nicht zur Verfuegung. Damit haette ich es hinbekommen. Aber der Sketch ist so simpel, dass sich der Aufwand in Tasmota fuer mich nicht gelohnt hat.

Version vom 27. Dezember 2023, 10:25 Uhr

Allgemeines

Zum Einstieg verweise ich auf die Wiki-Seite und die Homepage des Herstellers.

Eine prima Vorlage für die PinOuts der gaengigen Tinkerboards finden man hier.

Modelle

Eigentlich ist der ESP8266 erst einmal nur der Chip, besser gesagt ein SoC (SystemonChip) mit WLAN, UART und SPI. Viele haben aber wenn sie von einem ESP8266 sprechen ein Modul vor Augen. Die Module kann man grob in zwei Kategorien teilen. Die einen haben einen USB-Anschluss und die anderen eben nicht. Das verhält sich wie beim Arduino. Der ATmega wird um einen USB-TTL Wandler ergänzt und schon hat man fast einen Arduino. Beim ESP8266 ist es genauso. Für den normalen Betrieb benötigt man den USB-Port eher nicht, sondern eben nur zum Programmieren. Hat man also ein Modul ohne USB schließt man einen USB-TTL-Wandler an und schon hat man das gleiche wie bei einem ESP8266-Modul mit USB.

Programmieradapter

Spezialadapter

ESP Programmieradapter.png

Beim Ali wird Dir geholfen. Dieser Programmer beherrscht nicht nur den Chip in der Bauform, sondern hat auch direkt einen Steckplatz für das ESP01S-Modul. Ob er auch das ESP01-Modul verträgt muss ich noch testen.

ESP01 S Vergleich.jpg

Die Angaben im Netz zu den Unterschieden sind nicht eindeutig, Den Unterschied mit der EEPROM-Speichergröße kann ich bei meinen Modulen nicht feststellen. Vielleicht kann jemand in den Kommentaren helfen.

Adapter mit einem CP2102

Mit dem Wissen der CP2102-Wikiseite bewaffnet kann man hier schnell ans Werk gehen.

CP2102 PCB.jpg

Bevor man die Verdrahtung von Wandler und ESP01-Modul in Angriff nimmt muss man sich natürlich erst ein Bild der Pinbelegung machen und dann schauen ob das alles so ohne weiteres zusammenpasst.

ESP01-Modul von oben/Pins links/Antenne rechts
1 TX 2 GND
3 EN (CHPD) 4 IO2 (GPIO2)
5 RST 6 IO0 (GPIO0)
7 3V3 8 RX
CP2102-Modul von oben/Pins links/USB rechts
1 +5V vom USB
2 GND
3 RXD
4 TXD
5 RST
6 3V3 vom CP2102

Die Aussage nach der RX und TX immer über Kreuz angeschlossen werden ist so nicht haltbar. Wie ein Anwalt sagen würde: Es kommt drauf an. Nämlich mit welcher Logik der PCB-Layouter die Beschriftung angebracht hat. Im Zweifel muss man nachschauen/nachmessen an welchen Pin am Chip TX und RX verbunden sind. Auf Chipebene stimmt dann die Aussage mit dem Kreuzen. Dann sind nur noch, wie übrigens bei allen Pins die Spannungslevel und Strombelastbarkeiten zu überprüfen.

Screenshot 20210215 154806.png

Ein recht gut gemachtes Video zeigt keinerlei Zusatzbeschaltung. Der Programmieradapter ist direkt mit dem zu flashenden Gerät verbunden.

Es gibt einige Anleitungen, die als Programmieradapter einen Arduino oder eine NodeMCU, ... nutzen. Das geht natürlich. Wie schon weiter oben erwähnt sind diese Boards ja im Prinzip nix anderes als ein Mikrocontroller mit Programmieradapter on Board. Was bei diesen Varianten gemacht wird ist einfach den Onboard-Mikrocontroller "tot legen" und an dessen Stelle einen externen Controller anhängen, der dann den Onboard-Wandler für sich nutzt.

Adapter mit einem CH340G

Den Adapter zum Programmieren des ESP-01 gibt es fix und fertig beim Ali.

[1]

Ohne einen Schaltplan geht bei mir jedes mal das Raetselraten um die Anschlussbelegung und die Funktion von Schaltern und Tastern los.

Eine Seite, die sich sehr schoen diesem Problem stellt ist z. B. [2].

Mit dem passenden Schaltplan wird die Bedienung und evtl. auch Einschraenkungen, oft direkt deutlich.

Einfach-Relais

PIN 1 Problem (mal wieder): Das ESP-01 hat in der Regel seinen Pin1 unten links (Draufsicht Antenne oben). Wie auch aus dem Aufdruck auf dem Modul (s. o.) deutlich wird. Das Relaisboard hat seine Markierung auf der Unterseite, aber oben links (Draufsicht Relais links) Jetzt koennte man noch sagen: Das ist ja doch der GND-Pin und deshalb ist er eckig. Aber auf dem gleichen Board ist weiter oben ein GND-Pin mit einem runden PAD! Also nicht aufgepasst!  
ESP01 Relais PCB Oberseite.jpg
ESP01 Relais PCB Unterseite.jpg

worker:~ # iwlist wlan0 scanning

       Cell 03 - Address: 3E:71:BF:2A:B6:E0
                   Channel:1
                   Frequency:2.412 GHz (Channel 1)
                   Quality=47/70  Signal level=-63 dBm  
                   Encryption key:off
                   ESSID:"FaryLink_2AB6E0"
                   Bit Rates:5.5 Mb/s; 11 Mb/s; 1 Mb/s; 2 Mb/s; 6 Mb/s
                             12 Mb/s; 24 Mb/s; 48 Mb/s
                   Bit Rates:54 Mb/s; 9 Mb/s; 18 Mb/s; 36 Mb/s
                   Mode:Master
                   Extra:tsf=0000000000bd1a5c
                   Extra: Last beacon: 56ms ago
                   IE: Unknown: 000F466172794C696E6B5F324142364530
                   IE: Unknown: 01088B9682840C183060
                   IE: Unknown: 030101
                   IE: Unknown: 32046C122448
                   IE: Unknown: DD0918FE34030100000000

worker:~ # ip a

   wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc mq state UP group default qlen 1000
   link/ether 00:30:f1:ed:f2:de brd ff:ff:ff:ff:ff:ff
   inet 192.168.4.2/24 brd 192.168.4.255 scope global dynamic noprefixroute wlan0
      valid_lft 7187sec preferred_lft 7187sec
   inet6 fe80::c17c:4c72:cef4:26f2/64 scope link noprefixroute 
      valid_lft forever preferred_lft forever

worker:~ # nmap -v -sn 192.168.4.0/24

Nmap scan report for 192.168.4.0 [host down]
Nmap scan report for 192.168.4.1
Host is up (0.0014s latency).
MAC Address: 3E:71:BF:2A:B6:E0 (Unknown)
Nmap scan report for 192.168.4.3 [host down]


worker:~ # nmap -v -A 192.168.4.1

Starting Nmap 7.70 ( https://nmap.org ) at 2021-02-15 17:22 CET
NSE: Loaded 148 scripts for scanning.
NSE: Script Pre-scanning.
Initiating NSE at 17:22
Completed NSE at 17:22, 0.00s elapsed
Initiating NSE at 17:22
Completed NSE at 17:22, 0.00s elapsed
Initiating ARP Ping Scan at 17:22
Scanning 192.168.4.1 [1 port]
Completed ARP Ping Scan at 17:22, 0.24s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 17:22
Completed Parallel DNS resolution of 1 host. at 17:22, 0.00s elapsed
Initiating SYN Stealth Scan at 17:22
Scanning 192.168.4.1 [1000 ports]
Completed SYN Stealth Scan at 17:22, 9.65s elapsed (1000 total ports)
Initiating Service scan at 17:22
Initiating OS detection (try #1) against 192.168.4.1
Retrying OS detection (try #2) against 192.168.4.1
NSE: Script scanning 192.168.4.1.
Initiating NSE at 17:22
Completed NSE at 17:22, 0.00s elapsed
Initiating NSE at 17:22
Completed NSE at 17:22, 0.00s elapsed
Nmap scan report for 192.168.4.1
Host is up (0.020s latency).
All 1000 scanned ports on 192.168.4.1 are closed
MAC Address: 3E:71:BF:2A:B6:E0 (Unknown)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: specialized|general purpose
Running (JUST GUESSING): DTE embedded (95%), lwIP 1.4.X (95%), Enlogic embedded (95%), Espressif embedded (95%), Philips  embedded (95%), Ocean Signal embedded (95%), 2N embedded (91%), Advanced Illumination embedded (91%)
OS CPE: cpe:/a:lwip_project:lwip cpe:/h:philips:hue_bridge cpe:/a:lwip_project:lwip:1.4 cpe:/h:2n:helios  cpe:/h:advanced_illumination:dcs-100e
Aggressive OS guesses: DTE Energy Bridge (lwIP stack) (95%), Enlogic PDU (FreeRTOS/lwIP) (95%), Espressif esp8266 firmware  (lwIP stack) (95%), Philips Hue Bridge (lwIP stack v1.4.0) (95%), Ocean Signal E101V emergency beacon (FreeRTOS/lwIP) (95%),  ESPEasy OS (lwIP stack) (95%), 2N Helios IP VoIP doorbell (91%), Advanced Illumination DCS-100E lighting controller (91%),  AudioControl D3400 network amplifier (91%), British Gas GS-Z3 data logger (91%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
TRACEROUTE
HOP RTT      ADDRESS
1   20.24 ms 192.168.4.1 

NSE: Script Post-scanning.
Initiating NSE at 17:22
Completed NSE at 17:22, 0.00s elapsed
Initiating NSE at 17:22
Completed NSE at 17:22, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.39 seconds
           Raw packets sent: 1193 (53.616KB) | Rcvd: 1191 (48.152KB) 

AT Kommandouebersicht

2-fach Umschaltrelais

ESP01 2Relais Totale.jpg
ESP01 2Relais Oberseite.jpg
ESP01 2Relais Unterseite.jpg
ESP01 2fachRelais Original Beschriftung.png
COM NO NC.png

Nach dem mir der SONOFF DUAL R3 als Markisenschalter doch zu riskant erschien, bin ich zu diesem ESP8366 2-fach Umschaltrelais gewechselt. Die Gefahr eines Kurzschlusses ist hier bauartbedingt deutlich geringer.

Beworben wird das Teil mit "DollaTek 5V 2-Kanal WIFI Relaismodul". Bei Tasmota hat es die Bezeichnung 'LC-Relay-ESP01-2R-5V'

Einen Schaltplan konnte ich bisher nicht finden, aber die Seite gibt schon einen ganz guten Einblick. Es steht sogar ein PDF-Dokument zur Verfuegung.

Daraus geht aber wenigstens die Ansteuerung des STM8S hervor.

IN+,IN- 5V Spannungsversorgung (Stromeingang) TX,RX Serielle UART-Schnittstelle
5V, GND, SWIM, NRST STM8S Microcontroller Programm-Download-Port LED D2 und D4 (rot) Arbeitsanzeige Relais 1 und 2
Taste S1 Modusschalter, die Standardeinstellung ist Modus 1 Taster S2 zuruecksetzen
LED D7 (rot) Anzeige Modus 1 LED D7 (blau) Anzeige Modus 2
LED D6 (grün) Arbeitstatusanzeige:
(1) Aus: Konfigurationsmodus: Verbindung mit Router verloren
Schnell blinkend (0,5 s): Mobiler APP konfiguriert WIFI-Konto und Passwort des ESP-01-Moduls
Langsam blinkend (2 s):Konfiguration abgeschlossen, warten auf TCP-Verbindung mit Mobiltelefon
AN: TCP-Verbindung zu Mobiltelefon erfolgreich hergestellt
2 Jumper
(reserviert)
Bei normaler Verwendung stecken sie auf RX-RX1 und TX-TX1
Wenn das serielle USB zu TTL-Port-Modul zum Debuggen des ESP01-Moduls benutzt werden soll, dann nach oben(auszen) stecken. Sonst kann es zu Stoerungen kommen.
COM1 Gemeinsamer Anschluss Relais1 COM2 Gemeinsamer Anschluss Relais2
NO1
(NormallyOpen1)
Schlieszer Anschluss Relais1 NO2
(NormallyOpen1)
Schlieszer Anschluss Relais2
NC1
(NormallyClosed1)
Oeffner Anschluss Relais1 NC2
(NormallyClosed2)
Oeffner Anschluss Relais2
Relaissteuerbefehle
(HEX-Format)
Relais1 einschalten: A0 01 01 A2
Relais1 ausschalten: A0 01 00 A1
Relais2 einschalten: A0 02 01 A3
Relais2 ausschalten: A0 02 00 A2

Dies ist das Ergebnis des GoogleUebersetzers aus dem Chinesischen. Ich habe mich eng an das Original gehalten, aber doch an der ein oder anderen Stelle das Ergebnis frisiert:-).

PIN 1 Problem (mal wieder): Das ESP-01 hat in der Regel seinen Pin1 unten links (Draufsicht Antenne oben). Wie auch aus dem Aufdruck auf dem Modul (s. o.) deutlich wird. Das Relaisboard hat seine Markierung auf der Unterseite, aber oben links (Draufsicht Relais rechts) beim RX-Pin. Also wieder nicht aufgepasst!  


Die Tasmota-Config findet man hier

OTA Update mit Fehlermeldung fehlgeschlagen!

Upload Failed
Upload buffer miscompare

Die im Netz verbreitete Loesung mit dem "Umweg" ueber die Minimal-Firmware hat bei mir nicht funktioniert. Die minimale liesz sich aufspielen, aber ein Upgrade nach tasmota.bin war erfolglos. Also dann doch Adapter.

Nach vielem Hin und her habe ich mich gegen Tasmota fuer die Markisensteuerung entschieden. Um die Logik abzubilden reicht der Configumfang von Tasmota nicht aus. Es mag sein, dass es mit Rules und/oder Skript funktioniert haette. Aber das Risiko war mir zu grosz. Leider steht Berry auf dem ESP8266 nicht zur Verfuegung. Damit haette ich es hinbekommen. Aber der Sketch ist so simpel, dass sich der Aufwand in Tasmota fuer mich nicht gelohnt hat.

Die Nutzung des 'LC-Relay-ESP01-2R-5V' als Markisensteuerung habe ich in eine eigene Seite gepackt.

Mehrfach Relaiskarte

nuvoton n76E003 

Warum ich das hier reinkoppiert habe weisz ich selber nicht mehr.


2 UARTs

2 UARTs ist etwas uebertrieben. Eigentlich hat der ESP8266 nur einen UART und einen weiteren RXP-Anschluss an GPIO2.

Dazu gibt das Datenblatt folgende Erklaerung ab.

11.1. Functional Overview 
There are two group ESP8266 UART interfaces, respectively:
•UART0:
-U0TXD: pin26 (U0TXD)
-U0RXD: pin25 (U0RXD)
-U0CTS: pin12 (MTCK)
-U0RTS: pin13 (MTDO)
•UART1:
-U1TXD: pin14 (GPIO2)
The basic working process of transmission FIFO: 
As long as there has data filling into transmission FIFO, it will immediately start sending 
process.Since transmission itself is a relatively slow process,other data can be sent to the 
transmission FIFO simultaneously.  Data sending should be paused when the transmission 
FIFO is full ,or it will cause data loss.Transmission FIFO will sent out one by one in 
accordance with the order of the data filling in,until the transmission FIFO is completely 
empty.Data has been sent will be automatically cleared, at the same time transmission FIFO 
will be more of a vacancy. 
The basic working process of receiver FIFO: 
When the hardware logic receives the data, it will fill them into receiver FIFO. Program 
should withdraw the data timely ,the data-dequeue is also a process of deleting data from 
FIFO automatically,thus, there will be one more vacancy in receiver FIFO. If the data in the 
receiver FIFO can not be removed in time, the receiver FIFO will be full which makes data 
loss. 
Scenario: UART0 works as data communication interface and UART1 woks as debug port.


Probleme

Der ESP01 gibt nach dem Flashen auf dem seriellen Monitor nur Datensalat aus. Erst eine umstellen der Baudrate auf 74880 ergab eine lesbare Fehlermeldung.

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

load 0x4010f000, len 3460, room 16
tail 4
chksum 0xef
load 0x00000000, len 0, room 4
tail 0
chksum 0xef
csum 0xef
csum err
ets_main.c

Ich habe tatsaechlich einen leeren Loop. Das mag der ESP nicht. Einer schreibt man soll wenigstens ein delay drin haben.

Das ist aber nicht die Loesung!

Es waren die Parameter hinter dem write_flash -fs 1MB -fm dout 0x0 !!!

Zusatzinfo:

reset causes:
   0: 
   1: normal boot
   2: reset pin
   3: software reset
   4: watchdog reset
boot device:
   0:
   1: ram
   3: flash - See more at: http://www.esp8266.com/viewtopic.php?p=2096#p2112

Quellen

https://www.heise.de/make/artikel/ESP8266-flashen-3042776.html

https://www.kollino.de/arduino/esp8266-01-wlan-modul-flashen/

https://www.instructables.com/3-Simple-Ways-of-Programming-an-ESP8266-12X-Module/

http://stefanfrings.de/esp8266/

Request for Comments


Chris T. Ludwig

vor 38 Monaten
Punktzahl 0++
Testkommentar ESP8266
Kommentar hinzufügen
TippvomTibb freut sich über alle Kommentare. Sofern du nicht anonym bleiben möchtest, registriere dich bitte oder melde dich an.