[resolu] sht1x - humidité & temperature - nb de sonde possible sur mega

Bonjour,
le ptit newb a besoin de quelque conseil...

voici le datasheet des sonde Sht1x ( humidité et température ) :Smart sensor solutions
la librairie qui va bien : GitHub - practicalarduino/SHT1x: Arduino library to support SHT1x-series (SHT10, SHT11, SHT15) temperature / humidity sensors from Sensirion
protocole de communication : 2 wire .

la question est simple , et la réponse doit l’être tout autant je pense.

comment je peut faire pour :
-brancher plusieurs sonde sur arduino mega ?
-créer le sketch qui me récupère toute les valeurs des différentes sonde?

  • je pense qu'il est possible comme pour le one wire ,de connecter les sonde ensemble sur le même fil et d'adresser les sondes ,
    Seulement avec la librairie SHT1x , je ne sait pas comment cela peut se faire , un exemple serait des plus plus probant!

-Merci a tous , Cordialement , ppz

ppzikos:
Bonjour,
le ptit newb a besoin de quelque conseil...

voici le datasheet des sonde Sht1x ( humidité et température ) :Smart sensor solutions
la librairie qui va bien : GitHub - practicalarduino/SHT1x: Arduino library to support SHT1x-series (SHT10, SHT11, SHT15) temperature / humidity sensors from Sensirion
protocole de communication : 2 wire .

la question est simple , et la réponse doit l’être tout autant je pense.

comment je peut faire pour :
-brancher plusieurs sonde sur arduino mega ?
-créer le sketch qui me récupère toute les valeurs des différentes sonde?

  • je pense qu'il est possible comme pour le one wire ,de connecter les sonde ensemble sur le même fil et d'adresser les sondes ,
    Seulement avec la librairie SHT1x , je ne sait pas comment cela peut se faire , un exemple serait des plus plus probant!

-Merci a tous , Cordialement , ppz

bonsoir
les sht utilisent un protocole proche de l'I2C , mais qui n'est pas de l'I2C , il n'y a pas d'adresse modifiable/gerable sur le capteur, il n'est donc pas possible de les multiplier sur le meme bus .

The subsequent command consists of three address bits, (only ‘000’ is supported)

utiliser plusieurs sht sur les meme lignes peut etre eventuellement possible en "multiplexant/gerant" les alims des sht, mais ça fera un peu usine à gaz.

Merci de ta réponse.

mais ça fera un peu usine à gaz.

J'aime bien les usines a gaz :wink: , donc je pourrait faire une sélection sht par sht en connectant l'alim , bien vu !

voici un exemple du code de la librairie :

#include <SHT1x.h>
#define dataPin 10
#define clockPin 11
SHT1x sht1x(dataPin, clockPin);

void setup() {}

void loop()
{
float temp_c;
float temp_f;
float humidity;

// Read values from the sensor
temp_c = sht1x.readTemperatureC();
temp_f = sht1x.readTemperatureF();
humidity = sht1x.readHumidity();
}

si je fait :
#include <SHT1x.h>

SHT1x sht1x(10, 11);
SHT2x sht1x(8, 9);

void setup() {}

void loop()
{ // Read values from the sensor
temp_c1 = sht1x.readTemperatureC();
humidity1 = sht1x.readHumidity();

temp_c2 = sht2x.readTemperatureC();
humidity2 = sht2x.readHumidity();
}

sa pourrait fonctionner , ou bien le bus 2 wire est limiter a quelque broche du arduino ?

ppzikos:
Merci de ta réponse.

mais ça fera un peu usine à gaz.

J'aime bien les usines a gaz :wink: , donc je pourrait faire une sélection sht par sht en connectant l'alim , bien vu !
...

Attention
c'etait une simple reflexion, pas une garantie de faisabilité :grin:

Mais les sht sont à priori prevus pour etre existant sur un vrai bus I2C sans le perturber
Si je devais faire et à ce stade de reflexion, je chercherais un multiplexeur/expandeur I2C qui gererais les alim des SHT (1 parmi N) genre PCF8574
et tout ce beau monde sur les memes lignes SDA SCK.

C'est facile à dire, mais peut etre moins simple à mettre en oeuvre, meme si en theorie il n'y a aucune raison que ça ne tombe pas en marche ! :grin:

Huuummm coupé l'alim je pense pas que ça va être génial. Ces capteurs ont un temps de réponse déjà long quand ils sont "chaud", alors à froid ... Je verrais plutôt un multiplexage avec des composants type HEF4051 de la ligne SDA ou CLK

B@tto:
Huuummm coupé l'alim je pense pas que ça va être génial. Ces capteurs ont un temps de réponse déjà long quand ils sont "chaud", alors à froid ... Je verrais plutôt un multiplexage avec des composants type HEF4051 de la ligne SDA ou CLK

bonsoir B@tto
pour determiner la meilleure approche, il faut déjà lire le datasheet et pour moi ce ne sera pas ce soir :grin:

Nan mais y'a très peu de chance, je bosse avec des version de labo à 2000 euros pièce et j'ai besoin de plusieurs minutes avant de pouvoir me fier à la mesure ...

Merci beaucoup des réponse au moins je sait a quoi m'attendre maintenant.
C'est pas gagner tout sa!

B@tto:
Nan mais y'a très peu de chance, je bosse avec des version de labo à 2000 euros pièce et j'ai besoin de plusieurs minutes avant de pouvoir me fier à la mesure ...

bonjour B@tto
Tu t'es fait refourgué des sht1x à 2000€/piece ? :grin:

Moi aussi j'utilise des equipements de labo qui valent une "une fortune" :grin:, mais ce sont des équipements complets/certifiés/calibrés/etc... pouvant nécessiter une phase de stabilisation, mais là il s'agit simplement d'un simple capteur, et lorsque l'on regarde le DS , la précision annoncée est déjà élastique selon les versions.
La conso d'un sht1x au maxi (phase acquisition/restitution) est de 3mW (pour une tension d'alim entre 2.4 et 5.5 V ) .
Je pense que faire du polling( ou adressage) d'alim des sht1 reste une bonne solution pour les multiplier .

la faisabilité est assez simple à éprouver avant de passer éventuellement à un compo dedié pour la gestion d'alim :
En mettre 2 sur les lignes SDA/CLK et gerer l'alim en utilisant 2 sorties d'arduino mises à ON l'une après l'autre.

Salut,

Non pas des sht1x :wink: Comme toi, calibrés, étalonnés ... le problème c'est que ce sont pour la plupart des capteurs basés sur un état de surface et par conséquent la température influe beaucoup. Alors après c'est sûr le mieux est encore le test en dur et à mettre en relation avec la précision du circuit.

B@tto:
Salut,

Non pas des sht1x :wink: Comme toi, calibrés, étalonnés ... le problème c'est que ce sont pour la plupart des capteurs basés sur un état de surface et par conséquent la température influe beaucoup. Alors après c'est sûr le mieux est encore le test en dur et à mettre en relation avec la précision du circuit.

Une approche ménageant la chèvre et le chou (maintien sous tension pour stab RH° T°/plusieurs shtx/limitation de la tripaille/...) serait peut être de simplement gérer vers quel sth va le signal CLK qui vu du shtx est en input only.

merci , pour le moment je ne dispose pas des sondes ,

Je retient en 1 er l'idée de Artouste , elle me parait bien plus simpliste pour mes petit moyen ( et mes faibles connaissance ).
globalement cette idée est de rejoindre tout les clk et sda des sonde sur l'arduino , puis chaque vcc des sonde sur une broche de l'ardui.
ou bien :
de brancher les vcc , et les sda , et de mettre en fonction le clk de la sonde voulu au moment voulu.

j'aime également l'idée de B@tto qui permet d’économiser des broches sur l'ardui , je trouve intéressant de savoir utiliser un mux , cela me permettra par la suite de faire des projet bien plus vaste.

pas de jaloux , je vais tester les 2 méthode , certainement retenir la 1ere , mais comprendre la 2 eme sera très intéressant .

autre chose , le protocole i2c des sonde n'est pas un i2c standard , dans ce cas il n'est pas possible d'utiliser un code proche de celui que j'ai écrit plus haut ?
en fait de ne pas utiliser les broche i2c standard de l'ardui , mais de prendre des broche numérique normal.
je sait pas si je suis clair la ...

ppzikos:
merci , pour le moment je ne dispose pas des sondes ,

Je retient en 1 er l'idée de Artouste , elle me parait bien plus simpliste pour mes petit moyen ( et mes faibles connaissance ).
globalement cette idée est de rejoindre tout les clk et sda des sonde sur l'arduino , puis chaque vcc des sonde sur une broche de l'ardui.
ou bien :
de brancher les vcc , et les sda , et de mettre en fonction le clk de la sonde voulu au moment voulu.

j'aime également l'idée de B@tto qui permet d’économiser des broches sur l'ardui , je trouve intéressant de savoir utiliser un mux , cela me permettra par la suite de faire des projet bien plus vaste.

pas de jaloux , je vais tester les 2 méthode , certainement retenir la 1ere , mais comprendre la 2 eme sera très intéressant .

autre chose , le protocole i2c des sonde n'est pas un i2c standard , dans ce cas il n'est pas possible d'utiliser un code proche de celui que j'ai écrit plus haut ?
en fait de ne pas utiliser les broche i2c standard de l'ardui , mais de prendre des broche numérique normal.
je sait pas si je suis clair la ...

bonsoir
Comme dans beaucoup de domaine, tout est affaire de compromis

tout depend du nombre de capteurs que tu veux utiliser et leurs implantations dans ton process
ce qui va bien pour 2 n'est peut etre pas ce qui ira bien pour 8 (exemple)

Si la selection d'alim directe par un pin out d'arduino est facile pour tester la faisabilité avec 2/3 capteurs, passer au dessus est peut etre moins evident.
B@tto avait déjà émis hier l'idée de s’intéresser aux lignes SDA/CLK, ce qui est une bonne idée en ce qui concerne la ligne CLK qui est unidirectionelle.

Passé les 3/4 capteurs le problème se posera surement différemment et si devais faire je me tournerais surement plus vers un MUX de CLK plutôt que vers un MUX d'alim

Je retient en 1 er l'idée de Artouste , elle me parait bien plus simpliste pour mes petit moyen ( et mes faibles connaissance ).
globalement cette idée est de rejoindre tout les clk et sda des sonde sur l'arduino , puis chaque vcc des sonde sur une broche de l'ardui.

Ne pas perdre de vue que les composants non alimentés pourraient bien s'auto-alimenter au travers de la diode de clamp que l'on trouve généralement sur les entrées logiques (CLK dans ton cas)

merci du coup de main!
Si j' utilisait des sonde sht20 Smart sensor solutions

celle ci me semble t'il on un adressage unique sur 7 bit . ( si j'ai tout compris...)

ppzikos:
merci du coup de main!
Si j' utilisait des sonde sht20 Smart sensor solutions

celle ci me semble t'il on un adressage unique sur 7 bit . ( si j'ai tout compris...)

bonjour
ça ne change pas fondamentalement le probleme, les sht2x ayant une adresse I2C unique, par contre ça peu simplifier le coding pour faire du multiplex, puisque ce sont des vrais compo I2C , ça eviterait de jongler avec des protocoles differents en utilisant un MUX i2c.
Il y a un kit d'evaluation sur le site de sensirion le Evaluation Kit EK-H4 qui multiplex 4 compos.

attention aussi à une chose : le type de boitier : ce n'est evident à souder en DIY
sensirion produit une gamme avec un connecteur plus facile à interfacervoir par ex

Merci
les sht 7x sont trop cher.

j'ai cru comprendre que l'on pouvait peut être faire en sorte de recréer des ic2 supplémentairement.
avec une librairie "soft i2c".

Sinon , Je ne suis pas contre le mux mais je suis complétement larguer sur le type a utiliser et son utilisation .

Merci.
softi2c :http://rweather.github.com/arduinolibs/classSoftI2C.html

Bonjours, j'ai un petit projet en vue, dans un premier temps, capter le poucentage d'humidité dans un pot de fleur. J'ai donc un arduino uno et j'ai acheté un capteur d'humidité GHI-00727. Je n'ai jamais programée ce genre de capteur, si quelqu'un s'y connais mieux que moi, je ne refuserais aucune aide ^^ (désolé si je ne suis pas trop "dans" le thème mais je suis nouveau sur ce forum et m'interresse a l'electronique)
PS: Pour plus d'info me demander, merci beaucoup.

un petit site, pour t'aider
http://bildr.org/

Merci, je vais me débrouiller avec ça :slight_smile: