commit 4aacefdb972bf443df7bf3c39985dde24817bf02 Author: Arne Baeumler Date: Mon Apr 13 21:32:42 2015 +0200 initial import diff --git a/esp8266/433/esp8266_433/esp8266_433.ino b/esp8266/433/esp8266_433/esp8266_433.ino new file mode 100644 index 0000000..5d9369e --- /dev/null +++ b/esp8266/433/esp8266_433/esp8266_433.ino @@ -0,0 +1,60 @@ +#include +#include + +RCSwitch mySwitch = RCSwitch(); + +const char* ssid = "skynet"; +const char* password = "#39dnSKDk39"; + +WiFiServer server(80); + +void setup() { + Serial.begin(9600); + delay(10); + + 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.localIP()); + + server.begin(); + mySwitch.enableTransmit(2); +} + +void loop() { + WiFiClient client = server.available(); + if (!client) { + return; + } + + Serial.println("client connection"); + while (!client.available()) { + delay(1); + } + + String req = client.readStringUntil('\r'); + Serial.println(req); + + client.flush(); + + String code_str = req.substring(5, 17); + Serial.println("Code: " + code_str); + + mySwitch.sendTriState((char*)code_str.c_str()); + + client.flush(); + + String s = "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\n"; + client.print(s); + client.print(code_str); + client.println(""); + + delay(1); + Serial.println("Client disonnected"); +} diff --git a/esp8266/sandbox/WiFiWebServer/WiFiWebServer.ino b/esp8266/sandbox/WiFiWebServer/WiFiWebServer.ino new file mode 100644 index 0000000..409da74 --- /dev/null +++ b/esp8266/sandbox/WiFiWebServer/WiFiWebServer.ino @@ -0,0 +1,98 @@ +/* + * This sketch demonstrates how to set up a simple HTTP-like server. + * The server will set a GPIO pin depending on the request + * http://server_ip/gpio/0 will set the GPIO2 low, + * http://server_ip/gpio/1 will set the GPIO2 high + * server_ip is the IP address of the ESP8266 module, will be + * printed to Serial when the module is connected. + */ + +#include + +const char* ssid = "demo-essid"; +const char* password = "demo-password"; + +// Create an instance of the server +// specify the port to listen on as an argument +WiFiServer server(80); + +void setup() { + Serial.begin(9600); + delay(10); + + // prepare GPIO2 + pinMode(2, OUTPUT); + digitalWrite(2, 0); + + // 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 a client has connected + WiFiClient client = server.available(); + if (!client) { + return; + } + + // Wait until the client sends some data + Serial.println("new client"); + while(!client.available()){ + delay(1); + } + + // Read the first line of the request + String req = client.readStringUntil('\r'); + Serial.println(req); + client.flush(); + + // Match the request + int val; + if (req.indexOf("/gpio/0") != -1) + val = 0; + else if (req.indexOf("/gpio/1") != -1) + val = 1; + else { + Serial.println("invalid request"); + client.stop(); + return; + } + + // Set GPIO2 according to the request + digitalWrite(2, val); + + client.flush(); + + // Prepare the response + String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n\r\n\r\nGPIO is now "; + s += (val)?"high":"low"; + s += "\n"; + + // Send the response to the client + client.print(s); + delay(1); + Serial.println("Client disonnected"); + + // The client will actually be disconnected + // when the function returns and 'client' object is detroyed +} +