Du DHT22 au SHT35 (GENESYS V1/V2,GROWDUINO)


Gen

Messages recommandés

Salut la ROOM,

 

Je m’apprête à installer le STH35 dans ma boite (Shield GROWDUINO V2).

 

Dans le code, je vois des differences dans la déclaration des PIN entre V2 et V3 (V3 n'est pas le même shield que V2 si j'ai bien suivi) :

 

Ci-dessous le code de la V2 (celle que j'utilises)

//***************************************
// Hardware definition Shield V2
//***************************************
#define MOTOR_ADRESS      0x20
#define I2C_LCD_ADDRESS   0x27  //0x27
#define TIMER1_PIN			  7		// Don't modify this line !!
#define TIMER2_PIN	      6		// Don't modify this line !!
#define CYCLIC1_PIN		    5		// Don't modify this line !!
#define CYCLIC2_PIN			  4		// Don't modify this line !!
#define TEMP_PIN          3		// Don't modify this line !!
#define HR_U_PIN	        2		// Don't modify this line !!
#define HR_D_PIN				  18  // Don't modify this line !!
#define CO2_VALVE_PIN		  19 	// Don't modify this line !!
#define DHT_PIN				    14	// Don't modify this line !!
#define TEMP_U_PIN			  8	  // NOT USED
#define RelaySecurityPin  22
bool relaysDown = true;
//***************************************

 

Et ici celui de la V3.8 :

//***************************************
// Hardware definition Shield V3
//***************************************
//#define TIMER1_PIN			  22	  // Don't modify this line !!
//#define TIMER2_PIN	      24		// Don't modify this line !!
//#define CYCLIC1_PIN		    26  	// Don't modify this line !!
//#define CYCLIC2_PIN			  27		// Don't modify this line !!
//#define CO2_VALVE_PIN		  48	  // Don't modify this line !!
//#define TEMP_D_PIN        50		// Don't modify this line !!
//#define HR_U_PIN	        25		// Don't modify this line !!
//#define HR_D_PIN				  23    // Don't modify this line !!
//#define ONE_WIRE_BUS 			2     // Don't modify this line !!
//#define TEMP_U_PIN        4     // a supprimer
//***************************************

 

Je comptais copier mon code V2 dans le Code V3.8 et commenter les lignes de déclaration de PIN de la V3.8

 

Est-ce bien ce qu'il faut faire et est-ce suffisant?

 

Merci pour votre aide.

Modifié par zefram-28
erreur code V2
Lien à poster
Partager sur d’autres sites

Je me suis sorti les doigts du C... comme dirait une célébrité verte que tout le monde connait bien ici et j'ai commencé a ré ecrire cette partie du code

 

//***************************************
// Hardware definition Shield V3
//***************************************
//#define TIMER1_PIN			  22	  // Don't modify this line !!
//#define TIMER2_PIN	      24		// Don't modify this line !!
//#define CYCLIC1_PIN		    26  	// Don't modify this line !!
//#define CYCLIC2_PIN			  27		// Don't modify this line !!
//#define CO2_VALVE_PIN		  48	  // Don't modify this line !!
//#define TEMP_D_PIN        50		// Don't modify this line !!
//#define HR_U_PIN	        25		// Don't modify this line !!
//#define HR_D_PIN				  23    // Don't modify this line !!
//#define ONE_WIRE_BUS 			2     // Don't modify this line !!
//#define TEMP_U_PIN        4     // a supprimer
//***************************************

//***************************************
// Hardware definition Shield V2
//***************************************
#define MOTOR_ADRESS      0x20
#define I2C_LCD_ADDRESS   0x27  //0x27
#define TIMER1_PIN        7   // Don't modify this line !!
#define TIMER2_PIN        6   // Don't modify this line !!
#define CYCLIC1_PIN       5   // Don't modify this line !!
#define CYCLIC2_PIN       4   // Don't modify this line !!
#define TEMP_D_PIN        3    // Don't modify this line !!
#define HR_U_PIN          2   // Don't modify this line !!
#define HR_D_PIN          18  // Don't modify this line !!
#define CO2_VALVE_PIN     19  // Don't modify this line !!
#define DHT_PIN           14  // Don't modify this line !!
#define TEMP_U_PIN        8   // NOT USED
#define ONE_WIRE_BUS       2     // Don't modify this line !!
#define RelaySecurityPin  22
bool relaysDown = true;
//***************************************

Mon problème est sur le PIN 2 : ONE_WIRE_BUS.

Il est redondant avec mon assignation des PIN de la V2, PIN utilisé pour HR_U_PIN (que je n'utilises pas!)

 

Je ne comprends pas à quoi sert ce PIN, j'ai essayé d'analyser le schéma de la V3 ... sans réussite.

 

Il ne me reste donc que cette PIN a assigner.

 

Merci pour votre aide.

Lien à poster
Partager sur d’autres sites

OK, j'ai analysé plus en profondeur (et après avoir pris le temps d'une clope et d'un café).

 

Le PIN 2 Est associé au DATA du DHT22 (d'origine monté sur la Shield V3).

 

Cela reviens donc pour ma Shield V2 à l'assigner au PIN 14.

 

J'ai compilé et déversé le code, pas d'erreur.

 

Le Shield retourne bien La température et l'hygro.

 

Bon et bien on va partir avec ça.

 

Tchuss à tous et bon Grow.

 

Pour info ça donne ça au final :

//***************************************
// Hardware definition Shield V2
//***************************************
#define MOTOR_ADRESS      0x20
#define I2C_LCD_ADDRESS   0x27  //0x27
#define TIMER1_PIN        7   // Don't modify this line !!
#define TIMER2_PIN        6   // Don't modify this line !!
#define CYCLIC1_PIN       5   // Don't modify this line !!
#define CYCLIC2_PIN       4   // Don't modify this line !!
#define TEMP_D_PIN        3    // Don't modify this line !!
#define HR_U_PIN          2   // Don't modify this line !!
#define HR_D_PIN          18  // Don't modify this line !!
#define CO2_VALVE_PIN     19  // Don't modify this line !!
//#define DHT_PIN           14  // Don't modify this line !!
#define TEMP_U_PIN        8   // NOT USED
#define ONE_WIRE_BUS       14     // Don't modify this line !!
#define RelaySecurityPin  22
bool relaysDown = true;
//***************************************

 

Modifié par zefram-28
Lien à poster
Partager sur d’autres sites

Salut la ROOM,

 

Pour ce qui est de la sonde de température/humidité ça roule. ?

 

En revanche, tous mes relais sont inversés (Platine 8 relais chinoise)?

 

Pour le timer et le cyclique c'est réglé, j'ai modifié les états dans les Librairies.?

 

Pour ce qui est des Intra/Extra .... J'ai beau chercher, je n'y arrives pas.?

 

Un petit coup de main serait le bienvenu.

Lien à poster
Partager sur d’autres sites

Yop

 

Comme expliqué en MP

c'est toute l'architecture du shield qui a été modifiée suite à certains problèmes rencontrés précédemment.

1-Les anciennes commandes moteurs se faisaient via un MCP23016 tandis que dans les version suivantes elles sont directement pilotées par des I/O

2-sur l'ancien shield, il n'y a pas l'inverseur HC des sorties relais pour être 100% compatible avec les platines chinoises (cela a aussi été une évolution de compatibilité.)

 

Je suis débordé de taf pour le moment, mais je ferai un petit post car apparemment j'ai trouvé une sonde one wire beaucoup plus fiable que le DHT; je l'ai commandée pour test mais elle vient de Chine à pied..

SI c'est efficace, cela pourra remplacer le SHT I2c avec sa contrainte de distance et sera utilisée avec la redBoard.

 

Hé oui, élaborer un circuit efficient qui tient la route ne se fait pas en deux coups de cuillère à pot, c'est du travail, de la recherche, des tests

 

++

GEN

Modifié par Gen
  • Like 1
Lien à poster
Partager sur d’autres sites
Le 19/04/2020 à 09:07, Gen a dit:

yop

 

oui il est écrit, je vous le mets en test, merci de me faire part des retours.

 

à renommer en rar et décompresser

https://www.cannaweed.com/applications/core/interface/file/attachment.php?id=764070 2.08 Mo · 24 downloads

 

par contre, des gens ont utilisés les modules DHT montés avec condo, et le problème persistait.

effectivement la dérive de l'HR est relativement conséquente.

 

++

GEN

 

Salut,

 

je viens de faire la modification sur le growduino V3 avec une sonde SHT35 et une sonde DS18B20.

J'ai branché la sonde DS18B20 sur le bornier de la DHT22 (pin 2 ou 3 selon la déclaration dans le programme)

J'ai branché la sonde SHT35 sur le pin 20 de l'arduino mega pour le SDA et sur le pin 21 pour le SCL. (Pour brancher sur ces pin j'ai dessoudé les pin du shield et je les ai remplacés par des pin traversant me permettant de toujours brancher le shield sur l'arduino et d'avoir une pin au dessus pour un câble dupont)

 

Ensuite j'ai repiqué GND et VCC sur le pin GND et sur le 5V de l'arduino mega (pin traversant du shield comme pour SDA et SCL) et non le 3.3V car j'utilise deux modules i2c bus extender et que le 5V est préférable.

Par contre en sortie du deuxième bus extender coté SHT35 j'ai inséré un module abaisseur de tension 5V-->3.3V pour que la sonde soit alimentée en 3.3V.

 

Au final avec la version du code 3.8 j'ai une température et une hygrométrie affichée qui ne part pas en sucette mais je précise que je ne suis pas in situ dans ma box avec tous les relais et transformateurs branchés. Je ferais le retour quand j'aurais mis en box.

 

Par contre la gestion des intra et extra ne fonctionnant pas sur la version 3.8 j'ai essayé la modif que j'avais fait sur la version du GROWDUINO_V3.7.pdf et là ça fonctionne à merveille. (Voir post plus ancien, ne pas prendre en compte le level shifter car la sonde SHT35 fonctionne bien sur le bus i2c en 5V et enfin la version s'affiche en 3.6 sur l'écran du growduino mais il s'agit bien d'une base en 3.7)

 

++

Viker

Modifié par Viker
Lien à poster
Partager sur d’autres sites

Bonjour la ROOM,

 

J'ai finalement abandonné la version 3.08 car comme expliqué par GEN,  fondamentalement différent du code du GROWDUINOV2.

 

Je suis reparti du code de la version 3.02 dédié au GROWDUINOV2.

Et je tournes maintenant avec le STH35 en remplacement du DHT22.

 

C'est en en test depuis cet après midi, tout semble réagir comme il faut.

 

Je vous mets le code (et ses librairies) en lien.

Comme d'habitude, fichier PDF à renommer en .ZIP,  décompresser... blablabla, vous connaissez la suite.

 

Salutations.

GROWDUINO4.pdf

Modifié par zefram-28
Lien à poster
Partager sur d’autres sites
il y a 46 minutes, zefram-28 a dit:

C'est sûrement pas hyper propre mais ça fonctionne.

il y a 46 minutes, zefram-28 a dit:

je n'ai quasi aucune connaissance en programmation, je t'avoues que ça a été coton.

Yop

 

Ha bon, moi je trouve pas, je vous en ai écrit plusieurs milliers LOL

Du moment que ça tourne et que cela ne bug pas, il n'y a que le résultat qui compte.

 

++

GEN

Lien à poster
Partager sur d’autres sites

Yop,

 

@zefram-28 Pour l'instant je teste ma version 3.7 qui sur breadboard fonctionnait parfaitement d'autant plus que je suis sur le growduino V3 sans MCP23016 et non le V2.

 

Sinon je viens de mettre en test in situ avec tout de branché. Je ferais un retour après benchmark.

 

++

Viker

Lien à poster
Partager sur d’autres sites

Yop,

 

après test in situ, ça plante. Par contre il y a une amélioration. Quand je reboot la sonde SHT35 me donne des valeurs alors que la DHT22 restait muette.

 

Donc le problème viens du parasitage de la basse tension par la haute tension et je pense particulièrement par l'étincelle de claquage des relais à leur déconnexion.

Je vais investiguer en ce sens. (voir zone de partage)

 

Aujourd'hui une question me taraude. Possédant le shield V1 où tout à fonctionné sans problème de freeze et le shield V3 ou cela freeze au moindre clignement d’œil qu'est ce qui fait que l'un plante et pas l'autre alors que les montages sont sur le même modèle.

Au moment des problèmes avec les sondes DHT22 ASAIR je me disais que la sonde était vraiment responsable du dysfonctionnement mais maintenant que la SHT35 fonctionne et ne plante pas pourquoi les freezes persistent?

Est-ce que le mcp23017 créait une sorte de protection entre les i/o du mega et les relais? Sachant que sur le V1 je n'avais des relais mécanique que sur les extra et intra. Le relais pour

les autres sorties était un ssr 8 voies.

 

++

Viker

Lien à poster
Partager sur d’autres sites

Yop

 

Non, le mcp n'est qu'un i/o extender I2c..

à mon sens ce n'est pas une question d'ampérage, mais de tension, je pense qu'un des appareils branchés doit pomper à l'allumage, ce qui ferait descendre la tension AC et comme beaucoup de gens travaillent avec des alimentation à découpage, il y a de fait une perturbation sur la tension de sortie

il faudrait peut-être passer sur une source d'alimentation 12V muni d'un régulateur 5V 1A, voire 2A  ce qui permettrait une plus large amplitude de la chute de tension qui au final n'interviendrait pas sur la tension de service 5V.

Je ne vois que cela car au niveau logiciel il n'y a pas de bug, et l'électronique fonctionne chez beaucoup d'autres personnes.

Et je teste tous les circuits avec une alimentation de labo stabilisée, et je n'ai jamais eu de freeze.. sauf avec les New DHT

 

++

GEN

Modifié par Gen
Lien à poster
Partager sur d’autres sites

Yop

 

justement, vu que le mcp 23017 mettait les sorties extra et intra en i2c et non en direct par les i/o de l'arduino, je me demandais si cela ne constituait pas une sorte "d'isolation" du circuit intra/extra pouvant justifier le comportement sans freeze du V1. Surtout que sur le V1 j'ai une alim chinoise à découpage noname 1A alors que sur le V3 j'ai une meanwell 5V 3A.

 

Comme tu le dis, il est beaucoup plus probable qu'une chute de tension secteur fasse qu'il y a une chute de tension du 5V.

 

Mais j'ai aussi une autre piste. Il y a une autre différence entre les deux montages. Sur le V1 j'ai uniquement ces platines relais. Sur le V3 j'ai en sorties Extra/Intra ces platines relais.

 

Bench et retour dans quelques jours.

 

Edit: 15 jours sans freeze ni reboot donc je considère que c'est résolu. Donc attention aux platines relais rouges, elles ne sont pas correctement isolées.

 

++

Viker

Modifié par Viker
Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.