firmware per leggere dalla seriale della Nucleo
Diff: serverReciveTethering.txt
- Revision:
- 1:a3481c2fb440
- Child:
- 2:bc0caa30735b
diff -r 63c0b5f230da -r a3481c2fb440 serverReciveTethering.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/serverReciveTethering.txt Mon Feb 27 12:48:48 2017 +0000 @@ -0,0 +1,163 @@ +// file .ino da caricare tramite Arduino IDE + +/* + * Per poter programmare ESP8266 o simili tramite Ide arduino bisogna eseguire le seguenti operazioni: + * 1) Aprire ArduinIDE le "File - Impostazioni" + * 2) Inserire "http://arduino.esp8266.com/stable/package_esp8266com_index.json" nel riquadro URL aggiuntive... + * 3) Arpire "Strumenti - Scheda - Gestore schede - cercare 'ESP8266' e scaricare il pacchetto" + * 4) Selezionare WeMos D1 (Retired) + * + * + * I driver WEMOS D1 mini + * https://www.wemos.cc/tutorial/get-started-arduino.html + * + * + * + * Collegamenti + * + * WeMOS ---> Nucleo + * 3v3 ---> 3v3 + * G ---> GND + * TX ---> D8 + * + * + * + * + * In MBED bisogna definire la seriale: + * Serial esp(PA_9,PA_10); { PA_9 - TX - (D8) ---- PA_10 - RX - (D2) } + * + * La stringa trasmessa deve essere di tipo: + * esp.printf("%s$", "Stringa che trasmetto"); + * + * Se voglio trasmettere un paramentro (number) intero ad esempio: + * esp.printf("%s-%d$", "Value",number); + */ + + + +#include <ESP8266WiFi.h> +#include <WiFiClient.h> +#include <ESP8266WebServer.h> +#include <ESP8266mDNS.h> + + +#define ACCESS_POINT_NAME "ESP_Serial_Monitor" +#define ACCESS_POINT_PASSWORD "12345678" + +const char* ssid = "AndroidAP";// +const char* password = "12345678";// + +String precedente=""; +String attuale; + +int count=0; + +ESP8266WebServer server(80); + +const int led = 13; + +void handleRoot() { + digitalWrite(led, 1); + + + attuale=Serial.readString(); + + //per ordinalre la stringa ricevuta in maniera decrescente + Serial.println(attuale); + int from=-1; + while(1){ + int to=from+1; + from=attuale.indexOf("$",(to+1)); + Serial.print("from: ");Serial.println(from); + if (from==-1) break; + Serial.print("Stringa: ");Serial.println(attuale.substring(to,from)); + precedente=attuale.substring(to,from)+ "<br>" + precedente.substring(0, precedente.indexOf("<br>", 500)); + } + + String content = "<html><head>"; + content += "<meta http-equiv='refresh' content='0.1'></head>"; + content += "<body>"; + //content += attuale; + content += precedente; + content += "</body></html>"; + server.send(200, "text/html", content); + + /* attuale.substring(0,(attuale.lastIndexOf ("<br>")-1)); + precedente=attuale + precedente.substring(0, precedente.indexOf("<br>", 500)); +*/ + Serial.println("scrivo sulla pagina web"); + + digitalWrite(led, 0); +} + +void handleNotFound(){ + digitalWrite(led, 1); + String message = "File Not Found\n\n"; + message += "URI: "; + message += server.uri(); + message += "\nMethod: "; + message += (server.method() == HTTP_GET)?"GET":"POST"; + message += "\nArguments: "; + message += server.args(); + message += "\n"; + for (uint8_t i=0; i<server.args(); i++){ + message += " " + server.argName(i) + ": " + server.arg(i) + "\n"; + } + server.send(404, "text/plain", message); + digitalWrite(led, 0); +} + +void setup(void){ + pinMode(led, OUTPUT); + digitalWrite(led, 0); + Serial.begin(115200); + Serial.begin(115200); + + + WiFi.begin(ssid, password); + Serial.println(""); + + // Wait for connection + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(""); + Serial.print("Connected to "); + Serial.println(ssid); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + Serial.println(); + Serial.println(WiFi.localIP()); + + + if (MDNS.begin("esp8266")) { + Serial.println("MDNS responder started"); + } + + /* AP MODE + WiFi.mode(WIFI_AP_STA); + WiFi.softAP( ACCESS_POINT_NAME , ACCESS_POINT_PASSWORD); + + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); + */ + server.on("/", handleRoot); + + server.on("/inline", [](){ + server.send(200, "text/plain", "this works as well"); + }); + + server.onNotFound(handleNotFound); + + server.begin(); + Serial.println("HTTP server started"); +} + +void loop(void){ + server.handleClient(); + + delay(500); + Serial.print("&Ciao$"); + +} \ No newline at end of file