Tecnologia vestible

Per començar Elements d'entrada Programació CircuitPython   Recursos CITCEA
Elements no electrònics Elements de sortida Programació Arduino    
Projectes Elements de control Dades pràctiques   Inici

Sensor de temperatura i humitat

Hem triat el sensor de temperatura i humitat RHT03 de l'empresa Maxdetect que és compatible amb els AM2302 i DHT22.

Sensor de temperatura i humitat

El connexionat del sensor és molt senzill. Té quatre potes, dues són per a l'alimentació, una és la que es connecta amb el microcontrolador i la restant no es connecta enlloc. L'esquema és el següent:

Sensor de temperatura i humitat

Aquest sensor no és directament aplicable sobre tèxtil però és fàcil de muntar sobre una placa de prototipatge. A la figura següent indiquem en groc les pistes que s'han de tallar i els llocs on s'han de posar els components. Tindrem dos possibles punts de connexió per al positiu, el negatiu i la pota de lectura.

Sensor de temperatura i humitat

Com la mateixa pota serveix d'entrada i de sortida, hi ha moments que és el sensor qui envia senyal i en altres moments és el microcontrolador qui ho fa. Però en algun moment la pota queda sense connexió efectiva i, per això, cal posar-hi una resistència que manté la pota a 3,3 V si no està treballant.

El sensor pot llegir correctament valors de temperatura entre -40 °C i +80 °C així com humitats relatives entre 0 i 100 % amb una xifra decimal en tots dos casos.

Per fer servir aquest sensor en l'entorn Arduino ens caldrà la biblioteca DHT.h d'Adafruit (és probable que hi també biblioteques d'altres proveïdors que potser no fan servir els mateixos paràmetres).

La funció isnan ens permet saber si el resultat obtingut és numèric (false) o no (true). En el nostre cas només ens interessa quan és numèric.

El següent programa per a l'entorn Arduino llegeix el sensor connectat a la pota D2:

#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
void setup() {
	dht.begin();
	Serial.begin(9600);
}
void loop(void) {
	float hum = dht.readHumidity();
	float temp = dht.readTemperature();
	int te;
	if (!(isnan(hum) || isnan(temp))) {
		Serial.print("Temperatura: ");
		Serial.print(temp);
		Serial.println(" C");
		Serial.print("Humitat: ");
		Serial.print(hum);
		Serial.println(" %");
		delay(1000);
	}
}

A continuació tanim un senzill programa en CircuitPython que llegeix les dades del sensor (connectat a D0) i les mostra.

import board
import time
import adafruit_dht
rht  = adafruit_dht.DHT22(board.D0)
while True:
    print("Temperatura: ", rht.temperature, " C")
    print("Humitat: ", rht.humidity, " %")
    time.sleep(1)

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.