firmware per leggere dalla seriale della Nucleo

Committer:
divui
Date:
Mon Feb 27 13:06:39 2017 +0000
Revision:
2:bc0caa30735b
Parent:
1:a3481c2fb440
.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
divui 1:a3481c2fb440 1 // file .ino da caricare tramite Arduino IDE
divui 1:a3481c2fb440 2
divui 1:a3481c2fb440 3 /*
divui 1:a3481c2fb440 4 * Per poter programmare ESP8266 o simili tramite Ide arduino bisogna eseguire le seguenti operazioni:
divui 1:a3481c2fb440 5 * 1) Aprire ArduinIDE le "File - Impostazioni"
divui 1:a3481c2fb440 6 * 2) Inserire "http://arduino.esp8266.com/stable/package_esp8266com_index.json" nel riquadro URL aggiuntive...
divui 1:a3481c2fb440 7 * 3) Arpire "Strumenti - Scheda - Gestore schede - cercare 'ESP8266' e scaricare il pacchetto"
divui 1:a3481c2fb440 8 * 4) Selezionare WeMos D1 (Retired)
divui 1:a3481c2fb440 9 *
divui 1:a3481c2fb440 10 *
divui 1:a3481c2fb440 11 * I driver WEMOS D1 mini
divui 1:a3481c2fb440 12 * https://www.wemos.cc/tutorial/get-started-arduino.html
divui 1:a3481c2fb440 13 *
divui 1:a3481c2fb440 14 *
divui 1:a3481c2fb440 15 *
divui 1:a3481c2fb440 16 * Collegamenti
divui 1:a3481c2fb440 17 *
divui 1:a3481c2fb440 18 * WeMOS ---> Nucleo
divui 1:a3481c2fb440 19 * 3v3 ---> 3v3
divui 1:a3481c2fb440 20 * G ---> GND
divui 1:a3481c2fb440 21 * TX ---> D8
divui 1:a3481c2fb440 22 *
divui 2:bc0caa30735b 23 *
divui 2:bc0caa30735b 24 * Bisogna condividere la connessione da un qualunque dispositov con i seguenti paramentri:
divui 2:bc0caa30735b 25 * SSID: "ArduinoAP"
divui 2:bc0caa30735b 26 * PSW: "12345678"
divui 2:bc0caa30735b 27 *
divui 2:bc0caa30735b 28
divui 1:a3481c2fb440 29 * In MBED bisogna definire la seriale:
divui 1:a3481c2fb440 30 * Serial esp(PA_9,PA_10); { PA_9 - TX - (D8) ---- PA_10 - RX - (D2) }
divui 1:a3481c2fb440 31 *
divui 1:a3481c2fb440 32 * La stringa trasmessa deve essere di tipo:
divui 1:a3481c2fb440 33 * esp.printf("%s$", "Stringa che trasmetto");
divui 1:a3481c2fb440 34 *
divui 1:a3481c2fb440 35 * Se voglio trasmettere un paramentro (number) intero ad esempio:
divui 1:a3481c2fb440 36 * esp.printf("%s-%d$", "Value",number);
divui 1:a3481c2fb440 37 */
divui 1:a3481c2fb440 38
divui 1:a3481c2fb440 39
divui 1:a3481c2fb440 40
divui 1:a3481c2fb440 41 #include <ESP8266WiFi.h>
divui 1:a3481c2fb440 42 #include <WiFiClient.h>
divui 1:a3481c2fb440 43 #include <ESP8266WebServer.h>
divui 1:a3481c2fb440 44 #include <ESP8266mDNS.h>
divui 1:a3481c2fb440 45
divui 1:a3481c2fb440 46
divui 1:a3481c2fb440 47 #define ACCESS_POINT_NAME "ESP_Serial_Monitor"
divui 1:a3481c2fb440 48 #define ACCESS_POINT_PASSWORD "12345678"
divui 1:a3481c2fb440 49
divui 1:a3481c2fb440 50 const char* ssid = "AndroidAP";//
divui 1:a3481c2fb440 51 const char* password = "12345678";//
divui 1:a3481c2fb440 52
divui 1:a3481c2fb440 53 String precedente="";
divui 1:a3481c2fb440 54 String attuale;
divui 1:a3481c2fb440 55
divui 1:a3481c2fb440 56 int count=0;
divui 1:a3481c2fb440 57
divui 1:a3481c2fb440 58 ESP8266WebServer server(80);
divui 1:a3481c2fb440 59
divui 1:a3481c2fb440 60 const int led = 13;
divui 1:a3481c2fb440 61
divui 1:a3481c2fb440 62 void handleRoot() {
divui 1:a3481c2fb440 63 digitalWrite(led, 1);
divui 1:a3481c2fb440 64
divui 1:a3481c2fb440 65
divui 1:a3481c2fb440 66 attuale=Serial.readString();
divui 1:a3481c2fb440 67
divui 1:a3481c2fb440 68 //per ordinalre la stringa ricevuta in maniera decrescente
divui 1:a3481c2fb440 69 Serial.println(attuale);
divui 1:a3481c2fb440 70 int from=-1;
divui 1:a3481c2fb440 71 while(1){
divui 1:a3481c2fb440 72 int to=from+1;
divui 1:a3481c2fb440 73 from=attuale.indexOf("$",(to+1));
divui 1:a3481c2fb440 74 Serial.print("from: ");Serial.println(from);
divui 1:a3481c2fb440 75 if (from==-1) break;
divui 1:a3481c2fb440 76 Serial.print("Stringa: ");Serial.println(attuale.substring(to,from));
divui 1:a3481c2fb440 77 precedente=attuale.substring(to,from)+ "<br>" + precedente.substring(0, precedente.indexOf("<br>", 500));
divui 1:a3481c2fb440 78 }
divui 1:a3481c2fb440 79
divui 1:a3481c2fb440 80 String content = "<html><head>";
divui 1:a3481c2fb440 81 content += "<meta http-equiv='refresh' content='0.1'></head>";
divui 1:a3481c2fb440 82 content += "<body>";
divui 1:a3481c2fb440 83 //content += attuale;
divui 1:a3481c2fb440 84 content += precedente;
divui 1:a3481c2fb440 85 content += "</body></html>";
divui 1:a3481c2fb440 86 server.send(200, "text/html", content);
divui 1:a3481c2fb440 87
divui 1:a3481c2fb440 88 /* attuale.substring(0,(attuale.lastIndexOf ("<br>")-1));
divui 1:a3481c2fb440 89 precedente=attuale + precedente.substring(0, precedente.indexOf("<br>", 500));
divui 1:a3481c2fb440 90 */
divui 1:a3481c2fb440 91 Serial.println("scrivo sulla pagina web");
divui 1:a3481c2fb440 92
divui 1:a3481c2fb440 93 digitalWrite(led, 0);
divui 1:a3481c2fb440 94 }
divui 1:a3481c2fb440 95
divui 1:a3481c2fb440 96 void handleNotFound(){
divui 1:a3481c2fb440 97 digitalWrite(led, 1);
divui 1:a3481c2fb440 98 String message = "File Not Found\n\n";
divui 1:a3481c2fb440 99 message += "URI: ";
divui 1:a3481c2fb440 100 message += server.uri();
divui 1:a3481c2fb440 101 message += "\nMethod: ";
divui 1:a3481c2fb440 102 message += (server.method() == HTTP_GET)?"GET":"POST";
divui 1:a3481c2fb440 103 message += "\nArguments: ";
divui 1:a3481c2fb440 104 message += server.args();
divui 1:a3481c2fb440 105 message += "\n";
divui 1:a3481c2fb440 106 for (uint8_t i=0; i<server.args(); i++){
divui 1:a3481c2fb440 107 message += " " + server.argName(i) + ": " + server.arg(i) + "\n";
divui 1:a3481c2fb440 108 }
divui 1:a3481c2fb440 109 server.send(404, "text/plain", message);
divui 1:a3481c2fb440 110 digitalWrite(led, 0);
divui 1:a3481c2fb440 111 }
divui 1:a3481c2fb440 112
divui 1:a3481c2fb440 113 void setup(void){
divui 1:a3481c2fb440 114 pinMode(led, OUTPUT);
divui 1:a3481c2fb440 115 digitalWrite(led, 0);
divui 1:a3481c2fb440 116 Serial.begin(115200);
divui 1:a3481c2fb440 117 Serial.begin(115200);
divui 1:a3481c2fb440 118
divui 1:a3481c2fb440 119
divui 1:a3481c2fb440 120 WiFi.begin(ssid, password);
divui 1:a3481c2fb440 121 Serial.println("");
divui 1:a3481c2fb440 122
divui 1:a3481c2fb440 123 // Wait for connection
divui 1:a3481c2fb440 124 while (WiFi.status() != WL_CONNECTED) {
divui 1:a3481c2fb440 125 delay(500);
divui 1:a3481c2fb440 126 Serial.print(".");
divui 1:a3481c2fb440 127 }
divui 1:a3481c2fb440 128 Serial.println("");
divui 1:a3481c2fb440 129 Serial.print("Connected to ");
divui 1:a3481c2fb440 130 Serial.println(ssid);
divui 1:a3481c2fb440 131 Serial.print("IP address: ");
divui 1:a3481c2fb440 132 Serial.println(WiFi.localIP());
divui 1:a3481c2fb440 133 Serial.println();
divui 1:a3481c2fb440 134 Serial.println(WiFi.localIP());
divui 1:a3481c2fb440 135
divui 1:a3481c2fb440 136
divui 1:a3481c2fb440 137 if (MDNS.begin("esp8266")) {
divui 1:a3481c2fb440 138 Serial.println("MDNS responder started");
divui 1:a3481c2fb440 139 }
divui 1:a3481c2fb440 140
divui 1:a3481c2fb440 141 /* AP MODE
divui 1:a3481c2fb440 142 WiFi.mode(WIFI_AP_STA);
divui 1:a3481c2fb440 143 WiFi.softAP( ACCESS_POINT_NAME , ACCESS_POINT_PASSWORD);
divui 1:a3481c2fb440 144
divui 1:a3481c2fb440 145 Serial.print("IP address: ");
divui 1:a3481c2fb440 146 Serial.println(WiFi.localIP());
divui 1:a3481c2fb440 147 */
divui 1:a3481c2fb440 148 server.on("/", handleRoot);
divui 1:a3481c2fb440 149
divui 1:a3481c2fb440 150 server.on("/inline", [](){
divui 1:a3481c2fb440 151 server.send(200, "text/plain", "this works as well");
divui 1:a3481c2fb440 152 });
divui 1:a3481c2fb440 153
divui 1:a3481c2fb440 154 server.onNotFound(handleNotFound);
divui 1:a3481c2fb440 155
divui 1:a3481c2fb440 156 server.begin();
divui 1:a3481c2fb440 157 Serial.println("HTTP server started");
divui 1:a3481c2fb440 158 }
divui 1:a3481c2fb440 159
divui 1:a3481c2fb440 160 void loop(void){
divui 1:a3481c2fb440 161 server.handleClient();
divui 1:a3481c2fb440 162
divui 1:a3481c2fb440 163 delay(500);
divui 1:a3481c2fb440 164 Serial.print("&Ciao$");
divui 1:a3481c2fb440 165
divui 1:a3481c2fb440 166 }