Script BOX temperature


#21

wahouu quel efficacité !! 3 h que je cherche !! :sweat_smile:
Merci pour ton aide!!!
j’ai un souci lors de la compilation:

40


#22

j’ai remarqué que le bauds est réglé a 115200 or sur l esp c’est 9600 non?


#23

Salut @MathieuA j’ai tout essayé et je suis dans l’incapacité total de résoudre cette énigme :joy:


#24

Hello @alexis ! C’est ma faute ^^
La variable client n’est déclaré null part XD

Rajoute dans ton code à la ligne 46 =>

  WiFiClient client = server.available();

  while(!client.available()){
    delay(1);
  }

Et passe l’objet client en paramètre des fonction temperature et humidity juste en dessous comme ça =>

  temperature(client);
  humidity(client);

Et met les en paramètre des fonction comme ça =>

  void temperature(client)
  void humidity(client)

Ton code devrais ressembler à ça =>

#include <ESP8266WiFi.h>
#include <DHT.h>

const char* ssid = ""; // Your SSID 
const char* password = ""; // Tour wifi password

#define DHTPIN 2 // Pin of DHT sensor
#define DHTTYPE DHT11   // Type of your DHT sensor, by default DHT11
DHT dht(DHTPIN, DHTTYPE);

String requestTemperature = "GET /devicestate/create?token=YOUR_TOKEN&devicetype=YOUR_DEVICETYPE_ID&value=%VALUE";
String requestHumidity = "GET /devicestate/create?token=YOUR_TOKEN&devicetype=YOUR_DEVICETYPE_ID&value=%VALUE";

// Create an instance of the server
// Specify the port to listen on as an argument
WiFiServer server(4200);

void setup() {
  Serial.begin(115200);
  delay(10);
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
  
  WiFiClient client = server.available();

  while(!client.available()){
    delay(1);
  }
  
  temperature(client);
  humidity(client);
  delay(10000);
}

void temperature(client){ 
  
    float t = dht.readTemperature();
  // Check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t)) {
    Serial.println("Failed to read from DHT");
  } 
  else {
    Serial.println("connecting...");
    // If you get a connection, report back via serial:
    if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:

      String temperature = String(t, 0);

      // Replacing URL with the value
      requestTemperature.replace("%VALUE", temperature);

      Serial.println(requestTemperature);

      client.println(requestTemperature);
      client.println(host);
      client.println("Connection: close");
      client.println();

      Serial.println();
      Serial.println("disconnecting.");
      client.stop();
    } 
    
    else {
      // If you didn't get a connection to the server:
      Serial.println("connection failed");
    }
    delay(1000);
  }
}

void humidity (client) {
  
    float h = dht.readHumidity();
      if (isnan(h)) {
    Serial.println("Failed to read from DHT");
  } 
  
  else {
    Serial.println("connecting...");
    // If you get a connection, report back via serial:
    if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:

      String humidity = String(h, 0);

      // Replacing URL with the value
      requestHumidity.replace("%VALUE", humidity);

      Serial.println(requestHumidity);

      client.println(requestHumidity);
      client.println(host);
      client.println("Connection: close");
      client.println();
      Serial.println();
      Serial.println("disconnecting.");
      client.stop();
    } 
    
    else {
      // If you didn't get a connection to the server:
      Serial.println("connection failed");
    }

    delay(1000);

  }
}

#25

comme quoi une ligne ça fou la m…!!! :grin:

Bon maintenant j’ai ce problème:

12


#26

Oh le null que je suis :sweat_smile:

Tu sais quoi fusionne les deux fonction avec le loop comme ça =>

#include <ESP8266WiFi.h>
#include <DHT.h>

const char* ssid = ""; // Your SSID 
const char* password = ""; // Tour wifi password

#define DHTPIN 2 // Pin of DHT sensor
#define DHTTYPE DHT11   // Type of your DHT sensor, by default DHT11
DHT dht(DHTPIN, DHTTYPE);

String requestTemperature = "GET /devicestate/create?token=YOUR_TOKEN&devicetype=YOUR_DEVICETYPE_ID&value=%VALUE";
String requestHumidity = "GET /devicestate/create?token=YOUR_TOKEN&devicetype=YOUR_DEVICETYPE_ID&value=%VALUE";

// Create an instance of the server
// Specify the port to listen on as an argument
WiFiServer server(4200);

void setup() {
  Serial.begin(115200);
  delay(10);
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
  
  WiFiClient client = server.available();

  while(!client.available()){
    delay(1);
  }

  /**
   * Temperature
   */

  float t = dht.readTemperature();
  // Check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.println("connecting...");
    // If you get a connection, report back via serial:
    if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:

      String temperature = String(t, 0);

      // Replacing URL with the value
      requestTemperature.replace("%VALUE", temperature);

      Serial.println(requestTemperature);

      client.println(requestTemperature);
      client.println(host);
      client.println("Connection: close");
      client.println();

      Serial.println();
      Serial.println("disconnecting.");
      client.stop();
    } else {
      // If you didn't get a connection to the server:
      Serial.println("connection failed");
    }
    delay(1000);
  }

   /**
   * Humidity
   */

  float h = dht.readHumidity();
  if (isnan(h)) {
    Serial.println("Failed to read from DHT");
  } else {
    Serial.println("connecting...");
    // If you get a connection, report back via serial:
    if (client.connect(server, 80)) {
      Serial.println("connected");
      // Make a HTTP request:

      String humidity = String(h, 0);

      // Replacing URL with the value
      requestHumidity.replace("%VALUE", humidity);

      Serial.println(requestHumidity);

      client.println(requestHumidity);
      client.println(host);
      client.println("Connection: close");
      client.println();
      Serial.println();
      Serial.println("disconnecting.");
      client.stop();
    } else {
      // If you didn't get a connection to the server:
      Serial.println("connection failed");
    }
    delay(1000);
  }
  
  delay(10000);
}

Ça sera plus simple ^^


#27

32

quand ça veut pas :rofl:


#28

Oh lala je réfléchi plus correctement la c’est horrible…

A la place de “server” met l’adresse IP de ta Gladys ! Et fait le aussi un peu plus bah ligne 94 pour l’humidité !

Sinon tu comprend un peu le code ?


#29

a cet endroit ? 59

quant tout fonctionnera je vais me noter en commentaire dans le code ce a quoi ca correspond parceque la je suis perdu entre ce que j’essayais de comprendre sur le site arduino (histoire de pas attendre sans chercher un minimum!) sur les fonctions client serveur etc , et les modif que je fais sur le code :grin:


#30

Exactement !

Je t’ai dit n’hésite pas si tu as des questions ^^


#31

40

et si je met des virgules a la place des points j’ai une autre erreur:

10


#32

c’est pas un truc a modifier la par hasard?

07


#33

Il faut mettre une chaîne de caractère ^^

Comme ça "192.168.1.65" avec les guillemets pour qu’il comprenne bien


#34

01
:tired_face:

il faut declarer host ?
ou mettre l’ip de mon node?


#35

:thinking:
Pourquoi cette ligne est la…
Il me semble qu’elle est inutile ici, vire la pour voir !


#36

nikel ça compile. Je televerse.

dans Gladys je suis comme ca est ce que c’est bon?



#37

Normalement tu es bon !

Après le service du device n’est pas bon, met juste HTTP ça évitera des erreurs pour rien.

Dans le moniteur série de l’IDE Arduino tu vois quoi ?


#38

il faut aussi passer le baud a 9600 il me semble non?


#39

Non le baud fixé dans le code n’est la que pour la communication série il ne devrait pas avoir d’impact ^^


#40

je te confirme que ca ne fonctionne pas si je met pas 9600 .

la ça fonctionne est j’ai ça:

36

par contre je n’ai aucune données temperature ou humidité ?