RIOT-002B環境センサーを動かしてみた

## 背景
日清紡マイクロデバイス株式会社の環境センサーボードである「RIOT-002B」の動作確認を行ったのでやってみたこと、確認できたことを共有します。


## 概要
　環境センサーボード「RIOT-002」は、温度・湿度・大気圧・照度・加速度がモニターできるボードで、BLEを使用してandroid端末との通信ができます。
　android端末には専用アプリをインストールしておく必要がありますが、専用アプリはwebページに無料で公開されています。
　また、日清紡マイクロデバイスの電源管理モジュールが搭載されており、低電力で使用することができます。低電力で使用できることから、エナジーハーベストで使用することも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/d89ec640-47ab-74f7-b3ac-ccd4e389d85f.png)


## 使用機器
[RIOT-002B](https://www.nisshinbo-microdevices.co.jp/ja/applications/iot-module/environment-sensor/riot-002.html)
PC
[androidタブレット（Qua tab QZ10）](https://www.kyocera.co.jp/prdct/telecom/consumer/lineup/kyt33/)
（AndroidOS7.0以上かつBluetooth4.1以上という条件を満たしておけばなんでも可、スマートホンでも利用可能です）

### 必要なもの
usb変換ケーブル（必要であれば、usbメモリをスマートホンに接続するため）
usbメモリ
[携帯機器用ソーラーモジュール　300mW]( https://akizukidenshi.com/catalog/g/gM-16017/)
[ツェナーダイオード(Vz = 5.6V)](https://akizukidenshi.com/catalog/g/gI-17082/)
[ＵＳＢｔｙｐｅ－ＣコネクタＤＩＰ化キット](https://akizukidenshi.com/catalog/g/gK-13080/)
	
## 手順
1. ソーラーモジュールの準備
2. 二次電池の充電
3. アプリケーションのインストール準備
4. アプリケーションのインストール
5. 動作の確認
6. デバイスの設定の変更
7. 受信アプリケーションの設定の変更


## 方法と結果
1. RIOT-002Bにソーラーモジュールをはんだ付けする
動作可能入力電圧の最大値（5.5V）を超えた入力や、逆接続からの保護のためにツェナーダイオード(Vz = 5.6V)をVinとGNDの間に入れておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/e18775ab-be67-f92f-f09c-e9c942af7163.png)

外部からの充電を可能にするためにピンヘッダををつけて、外部から充電を可能にしています。
本来であれば安定化電源を接続するのがベストですが、USBからの電源供給でも充電が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/6a1f872b-6c11-516c-cfdc-1041abd06b3d.png)

2. 電源スイッチをオフ状態にして、太陽光に曝露させることで、センサーボードを充電する
ドキュメントには動作可能になる目安時間は７時間とあるので、気長に待ちます。太陽光のみで充電したところ、窓際で強い直射日光が当たる状況で、のべ2日かかりました。
動作を確認するために安定化電源を接続して、充電を行ないました。
5Vで充電すると10mA程度流れていることを確認しました。（充電可能最低電圧4.4V以上を付加しないと充電がされません）

3. android端末にアプリケーションをインストールする準備
アプリケーションは[公式ページ](https://www.nisshinbo-microdevices.co.jp/ja/applications/iot-module/environment-sensor/riot-002.html)からダウンロードします。
Riot_Monitor v1.28とRIOT002_setting v1.00の両方をダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/6e87fe5e-c6f6-f41c-f247-9a8ed5ba141e.png)

zipファイルでダウンロードされるので、すべて展開します。
展開にはパスワードが必要になります。パスワードはRIOT-002B購入時に添付されてくるものを使用します。
解凍したフォルダを移動用のUSBメモリにコピーします。

android端末からUSBメモリにアクセスできるように、android端末にfilesというアプリを入れる必要があります。
google play storeでfilesと検索してandroid端末にインストールしておきます。
android端末上でXMLの編集をできるように、XML editorというアプリをgoogle play storeからダウンロードしてインストールしておきます。

4. android端末にアプリケーションをインストールする
android端末からUSBメモリを開いて、RIoT_Monitor_V1_28フォルダの中のapkファイルを開きます。
アプリをインストールするか聞かれるので、インストールを押します。
セキュリティの確認が出ますので、承認します。
これでandroid端末へのアプリケーションのインストールが終わりです。
ここで、設定用のXMLファイル(RIOT_Monitor.XML)をandroid端末に移動させてておく必要があります。
android端末の中にRIOT_Monitorというフォルダが作成されていますので、その中に移動します。
同様にして、riot002_settingもインストールします。


5. 実際にセンサーボードをandroid端末に接続して、動作を確認する。
デバイスのスイッチをオンにします。LEDが点滅して、電源が入ったことを確認します。
（二次電池の充電電圧が2.43Vを超えていないと動作しませんので、注意してください。）
RIOT monitorを開くと、特別な設定は必要なく動作することが確認できました。
![Screenshot_20221113-162122.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/ccc149bb-8e7e-971e-7451-4d2f41f90ef2.png)

6. デバイスの設定を変更してみる
RIOT Settingアプリを開きます。
ここでは設定が変更できることを確認するために、デバイスの名前を変更してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/3c09851c-0762-6177-80b8-f3a5aecf781f.png)

名前を変更して、Writeボタンを押します。
Turn on the deviceと表示された後に、デバイスの電源をオンオフしてリセットします。
設定変更の通知が出ると設定変更の終了です。
![Screenshot_20221113-173815.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/f0fe8b21-798a-3fe6-4c15-6e9fd057b64d.png)


7. 受信側の設定を変更してみる 
設定用のRIOT_Monitor.XMLファイルをXML editorで開きます。
グラフの表示時間範囲を変更してみます。
106行目の
``` <Global DisplayedPeriod="60" UpdateInterval="10" UpdateIntervalType=... ```
を
``` <Global DisplayedPeriod="1800" UpdateInterval="30" UpdateIntervalType=... ```
に変更します。
（DisplayPeriodは表示時間範囲を意味しており、1800は60*30で30分を意味します。）
設定を保存して、ファイルを閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/089b84e8-3141-0cab-2320-d4cdf2eab5d6.png)




RIOT Monitorアプリを再起動すると、設定が変更されていることが確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/244155/ba677a1f-e9c9-08eb-aaf1-b6678efe25fd.png)




## 感想と発展
アプリケーションマニュアル通りに準備を行なうことで、センサーの動作を確認することができました。
アプリケーションのとして、温度や振動で閾値を決めておいて、閾値を超えるとLINEのアラートを発火するようなアプリケーションを作成したいと考えています。手始めにラズベリーパイと接続できるようにして、IoTのデモの作成から始める予定です。

## appendix
### 用語説明
ツェナーダイオード
一定以上の電圧をかけると絶縁が破壊されるため、電圧を一定に保ちながら電流が流れるダイオード。定電圧ダイオードとも呼ばれる。<br>

二次電池
化学電池の内の一つであり、充電と放電を繰り返して使用することができるもの（蓄電池、充電池、燃料電池など）のこと。充電することで元の状態に戻る「可逆反応」を実現できる物質を充填している。
<br>

### 参考情報
[RIOT-002](https://www.nisshinbo-microdevices.co.jp/ja/applications/iot-module/environment-sensor/riot-002.html) 
[FREE AID ツェナーダイオードとは](https://freelance-aid.com/articles/2082.html)
[二次電池とは](https://www.mitsuwa.co.jp/theme/rechargeable_battery/)
[一次電池・二次電池とは？違いや構造を解説](https://www.tdk.com/ja/tech-mag/knowledge/032)
[Files](https://play.google.com/store/apps/details?id=com.marc.files&hl=ja&gl=US)
[XML editor](https://play.google.com/store/apps/details?id=com.lapay.xmleditor&hl=ja&gl=US&pli=1)