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$");
  
}