ESP8266: système de surveillance température sans fil

ESP8266: système de surveillance température sans fil - Electronique, domotique, DIY

Marsh Posté le 29-10-2017 à 21:15:57    

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 :
  1. /*
  2. * Copyright (c) 2015, Majenko Technologies
  3. * All rights reserved.
  4. */
  5. /* Create a WiFi access point and provide a web server on it. */
  6. #include <ESP8266WiFi.h>
  7. #include <WiFiClient.h>
  8. #include <ESP8266WebServer.h>
  9. /* Set these to your desired credentials. */
  10. const char *ssid = "ESPap";
  11. const char *password = "thereisnospoon";
  12. ESP8266WebServer server(80);
  13. /* Just a little test message.  Go to http://192.168.4.1 in a web browser
  14. * connected to this access point to see it.
  15. */
  16. void handleRoot() {
  17. server.send(200, "text/html", "<h1>You are connected</h1>" );
  18. }
  19. void setup() {
  20. delay(1000);
  21. Serial.begin(115200);
  22. Serial.println();
  23. Serial.print("Configuring access point..." );
  24. /* You can remove the password parameter if you want the AP to be open. */
  25. WiFi.softAP(ssid, password);
  26. IPAddress myIP = WiFi.softAPIP();
  27. Serial.print("AP IP address: " );
  28. Serial.println(myIP);
  29. server.on("/", handleRoot);
  30. server.begin();
  31. Serial.println("HTTP server started" );
  32. }
  33. void loop() {
  34. server.handleClient();
  35.   IPAddress myIP = WiFi.softAPIP();
  36.     Serial.print("AP IP address: " );
  37.   Serial.println(myIP);
  38.   delay (1000);
  39. }


 
 
 
Le code du webserver
 

Code :
  1. //COM4
  2. #include <ESP8266WiFi.h>
  3. #include <WiFiClient.h>
  4. #include <ESP8266WebServer.h>
  5. #include <ESP8266mDNS.h>
  6. #include <OneWire.h> //Librairie du bus OneWire
  7. #include <DallasTemperature.h> //Librairie du capteur
  8. OneWire oneWire(5); //Bus One Wire sur la pin 5 de l'arduino
  9. DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
  10. DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie
  11. MDNSResponder mdns;
  12. // Replace with your network credentials
  13. const char* ssid = "ESPap";
  14. const char* password = "thereisnospoon";
  15. ESP8266WebServer server(80);
  16. String webPage = "";
  17. int gpio0_pin = 0;
  18. float temperature = 0;
  19. int i=0;
  20. void setup(void){
  21.   // preparing GPIOs j ignore pourquoi sans ces 2 lignes pinMode et digitalWrite ça ne connecte pas sur le ssid
  22. pinMode(gpio0_pin, OUTPUT);
  23. digitalWrite(gpio0_pin, LOW);
  24.  
  25.   delay(1000);
  26.   Serial.begin(115200);
  27.   WiFi.begin(ssid, password);
  28.   Serial.println("" );
  29.   // Wait for connection
  30.   while (WiFi.status() != WL_CONNECTED) {
  31.     delay(500);
  32.     Serial.print("." );
  33.   }
  34.   Serial.println("" );
  35.   Serial.println("Connected to " );
  36.   Serial.println(ssid); // j ignore pourquoi ça ne s affiche pas
  37.   Serial.println("IP address: " );// j ignore pourquoi ça ne s affiche pas
  38.   Serial.println(WiFi.localIP());// j ignore pourquoi ça ne s affiche pas
  39.    Serial.println("" );// j ignore pourquoi ça ne s affiche pas
  40.  
  41.   if (mdns.begin("esp8266", WiFi.localIP())) {
  42.     Serial.println("MDNS responder started" );
  43.   }
  44.  
  45.   server.on("/", [](){
  46.     server.send(200, "text/html", webPage);
  47.   });
  48.   server.begin();
  49.   Serial.println("HTTP server started" );
  50. Serial.begin(115200); //Permet la communication en serial
  51. sensors.begin(); //Activation des capteurs
  52. sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
  53. sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
  54.  
  55. }
  56. void loop(void){
  57.   server.handleClient();
  58. i=i+1;
  59. sensors.requestTemperatures(); //Demande la température aux capteurs
  60. Serial.print(i);
  61. Serial.print("La température est: " );
  62. Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
  63. Serial.println(" C°" );
  64. temperature = sensors.getTempCByIndex(0);
  65. Serial.println(WiFi.localIP());
  66. webPage = temperature;
  67. webPage += "<p></p>";
  68.   webPage += i;
  69. delay (2000);
  70. }


Message édité par thienan le 29-10-2017 à 21:16:41
Reply

Marsh Posté le 29-10-2017 à 21:15:57   

Reply

Marsh Posté le 14-12-2018 à 11:26:40    

J' arrive peut-être après la bataille. Avez vous trouvé une solution ? Sinon, je peux peut-être vous aider.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed