Hallo ,
ich hab jetzt mal versucht den gesamten Sketch einzustellen , geht nicht ist zu lang, also nur das Setup. Klar da sind noch Serial.print mit drin , aber die sollten eigendlich ja kein Problem sein , und sind sie ja auch nicht wenn der ESP gestartet hat. Das Wifi.begin ist ja so ziemlich das erste was überhaupt gemacht wird, aber wenn er hängt ist er nicht im Netz, also kommt er nicht bis dahin denke ich.
ich tippe ehr auf ein Harwareproblem beim starten, deshalb meine Frage ob da einem bekannt vorkommt und sich das Problem einfach mit einem zus. Pull-up lösen lässt.
Noch zur Ergänzung.
an den PC gehe ich über ein USB Seriell Konverter, der eigendlich zum direkten aufstecken des ESP gedacht ist ( siehe Foto.) Die Verbindung hab ich dann über drei Strippen mit Stiftleiste auf beiden Seiten gemacht also steckbar.
Wenn der ESP hochlaufen soll ist es egal ob ich die Kabel direkt an der Lötraster Platine abstecke oder alles so drann lasse wie auf dem Foto zu sehen ist. Ich dachte zuerst das die strippen sich was einfangen und darum der ESP nicht startet. Es ist aber tatsächlich so der Konverter muss im PC stecken, sonst gehts nicht.
#include <Time.h>
#include <TimeLib.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <string.h>
#include <BME280I2C.h>
#include <Wire.h>
char ssid[] = "xxxx"; // lokales Netzwerk
char pass[] = "xxxx"; // passwort
unsigned int localPort = 2390; // lokaler port für UDP
IPAddress FritzboxIP(192, 168, 178, 1); // Fritzbox
const int NTP_PACKET_SIZE = 48; // NTP Paket länge
byte paket[ NTP_PACKET_SIZE]; // NTP puffer
boolean sommerzeit = true;
boolean status_messen = false;
String file = "wetter.csv";
unsigned long last_mess, last_buf;
unsigned long alarmzeit[12];
boolean alarmquit[12];
float temperatur, humidity, luftdruck; // aktualwerte
float tempMittelbuf, humMittelbuf, luftMittelbuf; // puffer gleitender Mittelwert
float buftemp[18], bufhum[18], bufluft[18]; // Kurzzeitspeicher
float Steigung, Abschnitt;
int ZeigerBuf = -1;
// UDP Instanz erstellen
WiFiUDP udp;
// Server Instanz erstellen
ESP8266WebServer server(80);
// FTP Instanz erstellen
WiFiClient ftpClient;// client Port 21
WiFiClient dClient;// client für daten Portnr. kommt vom Server
// BME settings
BME280I2C::Settings settings(
BME280::OSR_X1,
BME280::OSR_X1,
BME280::OSR_X1,
BME280::Mode_Forced,
BME280::StandbyTime_1000ms,
BME280::Filter_4,
BME280::SpiEnable_False,
0x77 // I2C address. I2C specific.
);
BME280I2C bme(settings);
//======================= Set up ============================
void setup() {
Serial.begin(115200);
Serial.println("-------------");
Serial.printf("Connecting to ", ssid);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(200);
Serial.print(".");
}
Serial.println("");
Serial.print("local IP:");
Serial.println(WiFi.localIP());
// NTP Zeit abrufen und läuft so automatisch zyklisch ab
setSyncProvider(get_time);
setSyncInterval(3600);
Serial.println(DatumZeit());
// WebServer starten
if (MDNS.begin("esp8266")) {
Serial.println("MDNS responder started");
}
server.on("/", handleRoot);
server.on ( "/test1.svg", drawGraph1 );
server.on ( "/test2.svg", drawGraph2 );
server.on ( "/test3.svg", drawGraph3 );
server.onNotFound(handleNotFound);
server.begin();
Serial.println("HTTP server started");
// I2C Bus starten an pin 1 u pin 2
Wire.begin(0, 2);
while (!bme.begin()) {
Serial.println(F(" Kann BME 280 Sensor nicht finden"));
}
// Alarmwerte vorbesetzeten ab 0:00:15 alle zwei Stunden
for (int i = 0; i <= 11; i++) {
alarmzeit[i] = i * 7200 + 15;
// Serial.println(alarmzeit[i]);
}
void alarm();// Alarm initialisieren auf aktuelle Zeit
}