Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Accès RPI3 depuis l'extérieur avec noip
#1
Bonjour à tous !
Je suis nouveau dans ce forum et j'espère que quelqu'un pourra m'aider...
J'ai une question réseau, domaine dans lequel je suis très mauvais...

J'ai fait un robot avec un RPI3.
J'ai défini mon RPI3 en tant que point d'accès (en DHCP pour ceux qui s'y connectent) avec hostapd et dnsmask.
J'ai définit une IP statique pour mon AP : 192.168.4.1

Ce robot a un raspicam. Je visualise l'image à partir d'une page HTML sur IP 192.168.4.1:8000. Cette page affiche l'image de la raspicam avec mjpg-streamer sur le port 10088.
Ça marche parfaitement. Je peux sans pb voir l'image mais en local, en me connectant au réseau de mon RPI3 (IP 192.168.4.1:8000).
A noter que mon RPI3 a une IP locale 192.168.1.109.

Je veux maintenant accéder à 192.168.4.1:8000 mais depuis l'extérieur.
J'ai utilisé noip mais il y a un pb...

J'ai créé un compte noip qui pointe vers l'IP de mon modem.
Sur mon routeur :
- j'ai réservé l'adresse DHCP 192.168.1.109.
- j'ai fait un transfert du port 8000 et 10088 vers 192.168.1.109

A partir du dns que je me suis défini avec noip, je peux voir ma page HTML mais pas l'image de la caméra...

Quelqu'un pourrait-il m'aider ?
Cela me serait d'un très GRAND SECOURS...
Répondre
#2
A mon avis, le souci est plutôt sur la configuration de mjpg-streamer et/ou du serveur web qui diffuse sur le réseau 192.168.4.0/24 et pas sur 192.168.1.0/24. J'imagine que depuis une machine de ton réseau local (pas celui de l'AP), tu as le même souci.

Est-ce que tu peux donner l'adresse noip pour que je puisse voir la page html ?
Répondre
#3
Oui, en local, j'ai le même problème et non sur l'AP.
Je te donne l'adresse noip en MP car je ne veux pas la diffuser sur le forum...
Répondre
#4
Bonjour,
sous réserve,
noip et la box font bon ménage
mais l'utilisation de ddns de noip est fait pour une consultation extérieure à ton reseau
utilisation du smartphone par exemple

pour un test local: http://192.168.4.1:8000 le port ou service 8000 ouvert dans la box et le parefeu
pour un test depuis l'extérieur, aprés être enregistré auprés de noip.com et implémenter la box pour le nat
donc depuis ton smartphone : http://nom_choisi.ddns.org:8000
chez moi des souvenirs de vacance:
http://alpha30.ddns.net
pour alpha30 nom choisi
ddns dynamique dns
net choix arbitraire
pour la ligne ci-dessus port 80 par défault
A+
JB
Répondre
#5
Bonjour jb01,
Comme je l'ai mentionné, en passant par l'extérieur (monip:8000), j'arrive à voir ma page html mais pas le streaming de la caméra.
Je n'ai pas saisi ce que tu me recommandes...
Répondre
#6
Bon, je pense avoir compris le problème, il est purement dans le html généré.

La page est accessible sur le port 10088 avec le noip, mais effectivement la vidéo n'est pas visible. J'ai donc jeté un coup d'oeil au code:
Code :
<img id="img_camera" src="http://192.168.3.1:10088/?action=stream" width="640" height="480">
Forcément, l'ip locale ne donne rien pour moi. Par contre, si je mets dans mon navigateur: [url]http://adresse.noip:10088/?action=stream[/url], je vois bien le stream.
Conclusion : si la page est générée en php, il faudrait que l'url du stream soit créée ainsi:
Code :
echo $_SERVER['SERVER_NAME'], ':10088/?action=stream';
Répondre
#7
ok mais la page n'est pas générée par du php.
Devrais-je le faire pour ne pas mettre l'adresse du serveur en dur ?
Répondre
#8
Comment est générée la page ? Est-ce que tu en as la maîtrise ?
Si oui, j'ai diverses idées à te proposer.

L'idée la plus simple (tu peux oublier la précédente): ne met pas d'url à ton image:
Code :
<img id="img_camera" src="/?action=stream" width="640" height="480">

Ca a un double avantage:
- le serveur détermine automatiquement l'emplacement où il doit aller (relatif à la page où tu es, pas à l'url)
- c'est une seule connexion, donc l'authentification pour l'accès à la page fonctionne pour l'image (le stream) aussi.
Répondre
#9
Ça à l'air de fonctionner mais je n'ai pas testé en dehors de chez moi...
Peux-tu le tester pour moi avant que je remette un mot de passe ?
(dns name que je t'ai donné en MP sur port 10088)
Répondre
#10
Ca marche nickel, sauf que les commandes de déplacement et vitesse ne font rien. Je peux essayer le bouton stop ? Big Grin
Répondre
#11
Je viens d'essayer aussi depuis l'extérieur et ça marche au poil !!!
Normal qu'il ne bouge pas, j'ai déconnecté la liaison à la broche GPIO pour d'autres tests...
Un grand merci à toi !!!!
D'autres profiteront peut-être de la résolution de ce problème... En tout ca, je n'ai vu nul part dans les forums le fait de ne pas mettre d'adresse serveur...
Code :
<img id="img_camera" src="/?action=stream" width="640" height="480"


Tu as eu une idée brillante !
Répondre
#12
En fait, c'est plus ou moins la base de tous les liens internes à un site, je ne sais même pas pourquoi je n'y ai pas pensé immédiatement.
Répondre
#13
Oups ! J'ai crié victoire un peu trop tôt...je n'avais pas tout testé...

Voici mon petit soucis :
- lorsque je vais sous monip:10088, je vois ma page web ainsi que la caméra mais mes macros webiopi ne fonctionnent pas
- lorsque je vais sous monip:8000, je vois ma page web, je ne vois pas la caméra mais mes macros fonctionnent

A noter que dans mon fichier de config de webiopi, j'ai déclaré le port 8000 dans la section [HTML]
Je ne peux pas y déclarer le port 10088 car je serais en conflit avec le streaming...

Voici le code erreur javascript lorsque je vais sur monip:10088 en faisant un 'reculer' :

Citation :POST http://monip:10088/macros/DoArriereStart/ net::ERR_CONNECTION_RESET


Une idée CrazyCat ?
J'ai enlevé le mot de passe de webiopi si tu veux vérifier...

Il faudrait peut-être spécifier où chercher les macros (sur quel port) ?
Répondre
#14
J'ai trouvé un début de solution : mettre http://monip:10088/?action=stream
au niveau de l'image de la caméra dans le fichier html et accéder à la page par monip:8000

Par contre, je crois avoir un soucis avec l'accès via mon AP sur le port 8000... je confirme...
Normal, le streaming essaie de se faire sur http:monip alors que je suis en local, direct sur le Rpi3 via wifi...

Il doit y avoir une solution...

La voici :
Remplace dynamiquement le port du serveur de l'image :
Code :
<script type="text/javascript">
document.getElementById("img_camera").src="http://" + window.location.host.replace('8000','10088') + "/?action=stream";
</script>
Ça fonctionne avec monip:8000 et 192.168.3.1:8000
Répondre
#15
Donc, webiopi crée/utilise un serveur et mjpg-streamer en utilise un autre ?
Ce que je ne comprends pas, c'est que ta page sur le port 8000 est la même que celle sur le port 10088 (quand on ne met pas le ?action=stream). Il doit certainement y avoir un moyen de résoudre le conflit et de faire fonctionner les deux avec le même serveur web.
Répondre
#16
J'avais essayé de le faire quand j'étais dans ma phase d'installation de mjpg-streamer et on m'a dit (dans un autre forum) que c'était impossible !
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

A propos de Communauté francophone RPi

Communauté francophone RPi est un forum d'aide et de partage autour du Raspberry Pi et des micro-ordinateurs.