Gestion bouton esp8266 - app inventor

Bonjour à tous,

C'est mon premier message ici. Plus électronicien que codeur à la base, je bidouille actuellement sur un ESP8266.

Dans le cadre d'un petit projet, j'envoie entre autre l'état d'un BP physique en wifi d'un ESP à un autre, pas de souci jusque la ça fonctionne, 0 à l'appui et 1 lorsque relâché, comme attendu

Maintenant je souhaite en parallèle simuler l'appui de ce même bouton en passant par"app inventor" en wifi (avec au final la possibilité d'utiliser les 2 boutons pour réaliser la même chose), de façon simple j'arrive déjà à envoyer l'état du bouton et récupérer la commande.

Mon souci est que je n'arrive pas à gérer la simulation, quand j'appui sur le bouton sur mon interface avec le code actuel, il ne simule en rien l'appui bouton comme je le souhaiterais. Le BP physique fonctionne toujours.

J'ai bien essayer un certain nombre de choses avec les compétences qui sont les miennes mais sans succès, il y a quelque chose qui m'échappe

Merci pour vos conseils, voici mon code de base, il semble avec cette syntaxe que ma commande n'est pas prise en compte :

/*  Serveur avec gestion bouton */
#include <ESP8266WiFi.h>
#include <Bounce2.h>


const char* ssid = "******";
const char* password = "******";

WiFiServer server(80);
IPAddress ip(192, 168, 1, 5);
IPAddress gateway(192, 168, 1, 254);
IPAddress subnet(255, 255, 255, 0);

const int buttonPin = D3;

//Bounce debouncer = Bounce();   // Anti-rebond

void setup() {
  Serial.begin(115200);
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.config(ip, gateway, subnet);
  WiFi.begin(ssid, password);


  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }

  Serial.println("WiFi connected");

  // démarrage sur serveur
  server.begin();
  Serial.println("Connected to wifi");
  Serial.print("Status: "); Serial.println(WiFi.status());  // some parameters from the network
  Serial.print("IP: ");     Serial.println(WiFi.localIP());
  //Serial.print("Subnet: "); Serial.println(WiFi.subnetMask());
  //Serial.print("Gateway: "); Serial.println(WiFi.gatewayIP());
  Serial.print("SSID: "); Serial.println(WiFi.SSID());
  Serial.print("Signal: "); Serial.println(WiFi.RSSI());
  //Serial.print("Networks: "); Serial.println(WiFi.scanNetworks());


  /*WiFi.mode(WIFI_AP);
    WiFi.softAP("Wemos_AP", "Wemos_comm");
    WiFi.softAPConfig(ip, ip, mask);
    server.begin();
    Serial.println("Server started.");
    Serial.print("IP: ");     Serial.println(ip);
    Serial.println("Server started.");
    Serial.print("IP: ");     Serial.println(WiFi.softAPIP());
    //Serial.print("MAC:");     Serial.println(WiFi.softAPmacAddress());
    //Serial.print("Signal: "); Serial.println(WiFi.RSSI());*/

  pinMode(buttonPin, INPUT_PULLUP);
  digitalWrite(buttonPin, 1);
  //debouncer.attach(buttonPin);
  //debouncer.interval(10); // interval in ms
}

void loop() {

  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  //client.println('\r');

  //debouncer.update();
  //int value = debouncer.read();

  String request = client.readStringUntil('\r');

  if (request.indexOf("/gpio/0") != -1) {

    digitalWrite(buttonPin, LOW);
    client.println(analogRead(A0));
    client.println(digitalRead(buttonPin));
  }

  digitalWrite(buttonPin, HIGH);
  client.println(analogRead(A0));
  client.println(digitalRead(buttonPin));
  Serial.println(digitalRead(buttonPin));
}

Bonjour,

ButtonPin est configurée en output donc je pense que tu ne peux faire un digitalread sans que buttonpin ne soie configurer en input !
Donc c'est l'un ou l'autre mais pas les 2.

Sauf erreur !!!

Bat

Bonjour,

En fait j'ai oublié de le remettre en INPUT dans le cadre de mes essais mais mon problème reste le même quelque soit la façon dont je le déclare.

Un peu d'aide SVP?

Si je supprime "digitalWrite(buttonPin, HIGH);" après le if dans la boucle, ma commande est bien prise en compte mais reste à 0 ensuite, si je remets "digitalWrite(buttonPin, HIGH);" la commande n'est jamais lue.