くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

GR-PEACHでHDC1000を利用して温度を取得する

アジェンダ

  • 概要
  • 配線図
  • ライブラリ
  • サンプルプログラム

概要

温度と湿度を取得してみたいと思います。
プルアップ回路は内蔵されています。
起動後少し待ってからじゃないと値が取得できない点に注意が必要です。

配線図

f:id:kuxumarin:20160301210121p:plain

ライブラリ

HDC1000 - a mercurial repository | mbed
このライブラリを使えばいいと思います。

サンプルプログラム

温度や湿度を取得する関数が、"unsigned short"で値を返してくる点に注意が必要です。

#include "mbed.h"
#include "HDC1000.h"
 
I2C i2c(D14,D15);       //(scl.sda)
HDC1000 hdc1000(i2c);   //I2C
 
int main()
{
    float Temperature = 0.0;
    float Humidity = 0.0;
    wait(1.5);
    while(1) {
        Temperature = float(hdc1000.temperature())/0x10000*165-40;
        Humidity = float(hdc1000.humidity())/0x10000*100;
        printf("温度:%f 湿度:%f\r\n",Temperature,Humidity);
 
        wait(1);
    }
    while(1) {
    }
}