Buenas amigos. Estoy en un proyecto donde he de medir la temperatura y humedad en una prótesis de mano. Para ello me han dado un PT100 2 hilos cuyo sensor es como una pequeña plancha (adjunto enlaces) y un sensor HR202. Los dos de la marca RS PRO. Se han escogido estos sensores por su pequeño tamaño y por su forma que no supone un problema para el paciente de la prótesis. (Un DHT sería muy grande para el proyecto y la forma no es válida por molestias).
Para el montaje de la PT100 he conectado una resistencia de 100ohm en paralelo como muestro en figura. Me dan unos valores aproximados a los reales que comparo con el DHT11 que tengo (y no sirve para el proyecto por su tamaño), pero me gustaria mejorar los resultados ya que no me dan valores logicos muchas veces. Por otro lado, el HR202 no tengo ni idea de como conectarlo a Arduino. He estado mirando mucho pero sin éxito. Me gustaría empezar por saber como conectarlo correctamente, el problema de su código vendrá más adelante.
#include <DHT.h>
#define DHTTYPE DHT11
int i = 1;
int DHTPin = 2;
DHT dht(DHTPin, DHTTYPE);
int analogIn0 = A0;
float TempPT100 = 0.0;
float temp = 0.0;
int pinRead0 = 0;
int t0, t1; //Init tiempos
int muestras = 0;
float tempSum = 0.0;
float TempPromedio = 0.0;
void setup() {
Serial.begin(9600);
t0 = millis();
dht.begin();
}
void loop() {
t1 = millis();
pinRead0 = analogRead(analogIn0); //Toma de valor analogico
TempPT100 = 1.3718*pinRead0 - 727; //conversion PT100 //Conversion a Temperatura
muestras++;
float h = dht.readHumidity();
float t = dht.readTemperature();
tempSum += TempPT100;
if (muestras >= 20) { //realizar medias para no disparidad de datos
TempPromedio = tempSum / muestras;
muestras = 0;
tempSum = 0.0;
}
if (t1 - t0 > 3000) {
t0 = t1;
Serial.print("Medición ");
Serial.println(i++);
Serial.print("DHT11--> ");
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %");
Serial.print(", Temperatura: ");
Serial.print(t);
Serial.println(" ºC");
Serial.print("PT100--> ");
Serial.print("Valor analógico: ");
Serial.print(pinRead0);
Serial.print(", Temperatura: ");
Serial.print(TempPromedio);
Serial.print(" ºC\n");
Serial.println("");
TempPT100 = TempPromedio;
}
}
La conversión del PT100 la he sacado de videos de youtube y de ajustar la ecuacion de la recta por mi cuenta, pero los valores suelen distar un par de grados o tres de la realidad