Multiplexar dht22

Responder
Avatar de Usuario
Sigmundfreud
Mensajes: 194
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Multiplexar dht22

Mensaje por Sigmundfreud » Vie Jun 07, 2019 8:59 am

Buenos días,

Llevo dias dandole vueltas como aumentar la lectura de sensores dht22 en el mkrshield sin gastar los tres bornes analógicos. Después de mirar diferentes integrados de multiplexado que se conecten por i2c he llagado a la conclusión que no se pueden enviar los datos de los sensores por este bus. (Por todo lo que he leido es un tema que el bus no es capaz de transmitir la cantidad de bits que emite el dht22).

Hay un integrado multiplexor analógico que por lo que he leido puede ser que si transmita los datos recogidos, es el 74hc4067, pero necesita mas pines de conexión al mkr y no usa protocolo i2c, así que lo he descartado.

Por eso he pensado otra cosa pero no se si es viable, a ver cómo lo veis.
El tema es una placa con el multiplexor MCP23017, (creo que es el mismo que usa las extensiones de excontrol) . Este activa unas salidas que activan unos mosfet que a la vez que hacen de cambio de nivel logico del dht activan la salida de los datos, cada "data" del dht comparten el mismo cable hasta el A0 del mkr y mediante software establecer que cada vez que se active una salida del MCP23017 cambie la asiganacion del lectura a otro sensor. ""Vaya royo no sé si se ha entendido!!!!"
Pongo una foto que se vera mejor

Saludos
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.

Juan Ramon
Mensajes: 211
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Re: Multiplexar dht22

Mensaje por Juan Ramon » Vie Jun 07, 2019 10:34 am

No tienes entradas digitales libres en la sheld MKR?
Ese sensor, con los ejemplos que he visto se pueden conectar a entradas digital, emite su valor en bits con lo que realmente es digital
La idea que comentas no la veo mal, pero el esquema, como lo pones, no lo veo claro.
Luego lo estudiare un poco, posiblemente pondria 1 optoacoplador por cada sensor, polarizando el que te interese recibir datos.
Juan Ramón.

Avatar de Usuario
Sigmundfreud
Mensajes: 194
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: Multiplexar dht22

Mensaje por Sigmundfreud » Vie Jun 07, 2019 1:18 pm

Juan Ramon escribió:
Vie Jun 07, 2019 10:34 am
No tienes entradas digitales libres en la sheld MKR?
Ese sensor, con los ejemplos que he visto se pueden conectar a entradas digital, emite su valor en bits con lo que realmente es digital
Sí, si tengo todas las entradas y salidas deo mkr libres, de momento solo uso la de las extensiones, lo que pasa que pregunte a excontrol sobre la posibilidad de conectar el dht22 a traves de una entrada optoacoplada del mkr y me dijo que no se podia, que tenia qie ser en uno de los tres analógicos. Y es qie a mi entender las entradas se activan con 12v+ y si quiero que el dht entre por la entrada tendria que convertir el nivel de 5 a 12, esto suponiendo que así funcione.
Juan Ramon escribió:
Vie Jun 07, 2019 10:34 am
la idea que comentas no la veo mal, pero el esquema, como lo pones, no lo veo claro.
Luego lo estudiare un poco, posiblemente pondria 1 optoacoplador por cada sensor, polarizando el que te interese recibir datos.
Lo del optoacoplador lo habia pensado pero como hay qie poner un mosfet para invertir el nivel de 5 a 3,3 pues me queria ahorrar el opto
:D :D :D

Juan Ramon
Mensajes: 211
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Re: Multiplexar dht22

Mensaje por Juan Ramon » Vie Jun 07, 2019 2:06 pm

Estudia esto, en teoría creo que seria factible.
Podría ser una opción para la pcb de perifericos.
No tienes los permisos requeridos para ver los archivos adjuntos a este mensaje.
Juan Ramón.

Avatar de Usuario
Sigmundfreud
Mensajes: 194
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: Multiplexar dht22

Mensaje por Sigmundfreud » Vie Jun 07, 2019 8:52 pm

Muchas gracias juan Ramón, voy a pedir al alcalde de mi pueblo que ponga una calle con tu nombre :D :D :D

Avatar de Usuario
manuch
Mensajes: 24
Registrado: Mar Feb 12, 2019 8:49 pm

Re: Multiplexar dht22

Mensaje por manuch » Lun Jun 10, 2019 6:50 pm

Yo os leo a los dos y es como si viese matrix
"Una experiencia nunca es un fracaso, pues siempre viene a demostrar algo" Edison

Avatar de Usuario
Sigmundfreud
Mensajes: 194
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: Multiplexar dht22

Mensaje por Sigmundfreud » Mar Jun 11, 2019 6:08 pm

manuch escribió:
Lun Jun 10, 2019 6:50 pm
Yo os leo a los dos y es como si viese matrix
:lol: :lol: :lol:

A ver si saco tiempo y avanzo algo y lo comparto que la verdad que puede quedar chulo

Avatar de Usuario
Sigmundfreud
Mensajes: 194
Registrado: Mar Feb 12, 2019 8:23 pm
Ubicación: Girona

Re: Multiplexar dht22

Mensaje por Sigmundfreud » Mar Jun 18, 2019 7:54 pm

Juan Ramon escribió:
Vie Jun 07, 2019 2:06 pm
Estudia esto, en teoría creo que seria factible.
Podría ser una opción para la pcb de perifericos.
Bueno, lo he estado probando y no consigo que lo lea. Os pongo como he puesto en el configurador no sea que el problema venga de ahí

primero he creado dos sensores genericos, uno de temp y otro de humedad.

Código: Seleccionar todo

///////////// code library star

#define THERMOSTAT_DTH22   // libreria dht22

#ifdef THERMOSTAT_DTH22 
  #include "DHT.h"

#endif  //////////// esto porque al no activar ningun dht en sensores hay que ponerlo a mano

/////////////////////  en setup

dht1.begin();	
/////////////////////// en global variables

DHT dht1(1, DHTTYPE);// pin I5 que corresponde al D1



////////////// en new second


//primera sonda de usuario
    if (CountSg==10){//Segundo 10 lecutar segunda sonda
        float t = dht1.readTemperature();
        if ( isnan(t) ) {}//Generar codigo error usuario
        else{
           Sensors[0].Value  =  t *10;
           float h = dht1.readHumidity();
           if ( isnan(h) ) {return;}
           Sensors[1].Value =h*10;    
	}}

Juan Ramon
Mensajes: 211
Registrado: Mar Feb 12, 2019 7:52 pm
Ubicación: Alicante

Re: Multiplexar dht22

Mensaje por Juan Ramon » Mar Jun 18, 2019 9:21 pm

Hola Santi.
Mañana tratare de probarlo y te comento, pero de todas formas, como bien dices creas los 2 sensores, temperatura y humedad como DTH22, le asignas entrada A0, A1 ó A2 y una vez generado el codigo lo editas y cambias el pin elegido A0... por el pin digital que quieras usar.
Lo pruebas y una vez que te funcione vuelves a editar y duplicas o triplicas el codigo para el resto de sensores.


Este es el código generado en el configurador automaticamente con la ultima versión 1.5.0.4 la cual se ha actualizado hoy mismo.

Código: Seleccionar todo


#define THERMOSTAT_DTH22


#ifdef THERMOSTAT_DTH22 
#include "DHT.h"
  //#include "DHT.h"

#endif 


#ifdef THERMOSTAT_DTH22 
  #define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
#define DHTPIN A1
  DHT dht(DHTPIN, DHTTYPE);
  float HumedadDHT=0; //Variable para almacenar sonda de humedad.
  float TemperatureDHT=0; // Variable para almacenar sonda Temperatura
  boolean AveriaDHT=false;
  byte DhtErrorCount=0;
#endif 
Juan Ramón.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados