Mandare dati ad un web server

Salve a tutti! Avrei bisogno di delucidazioni dato che per la prima volta sto cercando di connettere una scheda Arduino (Arduino Mega) ad un web server. Per la precisione sto cercando di mandare dei dati (mi è stato consigliato in formato JSON ma questo non credo sia importante per il momento) ad un web server e per far ciò ho acquistato dalla dfRobot una scheda WIFI Bee [esp8266 ESP8266 Wifi Bee (Arduino Compatible) - DFRobot](http://esp8266 ESP8266 Wifi Bee (Arduino Compatible) - DFRobot) avendo già la scheda di espansione sempre dfRobot Gravity: IO Sensor Shield For Arduino Mega Due - DFRobot che prevede 3 socket XBee. Ho poi iniziato a cercare dei tutorial in internet e sul sito dfrobot ma la questione mi è sembrata piu complessa del previsto... :confused:
Ho letto che bisogna programmare il WIFI Bee o meglio l' esp8266 a bordo di questo. Per prima cosa vorrei chiedervi se per quello che necessito fare è uno step fondamentale o in qualche modo posso solo creare lo sketch per Arduino Mega. Poi qualora dovessi programmare anche l'esp8266 devo per forza acquistare un adattatore USB-XBee come consigliato da dfrobot o tramite il Mega che ha più porte seriali posso programmare tramite il cavo USB di Arduino?
Grazie a chi cercherà di aiutarmi...

Non vi ho chiesto poi se la scelta del WIFI Bee sia consona al mio progetto o forse sarebbe stato meglio una scheda wifi? :o

No. Non è necessario programmare l'ESP.
Puoi usare i comandi AT e far collegare l'ESP al web server e poi inviare i comandi dalla MEGA.
Guarda qui --> GitHub - bportaluri/WiFiEsp: Arduino WiFi library for ESP8266 modules

La Wifi Bee è un scheda Wifi.

garzie dell'aiuto innanzitutto!
Ho provato a fare il basic test ma mi da timeout...

questo è il debug:

[WiFiEsp] Initializing ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] Cannot initialize ESP module
[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] No tag found
********************************************** Firmware version > FAILED (actual="", expected="1.5.2")

[WiFiEsp] >>> TIMEOUT >>>
[WiFiEsp] No tag found
********************************************** Status is (WL_DISCONNECTED) > FAILED (actual=255, expected=3)

dov'è che sbaglio? è possibile che non sia caricato un firmware nella schedina?
Oppure c'è qualche problema con la seriale? Siccome ho un Arduino Mega ho eliminato dal programma la parte relativa al SoftwareSerial lasciandolo così:

/*
 WiFiEsp test: BasicTest
 
 Performs basic connectivity test and checks.
*/

#include "WiFiEsp.h"

// Emulate Serial1 on pins 7/6 if not present
/*#ifndef HAVE_HWSERIAL1
#include "SoftwareSerial.h"
SoftwareSerial Serial1(6, 7); // RX, TX
#endif
*/

char ssid[] = "";     // your network SSID (name)
char pwd[] = "";  // your network password
char pwdErr[] = "xxxx";   // wrong password


void setup()
{
  Serial.begin(115200);
  Serial1.begin(9600);
  WiFi.init(&Serial1);
}

void loop()
{
  assertEquals("Firmware version", WiFi.firmwareVersion(), "1.5.2");
  assertEquals("Status is (WL_DISCONNECTED)", WiFi.status(), WL_DISCONNECTED);
  assertEquals("Connect", WiFi.begin(ssid, pwd), WL_CONNECTED);
  assertEquals("Check status (WL_CONNECTED)", WiFi.status(), WL_CONNECTED);
  assertEquals("Check SSID", WiFi.SSID(), ssid);

  IPAddress ip = WiFi.localIP();
  assertNotEquals("Check IP Address", ip[0], 0);
  Serial.print("IP Address: ");
  Serial.println(ip);
  
  byte mac[6]={0,0,0,0,0,0};
  WiFi.macAddress(mac);

  Serial.print("MAC: ");
  Serial.print(mac[5], HEX);
  Serial.print(":");
  Serial.print(mac[4], HEX);
  Serial.print(":");
  Serial.print(mac[3], HEX);
  Serial.print(":");
  Serial.print(mac[2], HEX);
  Serial.print(":");
  Serial.print(mac[1], HEX);
  Serial.print(":");
  Serial.println(mac[0], HEX);
  Serial.println();
  
  assertEquals("Disconnect", WiFi.disconnect(), WL_DISCONNECTED);
  assertEquals("Check status (WL_DISCONNECTED)", WiFi.status(), WL_DISCONNECTED);
  assertEquals("IP Address", WiFi.localIP(), 0);
  assertEquals("Check SSID", WiFi.SSID(), "");
  assertEquals("Wrong pwd", WiFi.begin(ssid, pwdErr), WL_CONNECT_FAILED);

  IPAddress localIp(192, 168, 168, 111);
  WiFi.config(localIp);
  
  assertEquals("Connect", WiFi.begin(ssid, pwd), WL_CONNECTED);
  assertEquals("Check status (WL_CONNECTED)", WiFi.status(), WL_CONNECTED);

  ip = WiFi.localIP();
  assertNotEquals("Check IP Address", ip[0], 0);


  Serial.println("END OF TESTS");
  delay(60000);
}


////////////////////////////////////////////////////////////////////////////////////


void assertNotEquals(const char* test, int actual, int expected)
{
  if(actual!=expected)
    pass(test);
  else
    fail(test, actual, expected);
}

void assertEquals(const char* test, int actual, int expected)
{
  if(actual==expected)
    pass(test);
  else
    fail(test, actual, expected);
}

void assertEquals(const char* test, char* actual, char* expected)
{
  if(strcmp(actual, expected) == 0)
    pass(test);
  else
    fail(test, actual, expected);
}


void pass(const char* test)
{
  Serial.print(F("********************************************** "));
  Serial.print(test);
  Serial.println(" > PASSED");
  Serial.println();
}

void fail(const char* test, char* actual, char* expected)
{
  Serial.print(F("********************************************** "));
  Serial.print(test);
  Serial.print(" > FAILED");
  Serial.print(" (actual=\"");
  Serial.print(actual);
  Serial.print("\", expected=\"");
  Serial.print(expected);
  Serial.println("\")");
  Serial.println();
  delay(10000);
}

void fail(const char* test, int actual, int expected)
{
  Serial.print(F("********************************************** "));
  Serial.print(test);
  Serial.print(" > FAILED");
  Serial.print(" (actual=");
  Serial.print(actual);
  Serial.print(", expected=");
  Serial.print(expected);
  Serial.println(")");
  Serial.println();
  delay(10000);
}

ho sbagliato qualcosa nella modifica? Considerando di aver connesso il wifi Bee nel socket della COM1 della scheda di espansione non credo di aver errato nella scelta della porta seriale 1 nello sketch.
Poi ho solo inserito il cavo USB di arduino al pc e caricato lo sketch. Aprendo il serial monitor mi rida quanto descritto sopra!!!!
HELP :cry:

Forse questo può aiutare: ho settato in seguito il BAUD del serial1 a 115200 ricevendo nel serial monitor quanto segue:
[WiFiEsp] Initializing ESP module
[WiFiEsp] Warning: Unsupported firmware
********************************************** Firmware version > FAILED (actual="", expected="1.5.2")

********************************************** Status is (WL_DISCONNECTED) > FAILED (actual=1, expected=3)

[WiFiEsp] Failed connecting to Eugeni Wi-Fi
********************************************** Connect > FAILED (actual=2, expected=1)

cosa vuol dire?

Premesso che non ho mai usato questi moduli, ma hai provato a mettere semplicemente una dopo l'altra le 2 wifi.send senza disconnettere e riconnettere?
Altrimenti cambia script lato php e fanne uno che accetta 2 valori...

>1simone0: in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu hai già posto la stessa/simile domanda e stai parlando dello stesso/simile argomento già in altro thread..

Pertanto, il tuo thread viene riunito al precedente thread (ovvero questo dove siamo ora) e ti prego di continuare qui senza aprire nuovi thread. Grazie. :slight_smile:

Guglielmo

fratt:
Premesso che non ho mai usato questi moduli, ma hai provato a mettere semplicemente una dopo l'altra le 2 wifi.send senza disconnettere e riconnettere?
Altrimenti cambia script lato php e fanne uno che accetta 2 valori...

si ineffetti alla fine abbiamo deciso sia piu comodo operare lato server... grazie dell'aiuto!