Ich habe ein Problem mit meinem Programm für den ESP8266 mit Einbindung der ArduinoOTA in folgendem Code:
#include <dummy.h>
#include "DHT.h"
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiClient.h>
#include <Wire.h>
#include <ArduinoOTA.h>
const char* ssid = "ulrker"; // Festlegung unserer SSID (Name des WLAN-Netzwerks)
const char* password = "Kerstin-1960"; // Festlegung unseres WLAN-Passworts
#define DHTPIN 14 //Der Sensor wird an PIN 14 angeschlossen
#define DHTTYPE DHT22 // Es handelt sich um den DHT22 Sensor
DHT dht(DHTPIN, DHTTYPE); //Der Sensor wird ab jetzt mit „dht“ angesprochen
int sensorwert = 0; // Diese Variablen haben wir der Anleitung 10 entnommen.
int TMP36 = 16; // Sie dienen im späteren Verlauf der Ermittlung der Temperatur
int temperatur = 0;
int temperatur1;
int t=500;
WiFiServer server(80); // WLAN Verbindung wird über den Port80 hergestellt
void setup() // Im Setup werden unsere Einstellungen konfiguriert. Zudem bauen wir Kontrollelemente ein, die uns zur Überwachung des NodeMCU dienen.
{
dht.begin(); //DHT22 Sensor starten
WiFi.begin(ssid,password); // Die WLAN Verbindung wird, mit der oben definierten SSID und dem zugehörigen Passwort hergestellt
IPAddress ip(192, 168, 178, 92);
IPAddress gateway(192, 168, 178, 1);
IPAddress subnet(255, 255, 255, 0);
WiFi.config(ip, gateway, subnet);
while (WiFi.status() != WL_CONNECTED) // Solange noch keine WLAN-Verbindung besteht....
{
delay(500);
Serial.print(".");
}
Serial.println();
ArduinoOTA.setHostname("Garten");
ArduinoOTA.begin();
server.begin(); // Das NodeMCU dient nun als Mini-Webserver, auf welchem wir Daten temporär speichern können
Serial.begin(115200);
Serial.println("");
Serial.println("WLAN verbunden.");
Serial.print("Die IP address lautet: ");
Serial.println(WiFi.localIP()); // Nun wird die sogenannte localIP ausgegeben. Diese können wir später im Webbrowser aufrufen und die Temperaturwerte ablesen.
delay(10000); // An dieser Stelle geben wir dem ESP-Modul 10 Sekunden Zeit für die Initialisierung
}
void loop() {
WiFiClient client = server.available(); // listen for incoming clients
float Luftfeuchtigkeit = dht.readHumidity(); //die Luftfeuchtigkeit auslesen und unter „Luftfeutchtigkeit“ speichern
float Temperatur = dht.readTemperature();//die Temperatur auslesen und unter „Temperatur“ speichern
Serial.print("Temperatur Garten: ");
Serial.println(Temperatur);
ArduinoOTA.handle();
if (client) { // if you get a client,
String currentLine = ""; // make a String to hold incoming data from the client
while (client.connected()) { // loop while the client's connected
if (client.available()) { // if there's bytes to read from the client,
Serial.println ("Anfrage neuer Server");
delay(t);
//client.println("HTTP/1.1 200 OK");
//client.println("Content-type:text/html; charset=UTF-8");
//client.println("<!DOCTYPE html><html>");
client.print("<body bgcolor=#00FF00>");
client.print("<font size=7>");
client.print("Temperatur Garten: ");
// client.print("Temperatur Garten: ");
client.println(Temperatur);
// client.print("</span>"); // An dieser Stelle soll die Variable ausgegeben werden.
break; // Der "break;" beendet die Schleife
}
}
}
delay(10000); // Wir warten 5 Minuten (= 300000)
client.stop(); // ... und beenden die Verbindung zum Webserver.
}
Nach dem Laden über den Com-Port beende ich den seriellen Monitor und ziehe das USB-Kabel ab. Dann versuche ich über den in der IDE angegebenen WLAN-Port den seriellen Monitor aufzurufen. Dann kommt aber immer die oben angegebene Fehlermeldung. Der Webserver funktioniert im Edge-Browser, jedoch nicht im Safari-Browser auf dem I-Pad. Woran kann das liegen.