Paso 3: código:
El código de la partícula para HDC1000 puede descargarse desde el repositorio de github-ControlEverythingCommunity
Aquí está el enlace para el mismo:
https://github.com/ControlEverythingCommunity/HDC1...
La hoja de datos de HDC1000 puede encontrarse aquí:
http://www.ti.com.CN/CN/Lit/DS/symlink/hdc1000.pdf
Hemos utilizado dos bibliotecas para el código de la partícula, que son application.h y spark_wiring_i2c.h. Biblioteca de Spark_wiring_i2c es necesaria para facilitar la comunicación I2C con el sensor.
También puede copiar el código desde aquí, se da como sigue:
Distribuido con una licencia de libre albedrío.
Se usa cualquier forma desea, beneficio o libre, siempre cabe en las licencias de sus obras anexas.
HDC1000
Este código está diseñado para trabajar con el módulo de Mini de I2C HDC1000_I2CS de ControlEverything.com.
https://www.controleverything.com/content/tempera...
#include < application.h >
#include < spark_wiring_i2c.h >
Dirección I2C HDC1000 es 0x40(64)
#define Addr 0 x 40
flotador cTemp = 0.0, fTemp = 0.0, humedad = 0.0;
int temp = 0, zumbido = 0;
void setup()
{
Establecer variable
Particle.variable ("i2cdevice", "HDC1000");
Particle.variable ("humedad", humedad);
Particle.variable ("cTemp", cTemp);
Inicializar la comunicación I2C
Wire.Begin();
Inicializar la comunicación Serial, juego velocidad en baudios = 9600
Serial.Begin(9600);
Iniciar transmisión I2C
Wire.beginTransmission(Addr);
Registro de configuración seleccione
Wire.Write(0x02);
Temperatura, humedad permitido, resolultion = 14 bits, calentador de
Wire.Write(0x30);
Detener la transmisión I2C
Wire.endTransmission();
Delay(300);
}
void loop()
{
unsigned int datos [2];
Iniciar transmisión I2C
Wire.beginTransmission(Addr);
Envíe el comando de medición de temperatura
Wire.Write(0x00);
Detener la transmisión I2C
Wire.endTransmission();
Delay(500);
Solicitud de 2 bytes de datos
Wire.requestFrom (Addr, 2);
Lee 2 bytes de datos
Temp msb, lsb temp
Si (Wire.available() == 2)
{
datos [0] = Wire.read();
datos [1] = Wire.read();
}
Convertir los datos
Temp = ((datos [0] * 256) + data[1]);
cTemp = (temp / 65536.0) * 165.0-40;
fTemp = cTemp * 1.8 + 32;
Iniciar transmisión I2C
Wire.beginTransmission(Addr);
Enviar el comando de medición de humedad
Wire.Write(0x01);
Detener la transmisión I2C
Wire.endTransmission();
Delay(500);
Solicitud de 2 bytes de datos
Wire.requestFrom (Addr, 2);
Lee 2 bytes de datos
Temp msb, lsb temp
Si (Wire.available() == 2)
{
datos [0] = Wire.read();
datos [1] = Wire.read();
}
Convertir los datos
Hum = ((datos [0] * 256) + data[1]);
humedad = (hum / 65536.0) * 100.0;
Datos de salida al tablero
Particle.Publish ("humedad relativa:", String(humidity));
Particle.Publish ("temperatura en grados Celsius:", String(cTemp));
Particle.Publish ("temperatura en grados Fahrenheit:", String(fTemp));
Delay(1000);
}