Bonjour,
Je fait un applicatif de suivi de consommations de compteurs d'eau qui va tourner sur un serveur local Linux (RPI ou équivalent).
J'ai découvert le PHP et réalisé l'interface utilisateur et jusqu'à maintenant j'ai simulé des index compteurs manuellement dans MySQL. J'aimerai donc passer à la partie la plus importante : Communiquer avec le matériel (compteurs) et récupérer leurs valeurs d' "index".
Ces index compteurs sont dans un automate programmable qui est client Modbus TCP et me permet de lire les valeurs (Ce que je fait sans soucis depuis mon PC avec ModbusDoctor)
La fréquence "d'acquisition" est définie par l'utilisateur 15, 30, 45 min et stockée dans une table MySQL.
L'adresse IP, le port de l'automate et le registre Modbus du compteur 1 sont eux aussi défini par l'utilisateur et stockés dans une table.
Il y a même plusieurs compteurs, donc à chaque fois IP, Port, Registre... Chaque compteur à un ID unique
Pour la partie communication, j'ai trouvé la librairie pyModbus :
Exemple lecture de registres : https://pymodbustcp.readthedocs.io/e..._register.html
Exemple Tache cyclique : https://pymodbustcp.readthedocs.io/e..._schedule.html
Et un dernier adapté à mon besoin mais fait pour une application de domotique : https://github.com/DomoticX/domoticz-modbus
mais je n'ai aucune idée de comment adapter ces exemples à mon projet :
- 1) Lire la "fréquence d'acquisition" dans la base de données.
- 2) Se connecter aux équipements et récupérer les index dans les bons registres
- 3) Insérer les valeurs dans MySQL en lien avec leur ID.
- 4) Faire en sorte que cela tourne en tache de fond pour se reproduire à la bonne fréquence d'acquisition
Je part de 0, je ne suis pas du métier (dessinateur industriel / automaticien), j'ai découvert html, php et mysql sur ce projet, j'en arrive à Python mais cette fois j'ai besoin d'un (gros) coup de pouce pour me montrer le bon chemin à suivre.
Merci de votre aide.
Partager