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


Pocket

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

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

※TOSHIBA.TZ10xx_DFPは1.31.1を使用

 

コーディング

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

1#include <stdio.h>
2#include <string.h>
3#include <stdbool.h>
4#include <stdint.h>
5 
6#include "TZ01_system.h"
7#include "TZ01_console.h"
8#include "TZ01_airpressure.h"
9 
10#include "utils.h"
11 
12int main(void)
13{
14    /* Initialize */
15    TZ01_system_init();
16    TZ01_console_init();
17    TZ01_airpressure_init();
18 
19    TZ01_system_tick_start(USRTICK_NO_GPIO_INTERVAL, 1000);
20 
21 
22    float temp, press;
23    uint8_t msg[140];
24    for (;;) {
25        if (TZ01_system_run() == RUNEVT_POWOFF) {
26            /* Power off operation detected */
27            break;
28        }
29 
30        /* 1秒ごとに温度気圧を取得する */
31        if (TZ01_system_tick_check_timeout(USRTICK_NO_GPIO_INTERVAL)) {
32            TZ01_system_tick_start(USRTICK_NO_GPIO_INTERVAL, 1000);
33 
34            temp = TZ01_airpressure_temp_read();
35            press = TZ01_airpressure_press_read();
36 
37            sprintf(msg, "TEMP=%f , PRESS=%f\r\n", temp, press);
38            TZ01_console_puts(msg);
39        }
40 
41 
42    }
43 
44    TZ01_console_puts("Program terminated.\r\n");
45    return 0;
46}

 

ビルド

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

1/* CDP_TZ01B_BSP.mk */
2SOURCES+=src/boards/CDP-TZ01B/TZ01_airpressure.c
3SOURCES+=src/drivers/BMP280.c
1/* TZ10xx_DFP.mk */
2SOURCES+=$(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

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