esp8266 Arduino Mega

Ciao, ho un problema che non so come risolvere.
Questo è un programma per collegarsi e comandare dei relè

#define SSID "SSID" 
#define PASSWORD "12345"
#include "uartWIFIUNO.h" // Can be downloaded below on this page
#include <SoftwareSerial.h>
 
WIFIUNO wifi;
 
extern int chlID;
 
// set pin numbers:
//const int ledPin = 13; // the number of the LED pin
const int relay1 =  2; // Relay In 1 Defined at Arduino Pin 2
const int relay2 =  3; // Relay In 2 Defined at Arduino Pin 3
const int relay3 =  4; // Relay In 3 Defined at Arduino Pin 4
const int relay4 =  5; // Relay In 4 Defined at Arduino Pin 5
 
boolean device1 = false;
boolean device2 = false;
boolean device3 = false;
boolean device4 = false;
 
 
void setup(){
  
 // pinMode(ledPin, OUTPUT); 

  pinMode(relay1, OUTPUT); 
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);
  
  //pinMode(ESP8266_CHPD, OUTPUT);
  //digitalWrite(ESP8266_CHPD,LOW);
  
  digitalWrite(relay1,LOW);
  digitalWrite(relay2,LOW);
  digitalWrite(relay3,LOW);
  digitalWrite(relay4,LOW);
  
   DebugSerial.println("ESP8266 Server v0.21");
  
  
  if(!wifi.begin())
  {
    DebugSerial.println("Begin error");
  }
  bool b = wifi.Initialize(STA, SSID, PASSWORD);
  if(!b)
  {
    DebugSerial.println("Init error");
  }
  delay(8000);  //make sure the module can have enough time to get an IP address 
  String ipstring  = wifi.showIP();
  DebugSerial.println(ipstring); //show the ip address of module
  
  delay(1000);
  wifi.confMux(1);
  delay(100);
  if(wifi.confServer(1,80))
  DebugSerial.println("Server is set up");
  
}
void loop()
{
  
  char buf[500];
  int iLen = wifi.ReceiveMessage(buf);
  
  if(iLen > 0)
  {
    
      DebugSerial.print(buf);
      //delay(300);
         
       if (strncmp(buf, "GET /?status1=1", 15) == 0) {               
           //DebugSerial.print("RELAY 1 ON");
           digitalWrite(relay1, HIGH); 
           device1 = true;           
       }   
       else if (strncmp(buf, "GET /?status1=0", 15) == 0) {               
           //DebugSerial.print("RELAY 1 OFF");
           digitalWrite(relay1, LOW); 
           device1 = false;           
       } 
       
          
    
    if (strncmp(buf, "GET /?status2=1", 15) == 0) {               
           //DebugSerial.print("RELAY 2 ON");
           digitalWrite(relay2, HIGH); 
           device2 = true;           
       }   
    else if (strncmp(buf, "GET /?status2=0", 15) == 0) {               
           //DebugSerial.print("RELAY 2 OFF");
           digitalWrite(relay2, LOW); 
           device2 = false;           
       } 
       
 
      
      String cmd;
      cmd = "HTTP/1.1 200 OK\r\n";
      cmd += "Content-Type: text/html\r\n";
      cmd += "Connection: close\r\n";
      //cmd += "Refresh: 15\r\n";
      cmd += "\r\n";
      //cmd += "<!DOCTYPE HTML>\r\n";
      cmd += "<html>\r\n";
      //cmd += "<header><title>ESP8266 Webserver</title><h1>\"14CORE ESP8266 Control Center\"</h1></header>";
      
      
      if(device1){
        cmd +=("
Device1  : ON");
      }
      else{
        cmd +=("
Device1  : OFF");
      }
      
      if(device2){
        cmd +=("
Device2  : ON");
      }
      else{
        cmd +=("
Device2  : OFF");
      }
      
      
       if(device3){
        cmd +=("
Device3  : ON");
      }
      else{
        cmd +=("
Device3  : OFF");
      }
      
      if(device4){
        cmd +=("
Device4  : ON");
      }
      else{
        cmd +=("
Device4  : OFF");
      }
      
      cmd += "<html>\r\n";
 
        wifi.Send(chlID,cmd);
        //delay(200);
        wifi.closeMux(chlID);
  //delay(1000);
  
 
  }
}

Da quello che ho capito il modulo ESP che uso comunica con Baud 115200
mentre il programma mi comunica in 9600, infatti sul serial monitor mi da

AT+RST
Module have no response
Begin error
Init error

come posso risolvere ?
dovrei modificare la libreria ?
Perchè il modulo se ho capito bene non può essere modificato.
Grazie

Ehhhh ? ? ? :o

Che c'entra la velocità con cui parli, sulla seriale (immagino SoftwareSerial) con il modulo ESP con la velocità con cui parla la seriale di Arduno con il monitor seriale ? ? ? Usano due porte seriali, due bufferizzazioni diverse, due serie di interrupt diversi e ... non hanno nulla in comune ... se non il TUO programma che è nel mezzo.

Guglielmo

Ciao Guglielmo, Stavo vedendo un po di esempi e capendo come funzione ESP8266. Al momento Sono riuscito con i comandi AT. ora mi sono cimentato in questo programma che caricato mi da questo.

AT+RST Module have no response Begin error Init error

Pensavo che fosse questione di comunicazione di Baud Sbagliati.

Riesci a dirmi perchè ?

sembra non risponda

Come regolA su un comando AT+RST dovrebbe dare questo risultat

AT+RST


OK
WIFI DISCONNECT

 ets Jan  8 2013,rst cause:2, boot mode:(3,7)

load 0x40100000, len 1396, room 16 
tail 4
chksum 0x89
load 0x3ffe8000, len 776, room 4 
tail 4
chksum 0xe8
load 0x3ffe8308, len 540, room 4 
tail 8
chksum 0xc0
csum 0xc0

2nd boot version : 1.4(b1)
  SPI Speed      : 40MHz
  SPI Mode       : DIO
  SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000

óan't use rtc mem data
rl�‚slÌÿ
Ai-Thinker Technology Co.,Ltd.

ready
WIFI CONNECTED
WIFI GOT IP

Ma da dove hai preso quel programma ? ? ? Sicuro che sia per Arduino ? ? ? Mett un link ... ::)

Guglielmo

http://www.14core.com/wiring-esp8266-wifi-transceiver-on-arduino/

si ma se la seriale non comunica non ti da assolutamente nulla...

o meglio ti da: Module have no response Begin error Init error

Gian70Luca: http://www.14core.com/wiring-esp8266-wifi-transceiver-on-arduino/

Nel vedere certi collegamenti mi viene un brivido di raccapriccio

Ma tu hai seguito il loro schema ? ? ? :o ... stai veramente alimentando l'ESP con l'uscita 3.3V di Arduino ? ? ? :o

Guglielmo

Brunello: Nel vedere certi collegamenti mi viene un brivido di raccapriccio

+1 !!!

>Gian70Luca: Prima di giocare con l'ESP ti DEVI studiare le 150 pagine relative a quel prodotto che sono in Megatopic ... così eviterai di seguire quegli schemi da SCHIFO !!! :smiling_imp: :smiling_imp: :smiling_imp:

Guglielmo

no lo schema di collegamento è diverso. Lo so che crea danni se collego direttamente L’ESP ai 3.3V.
Ho inserito delle resistenze. Ho uno schema diverso.

Gian70Luca: no lo schema di collegamento è diverso. Lo so che crea danni se collego direttamente L'ESP ai 3.3V. Ho inserito delle resistenze. Ho uno schema diverso.

sta parlando dei 3.3v dell'alimentazione... usi quella di arduino?

Si, ho preso questo schema.

http://www.raspibo.org/wiki/index.php/ESP8266/collegamentoarduino

Devo usare alimentazione esterna ?

Scusa per il link ma non mi funziona.

Gian70Luca: Si, ho preso questo schema.

http://www.raspibo.org/wiki/index.php/ESP8266/collegamentoarduino

Devo usare alimentazione esterna ?

Scusa per il link ma non mi funziona.

nun c'ha fa arduino a darti la corrente necessaria...

Ok allora inserisco alimentazione esterna. Se non funziona domani compro la scheda Ethernet. :) :) :)

Gian70Luca: Ok allora inserisco alimentazione esterna. Se non funziona domani compro la scheda Ethernet. :) :) :)

quel modulo lo puoi programmare direttamente senza usare arduino... se hai poche utilizzazioni puoi usare solo lui.

In effetti mi serve per ricevere dei dati da internet. Questi dati vengono controllati da Arduino e inviati ad un tablet via Bluetooth. Provo con la scheda Ethernet.

esp8266 riceve e invia dati via internet.... li puo controllare e li puo inviare via bluetooth.... non ci vedo problema.

Penso di usare la ethernet Arduino. Ci sono più tutorial per provare. Grazie mille.