thienan | Bonjour
je souhaiterai faire un système de surveillance de 2 températures (situés à des endroits différents). Ces températures seraient affichées sur un écran déporté.
Le tout serait basé sur 3 Huzzah ESP8266: - 1 avec écran qui serait AccesPoint (IP 192.168.4.1)+ station (qui récupererait les 2 températures pour les afficher sur l'écran)
- 1 relié à une sonde DS18B20 et serait webserver (IP 192.168.4.2)
- 1 deuxième relié à une sonde DS18B20 et serait webserver (IP 192.168.4.3)
Dans un premier temps je veux uniquement
- configurer le 1er Huzzah en AP
- configurer le 2eme Huzzah en webserver
vérifier qu'avec mon ordi, je peux, via une connection à l'AP (IP 192.168.4.1), me connecter au webserver (IP 192.168.4.2) et récupérer la temp.
L'AP marche (mon ordi se connecte dessus)
le webserver marche et se connecte à l'AP
mais je ne parviens pas à me connecter au webserver avec mon ordi
merci à toute bonne volonté...
Le code de l' Accespoint (vient de la bibliothèque d'exemples)
Code :
- /*
- * Copyright (c) 2015, Majenko Technologies
- * All rights reserved.
-
- */
- /* Create a WiFi access point and provide a web server on it. */
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <ESP8266WebServer.h>
- /* Set these to your desired credentials. */
- const char *ssid = "ESPap";
- const char *password = "thereisnospoon";
- ESP8266WebServer server(80);
- /* Just a little test message. Go to http://192.168.4.1 in a web browser
- * connected to this access point to see it.
- */
- void handleRoot() {
- server.send(200, "text/html", "<h1>You are connected</h1>" );
- }
- void setup() {
- delay(1000);
- Serial.begin(115200);
- Serial.println();
- Serial.print("Configuring access point..." );
- /* You can remove the password parameter if you want the AP to be open. */
- WiFi.softAP(ssid, password);
- IPAddress myIP = WiFi.softAPIP();
- Serial.print("AP IP address: " );
- Serial.println(myIP);
- server.on("/", handleRoot);
- server.begin();
- Serial.println("HTTP server started" );
- }
- void loop() {
- server.handleClient();
- IPAddress myIP = WiFi.softAPIP();
- Serial.print("AP IP address: " );
- Serial.println(myIP);
- delay (1000);
- }
|
Le code du webserver
Code :
- //COM4
- #include <ESP8266WiFi.h>
- #include <WiFiClient.h>
- #include <ESP8266WebServer.h>
- #include <ESP8266mDNS.h>
- #include <OneWire.h> //Librairie du bus OneWire
- #include <DallasTemperature.h> //Librairie du capteur
- OneWire oneWire(5); //Bus One Wire sur la pin 5 de l'arduino
- DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
- DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie
- MDNSResponder mdns;
- // Replace with your network credentials
- const char* ssid = "ESPap";
- const char* password = "thereisnospoon";
- ESP8266WebServer server(80);
- String webPage = "";
- int gpio0_pin = 0;
- float temperature = 0;
- int i=0;
- void setup(void){
- // preparing GPIOs j ignore pourquoi sans ces 2 lignes pinMode et digitalWrite ça ne connecte pas sur le ssid
- pinMode(gpio0_pin, OUTPUT);
- digitalWrite(gpio0_pin, LOW);
-
- delay(1000);
- Serial.begin(115200);
- WiFi.begin(ssid, password);
- Serial.println("" );
- // Wait for connection
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print("." );
- }
- Serial.println("" );
- Serial.println("Connected to " );
- Serial.println(ssid); // j ignore pourquoi ça ne s affiche pas
- Serial.println("IP address: " );// j ignore pourquoi ça ne s affiche pas
- Serial.println(WiFi.localIP());// j ignore pourquoi ça ne s affiche pas
- Serial.println("" );// j ignore pourquoi ça ne s affiche pas
-
- if (mdns.begin("esp8266", WiFi.localIP())) {
- Serial.println("MDNS responder started" );
- }
-
- server.on("/", [](){
- server.send(200, "text/html", webPage);
- });
- server.begin();
- Serial.println("HTTP server started" );
- Serial.begin(115200); //Permet la communication en serial
- sensors.begin(); //Activation des capteurs
- sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
- sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
-
- }
- void loop(void){
- server.handleClient();
- i=i+1;
- sensors.requestTemperatures(); //Demande la température aux capteurs
- Serial.print(i);
- Serial.print("La température est: " );
- Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
- Serial.println(" C°" );
- temperature = sensors.getTempCByIndex(0);
- Serial.println(WiFi.localIP());
- webPage = temperature;
- webPage += "<p></p>";
- webPage += i;
- delay (2000);
- }
|
Message édité par thienan le 29-10-2017 à 21:16:41
|