XIAO/M5Atomで気圧センサー(HP206C)を動かす(XIAO/Arduino版、M5Atom/Arduino版)
2020/10/16
wio-terminal用のplatformio.iniを追加した。
2020/10/13 初版
PlatformIO XAIO M5ATOM HP206C
PlatformIO XAIO M5ATOM HP206C
概要
XIAO/M5Atomで以下の気圧センサー(HP206C)を動かす(XIAO/Arduino版、M5Atom/Arduino版)。
platformがArduinoなのでソースを共通化して動かしてみる。
Grove 高精度気圧計 - Grove Barometer
https://wiki.seeedstudio.com/Grove-Barometer-High-Accuracy/
開発ツールplatformioのインストールについては以下を参照のこと:
・開発ツールPlatformIOをcliで使う(Seeeduino-XIAO版)
・M5Atomを開発ツールPlatformIOで使う(M5Atom/Arduino版)
・M5Atomを開発ツールPlatformIOで使う(Windows10版)
platformio.ini
XIAO用:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:seeed_xiao]
platform = atmelsam
board = seeed_xiao
framework = arduino
upload_protocol = sam-ba
monitor_speed = 115200
lib_deps =
# HP20x lib
https://github.com/Seeed-Studio/Grove_Barometer_HP20x.git
lib_ldf_mode = deep+
M5ATOM用:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:m5stick-c]
platform = espressif32
board = m5stick-c
framework = arduino
build_flags = -DM5ATOM
monitor_speed = 115200
lib_deps =
# use M5Atom lib
3113
# use "FastLED"
126
# HP20x lib
https://github.com/Seeed-Studio/Grove_Barometer_HP20x.git
lib_ldf_mode = deep+
デモ・スケッチ
以下の手順でダウンロードする:
cd src
wget https://raw.githubusercontent.com/Seeed-Studio/Grove_Barometer_HP20x/master/examples/HP20x_demo/HP20x_demo.ino
これを以下のように編集してXIAO/M5ATOM共通化する:
src/HP20x_demo.ino
/*
Demo name : HP20x_dev demo
Usage : I2C PRECISION BAROMETER AND ALTIMETER [HP206C hopeRF]
Author : Oliver Wang from Seeed Studio
Version : V0.1
Change log : Add kalman filter 2014/04/04
*/
#ifdef M5ATOM
#include "M5Atom.h"
#endif
#include <HP20x_dev.h>
#include "Arduino.h"
#include "Wire.h"
#include <KalmanFilter.h>
unsigned char ret = 0;
/* Instance */
KalmanFilter t_filter; //temperature filter
KalmanFilter p_filter; //pressure filter
KalmanFilter a_filter; //altitude filter
void setup() {
#ifdef M5ATOM
M5.begin(); // Wire.begin() must be after M5.begin()
Wire.begin(26, 32); // Grove Connector of Atom Matrix (I2C GPIO Pin: G26,G32)
#endif
//Serial.begin(9600); // start serial for output
Serial.begin(115200); // start serial for output
Serial.println("****HP20x_dev demo by seeed studio****\n");
Serial.println("Calculation formula: H = [8.5(101325-P)]/100 \n");
/* Power up,delay 150ms,until voltage is stable */
delay(150);
/* Reset HP20x_dev */
HP20x.begin();
delay(100);
}
void loop() {
Serial.println("------------------\n");
long Temper = HP20x.ReadTemperature();
Serial.println("Temper:");
float t = Temper / 100.0;
Serial.print(t);
Serial.println("C.\n");
Serial.println("Filter:");
Serial.print(t_filter.Filter(t));
Serial.println("C.\n");
long Pressure = HP20x.ReadPressure();
Serial.println("Pressure:");
t = Pressure / 100.0;
Serial.print(t);
Serial.println("hPa.\n");
Serial.println("Filter:");
Serial.print(p_filter.Filter(t));
Serial.println("hPa\n");
long Altitude = HP20x.ReadAltitude();
Serial.println("Altitude:");
t = Altitude / 100.0;
Serial.print(t);
Serial.println("m.\n");
Serial.println("Filter:");
Serial.print(a_filter.Filter(t));
Serial.println("m.\n");
Serial.println("------------------\n");
delay(1000);
}
該当の気圧センサーはI2Cタイプなので(I2C用の)Grove-Conectorに接続する。
(XIAOは専用のshield経由で接続する)
ビルド・実行
以下の手順でビルド・実行する:
(platformio.iniは、ボードごとに切り替える)
run pio -t upload
出力
通信ソフトを起動すると以下のような出力が得られる:
------------------
Temper:
27.23C.
Filter:
26.96C.
Pressure:
1003.36hPa.
Filter:
995.89hPa
Altitude:
83.92m.
Filter:
83.82m.
------------------
------------------
Temper:
27.22C.
Filter:
27.09C.
Pressure:
1003.40hPa.
Filter:
1000.78hPa
Altitude:
83.59m.
Filter:
83.69m.
------------------
<省略>
追加(wio-terminal用platformio.ini)
以下のplatformio.iniに切り替えるとwio-terminalでビルド・実行できる:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:seeed_wio_terminal]
platform = atmelsam
board = seeed_wio_terminal
framework = arduino
build_flags = -DWIO_TERMINAL
lib_deps =
# HP20x lib
https://github.com/Seeed-Studio/Grove_Barometer_HP20x.git
upload_protocol = sam-ba
monitor_speed = 115200
lib_ldf_mode = deep+
接続するGrove-Connectorは、LCD画面を正面にして下側の左のほうのConnectorが I2C用なので、こちらに該当モジュールを接続する。
参考情報
Seeeduino XIAO用Grove シールド バッテリー管理チップ 搭載
以上