Supervision HTML de plusieurs Controlino

Bonjour a tous,

Travaillant dans la maintenance industriel j'ai développé un programme en C qui fonctionne sur un controlino.

Ce programme surveille différents capteurs sur des machines et affiche les données sur une page web en HTML via un écran tactile de Raspberry sur le pupitre de l'opérateur, j'ai également accès a cette page via son IP sur la LAN de la société.

Cependant je recherche a avoir une seul page ou s'afficherait les données des différente machines (actuellement 1 page = 1 machine) pour moi, cela m’éviterais d'avoir a me connecter a chaque page.

Le problème est ici, je ne trouve pas d'idées pour faire ca. Une idée serait de "lire" le code HTML de chaque machine puis sélectionner seulement la partie "données" et l'intégrer a une page existante. L'opération serait répéter autant de fois qu'il y a de machines.

Avez vous d'autre idée ? Avez vous déjà fait ce genre de manipulation ?

Merci de vos retour.

Jojo

j’ai également accès a cette page via son IP sur la LAN de la société.

Je suppose que tu accèdes à un serveur WEB situé sur la RASPBERRY PI ?

Une idée serait de “lire” le code HTML de chaque machine puis sélectionner seulement la partie “données” et l’intégrer a une page existante.

C’est faisable, parser du HTML est fastidieux sans librairie, mais il y existe des librairies JavaScript ou Python. Dans quel langage comptes-tu développer ?

Il y a aussi une autre option : modifier le serveur WEB de chaque RASPBERRY PI pour lui ajouter une URL renvoyant les données de manière simple :

  • texte pur sans aucune balise du genre donnée=valeur, une donnée par ligne
  • XML
  • JSON
  • etc.

Dans ce cas, le parsing sera beaucoup plus simple.

Dans tous les cas le développement impliquera la création d’un nouveau serveur WEB (sur une RASPBERRY PI pourquoi pas ?, ou sur ton PC).

Bonjour,

Merci de ta réponse.

Le serveur WEB est sur le controlino (ce dernier dispose d’un port ETH), il est programmé en C et généré le HTML. Le raspberry ne fait que ce connecte a son IP toute les 2sec. pour rafraîchir les données.

Apres je ne connait le parsing, je peut tenter en pyhton meme si je suis moins a l’aise que en C.
Je peut modifier le code en C des controlino et pas de soucis pour creer un nouveau serveur WEB.

Je recherche une direction a prendre car je ne sais pas trop comment faire.

Merci

Je peut modifier le code en C des controlino et pas de soucis pour creer un nouveau serveur WEB.

OK, la RASPBERRY PI sert donc juste à la visualisation avec un navigateur.

Si le code ARDUINO est modifiable, il est possible d’ajouter une URL qui retourne les données de manière simple, comme dit précédemment.

Sinon, le parsing du HTML retourné par le serveur WEB actuel est faisable aussi. Cela aurait l’avantage de ne pas nécessiter de retouche du code ARDUINO. Tout dépend de la facilité de mise à jour de ceux-ci.
Une modif du code ARDUINO peut introduire des bugs, c’est délicat s’il s’agit d’une chaîne de production.

Qu’il s’agisse de modifier le code ARDUINO ou pas, PYTHON a toutes les librairies nécessaires pour le parsing, qu’il soit HTML ou XML ou JSON. Mais il ne faut pas oublier qu’il faut aussi développer un serveur WEB auquel tu vas accéder depuis le PC.
En PYTHON on peut développer un serveur WEB avec un framework CherryPy ou Django. Il y a pas mal d’apprentissage.

La décision dépend pas mal de tes connaissances : PYTHON, JavaScript, PHP, WEB, etc.

Il est possible aussi de développer en PYTHON une application cliente spécifique (sans serveur WEB) , avec une interface homme / machine propriétaire, en TK, WxWindows mais ce sera moins ouvert.

Bonjour,

Désolé de retard pour ma réponse mais je me suis documenté et fait quelque test.
Je pense m'orienté vers un serveur web en python avec du parsing pour le HTML des controlino distant.

Cela reste a confirmé, je reviendrait vous donner des nouvelles, une fois le projet un peu plus avancé.

Merci

Salut,

Tu as pas mal de solutions à ta dispositions si le but est simplement d'afficher les données :

Tu peux utiliser :

  • des iframes dans la page principale,
  • Utiliser jQuery pour "load" certains div de chaque page et faire un refresh timé( ou manuel),
  • Utliser des websockets pour afficher les résultats en temps réel.