[TUTORIEL] - 1-Communication série (USB) entre Gladys et un Arduino


#41

Je croyais que l’accolade du bas appartenais à void loop.
Il y a certaine partie que je comprends et d’autre non.


#42

Merci sa fonctionne :grinning:


#43

Le void loop est vide. On n’execute du code que lorsque quelque chose arrive sur le port série, avec la fonction serialEvent, qui envoit a deserialize la chaîne reçue pour traitement.
Si le traitement se déroule sans problème, alors deserialize répond true et renseigne la variable cde avec les infos reçues.


#44

Ok je vais essayer de mieux comprendre le code


#45

Finalement, où est-ce que l’on trouve la bonne lib?
Celle trouvée par l’IDE Arduino n’est pas la bonne,
Je trouve des tas de gitub…


#46

Salut,

C’est celle ci :
https://arduinojson.org


#47

Salut,
Super, merci piznel. Ca compile!
Dommage que ce ne soit pas cette version qui vienne avec mon IDE (1.8.5)


#48

Bonjour,

Il y a quelques évolutions avec le passage de la librairie arduinoJson en V6 plus détail ici :slight_smile:https://arduinojson.org/v6/doc/upgrade/

Du coup niveau code il y a des modifications sur le serialize et le deserialize chez moi niveau code upgradé ca donne ca :

void serialize(sensorData & data)
{
StaticJsonDocument<SENSORDATA_JSON_SIZE> jsonBufferSerialize;
JsonObject root = jsonBufferSerialize.to();
root[“devicetype”] = data.id;
root[“value”] = data.valeur;
serializeJson(root, Serial); // Impression du JSON sur le serial
Serial.println(""); // permet de séparer les JSON
}

et

/*
Execution de la fonction demandée par par Gladys via le port Serie
*/
void executeFunction(String json_data)
{
StaticJsonDocument<200> jsonBuffer;
deserializeJson(jsonBuffer, json_data);
//on décompose la chaine de cartère
if ( jsonBuffer[“function_name”] == String(“SendRadioCode”) )
{
SendRadioCode(jsonBuffer[“code”]);
}
}