Climate indoor station

Si, regarde le sujet dans le bar, cela a déjà été traité.
A coté de quick reply tu as ''more'', modify est un sous menu de more.
Pourquoi faire simple quand on peux faire compliqué .
Par contre plus d'accès aux icones.

Je lance arduino.exe, je vais dans "croquis" puis "importer bibliothèque" et là, j'ai toute mes bibliothèques que je peux importer dans un "croqui", donc il semble qu'il n'y a pas d'erreur à ce niveau.

J'ouvre le fichier "DHT_test.ino" qui est dans le répertoire des bibliothèques "DHT", ce "DHT_test.ino" fonctionne très bien, et si je ne me trompe pas il a les mêmes caractéristiques que mon fichier "simple_climate_indoor.ino" au niveau des phrases* DHT.

Je créé un dossier "simple_climate_indoor" dans "exemple" du dossier "DHT" de la bibliothèque, je place "simple_climate_indoor.ino" dans ce dossier, (comme l'est le fichier DHT_test.ino) ça ne fonctionne pas.

C'est le comble !

  • je ne sais pas comment on nomme les phrases (d'un fichier *.ino, comme cetexemple : #include "DHT.h", je ne sais pas programmer en C++.........

Je créé un dossier "simple_climate_indoor" dans "exemple" du dossier "DHT" de la bibliothèque, je place "simple_climate_indoor.ino" dans ce dossier, (comme l'est le fichier DHT_test.ino) ça ne fonctionne pas.

mais pourquoi se compliquer la vie?
tu créé un nouveau projet
tu colle le code de simple_climate_indoor.ino dans ce projet et tu enregistre sous simple_climate_indoor
ca va te créer un rep là ou il faut.
en compilant ca doit fonctionner.

Ben non, ça ne fonctionne pas, malheureusement, j'ai fait comme tu dis.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows Vista), Board: "Arduino Uno"
sketch_simple_climate_station:30: error: 'DHT11' was not declared in this scope
sketch_simple_climate_station.ino: In function 'void setup()':
sketch_simple_climate_station:52: error: 'class DHT' has no member named 'begin'
sketch_simple_climate_station.ino: In function 'void loop()':
sketch_simple_climate_station:89: error: 'class DHT' has no member named 'readTemperature'
sketch_simple_climate_station:101: error: 'class DHT' has no member named 'readHumidity'

Je l'ai modifié en rajoutant #include <DHT22.h> et en modifiant #define DHTTYPE DHT22 au lieu de #define DHTTYPE DHT11 et maintenant j'ai ces erreurs :

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows Vista), Board: "Arduino Uno"
sketch_simple_climate_station:31: error: expected primary-expression before ')' token
sketch_simple_climate_station.ino: In function 'void setup()':
sketch_simple_climate_station:53: error: 'class DHT' has no member named 'begin'
sketch_simple_climate_station.ino: In function 'void loop()':
sketch_simple_climate_station:90: error: 'class DHT' has no member named 'readTemperature'
sketch_simple_climate_station:102: error: 'class DHT' has no member named 'readHumidity'

Importer les libraries ne fait pas à grand chose.
Cela t'insère simplement la ligne :
#include <lib_qui_va_bien.h>

L'IDE est prévu pour trouver les librairies dans 2 endroits et seulement 2.

    • Dans le répertoire interne à l'IDE : ce sont les librairies officielles, sous linux elles ne sont modifiables qu'avec les droits administrateur c'est dire qu'on ne doit pas y toucher.
  • -Pour les librairies non gérées par ARduino il faut les placer dans le répertoire /schetchbook/libraries qui est dans ton compte utilisateur et donc où tu fais ce que tu veux.

Plus la solution que j'ai indiqué dans le répertoire du fichier INO, mais comme tu patauge oublie cette solution pour le moment, tu pourra y revenir plus tard.

Ensuite comme le dit Infobaquee tu fais nouveau schetch et tu l'enregistre et c'est tout.
L'IDE créera de lui même dans /schetchbook un répertoire qui portera le même non que tu aura donné au fichier ino.

PS pour les nom de répertoire j'ai utilisé une syntaxe *NIX, si tu es sous windaube remplace "/" par ""

DHT' does not name a type
et
'DHT11' was not declared in this scope
c'est pas la même chose.
déjà, ca veut dire que la lib est bien reconnue.
après si tu regardes bien l'exemple de la lib, c'est pas
#include <DHT22.h>
qu'il faut mettre.
mais changer simplement le type de la sonde

#include "DHT.h"

#define DHTPIN 2     // what pin we're connected to

// Uncomment whatever type you're using!


#define DHTTYPE DHT11   // DHT 11 POUR UNR DHT11


//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

donc dans le code que tu veux utiliser, le type est bien dht11

#include "Adafruit_GFX.h"    // Adafruit Grafik-Bibliothek
#include "Adafruit_ST7735.h" // Adafruit ST7735-Bibliothek
#include <SPI.h>
 
#include <Wire.h>
#include "Adafruit_BMP085.h" // Adafruit BMP085-Bibliothek
 
#include "RTClib.h"
 
#include <DHT.h>
#define DHTPIN 4         // Zur Messung verwendeter Pin, in unserem Fall also Pin 4



#define DHTTYPE DHT11    // DHT 11

Voila ce que j'ai :

#include <Adafruit_GFX.h> // Adafruit Grafik-Bibliothek
#include <Adafruit_ST7735.h> // Adafruit ST7735-Bibliothek
#include <SPI.h>
#include <DHT.h>
#include <Wire.h>
#include <Adafruit_BMP085.h> // Adafruit BMP085-Bibliothek
#include <RTClib.h>

#define DHTPIN 4 // Zur Messung verwendeter Pin, in unserem Fall also Pin 4
#define DHTTYPE DHT11 // DHT 11

// TFT-Display
#define CS 10 // Arduino-Pin an Display CS
#define DC 9 // Arduino-Pin an Display A0
#define RST 8 // Arduino Reset-Pin

Adafruit_ST7735 tft = Adafruit_ST7735(CS, DC, RST); // Display-Bibliothek Setup

RTC_DS1307 RTC; // Tiny RTC Modul

Adafruit_BMP085 bmp; // BMP085

DHT dht(DHTPIN, DHTTYPE); // Initialisieren des DHT (C'est cette phrase qui est surligné en orange quand je fait vérifie.)

Et j'ai toujours cette erreur :

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows Vista), Board: "Arduino Uno"
sketch_simple_climate_station:28: error: 'DHT11' was not declared in this scope
sketch_simple_climate_station.ino: In function 'void setup()':
sketch_simple_climate_station:50: error: 'class DHT' has no member named 'begin'
sketch_simple_climate_station.ino: In function 'void loop()':
sketch_simple_climate_station:87: error: 'class DHT' has no member named 'readTemperature'
sketch_simple_climate_station:99: error: 'class DHT' has no member named 'readHumidity'

Donc rien ne change, il y a toujours cette erreur.

Ce sketch (exemple de la libraries DHT22) :

#include <DHT22.h>
// Only used for sprintf
#include <stdio.h>

// Data wire is plugged into port 7 on the Arduino
// Connect a 4.7K resistor between VCC and the data pin (strong pullup)
#define DHT22_PIN 7

// Setup a DHT22 instance
DHT22 myDHT22(DHT22_PIN);

void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("DHT22 Library Demo");
}

void loop(void)
{
DHT22_ERROR_t errorCode;

// The sensor can only be read from every 1-2s, and requires a minimum
// 2s warm-up after power-on.
delay(2000);

Serial.print("Requesting data...");
errorCode = myDHT22.readData();
switch(errorCode)
{
case DHT_ERROR_NONE:
Serial.print("Got Data ");
Serial.print(myDHT22.getTemperatureC());
Serial.print("C ");
Serial.print(myDHT22.getHumidity());
Serial.println("%");
// Alternately, with integer formatting which is clumsier but more compact to store and
// can be compared reliably for equality:
//
char buf[128];
sprintf(buf, "Integer-only reading: Temperature %hi.%01hi C, Humidity %i.%01i %% RH",
myDHT22.getTemperatureCInt()/10, abs(myDHT22.getTemperatureCInt()%10),
myDHT22.getHumidityInt()/10, myDHT22.getHumidityInt()%10);
Serial.println(buf);
break;
case DHT_ERROR_CHECKSUM:
Serial.print("check sum error ");
Serial.print(myDHT22.getTemperatureC());
Serial.print("C ");
Serial.print(myDHT22.getHumidity());
Serial.println("%");
break;
case DHT_BUS_HUNG:
Serial.println("BUS Hung ");
break;
case DHT_ERROR_NOT_PRESENT:
Serial.println("Not Present ");
break;
case DHT_ERROR_ACK_TOO_LONG:
Serial.println("ACK time out ");
break;
case DHT_ERROR_SYNC_TIMEOUT:
Serial.println("Sync Timeout ");
break;
case DHT_ERROR_DATA_TIMEOUT:
Serial.println("Data Timeout ");
break;
case DHT_ERROR_TOOQUICK:
Serial.println("Polled to quick ");
break;
}
}

Fonctionne parfaitement à la vérification.

Tous les autres (que j'ai pu collecter sur Internet) utilisant le module DHT bloquent sur la fonction DHT11. Et j'ai beau chercher, je ne trouve pas.

je soupconne que tu utilise une lib style dht11.h
vire les lib dht dans librairies et mets celle ci

J'ai viré les deux DHT que j'avais en plus dans libraries, j'ai celui que tu préconises, j'ai exactement la même erreur.

J'ai dans la libraries un idDHT11.h avec des exemples, les deux exemples fonctionnent bien.

J'ai enregistré l'exemple DHT_test dans le répertoire Arduino (il était dans "exemple" du dossier DHT de la libaries) et il fonctionne bien, il va bien chercher le DHT.h dans le dossier libraries, c'est ce que je ne comprends pas.

J'ai plusieurs sketchs qui utilisent la libraries "DHT.h" qui posent exactement le même problème, ça bute toujours sur cette phrase :

DHT dht(DHTPIN, DHTTYPE);

Est-ce que tu as regarder si tes ta lib contient les méthodes que tu appelle ?
S'il n'y a pas de cohérence entre le fichier souce "machin.ino" et la lib que tu associe cela ne pourra pas fonctionner.

Celui-là ne fonctionne pas, avec aucun sketch.

Celui-ci fonctionne avec l'exemple DHTtest.pde.

Comment s'y retrouver avec plusieurs DHT !

68tjs:
Est-ce que tu as regarder si tes ta lib contient les méthodes que tu appelle ?
S'il n'y a pas de cohérence entre le fichier souce "machin.ino" et la lib que tu associe cela ne pourra pas fonctionner.

Comment le vérifier ?
Merci.

ca veut dire que c'est un soucis de version entre la lib et ide.

J'ai trouvé le bon DHT.h, maintenant j'ai d'autre erreurs, je crois que je vais laisser tomber.

This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Arduino: 1.0.6 (Windows Vista), Board: "Arduino Uno"
simple_climate_indoor.ino: In function 'void setup()':
simple_climate_indoor:55: error: 'tft' was not declared in this scope
simple_climate_indoor.ino: In function 'void show_temp(float, boolean)':
simple_climate_indoor:136: error: 'tft' was not declared in this scope
simple_climate_indoor.ino: In function 'void show_time(DateTime, boolean)':
simple_climate_indoor:193: error: 'tft' was not declared in this scope
simple_climate_indoor.ino: In function 'void show_date(DateTime, boolean)':
simple_climate_indoor:212: error: 'tft' was not declared in this scope
simple_climate_indoor.ino: In function 'void set_text(int, int, String, int, int)':
simple_climate_indoor:228: error: 'tft' was not declared in this scope
simple_climate_indoor.ino: In function 'void display_show()':
simple_climate_indoor:236: error: 'tft' was not declared in this scope

La libraries TFT.h est bien présente........

J'ai trouvé un autre baromètre/avec un BMP180 et un DHT11 (ou DHT22) qui fonctionne.....C'est en Polonais....

Comment le vérifier ?

Oh là là ! En ouvrant le fichier dht.h avec un éditeur de texte et cherchant les lignes correspondants aux méthodes.

Je pense que tu devrais faire une pause et prendre un minimum de cours de C.
Le site OpenClassRoom est juste fait pour toi. Tu y apprendra les rudiments du langage. Les rudiments sont suffisants pour lire un code comme celui des librairies DHT.
Tu pourra aussi y apprendre à écrire une classe et à gérer les fichiers H et CPP.

Le forum ne peux aider que ceux qui ont fait le minimum d'effort initial.

Czas =>heure
Data=>date
rien de bien méchant

au pire google translate :wink:

infobarquee:
Czas =>heure
Data=>date
rien de bien méchant

au pire google translate :wink:

Pas de problème j'ai déjà traduit avec Google. Merci à vous tous pour votre aide.