Bonjour je souhaiterais me servir d'une commande bouton poussoir affiché sur un
écran pour allumer une led ( la led reste allumée temps que l'on reste appuyé sur le BP )
J'ai le code en web server ( STA ) qui fonctionne parfaitement.
J'aimerais le transformer en AT , mais j'ai beau chercher je n'y arrive pas.
je vous laisse le code qui ne fonctionne pas et ne compile pas.
Merci de votre aide.
J'ai trouvé la solution , pour une fois que je trouve sans que l'on m'aide , ça se fête.
Ses 2 codes sont super quand on veut faire de la télécommande avec fonction BP,
pas besoin de fabriquer un boitier pour le TX ,l'écran tactile du téléphone fait office
de TX , quand à l'ESP8266 lui fait le RX .
Le résultat est surprenant pour les 2 codes , lors de l'appui ou relâchement sur
l'écran du téléphone l'action est instantanée.
Le premier code en STATION (STA) sera plutôt pour de la télécommande en intérieur.
Le second code lui en ACCESS POINT (AP) sera plutôt pour de la télécommande en
extérieur ( pas besoin de réseaux wifi ,c'est l'ESP8266 qui fait son propre réseau).
Je laisse les 2 codes ( qui fonctionnent parfaitement) si ça intéresse quelqu'un.
Bonne soirée à tous .
// ESP8266 FONCTION BP ( push ) en STATION ( STA ) .
// pour le fonctionnement tapez l'adresse IP de votre
// ESP8266 dans une barre de recherche http .
// cela vous donne accés au commande de la led .
#ifdef ESP32
#include <WiFi.h>
#include <AsyncTCP.h>
#else
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#endif
#include <ESPAsyncWebServer.h>
AsyncWebServer server ( 80 ) ;
// ici mettre vos identifiants box :
const char* ssid = "xxxxxxxx" ;
const char* password = "xxxxxxxx" ;
const int led = D0 ;
// page web HTML :
const char index_html [ ] PROGMEM = R"rawliteral(
<!DOCTYPE HTML><html>
<head>
<title>commande led avec bouton poussoir</title>
<meta name = "viewport" content =
"width=device-width,initial-scale=1">
<style>
body { font-family: Arial; text-align: center; margin:
0px auto; padding-top: 30px;}
.button {
padding: 20px 20px;
font-size: 24px;
text-align: center;
outline: none;
color: #fff;
background-color: #2f4468;
border: none;
border-radius: 20px;
box-shadow: 0 6px #999;
cursor: pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.button:hover {background-color: #1f2e45}
.button:active {
background-color: #1f2e45;
box-shadow: 0 4px #666;
transform: translateY(2px);
}
</style>
</head>
<body>
<h1>commande led avec bouton poussoir</h1>
<br><br>
<button class="button" onmousedown =
"toggleCheckbox('on');" ontouchstart =
"toggleCheckbox('on');" onmouseup =
"toggleCheckbox('off');" ontouchend =
"toggleCheckbox('off');">BOUTON POUSSOIR</button>
<script>
function toggleCheckbox ( x ) {
var xhr = new XMLHttpRequest ( ) ;
xhr . open ( "GET", "/" + x , true ) ;
xhr . send ( ) ;
}
</script>
</body>
</html>)rawliteral";
void notFound ( AsyncWebServerRequest *request )
{
request->send ( 404 , "text/plain" , "Not found" ) ;
}
void setup ( )
{
//Serial.begin ( 115200 ) ;
WiFi . mode ( WIFI_STA ) ;
WiFi . begin ( ssid , password ) ;
if ( WiFi . waitForConnectResult ( ) != WL_CONNECTED )
{
return ;
}
pinMode ( led , OUTPUT ) ;
digitalWrite ( led , LOW ) ;
// envoie la page web au client .
server.on("/",HTTP_GET,[](AsyncWebServerRequest*request)
{
request->send_P ( 200 , "text/html" , index_html ) ;
} ) ;
// reçoit une requête HTTP GET .
server.on("/on",HTTP_GET,[](AsyncWebServerRequest*request)
{
digitalWrite ( led , HIGH ) ;
request->send ( 200 , "text/plain" , "ok" ) ;
} ) ;
// reçoit une requête HTTP GET .
server.on("/off",HTTP_GET,[](AsyncWebServerRequest*request)
{
digitalWrite ( led , LOW ) ;
request->send ( 200 , "text/plain" , "ok" ) ;
} ) ;
server . onNotFound ( notFound ) ;
server . begin ( ) ;
}
void loop ( ) { }
type or paste code here