Je me remets à l'arduino et monte un petit prjet perso
le projet :
Depuis un ordinateur distant ( en dehors de mon réseau sur ma freebox, un ordinateur sur le web), en tapant http://mon_ip:mon:port + ??? désire faire afficher dans mon navigateur "firefox" le résultat de mes 8 sorties analogiques de ma carte arduino.
J'ai réussis à faire:
Le montage fonctionne très bien dans mon réseau local
lorsque je tape http://192.168.5.15
les 8 résultats s'affichent dans ma page html
note : le shiel Ethernet est un HanRun HR911105A monté sur une carte arduino Uno
le shield à une adresse ip fixe déclarée dans le routeur de la freebox avec sa mac adresse
Ce que je veux c'est qu'une requête puisse être adressée à mon shield et qu'il retourne le résulat, mais depuis l'extérieur de mon réseau local, donc depuis n'importe qu'elle machine sur le web.
La je bute...
Questions:
Quelle doit être la forme exacte de la requête http://....... pour atteindre la freebox et comment configurer mon routeur pour qu'il redirige ma requête sur mon adresse locale (shield Ethernet) ?
Je pensais faire une redirection de port sur le port 80 en interne de la freebox sur une ip associée, mais ça ne fonctionne pas....
Salut
Il va falloir fouiller du coté NAT (Network Address Translation).
C'est à dire attribuer un port HTTP (8080 par exemple) à ton ARDUINO. Quand ta box verra une requête HTTP pour le port 8080, elle redirigera la requête vers ton ARDUINO : 192.168.5.15, port 80.
Le paramétrage de chaque box est différente, mais tu trouveras facilement les renseignements sur le NET.
D'autre part si ta box dispose d'une adresse IP fixe (je parle de son adresse vue d'internet), très bien. Apparemment chez FREE c'est possible de l'activer.
Sinon il te faudra passer par un DNS dynamique, afin de pouvoir retrouver l'adresse de ta box de l'extérieur, car celle-ci est susceptible de changer à tout moment.
J'arrive bien en tapant dans mon navigateur mon adresse public par exemple 47.256.32.56 j'obtiens bien l'affichage du résultats de mes capteurs.
Mais, c'est parce que j'ai paramétré dans le routeur de ma freebox le port 80 en source et aussi en port interne
ce qui me donne une ligne du genre :
80 TCP 192.168.0.146 80
si je mets un port 4200 par exemple en source et en interne, bien sur configuré dans le prog de carte arduino
EthernetServer server(4200);
Ça ne fonctionne pas, ça cherche .... pourquoi ?
je fais une erreur quelque part mais où ?
et puis je ne veux pas que tout le monde accède à mes résultats, donc que me suggéreriez comme méthode pour sécuriser ? mot de passe ? autres ? que peut-on faire ?
Si tu utilises le port 4200 en externe, il faut laisser le port 80 en interne, à moins de modifier le code de l'ARDUINO pour qu'il écoute sur le port 4200.
C'est vrai que c'est en général une mauvaise idée d'affecter le port 80 à serveur secondaire comme un ARDUINO. Autant le réserver à un serveur principal, une RASPBERRY PI par exemple.
Question sécurité, attendu que tu lis simplement des résultats, et que ces données ne sont pas confidentielles, pas de soucis. S'il s'agissait d'actionneurs comme allumer et couper le chauffage, ce serait une autre histoire.
Mais une page de login peut s'envisager, avec un mot de passe fort.