Se qualcuno si chiede come mai questo qui apre più di un Topic o Post è perchè mi sono fatto una bella scorta di Schede,Sensori,Moduli, etc, per lavorare e creare più progetti..
Quindi tralasciando le premesse ho comprato una USB-TTL e ho montato su una ESP-01, ho provato a caricare il blink per pura prova ma dà errore durante il caricamento.
Mentre sto caricando lo sketch arrivato quasi al termine il led blu della esp lampeggia ma quando il caricamento si completa il led si spegne e mi dà questo seguente errore
error: failed reading byte
warning: espcomm_send_command: cant receive slip payload data
trying to connect
flush start
setting serial port timeouts to 1 ms
setting serial port timeouts to 1000 ms
flush complete
espcomm_send_command: sending command header
espcomm_send_command: sending command payload
espcomm_send_command: receiving 2013 bytes of data
read 0, requested 1
error: failed reading byte
warning: espcomm_send_command: cant receive slip payload data
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
Da quanto posso capire questo errore deriva dal Flash della esp che sarà impostato male,documentandomi questa esp dovrebbe avere 1M/byte di memoria quindi ho fatto molte prove tramite IDE settando diversi Flash ma senza risultato...
Questi sono i settaggi che ho impostato nell'IDE :
Scheda : "Generic ESP8266 Module"
Flash Mode : " DIO "
Flash Frequency : " 40 MHz "
CPU Frequency : " 80 MHz "
Flash Size : (ho provato da " 512K(64 SNIPPFS) fino 1M(64 SNIPPFS) " )
immaginavo leggendo il tuo blog che era un problema con la GPlOO... cercherò di acquistarlo ma appena ho tempo lo programmo con uno dei tuoi esempi del blog...
si può fare, quindi vedo sulla USB-TTL quali sono i pin della esp GPlOO e GND e saldo i due fili dello swich in corrispondenza dietro lo spinotto...giusto?
cicciozuc:
tengo premuto il pulsante, inserisco la usb-ttl con la esp8266 nel computer dopo qualche secondo lascio il pulsante e posso caricare uno sketch???
OK facendo così mi carica lo sketch, funziona.. Però ho una domanda:
se carico una web server per accendere due relè su quale pin della esp devo collegare l'uscita dei relè, GPIO0 e GPIO2 sono Output ?
brunello22:
Se gli ingressi del relè non vanno verso il Ground, uno qualsiasi dei due, altrimenti è meglio il GPIO2
capito
Ho caricato un webserver sulla esp apro il seriale e si connette rilasciandomi l'indirizzo IP, ma quando apro una pagina web con l'indirizzo che mi ha dato la pagina risulta non funzionante e sulla seriale ricevo questo
GET / HTTP/1.1
invalid request
new client
Sai cosa cè di sbagliato?
#include <ESP8266WiFi.h>
const char* ssid = "00000000000";
const char* password = "111111111";
// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);
void setup() {
Serial.begin(115200);
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<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
s += (val)?"high":"low";
s += "</html>\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
}
Mattia1989:
Mi sembra che nell’ssid Devi mettere il nome del tuo modem e nella password sempre quella del modem
Quello lo ha sicuramente fatto, altrimenti neanche si connetteva ... :
Per ragioni di sicurezza, nel codice che ha pubblicato ha messo dei caratteri a caso.
piccolo trick.... per chi serve
nella stessa cartella del file .ino del progetto inserite un file chiamato ad esempio pswMioProgetto.h
nel quale vengono inserite le varie chavi