Arduino MKR WiFi 1010をデータ入力に使う⑧I2C温湿度センサHTS221
Arduinoのライブラリには、次のようなセンサ類があります。すべての機能を利用する場合、別途Sensor Fusion and Tracking ToolboxもしくはNavigation Toolboxが必要になる場合があります。これらは有料です。home Licenseでは、Sensor Fusion and Tracking Toolboxは購入できません。
IMU and Environmental Sensors
mpu9250 | 9軸 9自由度 16ビット ジャイロスコープ 加速用 磁気センサ |
lsm9ds1 | 9軸慣性計測ユニット 3軸の加速度センサ 3軸のジャイロ・センサ 3軸の磁力センサ |
mpu6050 | 3軸加速度センサ 3軸ジャイロセンサ |
lsm303c | 6自由度の慣性計測 3軸の加速度センサ 3軸の磁気センサ |
lsm6ds3 | 6自由度の慣性計測 3軸の加速度センサ 3軸のジャイロ・センサ |
lsm6ds3h | 6自由度の慣性計測 3軸の加速度センサ 3軸のジャイロ・センサ |
lsm6dsl | 6自由度の慣性計測 3軸の加速度センサ 3軸のジャイロ・センサ |
lsm6dsm | 6自由度の慣性計測 3軸の加速度センサ 3軸のジャイロ・センサ |
lsm6dso | 6自由度の慣性計測 3軸の加速度センサ 3軸のジャイロ・センサ |
lsm6dsr | 6自由度の慣性計測 3軸の加速度センサ 3軸のジャイロセンサ |
hts221 | 相対湿度 / 温度センサ |
lps22hb | 気圧センサ |
BNO055 Sensor
bno055 | 3軸加速度計、3軸磁力計、3軸ジャイロスコープ クォータニオン、オイラー角、ベクトルの形式で出力 |
GPS
gpsdev | GPS受信機 |
lps22hbは第4回のLPS25HBとほぼ同じ機能のICですが、デバイスIDが異なります。
●温湿度センサHTS221
このセンサはI2Cインターフェースで接続します。Adafruit HTS221 - Temperature & Humidity Sensorを使いました。電源電圧は3.3/5Vのどちらでも使えます。
- 電源電圧 1.7~3.6V
- 湿度 確度±3.5%RH、分解能0.004%RH
- 温度 確度±0.5℃、分解能0.016℃
- インターフェース I2C(0~400kHz)、SPI(最大10MHz)
- スレーブ・アドレス 0x5f(固定)
●プログラム
clear
a = arduino('COM15', 'MKR1010', 'Libraries', 'I2C');
humiditySensor = hts221(a)
humidityReading = readHumidity(humiditySensor)
temperatureReadings = readTemperature(humiditySensor)
実行結果です。
●グラフ
animatedline()を使って、画面には20個の最新データを表示しながら、ここでは100個のデータを表示し続けます。100個のデータを測定し終わったら、グラフの下にスライドバーが表示され、過去にさかのぼって表示できます。
clear
a = arduino('COM15', 'MKR1010', 'Libraries', 'I2C');
humiditySensor = hts221(a);
h = animatedline('MaximumNumPoints',20, 'Color', 'g', 'LineWidth', 2);
t = animatedline('MaximumNumPoints',20, 'Color', 'r', 'LineWidth', 2);
counter = 1:100;
humi = (counter);
temp = (counter);
for k = counter
humi(k) = readHumidity(humiditySensor);
addpoints(h, counter(k), humi(k));
temp(k) = readTemperature(humiditySensor);
addpoints(t, counter(k), temp(k));
drawnow
pause(2);
end