Je travail actuellement sur un projet qui doit me permettre de piloter a distance un relais wifi et a terme plusieurs relais en même temps.
J’utilise un Raspberry Pi 4 et un relais wifi avec ESP 01 (Type LC Tech)
Le firmware utilisé sur l’ESP est ESP Easy, il est programmé et fonctionnel.
J’utilise des commande en IP pour faire fonctionner le relais :
Relais 1 ON : @IP/control?cmd=relay,0,1
Relais 1 OFF: @IP/control?cmd=relay,0,0
Relais 2 ON : @IP/control?cmd=relay,1,1
Relais 1 OFF: @IP/control?cmd=relay,1,0
Je souhaiterais donc créer une interface graphique simple qui me permettrais de piloter le relais depuis le Raspberry:
Avec pour chaque relais un bouton ON et un bouton OFF et un retour d’état de chaque relais.
Il faudrait que cette interface ressemble a ceci pour 1 relais :
De quelle façon je pourrais créer cette interface? avec quel type de code? … Sachant que pour finaliser le projet, je souhaiterais piloter plusieurs relais de la même manière et ainsi les regrouper dans la même interface sur le RPi.
Si quelqu’un peut m’aider.
J’ai fait un peu la même chose avec une interface web pour piloter des prises 433 MHz,
Mais pour le retour de l’état je n’ai rien d’autre que le retour que la commande est bien partie.
Question,
Peux tu connaître l’état du relais en ligne de commande ?
<!DOCTYPE html><html>
<head><meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" href="data:,">
// CSS to style the on/off buttons
// Feel free to change the background-color and font-size attributes to fit your preferences
<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}
.button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;border-radius: 3px;
text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}
.button2 {background-color: #77878A;}</style></head>
<body><h1>ESP8266 Web Server</h1>
<p>- Etat " + State + "</p> // la c'est du c++ ( enfin un bout de) il faudra remplacer par le langage d'esp easy
if (State=="off") { // la aussi sur if then else...
<p><a href="/control?cmd=relay,0,1"><button class="button">ON</button></a></p>
} else {
<p><a href="/control?cmd=relay,0,0"><button class="button button2">OFF</button></a></p>
}
</body>*
</html>
En clair dans l’exemple, c’est le serveur de l’esp qui envoie les commandes et affiche le bouton permettant de changer l’état.
Après une page web sur ton PC avec un lien vers les différentes pages ( celle que tu auras uploader) de tes différents relais dans des div ou des frames (https://www.w3schools.com/)
pour faire une page avec des liens vers tes différentes commandes de relais tu peux simplement créer une page un_nom.html n’importe où dans ton PC même sans apache bon ok elle est moins joli que celle de gtv61
si j’ai bien compris cette page ( ESP Easy web interface - Let's Control It)
on doit pouvoir récupérer l’état des différents relais au format json. Mais la il faudra du javascript ou du php ( et apache ou nginx) et de la programmation mais ça permettrait de connaître l’état du relais et donc de conditionner l’affichage on ou off.
Salut @bof,
moi c’est du php qui envoie les commandes directement mais pour moi comme je travaille avec un relais radio je ne peux pas voir l’état et donner l’info en retour, sauf que la commande est bien partie…
Quand @Guillaume_Cab nous auras répondu pour savoir où il en est de l’installation , il aura le choix de prendre et d’essayer ta version ou la mienne, mais ma page est plus rigolote que jolie …
Il y a du CSS pour les boutons et une image qui fait le fond…
Expliques moi un peu NGIX l’intérêt ?
A plus
Merci !!
La solution de @bof est pas mal aussi, pour le moment je pense que c’est le plus simple étant donné que je ne passe pas par le RPi et donc plus facile a mettre en œuvre.
Je vais essayer de comprendre comment faire pour avoir le retour d’état du relais.
Le principal intérêt de nginx c’est que c’est plus léger ( moins gourmand en ressource, et plus rapide ) que apache. On peut quant même utiliser PHP avec et c’est en gros le même principe pour les droits et le répertoire où il installe ses documents. par contre les .htaccess de apache sont gérés différemment ds nginx.
tu trouveras en source une explication plus complète.
Je reviens vers vous pour la suite de mon projet.
J’ai, pour le moment, 2 problèmes :
Je voudrais que lorsqu’on appuis sur le bouton « Fermé » le voyant vert passe en rouge et inversement (il doit surement manquer quelque chose mais je ne comprend pas).
Lorsque j’appuie sur l’un des boutons j’envoie une requête HTTP pour commander l’ouverture ou la fermeture du relais. Je souhaiterais donc que lorsque j’appuie sur le bouton, la commande s’exécute mais qu’il n’y ai pas d’ouverture de la page associer a la commande HTTP://@IP/contol?cmd=relay,0,1 (par exemple).
Et enfin je suis toujours a la recherche pour avoir le retour d’état des relais.
Si l’un d’entre vous peu m’aider, je vous remercie d’avance.
Bonsoir @Guillaume_Cab,
Tu envoies une requête HTML sur une page normal de voir la page,
Il manque un rappel a ta page de base !
En suite la partie style est dans la partie body,
Normal ou pas ?
Commençons par trouver le rappel à ta page automatiquement …
si tu as des fichiers images: ferme.png et un autre ouvert.png dans le même répertoire que le html ce code doit faire ce que tu demandes ; bien évidemment si tu fermes ta page tu perds l’info du status de tes relais.
pour palier a ce problème tu pourrais utiliser des cookies comme c’est expliqué là:
sinon le code (sans les cookies) donnerait un machin comme ça:
quand tu envoies par exemple http ://192.168.1.39/control?cmd=relay,0,1 il te renvoie une page vide ? as tu regarder son source sur ton navigateur ? son code retour ds les options de développement de ton navigateur ? c’est bizarre qu’il te renvoie pas un truc !