firmware per leggere dalla seriale della Nucleo
serverReciveTethering.txt
- Committer:
- divui
- Date:
- 2017-02-27
- Revision:
- 2:bc0caa30735b
- Parent:
- 1:a3481c2fb440
File content as of revision 2:bc0caa30735b:
// 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 * * * Bisogna condividere la connessione da un qualunque dispositov con i seguenti paramentri: * SSID: "ArduinoAP" * PSW: "12345678" * * 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$"); }