PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arduino 1.8.10 ESP 8266 Programmieren



sams2019
28.11.2019, 22:59
Hallo zusammen
Ich Programmiere meine ESP8266 mit Arduino (Ich glaube das war 1.8.8 Ich weiß es nicht mehr genau) und alles hat super Funktionier!
Jetzt habe Ich (leider) auf Arduino 1.8.10 update und nix geht mehr.
Wenn ich mein Programm jetzt Hochlande bekomme ich immer folgende Fehlermeldung.


esptool.py v2.8
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: a4:cf:12:bf:86xyz
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0340
Compressed 289680 bytes to 209940...

Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 289680 bytes (209940 compressed) at 0x00000000 in 18.6 seconds (effective 124.3 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...


Meine Frage ist jetzt; Was muss ich machen das ich keine Fehlermeldung mehr bekomme?
Danke für die Antwort

Moppi
28.11.2019, 23:31
Hi sams2019,

da sind keine Fehler. Sieht bei mir genau so aus. Ist zwar eine Menge Text, aber da siehst Du wenigstens, ob alles in Ordnung war.
Fortschritt wird angezeigt, alle Daten zum ESP8266, dass die Daten überprüft wurden und das das Teil zurückgesetzt wurde, danach startet es.

Man muss immer auf "Hard resetting via RTS pin..." warten, bis alles fertig ist. Das dauert manchmal etwas, deswegen finde ich gut, dass das angezeigt wird.
Ich habe das zwischendurch auch schon abgewürgt, weil mir das so lang erschien, bis ich gemerkt habe, dass das noch nicht fertig war.

Ansonsten:

Menü "Datei" -> "Voreinstellungen"

dort dann Einstellungen:

- Ausführliche Ausgabe während (Kompilieren, Hochladen)
- Compiler Warnungen: keine, Standard, Weitere, Alle
- Code nach dem Hochladen überprüfen



MfG

sams2019
29.11.2019, 09:37
34544
Dankeschön für die sehr schnell Antwort Moppi
Ich habe das ESP8266 Programm nicht verändert, nur neu Hoch geladen und es läuft nicht mehr.
Es wird immer wieder neu gestartet!
Im Seriellen Monitor wird folgendes angezeigt (Siehe oben Bild)
Die Ausgabe wird nach dem "Hard resetting via RTS pin..." angezeigt!
Mfg

HaWe
29.11.2019, 10:14
hallo,
ich würde empfehlen,
1. auf den neuesten esp8266 core upzudaten (nodeMCU 1.0), edit: aktuell ist ver 2.6.2
2. wenn es dann immer noch nicht funktioniert: ein einfaches anderes Programm auf 1.8.10 zu verwenden (vorzugsweise aus den Original-Beispielen aus https://github.com/esp8266/Arduino/tree/master/libraries
3. und wenn es damit immer noch nicht läuft, ein sehr einfaches Minimal-Programm einmal hier https://github.com/esp8266/Arduino/issues zu posten, welches mit 1.8.9 läuft und mit 1.8.10 nicht mehr.
4. Solange es immer noch nicht klappt: arbeite doch mit 1.8.9 weiter, was spricht so unbedingt für 1.8.10 ?

sams2019
29.11.2019, 10:15
Ich mochte gerne Vorschlag Nummer 4. machen
Jetzt nur eine sehr dumme Frage LOL wie mache ich das?
Ich habe auf Update gedrückt ganz unten letzt Zeile bei Arduino

HaWe
29.11.2019, 10:50
du musst Arduino 1.8.9 downloaden und neu installieren.
Wenn du die portable Version hast, brauchst du dann nur den Unterordner "portable" neu aus 1.8.10 rüber zu kopieren.
Ansonsten könnte u.U. es nötig sein, dass du über die Windows Systemsteuerung einen früheren Wiederherstellungspunkt auswählst und Windows darauf zurücksetzt.
Ich selber installiere immer die portable Version, dann kann man mehrere Arduino-IDE-Versionen nebeneinander benutzen (HD Partition D: )

Ein Board core Update ist aber in jedem Falle wichtig! Hier kannst du im Boardmanager auch beliebig zwischen verschiedenen Versionen hin und her schalten.

- - - Aktualisiert - - -

PS:
edit:
nur als Hinweis:
zu portable Version siehe hier: https://www.arduino.cc/en/Guide/PortableIDE

wenn du bis jetzt die admin-Installation verwendest (per setup Programm, im Windows Programme Systemordner) und künftig die portable Version stattdessen verwenden möchtest (zip Download), dann ist es sinnvoll,
1. das alte Programm (Admin-Installation) mit einem zusätzlichen portable Ordner neu zu starten,
2. nach dem Neustart herunterfahren,
3. den neuen portable Ordner zu sichern
4. die Aduino IDE als portable Version neu auf eine andere Partition zu downoloaden,
5. dann die Admin-Installation über die Systeminstallation zu deinstallieren, damit es beim Compilieren kein Durcheinander bei den System- und Temp-Files gibt
6. dann die neu gedownloadede Version mit dem hineinkopierten alten portable Ordner neu starten.

Die portable Version soll NICHT in den Windows Programme Systemordner kopiert werden.

Moppi
29.11.2019, 11:07
Hi sams2019,

Du lädst Dein Programm neu hoch. Wo lädst Du es denn neu hoch? Ist das derselbe ESP8266? Oder hast Du vorher Dein Programm auf einen andern ESP8266 hochgeladen, als das Programm jetzt? Leider ist es manchmal auch so, dass es Probleme mit den Geräten gibt. Ich habe z.B. mehrere ESP-12E. Aber nicht jeder davon funktioniert einwandfrei. Während ich dasselbe Programm auf den einen hochlade und es dort funktioniert, stürzt ein anderer ESP-12E mit genau diesem Programm ab und verursacht solchen Fehler, wie Du ihn jetzt auch hast. Bei mir liegt das dann eindeutig an den ESP-12E und nicht an der Software.


MfG

HaWe
29.11.2019, 13:07
@sams2019:
ICH halte es für den sinnvollsten und einfachsten Weg, zunächst auf den neuesten ESP8266 core per Board Manager upzudaten (nodeMCU 1.0, aktuell ist ver 2.6.2)

sams2019
30.11.2019, 00:45
Danke für die Hilfe!
Was habe ich gemacht;
Zuerst war alles OK und ich konnte alles machen.
Dann habe ich unten links ein Board update gemacht
Hatte leider keine Zeit mehr für meinen PC und musste den PC ausmachen
Am nesten Tag habe ich wieder angemacht und wollte das Programm für den ESP8266 neu Hochladen (Das gleich wie am Vortag) Gleich Programm und gleich ESP8266.
Dann hatte ich die Probleme wie oben beschrieben!
Jetzt habe folgendes gemacht: core per Board Manager upzudaten (nodeMCU 1.0, aktuell ist ver 2.6.2)
Jetzt bekomme ich folge Fehlermeldung:
ets Jan 8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x4010f000, len 1384, room 16
tail 8
chksum 0x2d
csum 0x2d
vbc204a9b

Der ESP8266 Start, geht ins Wlan, macht ein Teil des Programm und macht ein neu Start Fehlermeldung usw.

HaWe
30.11.2019, 10:53
dann würde ich jetzt bei Punkt 2 weitermachen - oder gleich die alte Arduino Version wieder herstellen.


hallo,
ich würde empfehlen,
1. auf den neuesten esp8266 core upzudaten (nodeMCU 1.0), edit: aktuell ist ver 2.6.2
2. wenn es dann immer noch nicht funktioniert: ein einfaches anderes Programm auf 1.8.10 zu verwenden (vorzugsweise aus den Original-Beispielen aus https://github.com/esp8266/Arduino/tree/master/libraries
3. und wenn es damit immer noch nicht läuft, ein sehr einfaches Minimal-Programm einmal hier https://github.com/esp8266/Arduino/issues zu posten, welches mit 1.8.9 läuft und mit 1.8.10 nicht mehr.
4. Solange es immer noch nicht klappt: arbeite doch mit 1.8.9 weiter, was spricht so unbedingt für 1.8.10 ?

- - - Aktualisiert - - -

PS,
probiere z.B. mal diesen Testcode aus:
(läuft bei mit mit IDE 1.8.9 und nodeMCU cores 2.5.2 und 2.6.2)



/*
* Simple HTTP get webclient test
*/

#include <ESP8266WiFi.h>

const char* ssid = "WLAN";
const char* password = "4657";

const char* host = "wifitest.adafruit.com";

void setup() {
Serial.begin(115200);
delay(100);

// We start by connecting to a WiFi network

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}

int value = 0;

void loop() {
delay(5000);
++value;

Serial.print("connecting to ");
Serial.println(host);

// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}

// We now create a URI for the request
String url = "/testwifi/index.html";
Serial.print("Requesting URL: ");
Serial.println(url);

// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
delay(500);

// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}

Serial.println();
Serial.println("closing connection");
}

sams2019
30.11.2019, 12:32
Alles ein wenig komisch!!
Das Problem mit dem Update habe ich glaub Lösen können, mit euer Hilfe – Vielen Dank dafür!
Habe core per Board Manager upzudaten (nodeMCU 1.0, aktuell ist ver 2.6.2) gemacht!
Jetzt hat das Programm auf einmal ein Zeit Problem nur warum – Es war ja alles in Ordnung!!!
Das Beispiel Programm von dir lauf einwandfrei jetzt durch!

Mein Programm:


#include <ESP8266WiFi.h>

#include <ESP8266HTTPClient.h>
HTTPClient sender;

#include <ArduinoJson.h>

const char* ssid = "abc";
const char* password = "123";

float temperature;
float pressure;
float humidity;
int anzahl;


void setup() {
Serial.begin(115200);


// === Feste IP

IPAddress ip(192, 168, 178, 150 + 3);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress dns(192, 168, 178, 1);
WiFi.config(ip, dns, gateway, subnet);
WiFi.begin(ssid, password);

Serial.println();
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println();
Serial.println("[WiFi] Connected!");
Serial.println("[WiFi] Hostname: " + WiFi.hostname());
Serial.println("[WiFi] MAC: " + WiFi.macAddress());
Serial.println("[WiFi] SSID: " + WiFi.SSID());
Serial.println("[WiFi] IP: " + WiFi.localIP().toString());
Serial.println();
}

void loop() {

IP_BME280_auslesen("http://192.168.178.151");

float temperature1 = temperature;
float pressure1 = pressure;
float humidity1 = humidity;
int anzahl1 = anzahl;


Serial.println("PC Tisch");
Serial.println("Temperature: " + String( temperature1 ));
Serial.println("Pressure: " + String( pressure1 ));
Serial.println("Humidity: " + String( humidity1 ));
Serial.println("Anzahl: " + String( anzahl1 ));
Serial.println("");

delay(1000);


IP_BME280_auslesen("http://192.168.178.176");

float temperature2 = temperature;
float pressure2 = pressure;
float humidity2 = humidity;
int anzahl2 = anzahl;


Serial.println("draussen");
Serial.println("Temperature: " + String( temperature2 ));
Serial.println("Pressure: " + String( pressure2 ));
Serial.println("Humidity: " + String( humidity2 ));
Serial.println("Anzahl: " + String( anzahl2 ));
Serial.println("");

delay(1000);


}


void IP_BME280_auslesen(String ip) {
sender.begin(ip);
sender.GET();

String returned_daten = sender.getString();
Serial.println("Ausgabe: " + returned_daten);

StaticJsonBuffer<150> JSONBuffer;

JsonObject& parsed = JSONBuffer.parseObject(returned_daten);

temperature = parsed["temperature"];
pressure = parsed["pressure"];
humidity = parsed["humidity"];
anzahl = parsed["anzahl"];
}

mmm wie füge ich Programm Code ein im Forum???

HaWe
30.11.2019, 16:23
probiere dann doch mal ein paar von den original Standard-Examples aus: https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266HTTPClient/examples

HaWe
30.11.2019, 19:35
nur mal interessehalber, weil ich gerade darauf stieß - probier mal bei WiFi.config stattdessen
WiFi.config(ip, gateway, subnet); // ohne DNS

bei dieser Zeile hatte ich beim ESP32 auch schon mal Verbindungsabbrüche...