Pi4 - Page Web avec boutons et graphes

Bonjour,
J’ai un projet (sur pi4) de captures de grandeurs physiques (U, I, T°, etc …) que je sauvegarde toutes les minutes dans une BD Postgresql.
Je souhaiterais créer une (ou +s) page(s) web comprenant des boutons (pour activer des GPIO’s) et afficher des graphes des grandeurs physiques sauvegardées dans Postgresql (requêtes SQL) pour analyse et mise au point.
Ces graphes devraient pouvoir afficher une ou plusieurs courbes et être paramétrables via du code Python.
Les pages devraient pouvoir afficher un ou plusieurs graphes.
Je recherche un widget graphique pas trop simpliste car j’aimerais qu’il ait les possibilités de zoomer, pointer sur un graphe et afficher la valeur de la donnée sélectionnée (comme le fait Grafana pour ceux qui connaissent).
Comment procéder, quels outils me conseillez-vous?
Merci d’avance pour vos conseils et exemples.

Avec Python, tu peux te créer un serveur Web minimal pour afficher le rendu et recevoir des commandes (via appel Ajax, sur un « API » conçu) et retourner le résultat par traitement Ajax/JS.

Pour le rendu graphique en page Web, il te faudra chercher des Libs en JS pour ton rendu.

En service Web Tu auras 2 points à penser;

  • Le Rendu sur un « /index »
  • Des appels via un lien d’appel, genre « /api »
    • Celui ci reçoit une commande, la traite et retourne une réponse en format JSon (idéalement)
    • Une fois la réponse reçu, le JS sur « /index » traitera la donnée et l’affichera (ou changera) le résultat sur la page client.

De cette façon, tu devra interagir avec l’écran à la souris/clavier ou via le touchscreen.

Si tu veux des boutons physique pour manipuler, il faudra soit un script distinct qui va interpréter les touches pour créer un effet interne (émulation de clavier), soit le script principal (avec le serveur) changera des états. Ceci impliquerais que la page charge des appels vers le serveur (via API) a intervalle et recevra alors le changement dans la foulé.

Pour gérer le graphique etc… il est vrai que c’est souvent plus simple en page Web, avec de beaux effets. Mais si tu passe via une interface purement Python, tu évite la « latence » et les actions sont direct, sans passer par un « API ». Mais le rendu graphique (Zoom, tableaux, etc… ) est plus compliqué.

Pour savoir comment mettre ton Raspberry en mode Kiosk, pour n’avoir qu’un bureau simple avec le navigateur chrome. Cette base peut également servir pour au lieu d’utiliser CHrome, utiliser une application Python conçu pour ton usage.

https://levelkro.xyz/wiki/RPi-Chromium_Kiosk_Mode

1 « J'aime »

Merci levelKro pour toutes ces informations. J’analyse tout cela …