diff --git a/README.md b/README.md index c976d04..eed2922 100644 --- a/README.md +++ b/README.md @@ -182,3 +182,4 @@ Un KPI doit être : - [TD 1](td1.md) - [TP 1](tp1.md) - [TP 2](tp2.md) +- [TP 3](tp3.md) diff --git a/grafcet.pdf b/grafcet.pdf new file mode 100755 index 0000000..7dff8dc Binary files /dev/null and b/grafcet.pdf differ diff --git a/tp3.md b/tp3.md new file mode 100644 index 0000000..c175ba0 --- /dev/null +++ b/tp3.md @@ -0,0 +1,49 @@ +# TP3 : NodeRed + +```shell +docker run --detach --name nodered ^ + --network tp_net ^ + -p "1880:1880" ^ + -v nodered:/data ^ + -e "TZ=Europe/Paris" ^ + nodered/node-red:4.1 +``` + +Ajouter la bibliothèque MQTT + +```c +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#undef timeout +#include "mqtt/async_client.h" + +#include +``` + +Dans la fonction ProcessMQTT créer un objet JSON avec les valeurs des différents capteurs. + +```c +json obj = { + {"entree", _digital[IN_FLOW_IN].dvalue}, + {"sortie", _digital[IN_FLOW_OUT].dvalue} +}; +``` + +Envoyer le message + +```c +std::string payload = obj.dump(); +auto msg = mqtt::make_message("geii/telemetry", payload); +msg->set_qos(1); +client->publish(msg); +```