Ciao a tutti,
ho un Arduino Uno WIFI, l'ho configurato come client utilizzando le librerie Wire e Ciao in più uso la libreria ArduinoJson per elaborare i dati che ricevo. Il problema è che devo fare due connessioni la prima per ricevere i dati dal server (Ciao.read) e la seconda per salvare i dati (Ciao.write) ma puntualmente la seconda connessione non va a buon fine, anche invertendole mi esegue solo la prima. La parte lato server e php funziona tutto correttamente ho fatto molte prove inviando dati e leggendoli, sempre con Arduino, ma come detto prima non riesco a fare le due cose "insieme". Non riesco a capire dove sbaglio.
Qualche idea?
Grazie in anticipo
#include <Wire.h>
#include <Ciao.h>
#include <ArduinoJson.h>
#define CONNECTOR "rest"
#define SERVER_ADDR "myServer.example"
#define Send "/add.php/?sensoreU1=122&temperatura=15&automatic=ON&manual=Off&irrig=OFF"
#define Get "/jsonTest.php"
String command = "";
void setup() {
Serial.begin(9600);
Ciao.begin();
delay(1000);
}
void loop() {
//------------------------ Ricevo i dati dal Server -------------------------------------
// questo e' il json che ricevo {"a":1,"b":2,"c":3,"d":4,"e":5}
StaticJsonBuffer<60> jsonBuffer;
char json[60];
command = Get;
CiaoData data = Ciao.read(CONNECTOR, SERVER_ADDR, command);
if (!data.isEmpty()){
String mess = String(data.get(2));
mess.toCharArray(json,60);
Serial.println(json);
}else{
Serial.println ("Read Error");
}
// /*
JsonObject& root = jsonBuffer.parseObject(json);
// // Test if parsing succeeds.
if (!root.success()) {
Serial.println("parseObject() failed");
return;
}
const char* sensor = root["a"];
double b = root["b"];
Serial.println(sensor); // print 1
Serial.println(b); // print 2.00
//*/
delay(3000);
// /*
//---------------------------- Invio i dati al server --------------------------------------
command = Send;
data = Ciao.write(CONNECTOR, SERVER_ADDR, command);
if (!data.isEmpty()){
String mess = String(data.get(2));
Serial.println(mess);
}else{
Serial.println(F("Write Error")); //print "Write Error" !!!!!
}
//*/
delay(3000);
}
[code]