Redirection de ports

Portrait de bc38

Bonjour,

En suivant la video "ESP8266 : Application android", j'ai réussi à faire fonctionner le montage tel que décrit dans la video. J'ai redirigé le port 80 vers l'adresse IP que j'ai affectée à mon esp et cela fonctionne parfaitement en WiFi ou en 4G.

Voulant adresser plusieurs esp j'ai donc redirigé d'autres ports 81 à 83 avec des adresses ip différentes de la même façon que pour le port 80, mais cela ne fonctionne pas ? 

Voici le début de mon code lua qui fonctionne : (c'est quand je change ip="192.168.0.41" et srv:listen(81,function(conn)... que çà ne fonctionne plus)

wifi.setmode(wifi.STATION)

wifi.sta.config ("XXXX,YYY") -- Réseau Wifi et Clé 

  cfg =

  {

    ip="192.168.0.40", --- POUR FIXER ADRESSE IP ESP 

    netmask="255.255.255.0",

    gateway="192.168.0.254"

  }

  wifi.sta.setip(cfg)

print(wifi.sta.getip()) -- Affiche l'IP attribuée à l'ESP8266

-- Initialisation des broches GPIO0 et GPIO2

gpio.mode(3, gpio.OUTPUT)

gpio.mode(4, gpio.OUTPUT)

gpio.write(3, gpio.LOW);

gpio.write(4, gpio.LOW);

-- Création du serveur web

if srv~=nil then -- FERME LE SERVEUR PRECEDENT

  srv:close()

end

srv=net.createServer(net.TCP)

srv:listen(80,function(conn) ---- PORT 80 REDIRIGE

    conn:on("receive", function(client,request)

Si quelqu'un a une idée géniale.
Merci d'avance

Bruno

Portrait de Cédric29

Salut

Tu as préciser les ports dans le fichier apk?

Portrait de bc38

Dans le fichier apk c'est mon adresse ip (myipadress) qui est spécifiée de manière à accéder à mon réseau en 4g, puis dur ma box je redirige les ports vers l'adresse IP de mon esp. C'est ok avec 80 redirigé vers 192......40...

Portrait de Cédric29

Normalement les port 81 - 82 - 83 sont deja attribué a des services, je te conseille d'utiliser des ports libres

Ensuite, ca doit ce passer comme ca.

Par exemple pour les ports libres  45000,45001,45002

Suivant l'action sur l'app apk, elle va envoyer une requête a ton adresse ip internet 86.123.321.xxx : au port 45 000 ou 45001 ou  45002 etc.

Donc dans l'app.apk i faut  bien différencier quelle action va sur quel esp en modifiant les ports

Pour la redirection au niveau du routeur :

JDire a ton routeur  que les requetes qui arrive a ces ports   doivent aller aux  ip locales qui leurs sont attribué , l'ip des esp 192.168.1.xx . pas besoin de préciser un port.

Le serveur de l'esp reçoit la requête qui lui est attribué et la traite ou pas !. Pas besoin de changer le port du serveur, tu peux le laisser a 80 sur tous tes esp.

Portrait de bc38

Merci. Je vais essayer avec des numéros de ports différents. Je ferai un retour.

Portrait de Cédric29

Si ca ne fonctionne pas, partage nous ton fichier .aia

Portrait de bc38

Bonjour,

J'ai trouvé la solution :

1) j'ai redirigé dans ma box l'adresse de mon ESP vers un port supérieur à 1100 pour ne pas être ennuyé par les ports "réservés"; exemple 1111

2) dans le programme lua : je fixe l'adresse de mon ESP et j'écoute sur le port redirigé : srv:listen(1111,function(conn)

3) dans mon programme App Inventor j'appelle par Webviewer l'url   http://monadresseip:1111/?pin=GPIO2ON

monadresseip étant l'adresse de ma box

Merci de votre aide.

Bruno