wemosd1+android reseau indépendant ?

Bonjour,
apres avoir testé un wemosd1 4 sorties commandées par boutons on/off depuis un tel android, je me demande comment faire la meme chose sans passer par le wifi local "box internet" ?
dans le cas testé : au lancement l'appli android se connecte au esp sur l'adresse ip renseignée dans l'application.
supposition : le esp8266 doit etre mis en acces point, il diffusera son propre reseau wifi ssid et adresse IP ?
exemple
c'est le wemos qui envoie les data au tel
je cherche des infos

Merci

Oui votre esp peut créer son propre réseau (mode Access Point) Wi-Fi et donc si votre tel rejoint ce réseau la communication IP devient fonctionnelle.

(Je ne suis pas sûr de bien voir la question)

désolé, quand je me suis relu, j'ai constaté que ce n'était pas tres explicite

je vais étudier les exemples des lib esp8266
wifimanager webserver, etc..
je reviendrai pour des questions plus précises

Merci

Pour ce que tu cherches , intéresses-toi aux exemples de type 'Acces Point"

revoilà :

le code quand l'esp se connecte à mon routeur : l'android envoie les ordres on/off a l'adresse IP de l'esp, en "transitant" par la box/routeur , correct ?

#include <ESP8266WiFi.h>

WiFiClient client; // 

WiFiServer server(80);

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


String  command =""; // Command received from Android device

// Set led/relay Pins
int switch1 = 5;  //D1
int switch2 = 4;
int switch3 = 14;
int switch4 = 12;


void setup()
{
  Serial.begin(115200);

  pinMode(switch1, OUTPUT); 
  pinMode(switch2, OUTPUT);   
  pinMode(switch3, OUTPUT); 
  pinMode(switch4, OUTPUT);   
  // si on utilise des modules relais avec opto ils sont actifs
  // avec un signal LOW 
  digitalWrite(switch1,HIGH); // les relais non actifs
  digitalWrite(switch2,HIGH);
  digitalWrite(switch3,HIGH);
  digitalWrite(switch4,HIGH);
      
  connectWiFi(); // fonction locale plus bas

  server.begin();
}

void loop()
{
    client = server.available();
    if (!client) return; 
    command = checkClient ();

         if (command == "sw1on") digitalWrite(switch1,LOW);
    else if (command == "sw1off") digitalWrite(switch1,HIGH);
    else if (command == "sw2on") digitalWrite(switch2,LOW);     
    else if (command == "sw2off") digitalWrite(switch2,HIGH);
    else if (command == "sw3on") digitalWrite(switch3,LOW);
    else if (command == "sw3off") digitalWrite(switch3,HIGH);     
    else if (command == "sw4on") digitalWrite(switch4,LOW);
    else if (command == "sw4off") digitalWrite(switch4,HIGH);
    else if (command == "allon") 
    {

      digitalWrite(switch1,LOW);
      digitalWrite(switch2,LOW);
      digitalWrite(switch3,LOW);
      digitalWrite(switch4,LOW);
    }
    else if (command == "alloff") 
    {
      digitalWrite(switch1,HIGH);
      digitalWrite(switch2,HIGH);
      digitalWrite(switch3,HIGH);
      digitalWrite(switch4,HIGH);
    }
    sendBackEcho(command); // send command echo back to android device
    command = "";
}

/* connecting WiFi : fonction */ 

void connectWiFi()
{
  Serial.println("Connecting to WIFI");
  WiFi.begin(ssid, password);
  while ((!(WiFi.status() == WL_CONNECTED)))
  {
    delay(300);
    Serial.print("..");
  }
  Serial.println("");
  Serial.println("WiFi connection established");
  Serial.println("IP number is : ");
  Serial.print((WiFi.localIP()));
}

/* check command received from Android Device */
String checkClient (void)
{
  while(!client.available()) delay(1); 
  String request = client.readStringUntil('\r');
  request.remove(0, 5);
  request.remove(request.length()-9,9);
  return request;
}

/* send command echo back to android device */
void sendBackEcho(String echo)
{
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");
  client.println(echo);
  client.println("</html>");
  client.stop();
  delay(1);
}

j'ai mis l'esp en AP avec le code suivant

#include <ESP8266WiFi.h>

#include <WiFiClient.h>

#include <ESP8266WebServer.h>

/* Set these to your desired credentials. */
const char *ssid = "monesp8266";
const char *password = "";

ESP8266WebServer server(80);

/* Just a little test message.  Go to http://192.168.4.1 in a web browser
   connected to this access point to see it.
*/
void handleRoot() {
  server.send(200, "text/html", "<h1>You are connected</h1>");
}

void setup() {
  delay(1000);
  Serial.begin(115200);
  Serial.println();
  Serial.print("Configuring access point...");
  /* You can remove the password parameter if you want the AP to be open. */
  WiFi.softAP(ssid, password);

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  server.on("/", handleRoot);
  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
}

j'y accede depuis mon android avec le nom "monesp8266" adresse ip est 192.168.4.1 (adresse defaut esp )

que dois-je changer dans le premier code à flasher dans l'esp pour que le tel android accede
directement à l'esp ?

il y a des choses que j'ai du mal à suivre, je lis qu'on peut "lier" max 8 devices à l'esp en AP, 4 par défaut ? mais pas d'explication comment faire ?
bon l'anglais et moi...n'empeche
dans les options "carte 8266" on peut choisir erase flash : onlysketch, sketch+wifisettings, allflash contents : que choisir pour quelle raison ?

ESP8266 as HTTP Server using WiFi Access Point (AP) mode

const char* ssid = "monesp8266"; // Enter SSID here
const char* password = ""; //pas de mdp

/* Put IP Address details */
IPAddress local_ip(192,168,1,1); // adresse ip locale qu'on donne à l'esp : 192.168.1.5 est aussi bon ?
IPAddress gateway(192,168,1,1); // c'est le esp qui est passerelle ?
donc on change le 192.168.4.1 ??? et quand on televerse on choisit sketch+wifisettings ?

IPAddress subnet(255,255,255,0);

ESP8266WebServer server(80);

et dans le setup

WiFi.softAP(ssid, password);
WiFi.softAPConfig(local_ip, gateway, subnet);
delay(100);

le reste ok, le questionnement c'est comment configurer une adresse IP+ le gateway dans l'esp
pourquoi c'est 192.168.1.1 dans les 2 sur le croquis d'origine ? celà est aussi l'adresse de base de certains routeurs, çà prete à confusion

Merci

je passe rapidement sur le forum ... tu auras sans doute des éclaircissements sur cette page

https://arduino-esp8266.readthedocs.io/en/2.7.4_a/esp8266wifi/readme.html

c'est fait,

#include <ESP8266WiFi.h>
WiFiClient client;
WiFiServer server(80);

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

IPAddress IP(192,168,4,15);
IPAddress mask = (255, 255, 255, 0);
String  command =""; // Command received from Android device



void setup()
{
  Serial.begin(115200);

  WiFi.mode(WIFI_AP);
  WiFi.softAP(ssid, password);
  delay(100);

  WiFi.softAPConfig(IP, IP, mask);
  

  server.begin();
  Serial.println("access point config");
  Serial.println("Server started.");
  Serial.print("IP: ");     Serial.println(WiFi.softAPIP());
  
  Serial.print("MAC:");     Serial.println(WiFi.softAPmacAddress());
    
}

je connecte l'android sur le wifi "monesp8266" je lance l'appli je lu indique l'adresse ip et je commande les relais

me reste juste à modifier l'ai2inventor pour que le wifi change de reseau et se connecte sur "monesp8266" quand on démarre l'appli, je ne suis pas certain que ce soit possible
sinon un vieux phone android connecté en permanence, ou du moins qui se connecte uniquement sur "monesp8266"

Merci pour l'aide apportée

pourquoi ne pas connecter votre ESP sur le Wi-Fi principal si vous en avez un ?

le wifi principal ne passe pas partout dans la maison, le modem est au rdc et au 1er étage à l'extréme distante du modem çà ne passe déjà plus

Ok

Sous appinvetor vous pouvez explorer ce plugIn pour le WiFi

Sinon J’avais un peu le même souci de disponibilité Wi-Fi chez moi et j’ai installé un lot de 3 bases NETGEAR Orbi Mesh tri-bandes (une par étage diagonalement ) et maintenant j’ai une bonne qualité de signal partout.

bonjour,

un repeteur wifi basic placé au bon endroit devrait convenir

appinventor c'est un peu compliqué, çà manque de tutos/ exemples en français, la methode "scratch" blocs(meme pour arduino) n'est pas ma tasse de thé.
c'est plus commode de passer par blynk ou autres alternatives gratuites
je manque de compréhension basique des reseaux : reseau, sous-reseau, passerelle, dns, mesh, etc..
la plupart des exemples des biblios esp8266WiFi, 8266mDNS, wifimulti, etc.. restent trop mystérieux

Merci

Les répéteurs de base ne sont pas les plus efficaces (congestion de bande passante) vaut mieux (mais plus cher) un truc tri bande avec un réseau mesh des bornes sur une bande à part.