ich benutze den WEMOS D1 mit intigriertem ESP8266-Chip.
ich habe aus der aRest-Bib. das entsprechende Skript für den ESP übertragen. Es ist auch möglich die Outputs anzusprechen, Var. anzuzeigen, Mode zu ändern.
Mein Problem liegt bei der Performance. Es kommt bei unterschiedlichen Rest-Anweisungen zum Absturz. Im Browser bekomme ich keine Rückmeldung mehr und muss das Board reseten. Mittels cmd kann ich das Board noch anpingen, wenn ein Reset benötigt wird
Ich spreche das Board direkt mit der IP-Adresse an.
Aus der aRest-Bib der Standard-Code mit meinen Wifi-Parametern
/*
This a simple example of the aREST Library for the ESP8266 WiFi chip.
See the README file for more details.
Written in 2015 by Marco Schwartz under a GPL license.
*/
// Import required libraries
#include <ESP8266WiFi.h>
#include <aREST.h>
// Create aREST instance
aREST rest = aREST();
// WiFi parameters
const char* ssid = "LOL";
const char* password = "LOL";
// The port to listen for incoming TCP connections
#define LISTEN_PORT 80
// Create an instance of the server
WiFiServer server(LISTEN_PORT);
// Variables to be exposed to the API
int temperature;
int humidity;
// Declare functions to be exposed to the API
int ledControl(String command);
void setup(void)
{
// Start Serial
Serial.begin(115200);
// Init variables and expose them to REST API
temperature = 24;
humidity = 40;
rest.variable("temperature",&temperature);
rest.variable("humidity",&humidity);
// Function to be exposed
rest.function("led",ledControl);
// Give name & ID to the device (ID should be 6 characters long)
rest.set_id("1");
rest.set_name("esp8266");
// Connect to WiFi
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() {
// Handle REST calls
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
rest.handle(client);
}
// Custom function accessible by the API
int ledControl(String command) {
// Get state from command
int state = command.toInt();
digitalWrite(6,state);
return 1;
}
Ich habe das ganze einmal mit meinem Handy getestet und mit einem anderen Browser getestet.
Mit dem Handy (Opera) und Firefox gibt es überhaupt keine Probleme. Da kann ich schalten und walten wie ich will ohne Absturz.
Ich habe die Abstürze nur mit Opera und Chrome am PC...