Hallo Leute,
Ich habe folgendes Problem: Ich kann meinen ESP 8266 nicht mit meinen Wlan verbinden. Ich bekomme bei folgendem ersten scatch nur Punkte im seriellen monitor angezeigt oder bei dem 2Scatch steht nur dort das er zu verbinden versucht und dann die Verbindung nicht funktioniert hat, zeigt aber auch nicht warum . Nutze die Boardverwalterversion 2.2.0. Würde mich sehr freuen wenn mir jemand schnell antworten könnte. Scatch 1:
for ESP8266 adapted Arduino IDE
#include <ESP8266WiFi.h>
const char* ssid = "Wireless_Home1";
const char* password = "XXXXXXXXXX";
unsigned long ulReqcount;
unsigned long ulReconncount;
// Create an instance of the server on Port 80
WiFiServer server(80);
void setup()
{
// setup globals
ulReqcount=0;
ulReconncount=0;
// prepare GPIO2
pinMode(2, OUTPUT);
digitalWrite(2, 0);
// start serial
Serial.begin(9600);
delay(1);
// inital connect
WiFi.mode(WIFI_STA);
WiFiStart();
}
void WiFiStart()
{
ulReconncount++;
// Connect to 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");
// Start the server
server.begin();
Serial.println("Server started");
// Print the IP address
Serial.println(WiFi.localIP());
}
void loop()
{
// check if WLAN is connected
if (WiFi.status() != WL_CONNECTED)
{
WiFiStart();
}
// Check if a client has connected
WiFiClient client = server.available();
if (!client)
{
return;
}
// Wait until the client sends some data
Serial.println("new client");
unsigned long ultimeout = millis()+250;
while(!client.available() && (millis()<ultimeout) )
{
delay(1);
}
if(millis()>ultimeout)
{
Serial.println("client connection time-out!");
return;
}
// Read the first line of the request
String sRequest = client.readStringUntil('\r');
//Serial.println(sRequest);
client.flush();
// stop client, if request is empty
if(sRequest=="")
{
Serial.println("empty request! - stopping client");
client.stop();
return;
}
// get path; end of path is either space or ?
// Syntax is e.g. GET /?pin=MOTOR1STOP HTTP/1.1
String sPath="",sParam="", sCmd="";
String sGetstart="GET ";
int iStart,iEndSpace,iEndQuest;
iStart = sRequest.indexOf(sGetstart);
if (iStart>=0)
{
iStart+=+sGetstart.length();
iEndSpace = sRequest.indexOf(" ",iStart);
iEndQuest = sRequest.indexOf("?",iStart);
// are there parameters?
if(iEndSpace>0)
{
if(iEndQuest>0)
{
// there are parameters
sPath = sRequest.substring(iStart,iEndQuest);
sParam = sRequest.substring(iEndQuest,iEndSpace);
}
else
{
// NO parameters
sPath = sRequest.substring(iStart,iEndSpace);
}
}
}
///////////////////////////////////////////////////////////////////////////////
// output parameters to serial, you may connect e.g. an Arduino and react on it
///////////////////////////////////////////////////////////////////////////////
if(sParam.length()>0)
{
int iEqu=sParam.indexOf("=");
if(iEqu>=0)
{
sCmd = sParam.substring(iEqu+1,sParam.length());
Serial.println(sCmd);
}
}
///////////////////////////
// format the html response
///////////////////////////
String sResponse,sHeader;
////////////////////////////
// 404 for non-matching path
////////////////////////////
if(sPath!="/")
{
sResponse="<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL was not found on this server.</p></body></html>";
sHeader = "HTTP/1.1 404 Not found\r\n";
sHeader += "Content-Length: ";
sHeader += sResponse.length();
sHeader += "\r\n";
sHeader += "Content-Type: text/html\r\n";
sHeader += "Connection: close\r\n";
sHeader += "\r\n";
}
///////////////////////
// format the html page
///////////////////////
else
{
ulReqcount++;
sResponse = "<html><head><title>Demo für ESP8266 Steuerung</title></head><body>";
sResponse += "<font color=\"#000000\"><body bgcolor=\"#d0d0f0\">";
sResponse += "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, user-scalable=yes\">";
sResponse += "<h1>Demo für ESP8266 Steuerung</h1>";
sResponse += "Funktion 1 schaltet GPIO2 und erzeugt eine serielle Ausgabe.
";
sResponse += "Funktion 2 erzeugt nur eine serielle Ausgabe.
";
sResponse += "<FONT SIZE=+1>";
sResponse += "<p>Funktion 1 <a href=\"?pin=FUNCTION1ON\"><button>einschalten</button></a> <a href=\"?pin=FUNCTION1OFF\"><button>ausschalten</button></a></p>";
sResponse += "<p>Funktion 2 <a href=\"?pin=FUNCTION2ON\"><button>einschalten</button></a> <a href=\"?pin=FUNCTION2OFF\"><button>ausschalten</button></a></p>";
//////////////////////
// react on parameters
//////////////////////
if (sCmd.length()>0)
{
// write received command to html page
sResponse += "Kommando:" + sCmd + "
";
// switch GPIO
if(sCmd.indexOf("FUNCTION1ON")>=0)
{
digitalWrite(2, 1);
}
else if(sCmd.indexOf("FUNCTION1OFF")>=0)
{
digitalWrite(2, 0);
}
}
sResponse += "<FONT SIZE=-2>";
sResponse += "
Aufrufzähler=";
sResponse += ulReqcount;
sResponse += " - Verbindungszähler=";
sResponse += ulReconncount;
sResponse += "
";
sResponse += "Stefan Thesen 04/2015
";
sResponse += "</body></html>";
sHeader = "HTTP/1.1 200 OK\r\n";
sHeader += "Content-Length: ";
sHeader += sResponse.length();
sHeader += "\r\n";
sHeader += "Content-Type: text/html\r\n";
sHeader += "Connection: close\r\n";
sHeader += "\r\n";
}
// Send the response to the client
client.print(sHeader);
client.print(sResponse);
// and stop the client
client.stop();
Serial.println("Client disonnected");
}
Scatch2: Projekt: GitHub - kakopappa/arduino-esp8266-alexa-multiple-wemo-switch: multiple belkin wemos switch emulator using ESP8266
Schöne Grüße
Lukas