Come programmare una Wifi Shield ESP8266 e comandarla da Arduino

Salve a tutti, tempo fa avevo aperto un THREAD, con il quale chiedevo come fosse possibile montare un WiFi su Arduino. Il mio scopo finale era quello poi di rendere Arduino come server web per comandare TRAMITE ARDUINO questi relay.

Grazie alle vostra risposta, scopri che vi era la possiblità di acquistare dei componenti simili a questo

https://www.ebay.it/itm/Aptinex-IOT-RelayNODE-RN4CE8-ESP8266-WIFI-4-Channel-Relay-Module-MQTT-/172843203243

che addirittura avevano il WiFi incorporato e che quindi riuscissero ad essere anche distanti da Arduino. Per via di impegni personali e lavorativi sospesi questo mio progettino. Adesso sono dinuovo sul pezzo.

La questione è, acquistando questo (o altri tipi di shield simile a questo), in che modo poi, possono essere programmati ???

Ho letto su internet che ci sono degli adattatori USB che si dovrebbero collegare a questi SHIELD per poter quindi programmarli. Mi potete fornire maggiori delucidazioni ?

Il mio obiettivo sarebbe quello di mettere una parte della logica su questa SHIELD (sempre se fattibile), agganciare questo SHIELD ad un ROUTER allo stesso al quale Arduino è collegato, quindi tramite Arduino lanciare dei comandi che poi faranno eccitare o meni i relay che gestisce questa scheda qui ?

Mi potete aiutare ? grazie mille

Puoi utilizzare questo convertitore USB to UART con l'IDE di arduino

https://www.ebay.it/itm/6Pin-USB-2-0-to-TTL-UART-Module-Serial-Converter-CP2102-STC-Replace-FT232/122714255384?hash=item1c9256f018:g:DtgAAOSwak5Z3EjF:rk:11:pf:0

Ok ti ringrazio molto per la tua celere risposta. L ho già acquistato. Per il momento ti ringrazio. Nel caso avessi problemi nella programmazione della SHIELD, posso riuppare questo POST ?

mi è finalmente arrivato l’adattatore che mi hai linkato. Ho subito provato con il seguente sketch a far funzionare questo benedetto moduletto

#include <ESP8266WiFi.h>
 
const char* ssid = "ragn"; // fill in here your router or wifi SSID
const char* password = "ragn"; // fill in here your router or wifi password
 #define RELAY 0 // relay connected to  GPIO0
 WiFiServer server(80);
 
void setup() 
{
  Serial.begin(115200); // must be same baudrate with the Serial Monitor
 
  pinMode(RELAY,OUTPUT);
  digitalWrite(RELAY, LOW);

 
  // 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");
    Serial.println(WiFi.localIP());
  // Start the server
  server.begin();
  Serial.println("Server started");
 
  // Print the IP address
  Serial.print("Use this URL to connect: ");
  Serial.print("https://192.168.0.178/");
  Serial.print(WiFi.localIP());
  Serial.println("/");
 
}
 
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 request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();
 
  // Match the request
  int value = LOW;
  if (request.indexOf("/RELAY=ON") != -1)  
  {
    Serial.println("RELAY=ON");
    digitalWrite(RELAY,LOW);
   
    value = LOW;
  }
  if (request.indexOf("/RELAY=OFF") != -1)  
  {
    Serial.println("RELAY=OFF");
    digitalWrite(RELAY,HIGH);
    value = HIGH;
  }
  
  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  this is a must
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.println("<head><title>ESP by Michele</title></head>");
  client.print("Relay is now: ");
 
  if(value == HIGH) 
  {
    client.print("OFF");
  } 
  else 
  {
    client.print("ON");
  }
  client.println("

");
  client.println("Turn <a href=\"/RELAY=OFF\">SPEGNI</a> RELAY
");
  client.println("Turn <a href=\"/RELAY=ON\">ACCENDI</a> RELAY
");
    client.println("</html>");
 
  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}

Sono anche riuscito a caricare questo sketch mi aspettavo che il dispositivo si connettesse alla rete invece faceva sempre da AccesPoint, mi sono connesso, provo a collegarmi all indirizzo 192.168.4.1 mi compare la paginetta con i due tasti, provo a cliccarli ma nada.

Apro il monitor seriale di Arduino è leggo invece che i miei serial.println i seguenti valori indecifrabili:

Vedo qualche guida online e proabilmente è perchè è settato in modalita AP quindi eseguo la guida di questo link

purtroppo sembra che la scheda non prenda questi comandi.

Mi potete aiutare?

prova questo. a me ha risolto doversi dubbi

http://onlineshouter.com/use-esp8266-wifi-modes-station-access-point/

grazie mille ho capito come è la situazione thanks you very much