BlueNinjaで気温と気圧をモニタする


Pocket

BlueNinjaを使って気温と気圧をモニタリングしてみました。
BlueNinjaには標準でBOSCHのBMP280という気圧&気温センサーが搭載されているので、簡単に気温と気圧をモニターすることができます。

BlueNinjaについてはこちら
BOSCHのBMP280についてはこちら

※TOSHIBA.TZ10xx_DFPは1.31.1を使用

 

コーディング

サンプルとして1秒ごとに気温と気圧をコンソールに表示します。

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdint.h>

#include "TZ01_system.h"
#include "TZ01_console.h"
#include "TZ01_airpressure.h"

#include "utils.h"

int main(void)
{
    /* Initialize */
    TZ01_system_init();
    TZ01_console_init();
	TZ01_airpressure_init();

	TZ01_system_tick_start(USRTICK_NO_GPIO_INTERVAL, 1000);


	float temp, press;
	uint8_t msg[140];
    for (;;) {
        if (TZ01_system_run() == RUNEVT_POWOFF) {
            /* Power off operation detected */
            break;
        }

		/* 1秒ごとに温度気圧を取得する */
		if (TZ01_system_tick_check_timeout(USRTICK_NO_GPIO_INTERVAL)) {
			TZ01_system_tick_start(USRTICK_NO_GPIO_INTERVAL, 1000);

			temp = TZ01_airpressure_temp_read();
			press = TZ01_airpressure_press_read();

			sprintf(msg, "TEMP=%f , PRESS=%f\r\n", temp, press);
			TZ01_console_puts(msg);
		}


    }

    TZ01_console_puts("Program terminated.\r\n");
    return 0;
}

 

ビルド

mkファイルで下記のコメントアウトを削除。

/* CDP_TZ01B_BSP.mk */
SOURCES+=src/boards/CDP-TZ01B/TZ01_airpressure.c
SOURCES+=src/drivers/BMP280.c
/* TZ10xx_DFP.mk */
SOURCES+=$(SDK_DIR)TOSHIBA.TZ10xx_DFP/RTE_Driver/I2C_TZ10xx.c

 

実行結果

blueninja_airpressure

気温の単位はセルシウス度(℃)で、分解能は0.01℃だそうです。
気圧の単位はヘクトパスカル(hPa)で、分解能は0.0016hPaだそうです。

ちなみに1気圧=1013.25hPaです。
今回の結果から標高を計算すると約36.81mとなるようです。

<参考>
気圧から標高を計算

気圧はBlueNinjaモジュールを持って上げたり下げたりしてもリニアに反応するようです。
気温の方も、ズボンの中にぶち込んでみたらすぐに反応しました(^^)

とても簡単に気温と気圧を取得することができました。
今回は以上です。

 

あとがき

最近急に寒くなってきました。
…寒いのは苦手です。

ではでは…。
 
 

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>