arduino et 3 dht22

Les cartes Arduino, les platines

arduino et 3 dht22

Message non lude nebulus » Dim 16 Déc 2012 18:45

bonjour

je vais vous expliquez mon problème, étant un débutant dans l'arduino je me suis fixer de faire une petite station météo avec 3 sonde (en sans fils) donc avec des modules radio, tout afficher sur un écran lcd 20*4, comme je debute je me suis fixer des étapes a respecter.

1 communiquer arduino vers lcd ok
2 modifier un programme pour un dht 22 ok
3 afficher les température et hygrométrie d'une sonde sur le lcd ok
4 afficher les température et hygrométrie de trois sonde sur le lcd sauf que la j'y arrive pas ok
5 les relier en sans fils


donc mon problème je n'arrive pas a faire marché les trois sonde.

le programme que j'ai modifier.

merci de bien vouloir m'aidez.

Code: Tout sélectionner
//////////////////////////////////////////////////////////////////////////////////////////////////////
#include <LiquidCrystal.h>
#include "DHT.h"


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTPIN 7
#define DHTPIN 22
#define DHTPIN 24
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {


  // set up the LCD's number of columns and rows:
  lcd.begin(20, 4);
 
  dht.begin();
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  float t = dht.readTemperature();
     // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 0);
  // print the number of seconds since reset:
 

  // check if returns are valid, if they are NaN (not a number) then something went wrong!
  if (isnan(t) || isnan(h)) {
    lcd.println("erreur de lecture ''dht''");
    lcd.clear();
  } else {
    lcd.print("hygro: ");
    lcd.print(h);
   lcd.print("%");
   
    lcd.setCursor(0, 1);
   
    lcd.print("tempe: ");
    lcd.print((t)*0.81);
      lcd.print((char)223); //Affiche le caractère ° (degrés)
    lcd.print("C");
     // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 2);
  // print the number of seconds since reset:
 
}
  }


  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):

  // print the number of seconds since reset:
Dernière édition par nebulus le Lun 17 Déc 2012 19:47, édité 2 fois.
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude SesechXP » Lun 17 Déc 2012 08:34

Salut,

Tu n'as déclaré qu'un seul objet DHT. Il te faut en déclarer 3 et reproduire ce que tu as déjà fait pour le premier.

++
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: arduino et 3 dht22

Message non lude nebulus » Lun 17 Déc 2012 13:03

j'ai donc modifier le programmes,

mes comment lui faire lire les données sur le dht 7, dht 22, dht24 ?

je l'avait déjà déclare mes mon problème et que je ne trouve pas les température pour les 2 autres ?

il faudrait qu'il lise le dht 7 le 22 et le 24 et qu'il mette tout ca sur le lcd
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude SesechXP » Lun 17 Déc 2012 14:36

Il faut instancier 3 objets DHT :
Code: Tout sélectionner
#define DHTPIN1 7
#define DHTPIN2 22
#define DHTPIN3 24
#define DHTTYPE DHT22

DHT dht1(DHTPIN1, DHTTYPE);
DHT dht2(DHTPIN2, DHTTYPE);
DHT dht3(DHTPIN3, DHTTYPE);

Et les utiliser comme il se doit :
Code: Tout sélectionner
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();

Je te laisse faire la suite ;)
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: arduino et 3 dht22

Message non lude Lionel » Lun 17 Déc 2012 17:47

Et là on dit : "Merci SesechXP !!" 8-)

Image
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: arduino et 3 dht22

Message non lude nebulus » Lun 17 Déc 2012 17:57

je te remercie grandement pour ton aide maintenant je vais essayer de chercher la suite en esperant ne pas vous redéranger je vous tiens aux courant

merci encore .
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude SesechXP » Lun 17 Déc 2012 18:12

De rien Nebulus ;)
@Lionel: C'est qui ? :D :lol:
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: arduino et 3 dht22

Message non lude Lionel » Lun 17 Déc 2012 18:13

un mec qui était cool dans l'ancien temps... :D
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: arduino et 3 dht22

Message non lude nebulus » Lun 17 Déc 2012 19:39

a j'ai reussi merci encore

voila le resultat:
DSC_0034.jpg
DSC_0034.jpg (83.77 Kio) Vu 12883 fois



une autre petite question que me conseilliez vous comme module radio pour mes sondes ?

et le programmes si sa intéresse un peu plus lisible. merci a SesechXP


#include <LiquidCrystal.h>
#include "DHT.h"

////////////////////////////////////////////////////////////////////////////////////////
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
#define DHTPIN1 7
#define DHTPIN2 8
#define DHTPIN3 24

#define DHTTYPE DHT22

DHT dht1(DHTPIN1, DHTTYPE);
DHT dht2(DHTPIN2, DHTTYPE);
DHT dht3(DHTPIN3, DHTTYPE);
////////////////////////////////////////////////////////////////////////////////////////
void setup(){

lcd.begin(20,4);
}
////////////////////////////////////////////////////////////////////////////////////////
void loop() {

float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();

float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();

float h3 = dht3.readHumidity();
float t3 = dht3.readTemperature();


////////////////////////////////////////////////////////////////////////////////////////
lcd.setCursor(4, 0);
if (isnan(t1) || isnan(h1)) {
lcd.println ("erreur");

} else {
lcd.setCursor(4, 1);
if (isnan(t2) || isnan(h2)) {
lcd.println ("erreur");

} else {
lcd.setCursor(4, 2);
if (isnan(t3) || isnan(h3)) {
lcd.println ("erreur");

} else {


////////////////////////////////////////////////////////////////////////////////////////


lcd.setCursor(0,0);
lcd.print(t1) ; lcd.setCursor(10, 0);lcd.print (h1);

lcd.setCursor(0,1);
lcd.print(t2) ; lcd.setCursor(10, 1);lcd.print (h2);

lcd.setCursor(0,2);
lcd.print(t3) ; lcd.setCursor(10, 2);lcd.print (h3);




}}
}}
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude nebulus » Jeu 11 Avr 2013 12:50

bonjour

je revient vers vous car j'ai griller mon écran en faisant autre chose donc la n'est pas trop le problème j'en ai racheter un mieux ^^.

mon écran et un écran tactile 3.2pouces (SSD1289) il marche avec les librairies utft donc que j'ai télécharger et essayer, après plusieurs essaie et recherche j'ai réussi a afficher un texte,
mes des que je lui demande de m'affichez une température de mes sondes le logiciel arduino ne veut pas compiler et je ne comprends c'est la que je demande votre aide ^^.

mon code :


Code: Tout sélectionner
//////////librairies

#include <UTFT.h>
#include <DHT.h>

const int backlight_pin = 8;
const int backlight_on = 0;
const int backlight_off = 255;
const int backlight_half = 127;
const int backlight_quarter = 192;
const int backlight_3quarter = 64;

extern uint8_t BigFont[];

UTFT myGLCD(ITDB32S,38,39,40,41);   // Remember to change the model parameter to suit your display module!


//////////definition dht22
#define DHTPIN1 8

#define DHTTYPE DHT22

DHT dht1(DHTPIN1, DHTTYPE);


//////////initialisation



void setup(){
 

//////////parametre lcd
  myGLCD.InitLCD();
  myGLCD.setFont(BigFont);
  myGLCD.lcdOn();
  myGLCD.clrScr();
   
}

void loop() {
 
double h1 = dht1.readHumidity();
double t1 = dht1.readTemperature();



  myGLCD.print("CAR ",0,0);
  myGLCD.print(t1,0,16); //[color=#FF0000] c'est ici que bloque larduino ?????[/color]
 

     
}






voici le lien de mon écran c'est le même http://smecatronix.com/fr/shields/24-bl ... -mega.html

et j'ai donc aussi le shield et mes fameux dht 22

en l'attente dune réponse avec mes remerciement.
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude nebulus » Dim 14 Avr 2013 08:20

personne pour m'aidez ?
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude SesechXP » Dim 14 Avr 2013 18:19

Salut,

Quelle est l'erreur de compilation ?

++
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: arduino et 3 dht22

Message non lude nebulus » Lun 15 Avr 2013 07:21

salut
alors il me dit :
no matching function call to 'utft::print(float&,int, int)'

myGLCD.print(t1,0,16);

par contre quand je lui mes ceci sa marche : myGLCD.print("CAR ",0,0);
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude SesechXP » Lun 15 Avr 2013 07:58

La méthode print a deux prototypes :
Code: Tout sélectionner
void print(char *st, int x, int y, int deg=0);
void print(String st, int x, int y, int deg=0);


Elle n'est pas capable de prendre un float en argument pour l'afficher. C'est donc à toi de le formater en chaîne de caractères avant de le passer à la bibliothèque. Je te laisse faire une recherche ;)

++
SesechXP
 
Messages: 228
Inscription: Sam 28 Mai 2011 09:09
Localisation: 35

Re: arduino et 3 dht22

Message non lude nebulus » Lun 15 Avr 2013 17:54

salut

je suis désolé mes je ne trouve pas la solutions je suis toujours débutant dans ce domaine

j'ai chercher sur internet ( et j'ai trouver sa http://arduino.cc/fr/Main/ChainesCaracteres) sur le site arduino qui parle des chaine de caractères mes tout s'en mêle dans ma tête.

aurais tu un exemple a me montrer pour mieux comprendre et faire le mien ?

en tout cas merci sesechxp
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude phil » Lun 15 Avr 2013 22:29

regarde du coté de ce post ... http://forum.snootlab.com/viewtopic.php?f=30&t=853&p=4044&hilit=float+to+int

La solution a ton probleme est là je pense...
all your shields are belong to us...
Avatar de l’utilisateur
phil
 
Messages: 192
Inscription: Mer 7 Sep 2011 11:19

Re: arduino et 3 dht22

Message non lude nebulus » Sam 17 Aoû 2013 06:08

bonjour je revient parmis vous

je n'arrive toujours pas a faire fonctionner mon lcd et mes 3 sonde de température ?

si quelqu'un pouvais encore m'aidez je début et j'ai bientôt fini ce projet après je passe sur une télécommande universelle tactile .

mes avant il faut que je finisse celui la ( je bloque toujours avec mon float ) je n'arrive pas a compiler et a avoir de l'affichage même avec le lien de phil .


merci a vous .
nebulus
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32

Re: arduino et 3 dht22

Message non lude nebulus » Dim 1 Sep 2013 19:59

personne pour m'aidez...
nebulus
 
Messages: 17
Inscription: Lun 2 Juil 2012 22:32


Retourner vers Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités