Auteur: frederic bressy Date: À: Guilde Sujet: interface web et asynchrone
Bonsoir
Je suis en train de développer une appli de suivi de température et
vitesse de rotation de ventilo d'une baie informatique.
un serveur linux permet d'enregistrer les paramètres au fil du temps, de
garder des seuils d'alerte, etc.
les info viennent d'un arduino placé dans la baie, équipé d'un capteur
de température, et qui alimente les ventilos (2 au sommet de la baie) et
contrôle leur vitesse en fonction de seuil enregistré sur le serveur.
L'arduino envoi les valeurs via une requete POST à une api qui récupère
les données pour les mettre en table sur une base MySQL
le serveur a une interface "web-like" en html, php, jquery.
Elle affiche courbe de température, vitesse de rotation des ventilos en
fonction du temps en heure-minute, affichable sur 24 heures, 48 heures,
1 semaine. Cela par une librairie jquery Highcharts qui "va chercher"
les données à afficher dans la meme api citée plus haut
sur le coté du cadre du diagramme de courbe, il y a des seuils de
température, la température et rotation instantanée.
Les seuils peuvent être réglés par l'utilisateur Si l'utilisateur change
les seuils et appui sur OK, un script démarre pour
- garder les nouvelles valeurs en fichiers ou base de donnée (pour un
cron qui tourne toutes les 5 min et qui fera pareil que la 3eme action
plus bas)
- afficher les nouvelles valeurs
- si la température dépasse le seuil, on envoi un ordre d'augmenter la
rotation des ventilos à l'arduino par une requête POST.
seulement comment faire pour que toutes ces actions,surtout la requête
POST, ça soit asynchrone?
Que ça ne fige pas le diagramme des courbes
que ça ne bloque pas l'utilisateur en attendant la réponse de la requête.
Que le retour (OK ou pas OK) s'affiche dans un bandeau en haut de
l'interface par exemple
on utilise une commande exec("doGardeValeurEtFairePost.php $arg1 $arg2
$arg3 >/dev/null 2>&1 &");?
ou avec un "gestionnaire" de tache comme GearMan ou autre?
--
Cordialement
Bressy Frederic
Pensez ENVIRONNEMENT : n'imprimer que si nécessaire