Configuration requise pour serveur web

Salutations !

Ayant déjà quelques bases en programmation C / C++, j'ai décidé d'entrer dans le monde merveilleux d'Arduino et plus généralement de l'électronique.
J'ai décidé d'entreprendre la création d'une station météorologique que je pourrais placer dans ma chambre puante d'adolescent pour... pour rien en fait. Le questionnement ne se pose pas ici.

En fait, je me suis dis qu'il serait cool de réaliser un mini serveur web, histoire que je puisse consulter ces informations depuis l'extérieur, et éventuellement effectuer quelques actions (activer le chauffage, etc... mais ça c'est pour plus tard :p). C'est là que je me pose deux questions :

  • I - Sur quoi dois-je héberger ce site, qui doit être accessible depuis l'extérieur ?

  • Sur une carte Arduino ? Mais il faudrait qu'elle puisse prendre en charge un serveur web tel qu'Apache, et avec les quelques ko de stockage, je doute que cela soit faisable...

  • Sur ma box ? Je suis chez SFR, et je n'ai rien trouvé qui puisse faire l'affaire...

  • J'ai vu que l'on peut faire effectivement ça avec des cartes Arduino et un Shield, mais ces systèmes ne permettent pas d'exécuter du code PHP... Auriez-vous une idée de comment je peux faire ceci ?

  • II - Si jamais j'arrive à héberger mon site en local, je dois tout de même communiquer des informations entre ma station météorologique et mon mini serveur web. Comment est-ce faisable ?

  • Avec un couple de modules WiFi ? On pourrait imaginer que les deux cartes communiquent à l'aide du réseaux WiFi, mais là encore, aucune idée de comment je peux réaliser ça...

Merci énormément par avance pour le temps que vous prendrez pour me lire / répondre,

Bien à vous,
Gabyfle.

pourquoi pas une Rpi?? largement suffisant pour discuter avec l'arduino, installer un lamp, possible d'y acceder en local/ a distance

je dois tout de même communiquer des informations entre ma station météorologique et mon mini serveur web.

soit liaison serie( uart)/ ethernet/ wifi/bluetooth/ sans fils....

Ma solution que je n'ai pas encore testée :wink:

un petit esp8266 genre Wemos d1 mini (moins de 3 euros). Cette petite carte est compatible avec l'environnement arduino, dispose du Wifi (mais n'a qu'une entrée analogique 3.2V max).

Elle hébergera le serveur web (pas de php mais du C/C++ (arduino)). Des projets sur ce forum exploitent déjà les capacités des ESP8266 ou esp32, cherche à les trouver pour gagner du temps.

Elle est capable de s'intégrer au réseau Wifi de ta box Internet, comme une machine quelconque, et disposera donc d'une IP fournie par ta box Internet de la forme 192.168.1.X. Configure ta box pour que l'IP locale attribuée a ton ESP soit fixe. Déjà là tu pourras avoir accès à la température de ta chambre dans ton réseau Wifi local.

Si maintenant tu veux y accéder de n'importe où dans le monde :

  • inscrit ta box sur un serveur DNS gratuit (exemple https://www.noip.com/) histoire d'associer un nom "truc.bidule.org" à l'IP internet de ta box.

  • Configure ta box pour quelle fasse une translation d'adresse destination (DNAT) pour que toute requête sur son port 80 en provenance d'Internet soit redirigée vers l'IP de ton ESP.

Et voilà, ta chambre pourra rester le centre du monde :wink:

Bonjour !

hazerty565:
pourquoi pas une Rpi?? largement suffisant pour discuter avec l'arduino, installer un lamp, possible d'y acceder en local/ a distance

C'est faisable ? Je pensais que ces deux plaquettes de plastiques dotées d'un micro controlleur ne pouvaient pas se communiquer la moindre information...
Une fois que j'ai PHP & Co. d'installé, comment ça peut se faire si jamais j'ai un module WiFi par exemple ?

Chez moi, j'ai un routeur ASUS RT-AC68U, qui me permet aussi de brancher des choses en filaire, donc je brancherais la Raspberry Pi 3 dessus. Par contre, avec mon Arduino et son module WiFi...

Il faudrait donc que mon Arduino, avec son module, se connecte à mon routeur, puis qu'il soit "redirigé" vers la carte Arduino...
Ou alors, il faut que je me connecte directement au Raspberry ? Mais dans ce cas-ci, il me faudrait son IP, or il est connecté sur mon réseaux donc il a l'IP de ma box ? Mhumm... compliqué d'essayer de ne pas bouger de sa chambre...

Supposons que je réussisse à me connecter à mon Raspberry Pi 3 Model B (très précis tout ça), comment transmettre les informations reçues par Arduino (ex : température, humidité) à mon système web en PHP ? Car il faut tout de même passer une barrière de la langue : C -> PHP (bon okay, PHP a été écris en C). Donc je pourrais éventuellement faire ceci dans le header lorsque j'envoie la requête au serveur web ? Non, car comment différencier une requête d'un utilisateur de celle d'un Arduino ? Bon, vous me direz que Google fait ça, et très certainement ce forum, qui sais si ce sont des robot ou de véritables utilisateur mais j'imagine que ce sont des notions trop avancé pour moi qui ai appris le PHP dans un petit bouquin (bon il fait 800 pages le truc quand même).

Ma dernière option est donc de faire tourner deux serveurs sur la carte Raspberry ?! Un qui accueille les données, qui les stockes dans un répertoire "partagé", et l'autre (le serveur web), qui grâce au script PHP récupère ces données et les affiches au client...
Ça me parait tout de même bizarre comme fonctionnement, j'imagine que vous avez de meilleures idées ?

supercc:
Ma solution que je n'ai pas encore testée :wink:

un petit esp8266 genre Wemos d1 mini (moins de 3 euros). Cette petite carte est compatible avec l'environnement arduino, dispose du Wifi (mais n'a qu'une entrée analogique 3.2V max).

Elle hébergera le serveur web (pas de php mais du C/C++ (arduino)). Des projets sur ce forum exploitent déjà les capacités des ESP8266 ou esp32, cherche à les trouver pour gagner du temps.

Ton idée a l'air assez bonne, et surtout pas chère à réaliser (ce qui pour moi est tout de même primordiale) mais grâce à la bonté divine d'un pote, j'ai réussi a obtenir une raspberry contre une Arduino Mega (j'pense que le deal vaut le coup, nan ?)

De plus, le problème c'est que je souhaitais par la suite ajouter quelques fonctionnalités avec PHP, comme un MDP pour se connecter au système etc...

Merci à tous les deux pour vos réponses complètes,

Bien à vous,
Gabyfle.

tu fais exactement la meme chose sur le Rpi que t'a dis superCC, tu enleve le dhcp de ton reseau pour la rpi pour avoir une adresse ip fixe, tu installe php ( lamp: LAMP est un acronyme pour Linux, Apache, MySQL, PHP) sur ton rpi

tu inscrit ta box sur un serveur DNS gratuit

pourquoi 2 serveur alors qu'un suffit, si tu une base de données mysql pour stocker tes données avec lamp ( c'est ce qu'il faut)

rajouter un mdp, aucun soucis si tu t'y conné en php, rien de plus simple, une rpi c'est juste un mini ordinateur specialement fait pour cela...

je ne sais pas la version de ta rpi, mais si c'est la 3, tu as le wifi directement sur la carte, donc tu as un sheild wifi sur ton arduino, il va se connecter directement dessus

autrement si tu as un sheild ehternet tu te connecte par ethernet...

au pire, tu as le GPIO pour se la liaison entre l'arduino et le RPI par GPIO...

il existe meme un librarie en php pour la Rpi ( php raspberry pi gpio sur google)

Si ca se trouve tu n'as meme pas besoin d'arduino finalement, car la Rpi tu as des GPIO, qui permet directement de brancher des capteurs, il existe des weather hat pour Rpi....