Projet MqTT et utilisation grafana + besoin aide pour web app

salut tout le monde , je suis en preparation de projet : le projet consiste a utiliser le protocole MQTT avec un raspberry pi 3 b+ comme serveur ainsi que des rasp pi zero comment client et jaimerais envoyer des info via mqtt comme une tension ou autre grace a des capteur sur le rasp pi zero le but est cree un site avec des scripts par exemple en python pour pourvoir lancer les client 1,2,3 ou tous en meme temps et utiliser grafana pour avoir qqch de propre et pouvoir etudier les donner. j’ai donc besoin d’un coup de pouce pour faire marcher tout ca car j’aimerais faire un site / web app avec des boutons qui est capable de launche des script sur le broker pour par exemple eteindre les client a distance via son reseau wifi et y implanter grafana ou bien ajouter des bouton de commande directement dans grafana je veut absolument faire un site pour que cela soit accessible via un telephone ou autre et en bonnus faire tourner un script sur les client pour que lorsque des valeur sont relevé et pas envoyé car perte de wifi ou trop faible donc perte de paque le client stock ces info puis les envoie lors de sa prochaine connection au server ; merci pour toutes reponse voici un peut de docu que mon prof a commencé a taff (c’est mon projet d’informatique pour le bac) [docu:https://drive.google.com/drive/folders/1mkkYlUvx666t7yZL5aMgVl1R7i93hMN-?usp=sharing]

hello,

vaste projet ! je suppose que tu as déjà fait un schéma de l’implantation de tes machines ( réseau et pour chaque machine la liste de ses tâches )
par exemple pour un senseur :

  1. récupérer les données (non ? sisi!)
  2. transmission des données avec le protocole qui va permettre se savoir si ça été bien transmis ou si il faudra le transmettre plus tard ( genre sql commit rollback)
  3. serveur pour démarrage / arrêt à distance
    etc.

D’une manière générale et pour avoir une vue d’ensemble des tâches la méthode « old school » que j’utilise c’est de commencer par la fin ; c’est à dire à partir de ce que tu veux afficher/utiliser sur ton site web et faire un algorithme pour chacune des sorties.
Après avec un outils comme node-red ( https://projetsdiy.fr/mosquitto-broker-mqtt-raspberry-pi/ ) et les nodes qui vont bien, une base nosql MongoDB pour faire moderne :wink: et les quelques programmes spécifiques qu’il te faudra certainement écrire, ton projet pourra prendre forme.

ce que je ne fais pas toujours mais que pourtant il faudrait faire tout le temps ( :nerd_face: ) c’est ne pas hésiter à détaillé au plus possible l’analyse pour que la programmation devienne une simple traduction de l’analyse … :roll_eyes:

source : commit/rollback : https://docs.mongodb.com/manual/core/transactions/
source : javascript : https://www.w3schools.com/js/

PS: ds tes liens j’ai trouvé ça:
script src=« https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.0.1/mqttws31.js » type=« text/javascript »>
un accès vers l’extérieur qu’on peut remplacer par un accès local plus rapide et pas dépendant d"un accès extérieur
(script src=« http://monsite.local/js/mqttws31.js » type=« text/javascript »>)

1 J'aime

Bonjour à vous deux pour l’instant,

Ça c’est du projet complet et complexe que je vais suivre pas à pas, je ne connaissais pas le protocole, je suis allée voir …
@Bof a déjà détaillé avec plein de liens sympa :slightly_smiling_face:,
Mr mosqitto est la première des choses a voir après l’implantation des raspberry certainement et travailler en SSH pour les faires causer,et après mettre les sondes certainement si je ne me trompes pas et construire ton site web autour ,
Mais chacun son truc…
Bon courage
A plus
JC

merci a tous pour suivre pour votre soutien du haut de mes 17 ans je compte finaliser la projet dans moins de 4 mois donc je vais poster pas mal de choses sur mon avancement pour avoir de l’aide et pour aue vous puissiez aussi reutiliser cela a votre guise

Bonjour,

A mon avis, l’essentiel de la communication peut se faire via MQTT. Bien comprendre le fonctionnement de ce protocole. Il est relativement bien détailé dans le livre « Python, raspberry Pi et Flask » de Dominique MEURISSE. Dans cet ouvrage, les clients sont des ESP8266 qui peuvent aisément remplacés par des PI0. L’avantage des PI0 sont qu’il devrons plutôt être alimentés en permanance. De de fait il seront à même d’être « commandé » par la publication d’un message sur un topic MQTT.
Pour le couple influxdb+ grafana, ça devrait pas poser de problèmes, ça roule du premier coup. Attention lors de l’installation de grafana, ilne faut pas l’installer avec un bête « sudo apt-get install » car ce n’est pas la dernière distribution qui est dans les dépots.
Par contre je ne suis pas certain que grafan soit customisable pour y ajouter des boutons. Sinon, il y a la possibilité de faire le contraire, à savoir insérer dans une page web qui a des boutons, un graphique grafana.
Pour la gestion des données non transmises, ça va être un peu plus dur à gérer, mais creuser dans un premier temps juste du coté de MQTT avec les différents niveaux de Qos.
Bon courage.

A+

Hello! Amuses toi bien pour ton projet scolaire ! Essai de poser des questions précises et pas juste des « au secours ».

Et si jamais la ponctuation et les retours à ligne c’est bien pour la lisibilité !

1 J'aime

bonsoir j’ai un probleme lors de la configuration de influxdb lorsque
je met "curl « http://localhost:8086/query?q=select+*+from+telegraf..cpu » "
je recois « curl: (7) Failed to connect to localhost port 8086: Connection refused »
et donc je ne peut poursuivre la configuration de chronograf

si tu fais un :
sudo netstat -tan
vois tu ton port 8086 ? sinon il doit falloir démarrer un truc ! influxdb ?
sudo systemctl start influxdb

source ports : https://docs.influxdata.com/influxdb/v1.7/administration/ports/
source Chronograf: https://docs.influxdata.com/chronograf/v1.7/introduction/installation/
telegraph : https://docs.influxdata.com/telegraf/v1.13/

PS : je l’ai installe avec ça : (sur buster)
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -
echo « deb https://repos.influxdata.com/debian buster stable » | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt-get update
sudo apt-get install influxdb

dpkg -l|grep influxdb
influxdb 1.7.9-1 armhf Distributed time-series database.