# Connecter un esp8266 au HOTSPOT FREEWIFI

**URL:** <https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362>\
**Category:** Français\
**Created:** [November 14, 2017, 6:02pm UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362 "2017-11-14T18:02:10Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![cdlnd](https://avatars.discourse-cdn.com/v4/letter/c/85e7bf/32.png) [@cdlnd](https://forum.arduino.cc/u/cdlnd)\
**Post date:** [November 14, 2017, 6:02pm UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/1 "2017-11-14T18:02:10Z")

</div>

Bonjour, tous le monde

je cherche a Connecter un esp8266 au HOTSPOT FREEWIFI malgré de longue recherche sur le Net je ne trouve pas de solution.

bon il faut avoué que je suis pas très doué non plus

si vous avez une solution merci d'avance

---

<div class="post-metadata">

**Author:** ![Leptro](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/leptro/32/238769_2.png) [@Leptro](https://forum.arduino.cc/u/Leptro)\
**Post date:** [November 15, 2017, 3:00am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/2 "2017-11-15T03:00:48Z")

</div>

Bonjour,

Pourtant dans l'ide Arduino, il y a plein d'exemple livré pour l'es8266.

il suffit d'avoir le SSID , freewifi à priori. et le mot de passe.

---

<div class="post-metadata">

**Author:** ![cdlnd](https://avatars.discourse-cdn.com/v4/letter/c/85e7bf/32.png) [@cdlnd](https://forum.arduino.cc/u/cdlnd)\
**Post date:** [November 15, 2017, 5:27am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/3 "2017-11-15T05:27:35Z")

</div>

le problème n'est pas de se connecter au ssid wififree mais il est de s'identifier sur la page web

> **[Choisissez une offre Fibre ou ADSL sans engagement - Free](https://www.free.fr/Auth/)**
>
> Découvrez nos offres fibre et trouvez la Freebox qu'il vous faut. Internet très haut débit sans engagement, fibre optique, ADSL, appels illimités, TV et Replay…

char\* ssid="FreeWifi"  
char\* password=""  
const int httpsport=443

WiFi.begin(ssid,password)

WiFiClientSecure client

Serial.print("wget -O - --post-data="login=$LOGIN&password=$PASSWORD" "[Choisissez une offre Fibre ou ADSL sans engagement - Free](https://wifi.free.fr/Auth)")

avec le moniteur de l IDE ARDUINO j'obtiens bien une addresse ip pour autant je ne suis pas connecter  
au net pour le vérifier je lui demande de m'afficher l heure via ntpclient  
mon programme fonctionne très bien sur mon réseaux wifi

---

<div class="post-metadata">

**Author:** ![lesept](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/lesept/32/238959_2.png) [@lesept](https://forum.arduino.cc/u/lesept)\
**Post date:** [November 15, 2017, 2:11pm UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/4 "2017-11-15T14:11:50Z")

</div>

Je pense que c'est impossible de cette manière. Une solution serait d'utiliser un shield GSM et d'y insérer une carte Free (à 2 euros pour limiter les frais) qui pourrait se connecter sur un réseau FreeWifi.

Free utilise l'EAP SIM (système utilisé pour l'identification et la distribution de clés au travers des réseaux) pour permettre aux mobiles de se connecter aux hotsposts spécifiques. C'est la carte SIM qui s'authentifie sur le réseau, ce qui explique qu'il faut avoir un mobile compatible avec ce protocole pour pouvoir bénéficier du service.

---

<div class="post-metadata">

**Author:** ![cdlnd](https://avatars.discourse-cdn.com/v4/letter/c/85e7bf/32.png) [@cdlnd](https://forum.arduino.cc/u/cdlnd)\
**Post date:** [November 16, 2017, 7:34am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/5 "2017-11-16T07:34:44Z")

</div>

bonjour,

merci de ta réponse Lesept  
a l'endroit ou je compte mettre ma carte il n'y pas de signal GSM l'idée d'utiliser wififreesecure(l'EAP SIM) avec une carte GSM est une bonne solution,  
néanmoins mise a part mon ignorance en programmation je ne voix aucune raison pour laquelle il ne serais pas possible de se connecter au réseaux hotspot freewifi  
la carte ESP8266 peux s'identifier sur un site HTTP:80 HTTPS:443 login pass submit  
a ce jour via mon wifi je me connecte a des pages web récupéré des variables modifie une base sql  
envoi des notification a mon mobile...  
je n'ai pas essayer de me connecté a un hotspot sfr  
mais j'arrive a me connecté as un hotspot de camping ou d’hôtel  
donc je ne pense pas que ce soit impossible peut être plus compliqué

---

<div class="post-metadata">

**Author:** ![tahitibob35](https://avatars.discourse-cdn.com/v4/letter/t/b2d939/32.png) [@tahitibob35](https://forum.arduino.cc/u/tahitibob35)\
**Post date:** [November 16, 2017, 8:06am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/6 "2017-11-16T08:06:15Z")

</div>

C'est quoi cette ligne ?

```cpp
Serial.print("wget -O - --post-data="login=$LOGIN&password=$PASSWORD" "https://wifi.free.fr/Auth")

```

---

<div class="post-metadata">

**Author:** ![tahitibob35](https://avatars.discourse-cdn.com/v4/letter/t/b2d939/32.png) [@tahitibob35](https://forum.arduino.cc/u/tahitibob35)\
**Post date:** [November 16, 2017, 8:08am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/7 "2017-11-16T08:08:23Z")

</div>

Je m'inspirerais de ça :

> <https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/HTTPSRequest/HTTPSRequest.ino>

---

<div class="post-metadata">

**Author:** ![cdlnd](https://avatars.discourse-cdn.com/v4/letter/c/85e7bf/32.png) [@cdlnd](https://forum.arduino.cc/u/cdlnd)\
**Post date:** [November 16, 2017, 9:57am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/8 "2017-11-16T09:57:06Z")

</div>

merci tahitibob35

> <https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266WiFi/examples/HTTPSRequest/HTTPSRequest.ino>

c'est le bout de prog que j'ai adapter pour faire des notications (sms)  
et me connecter au hotspot hotel,camping cela fonctionne très bien

j'ai bien essayer de l'utiliser pour me connecter au hotspot wifi free la connexion jusqu’à certificate matches fonctionne mais le problème c'est que le GET OU le POST ne prenne pas ????????????  
j'ai donc essayer adapter Wget mais rien ne fonctionne  
[https://doc.ubuntu-fr.org/freewifi](https://doc.ubuntu-fr.org/freewifi)

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [November 17, 2017, 5:09am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/9 "2017-11-17T05:09:40Z")

</div>

De mémoire ils utilisent un Captive Portal. regardez [ce genre de truc](https://github.com/idolpx/mobile-rr) ou [celui là](https://github.com/esp8266/Arduino/tree/master/libraries/DNSServer/examples/CaptivePortalAdvanced) (ou cherchez « ESP8266 Captive Portal arduino»)

---

<div class="post-metadata">

**Author:** ![cdlnd](https://avatars.discourse-cdn.com/v4/letter/c/85e7bf/32.png) [@cdlnd](https://forum.arduino.cc/u/cdlnd)\
**Post date:** [November 17, 2017, 5:30am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/10 "2017-11-17T05:30:02Z")

</div>

Bonjour tous le monde,  
j'ai résolu mon problème  
je me suis posé plein de question et ne mettais de point interrogation ?????

url=/Auth?login=monmogin&password=monpassword&submit=Valider  
client.print(String("POST ") + url + " HTTP/1.1\r\n" +  
"Host: " + host + "\r\n" +  
"User-Agent: BuildFailureDetectorESP8266\r\n" +  
"Connection: close\r\n\r\n");  
en espérant que ça serve a d'autre merci et a+

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [November 17, 2017, 5:42am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/11 "2017-11-17T05:42:43Z")

</div>

Cool... évitez d’utiliser la classe String

Ce code fait la même chose sans surcharger la mémoire en allocations dynamiques

```cpp
client.print(F("POST "));
client.print(F(“/Auth?login=monmogin&password=monpassword&submit=Valider  HTTP/1.1\r\nHost: ”));
client.println(host);
client.println(F("User-Agent: BuildFailureDetectorESP8266\r\nConnection: close\r\n"));

```

Vous êtes sûr que c’est un POST et pas un GET ?

---

<div class="post-metadata">

**Author:** ![MicroQuettas](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/microquettas/32/1013044_2.png) [@MicroQuettas](https://forum.arduino.cc/u/MicroQuettas)\
**Post date:** [November 17, 2017, 10:33am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/12 "2017-11-17T10:33:30Z")

</div>

Bonjour Cdlnd,

Je voudrais essayer la même chose avec les hotspots d'un autre fournisseur. Pourriez-vous poster le code complet (sauf les identifiants bien entendu...) ?  
Merci d'avance et bonne bidouille,

MicroQuettas

---

<div class="post-metadata">

**Author:** ![cdlnd](https://avatars.discourse-cdn.com/v4/letter/c/85e7bf/32.png) [@cdlnd](https://forum.arduino.cc/u/cdlnd)\
**Post date:** [November 17, 2017, 5:39pm UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/13 "2017-11-17T17:39:29Z")

</div>

bonjour,  
si cela peux servir il n y'a pas besoin de toute c'est library et on peu surement retirer des ligne inutile  
#include \<SPI.h\>  
#include \<ESP8266WiFi.h\>  
#include \<WiFiClient.h\>  
#include \<ESP8266WebServer.h\>  
#include \<ESP8266mDNS.h\>  
#include \<NTPClient.h\>  
#include \<WiFiUdp.h\>  
#include \<TimeLib.h\>  
#include \<WiFiClientSecure.h\>  
#include \<EEPROM.h\>

const char\* ssid = "FreeWifi";  
const char\* password ="";  
const char\* host = "[wifi.free.fr](http://wifi.free.fr)";  
const int httpPort = 80;  
const int httpsPort = 443;  
WiFiUDP ntpUDP;  
WiFiServer server(6);  
// Use web browser to view and copy // SHA1 fingerprint of the certificate  
const char\* fingerprint = "18 EB 36 0D AD 38 0D 0E D1 87 8B 09 4D 44 CF 45 38 90 F7 DC";  
NTPClient timeClient(ntpUDP, "[0.fr.pool.ntp.org](http://0.fr.pool.ntp.org)", 7200, 60000);//7200 en éte et 3600 en hiver  
void setup() {  
Serial.begin(115200);  
Serial.println();  
Serial.print("connecting to ");  
Serial.println(ssid);  
WiFi.begin(ssid, password);

while (WiFi.status() != WL\_CONNECTED) {  
delay(1000);  
Serial.println("connection freewifi");//défois un peu long  
}

Serial.println("");  
// Use WiFiClientSecure class to create TLS connection  
WiFiClientSecure client;  
Serial.print("connecting to ");  
Serial.println(host);

while(!client.connect(host, httpsPort)) {  
Serial.println("connection failed");  
delay(1000);  
// return;  
}  
if (!client.connect(host, httpsPort)) {  
Serial.print(".");  
}else{Serial.println("connection au site ok");}

String url = "/Auth?login=login&password=password&submit=Valider";

Serial.print("requesting URL: ");  
Serial.println(url);

client.print(String("POST ") + url + " HTTP/1.1\r\n" +  
"Host: " + host + "\r\n" +  
"User-Agent: BuildFailureDetectorESP8266\r\n" +  
"Connection: close\r\n\r\n");

while (client.connected()) {  
String line = client.readStringUntil('\n');  
if (line == "\r") {  
Serial.println("headers received");  
break;  
}  
}  
timeClient.update();//HORLOGE  
timeClient.begin();//HORLOGE  
timeClient.update();  
Serial.println("closing connection");  
}

void loop() {  
WiFiClientSecure client;  
timeClient.begin();  
timeClient.update();

Serial.println(timeClient.getFormattedTime());  
delay(1000);  
Serial.println("Use this URL to connect: ");

Serial.println(WiFi.localIP());  
String request = client.readStringUntil('\r');  
Serial.println(request);  
client.flush();  
}

---

<div class="post-metadata">

**Author:** ![MicroQuettas](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/microquettas/32/1013044_2.png) [@MicroQuettas](https://forum.arduino.cc/u/MicroQuettas)\
**Post date:** [November 17, 2017, 6:01pm UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/14 "2017-11-17T18:01:49Z")

</div>

Merci beaucoup.

Je vais essayer d'adapter pour les hotspots de mon fournisseur... et je le posterai en retour.  
Bonne soirée

MicroQuettas

---

<div class="post-metadata">

**Author:** ![ym58](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ym58/32/244965_2.png) [@ym58](https://forum.arduino.cc/u/ym58)\
**Post date:** [November 18, 2017, 8:17am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/15 "2017-11-18T08:17:57Z")

</div>

Bonjour Cdlnd,

Es-tu parvenu à te connecter _ **EFFECTIVEMENT** _ sur \*Freewifi ?

En compilant ton code, j'ai des erreurs de librairies (timelib.h et jsonlistener.h) ...

D'autre part, comment obtenir la signature 'fingerprint' ?  
Est-elle spécifique à chaque hotspot FreeWifi ou est-elle unique pour tous les hostspots FreeWifi ?

Merci

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [November 18, 2017, 8:23am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/16 "2017-11-18T08:23:54Z")

</div>

Pour le fingerprint cf [How to View a Certificate Fingerprint as SHA-256, SHA-1 or MD5 using OpenSSL](https://knowledge.symantec.com/support/identity-protection-support/index?page=content&id=SO28771&actp=RSS&viewlocale=en_US) par exemple et plus d’info pratique peut être aussi lue [ici (How to Verify Server's Identity? Et Get the Fingerprint)](https://github.com/esp8266/Arduino/blob/master/doc/esp8266wifi/client-secure-examples.rst)

Le POST versus GET me laisse très dubitatif

---

<div class="post-metadata">

**Author:** ![ym58](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ym58/32/244965_2.png) [@ym58](https://forum.arduino.cc/u/ym58)\
**Post date:** [November 18, 2017, 8:53am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/17 "2017-11-18T08:53:43Z")

</div>

@J-M-L :  
ton premier lien ne marche pas, le second est OK, je vais essayer d'utiliser ce dernier pour copier-coller la signature du hotspot FreeWifi

Sinon, j'ai finalement réussi à trouver les bons .ZIP et à installer les bonnes librairies pour compiler le programme :  
**time-master.zip** pour _timelib.h_  
et  
**json-streaming-parser-master.zip** pour _jsonlistener.h_

Toutefois, à la compilation, une autre erreur apparait maintenant :

_**test\_free:21: error: no matching function for call to 'NTPClient::NTPClient(WiFiUDP&, const char [18], int, int)'**_  
_**NTPClient timeClient(ntpUDP, "[0.fr.pool.ntp.org](http://0.fr.pool.ntp.org)", 7200, 60000);//7200 en été et 3600 en hiver**_

Any help ?

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [November 18, 2017, 9:15am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/18 "2017-11-18T09:15:38Z")

</div>

Bizarre le lien marche pour moi...

Pour NTP faut trouver la bonne librairie vu le `#include <NTPClient.h>`

sans doute [un truc comme ça](https://github.com/arduino-libraries/NTPClient)

---

<div class="post-metadata">

**Author:** ![MicroQuettas](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/microquettas/32/1013044_2.png) [@MicroQuettas](https://forum.arduino.cc/u/MicroQuettas)\
**Post date:** [November 18, 2017, 9:42am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/19 "2017-11-18T09:42:49Z")

</div>

Bonkour à tous,

La structure de la requête est clairement celle d'une GET. Donc, si le serveur fait son travail complètement, il ne devrait pas y répondre ??  
Si je comprends bien le code, l'accès au serveur temps NTP vient après la connexion, pour verifier qu'elle est bien établie ?  
Mais est-on sur qu'il a besoin d'une connexion authentifiée pour demander l'heure à un serveur NTP ?  
En d'autres termes, je ne suis également pas sur que ça marche, en plus des pbs de bibliothèques.

A+

MicroQuettas

---

<div class="post-metadata">

**Author:** ![ym58](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ym58/32/244965_2.png) [@ym58](https://forum.arduino.cc/u/ym58)\
**Post date:** [November 18, 2017, 10:37am UTC](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362/20 "2017-11-18T10:37:59Z")

</div>

> En d'autres termes, je ne suis également pas sur que ça marche, en plus des pbs de bibliothèques.

Je suis assez d'accord avec toi, MicroQuettas.

Par ailleurs où doit-on rentrer les identifiants de connexion dans le sketch ?

Une authentification FreeWifi consiste en 2 étapes et 2 saisies :

- étape 1 :
- accès au SSID **FreeWifi** ou **FreeWifi\_Secure**
- étape 2 :
- saisie du **code freewifi**
- saisie du **password**

Comment tout ceci s'articule t'il dans le sketch ?

[Next page](https://forum.arduino.cc/t/connecter-un-esp8266-au-hotspot-freewifi/491362.md?page=2)
