Inhaltsverzeichnis

ESP8266 Setup

Wie so oft, steht hier unten drunter alles, was nicht geklappt hat, bis es dann endlich klappte.

Info zu meinen diversen ESPs D1 mini

ESP-01 bzw. ESP-01S

Die Zusammenfassung: Wirklich mit Widerständen und dem Kondensator arbeiten, sonst klappt es manchmal und manchmal nicht. Und die Spannung muss stimmen. Mit 3 Volt ging es nicht. Jetzt habe ich 4.5 V angeschlossen und dann gehts. Aktuell arbeite ich mit 2.5.2 des Arduino ESP-Treibers. Vom Programmierer sind nur GND TX und RX angeschlossen (Lichtchen auf meinem Entwicklungsboard zur Mitte).

Will man mit AT-Kommandos arbeiten, empfehle ich diese Seite. Habe es zwar noch nicht hinbekommen, wollte aber mein Entwicklungsboard nicht neu verdrahten, nachdem es jetzt endlich mal geht. Man braucht noch ein Terminal Programm. Empfohlen wird dort CoolTerm.

Zum Betrieb des ESP01 müssen VCC mit CH_EN (CH_PD) verbunden sein!


Chip ist ESP8266EX
https://plugable.com/2011/07/12/installing-a-usb-serial-adapter-on-mac-os-x/
https://github.com/esp8266/Arduino/issues/4005
http://stefanfrings.de/esp8266/

Modul Pin NameBeschreibung
1RxD (GPIO3)serieller Eingang oder normaler I/O Pin
3GPIO0Low beim Start aktiviert Firmware-Upload, muss zum normalen Start offen sein oder auf High liegen
5GPIO2 (TxD)Ist mit der blauen LED verbunden, die bei LOW Pegel leuchtet. Flackert beim Start. Darf beim Start nicht auf Low gezogen werden. Ausgang vom zweiten UART, der nur Ausgabe kann.
7GNDMasse
2VCCSpannungsversorgung 3,3 V
4RESETLow=Reset, hat schwachen Pull-Up Widerstand auf High
6CHIP_ENMuss auf High gezogen werden, damit der Chip arbeitet. Low=Chip Power Down, High=Chip Enabled
8TxD (GPIO1)serieller Ausgang oder normaler I/O Pin, ist mit der blauen LED verbunden, flackert beim Start, darf beim Start nicht auf Low gezogen werden

Hier ein paar Infos, welche Pins man besser nicht nutzen sollte, und welche Besonderheiten aufweisen: Externer Link

Version 2.5.2 GEHT NICHT !
Version 2.4.2 von Boardverwalter und ESP8266 installiert
Upload, Serial.Begin und Serieller Monitor alles auf „115200“

2.5+ funktioniert nicht

flashing issues:
https://github.com/esp8266/Arduino/issues/6296

Alles flashen, aber nach dem flash den gelben draht von GND wegnehmen (GND ist zum Programmieren): Bei 2.5.2 ging mit 115.200 gar nichts, mit 57.600 erkennt er den Chip, hat aber beim connecten ein Problem (mehrmals reset half).

Dann nur uploadspeed 57.600, sketch mit 57.600 im serial.begin und monitor. Danach wieder gelb disconnecten und reset: geht- aber nicht nach weiteren resets Runter bis auf 19.200 in sketch und monitor, 57.600 upload nach einem reset gibts immmer probleme…. also doch wieder 2.4.2

hier fange ich jetzt mit 19.200 an und upload 57.600 - geht nicht, seufz dann mit allen 3 auf 115.200 - nix 57600 und 2*74880 (je 273632 bytes upload from 000) alles nix.

Neuer Versuch mit 2.5.2: Alles flashen, dann wieder auf 2.4.2 und nur mit 'Only Sketch' 57600/38400

Nach Batterie weg, USB weg und 2.4.2. mit wifi-reset und 57.600 überall und gelb offen gehts wieder, auch nach reset *seufz*

2 TXD - lila (TX oder gpio1)
4 CH_EN grau	chip enable active high
6 REST  weiss
8 VCC3.3   schwarz

1 GND   blau
3 GPIO2 grün	GPIO-2
5 GPIO0 gelb	GPIO-0 (wenn auf GND beim Start, chip zum seriellen programmieren vorbereiten)
7 RXD   orange (RX oder gpio3)

GPIO3 und GPIO0 HIGH - run
GPIO3 LOW und 0 HIGH - programm


Blaue LED ist zwischen + und TX

http://www.arduinesp.com/blink-manual-flash

http://www.esp8266.com/wiki/doku.php?id=getting-started-with-the-esp8266

https://github.com/esp8266/Arduino
In Arduino Preferencesden Link eintragen:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Im Boardmanager esp8266 platform herunterladen.
Tools→Board→ESP8266

led an grün und masse

zusätzlich +5v an das erste beinchen vom usbprogrammer und minus verbinden

beim uploaden hilft: usb raus, reset, usb rein, reset, hochladen

ausprobieren am mac http://hpclab.blogspot.de/2015/06/esp8266-arduino-ide-on-mac-os-x.html

https://www.hackster.io/noelportugal/esp8266-ifttt-easy-button-888a87
http://www.arduinesp.com/examples

https://hackaday.io/project/5150-arduino-ide-for-esp8266-quickstart-guide

für die blaue tx led siehe: http://www.esp8266.com/viewtopic.php?f=6&t=1033

https://learn.sparkfun.com/tutorials/esp8266-thing-hookup-guide/example-sketch-ap-web-server

mehr aus den pins rausholen: http://www.forward.com.au/pfod/ESP8266/GPIOpins/ESP8266_01_pin_magic.html

selbst gemessener verbrauch: ruhe: 0.34 mA (340yA) action: 108mA für ca. 8 Sec bei aktueller Source (1 Sek Pause nach VCC lesen und je 1 Sek je Verbindungsaufbau-Versuch)

const int output1 = 0;    //GPIO0
const int output2 = 2;    //GPIO2
const int output3 = 1;    //TX GPIO1
const int output4 = 3;    //RX GPIO3
// configure GPIO 0 and GPIO 2 as outputs:
  pinMode(output1, OUTPUT);
  pinMode(output2, OUTPUT);
  // GPIO1 and GPIO3
  pinMode(output3, SPECIAL);
  pinMode(output4, OUTPUT);

  // set outputs to low:
  digitalWrite(output1, LOW);
  digitalWrite(output2, LOW);
  digitalWrite(output3, LOW);
  digitalWrite(output4, LOW);
  

OK, mit der aktuellen Beschaltung scheint es zu funktionieren… (August 2019)

https://www.instructables.com/id/How-to-use-the-ESP8266-01-pins/\\ 
http://www.forward.com.au/pfod/ESP8266/GPIOpins/index.html
  Eine Menge Pullup-Widerstände (4 gelb,grün,grau und reset schalter), Zwei Pulldown widerstände (grau und Programm switch).
  gelb geht an geräuschsensor - GND über 440ohm
  plus an geräuschsensor plus
  grün an DigitalOut des geräuschsensors über 440ohm
  vom programmierer sind nur rx,tx und gnd angeschlossen.
  
  weisses kabel auf gelb setzt den esp in programming mode. danach wieder weg machen
  dann reset taster drücken und uploaden.
jetzt gehts weiter mit interrups:
https://techtutorialsx.com/2016/12/11/esp8266-external-interrupts/
Bei der Meldung "ISR not in IRAM!" vor die Interruptroutine "ICACHE_RAM_ATTR void handleInterrupt() {" schreiben.
volatile variablen (volatile int checker = -1;) sagen, dass sie auch durch einen Interrupt geändert werden können, nicht nur vom hauptprogramm.

OUTDOOR - ESP01

Zwei Probleme: DeepSleep und Reset. Das Eine geht nur, wenn man SMD lötet, also den Eckpinn des ICs der beim Widerstand ist mit RST verbindet. Das zweite ist, dass man den DHT22 nicht an den GPIO2 anschliessen kann, weil dann nach einem Reset der ESP zwar startet, aber der DHT keine Daten mehr liefert. Beides hat mich Unmengen an Zeit und auch je ein oder zwei kaputte Bauteile gekostet.

(inzwischen habe ich schon 3 defekte aus China weggeschmissen und eins hat 200mA verbrutzelt, auch weg)

Das DHT22 Shield geht leider auf den GPIO2, also geht der DHT22 nach einem Reset nicht mehr. Man muss die Betriebsspannung weg und neu dran machen, damit es wieder funktioniert.

Warum der DHT22 jetzt mit GPIO0 funktioniert - keine Ahnung - aber auch nur nach Betriebsspannung frisch anlegen - dann aber auch nach einem deep sleep.

Die im Internet gefundenen Zeilen haben nichts gebracht

// hat nix gebracht
pinMode(DHT22PIN, OUTPUT); // NO MORE DHT22 VALUES AFTER DEEP SLEEP (oder bei dem shield nach einem reset) 
digitalWrite(DHT22PIN, LOW);
  

Ausprobieren: I had the issue after soft Reboot. I connect now the DTH22 to the GPIO3 (Rx) Pin. Ging bei dem dann aber auchnicht mehr. *seufz*

Testergebnisse

11.08.2020 - 30.08.2020 (19 Tage) 865 Messungen a 30 Minuten, dann war der Akku alle.
Neuer Versuch: Wieder 30 Minuten, aber nur bei jeder 2ten Messung wird der Server kontaktiert (anderer Akku!)

USB to ESP-01 Adapter Board

Es gibt ein Adapter-Board - damit man es direkt betreiben kann mit 5V. Ich dachte, das wäre ein Programmierer - was es wäre, wenn Reset-Taster und/oder die Leitung zwischen GND und GPIO0 da wären.

Google sei Dank, die Änderungen: Zwei Buttons eingebaut. Den Reset zwischen RST-GND und den zum Programmieren zwischen GND und zwei weiter.
Man muss den Programmierer mit gedrücktem Programm-Button in USB schieben. Dann kann man Installieren. Will man die Flash-Daten komplett löschen braucht er ja noch einen Reset. Dann BEIDE Button drücken und Reset zuerst loslassen.

0,46mA Ruhestrom - ist zu viel. Muss wohl an dem billigen Spannungs-reduzierer liegen - weiter mit Tests. Der DHT22-Head braucht 15mA in Ruhe - hallo, was soll denn das?

Mit einem neuen Chip, der nur noch runter auf 3.3Volt Bucket, sind es statt.353,6 MicroAmpere nur noch 6,6 MicroAmpere - ich denke, da sollte was bringen :)

macOS Big Sur

Probleme beim übersetzen, sowohl esp32, als auch esp8266.

Mit dem löschen des Flashes ging auch einmal wieder mit dem normalen upload…

Lösung ist wohl: 10microFarad Kondensator zwischen EN und GND schalten.

Zeile 29 und 30 in der Datei:
~/Library/Arduino15/packages/esp8266/hardware/esp8266/2.7.4/tools/pyserial/serial/tools/list_ports_osx.py
ersetzen durch:
iokit = ctypes.cdll.LoadLibrary('/System/Library/Frameworks/IOKit.framework/IOKit')
cf = ctypes.cdll.LoadLibrary('/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation')