ディー・クルー・テクノロジーズ Blog

bookmark_borderUVをセンサで計測してみよう!⑦ ~外で実際に動作を確認してみよう ~実験編

なかなか実験の日程の調整ができず、実験日は2024/9/26(木)。夏?のぎりぎりになってしまいました。

作成したUVセンサを傘につけ実験

気象庁の計測値でみると、こんな感じです。

12時から20分ほど、会社近くの日産スタジアムに行くまでの見晴らしがよいところで実験しました。

ただ当日は晴れではあったのですが、太陽の周辺に雲がありまた風もあったのでなかなか同環境での実験ができませんでした。秋晴れ! という日にも実験してみたいですね。

気象庁での紫外線情報をリファレンスにオフセットをかける予定でしたが、実際に外にでて試しに測定してみたところセンサ値の紫外線情報にかなり差があり、今回はオフセットなしにして紫外線対策グッズでどうセンサ値が変わるかを確認したいと思います。

やっぱりリファレンスになるデバイスほしいですねー。

試した日傘(私物)はこの2つ

同環境での実験が難しかったので、試したのは2種の日傘だけになってしまいました。

①裏地が黒の日傘

②麻生地の日傘

麻生地のほうはデザインが気に入っておりましてかれこれ3年以上は使用しています。なので紫外線対策という面では効果が薄くなっている自覚はしています。。。デザインが好きなので買い替える予定はありませんが(^^)

では実験結果です。

実験結果

①裏地が黒で99.9%カットと保証がされていた日傘UVインデックス値の結果

②麻生地の日傘のUVインデックス値の結果

日傘(内)は、日傘(外)のUVインデックス値より大きく下がることが確認できました! しっかり紫外線防止効果があることが分かります。

また、お気に入りの麻生地の日傘も外に比べ約90%近く下がっているのは、個人的に大満足です。また快晴のときにまたいろいろなパターンで実験してみたいですね。

最後に、IoTの設計開発についてご相談したいことがございましたら、遠慮なくこちらのフォームにてお伝えください。

秋も紫外線はまだまだ強い日がありますから、日傘を使いつつ気を付けて過ごそうと思います。いつか、来年の夏の暑い晴れた日に実験再チャレンジしてご報告したいです! ではでは!

bookmark_borderUVをセンサで計測してみよう!⑥ ~外で実際に動作を確認してみよう ~準備編Ⅲ

組み立てたLeafonyをケースに入れよう

組み立てたLeafonyを目立たないようケースに入れて外で実験できるようにしたいと思います。ケースに入れなくても実験はできますが、都会は人の目も多いですし、持ち歩いて怪しまれないように。

って、よっぽどあやしいわ これ

さて、普段の業務だとケースというと”タカチケース”を購入して加工しているのですが、

 「今回はスピード重視で簡単に加工できる」

 「失敗してもすぐやり直せる」 をテーマに掲げて行います!

なぜって、いくら10月で30℃超えの気候とはいえ、ゆっくりしてると冬になってしまうので。

というわけで、何をするかは、ガジェット好きな皆様はもうお分かりですね。

私の大好きな100円ショップ ダイソー様で物色ですルンルン

ダイソーで発見した”便利ケース”

おなじみの収納ケースのエリア、衛生用品、キッチン用品…うろうろしたところ良さそうなものがありました!!

これです

お弁当を毎日作るお母さんお父さんの味方、マヨネーズケース!!

推しポイントは、3つ。

  • カッターで簡単に加工ができます。
  • サイズもスポっときれいには入りませんが少し押し込めば入りそうなところ。
  • しかも、蓋もあるのでここにUVセンサーを固定するのもできそう。

(この創造力を掻き立てるSPECが尊い…)

これに組み立てたLeafonyを入れて実験できるように少し加工していこうと思います!!
で、できあがったのがこちら!!

透明な蓋にセンサー用の穴をあけ、マスキングテープで固定にしました。

さらにさらに、傘にぶら下げるといったことができるように手持ちのチェーンをつけてみました。

え?「マスキングテープ、素敵に貼れませんか」ですって?

(想定よりうまく固定できなかったので試行錯誤しちゃったんですよね。。アハハ。。)

ままま、すごい手作り感満載ですが、これも味ですよアジ! <゜)))彡
準備は完了!! 実際に外で実験してきましょう!!

bookmark_borderUVをセンサで計測してみよう!⑤ ~外で実際に動作を確認してみよう ~準備編Ⅱ

ついにセンサー情報をBLEで飛ばし、無線化しますよ~

動作結果イメージ

今回は、こんな風にUVインデックスが出てくるようにしたいですね。

スマホアプリ画面

ハードウェア

使用するLeafonyのリーフが1枚、追加になります。

AC02 BLE Sugar

Al01 4-Sensors

AP01 AVR MCU

AZ01 USB

AV01 CR2032

AZ01 USBは、ソフトウェア書き込み時のみ使用し、動作時には外します。AV01 CR2032は前回同様、ねじ止めとして使用します。

leafの積み重ね方

重ね方は、こんな感じです。

ソフトウェア書き込み時ソフトウェア書き込み後
上から順に
29pin header, USB, AVR MCU, BLE Sugar, CR2032の順につなげてねじ止めします。
上から順に
29pin header, 4-Sensors, AVR MCU, BLE Sugar, CR2032の順につなげてねじ止めします。

書き込み時に4-Sensorsのリーフを抜いた理由としては付属のネジだと物理的に長さが足りなかったからです。なお、今回、センサーからのデータを取得するのに29pin headerのリーフを使用しました。

このAX018にした理由としては

  • 3.3V出力ピンがあること
  • ピンヘッダーがすでにあるので、リーフに追加で半田しないで使用できること

というメリットがあったからです。

もともとピンヘッダーが付属しているGrove&5Vのリーフを考えていて、高さも取らないし丁度いいかーと考えていたのですが、改めて仕様書みたとき”5V”出力じゃん”というのに気づきまして今回は3.3V出力ピンがあるAX018になりました…

さらにピンヘッダーがすでにあるので、リーフに追加で半田しないで使用できること。これは大きいです。同じく29pin のリーフだとAX02 29 pinもあるのですが、こちらはセンサからの線を直接半田することになるので、ほかのセンサーや実験に使用しづらくなるためAX018にしました。

ヘッダー分の高さを取らないのでいいのですが、ぶっちゃけきれいに半田を取る自信がなく。。。

リスクヘッジも実力よ..

ソフトウェア

前回、Leafonyを動かしてみようで使用したソフトウェアをベースに実装していきます。

まず、記事 # UVをセンサで計測してみよう ~センサを実際に動かしてみる~で実装したプログラムから蛍光ペンで示した箇所の処理をベースのプロジェクトに追加します。

Arduino側のプログラム動作手順概要:

(以下引用)  >

  1. 初期設定
    • PCとのHardwareSerial通信を開始
    • センサのイネーブルピンにHigh出力
    • 1secのタイマを開始
  2. タイムアウト時にセンサの出力ピンからアナログ値を取得
  3. 取得した値を電圧値に変換
  4. 電圧値からUVインデックス値に変換してシリアルで表示

追加した箇所は、こうなります。

変更箇所➡変更後
センサのイネーブルピンにHigh出力setupPort() 関数内に追加
・センサの出力ピンからアナログ値を取得
・取得した値を電圧値に変換
・電圧値からUVインデックス値に変換
loopSensor() 関数内に追加

これで定期的にUVインデックス値を求めることができるようになりました。(注) 基本的には上記の処理をベースのプロジェクトに追加すればよいのですが、以下の点は修正が必要です。

また、以下の設定変更も必要です。

  • アナログ値を電圧値に変換する際のリファレンス電圧を5Vから3.3Vにする
  • センサーとの接続ピンをベースのプログラムで使用していないピンに変更する
ピン変更箇所➡ピン変更後
センサ値の入力ピン      A0  A3
センサへのイネーブル出力ピン D7  D5

UVインデックスの定期無線送信設定

最後に定期的に取得したUVインデックスを無線で送信できるようにします。

ベースのソースコードを読むとbt_sensData() 関数内において無線で送信するデータを設定しているようです。そこで、そのうちもともと照度データを設定している箇所をUVインデックス値に差し替えします。

合わせて小数点以下の値も表示したいのでdstorfの引数の値も変更します。

これでソフトウェアの実装は完了です。

今までに作成したコードのコピペと少ない修正で無線化のプログラムができました!! 

動作結果

UVをセンサで計測してみよう ~センサを実際に動かしてみる~のときと同じようにUV LEDネイルライトで実験してみました。動作するかな。。。

スマホアプリ画面

照度の欄にUVインデックス値が表示されていますね!!

無事無線化できました!!

次は組み立てたLeafonyを手ごろなケースに入れたいと思います! ケースに入れればこれで準備編も終了です!実計測までもう少しです!!

bookmark_borderUVをセンサで計測してみよう!③ ~センサを実際に動かしてみる

では、さっそくセンサを動かしてみましょう!

## ハードウェア

  • ML8511使用紫外線センサーモジュール(ML8511)

ML8511使用紫外線センサーモジュール: オプトエレクトロニクス 秋月電子通商-電子部品・ネット通販 (akizukidenshi.com)

久しぶりの半田付けで少しドキドキしました(苦笑)

余裕のフリ…

感覚忘れないように定期的にしないとダメですね。頑張ります!

  • Arduino Leonardo

こちらは、以前のテーマ↓で使用したデバイスを流用しています。

  • USBケーブル(Micro USB Type-B 2.0)
  • Windows 11 PC 

そして、手軽に紫外線を照射する装置も必要です。

  • UV LED ネイルライト

これは、センサが紫外線に反応することを確認するために使用しました! 確認のために窓際や外に行くのも面倒なので、手元で確認できるものないかなーと探してみたところ、3COINSで発見!! 

私も大好きなぷっくりツヤっとしたジェルネイルを硬化させるために爪に当てて使用するものです。これで税別300円とは今回使用するセンサよりもさらにリーズナブルです!

3COINSさん流石ですね。。

UVLEDネイルライト/and us | 3COINS(スリーコインズ)レディース | PAL CLOSET(パルクローゼット) – パルグループ公式ファッション通販サイト

## ハードウェア接続

以下の図のように実際に接続しました。

以上でプログラム実装前の前準備が完了です。

## プログラム実装

今回使用するセンサからはUV光強度に比例したアナログ電圧が出力されます。

なので、定期的にアナログ値を取得して電圧値に変化する処理を実装すればセンサの値は取得できそうですね。ただ電圧値だけでは紫外線が強いのかわかりづらいので、電圧値からUVインデックスを求めてPCに表示するプログラムを実装したいと思います。

計算方法ですが、アプリケーションノートML8511_UV.pdf (sparkfun.com)

に詳細に記載されていましたので、この方法で求めていきたいと思います。

Arduino側のプログラム動作手順概要:

  1. 初期設定
    • PCとのHardwareSerial通信を開始
    • センサのイネーブルピンにHigh出力
    • 1secのタイマを開始
  2. タイムアウト時にセンサの出力ピンからアナログ値を取得
  3. 取得した値を電圧値に変換
  4. 電圧値からUVインデックス値に変換してシリアルで表示

Arduinoのツールに”Serial Plotter”というものがあり、シリアル出力した値をグラフ化してくれます。

簡単に状態変化をリアルタイムで確認できるので、かなり便利でした。

## センサ動作結果

UVライトのON/OFFとUVセンサのリアルタイムの状態変化が分かるSerial Plotterのグラフを一緒に動画にしてみました。

ML8511によるUVLEDネイルライトの紫外線計測結果をSerial Plotterのグラフ表示

動画8秒あたりから、UVライトONするとすぐセンサは反応してくれています!! 👏

UVを照射するとUVインデックス約2.5~3のあたり、弱い➡中程度のあたりでグラフ表示されますね。

今回より出力が高いUV LEDネイルライトだと数値が変わるのか興味があります。今回は室内というのもあり補正をしてないのですが、アプリケーションノートによると環境によってUVインデックスからの補正が必要なようで、条件によって誤差がありそうです。

よくよく調べてみるとSerial Plotterのグラフは複数データの表示もできるようです。ただY軸の範囲は自動で変更されるようなので、値の範囲が異なる数字を表示するときは注意が必要そうです。

おっと、UVインデックスのリファレンスとなるデバイスを用意していないです。あーリファレンスをどうしよう。。。

あ!そうだ気象庁情報です!!

気象庁で紫外線情報(分布図)を出しているのです。ピンポイントではありませんが、実験している場所付近の値をリファレンスにすればある程度は使えそうに思います!

気象庁| 紫外線情報(分布図) (jma.go.jp)

ちなみに気象庁紫外線情報のUVインデックスは11+が最高ではなく、さらに12や13+があるのですが、日本でしばしば12や13といった値が観測されるため、気象庁では実情に合わせて13+まで表示するそうです。恐るべし日本の夏!

さて、センサが動くことは確認できたので、次は外で実験する前にUVインデックスを無線で飛ばして確認できるように改造したいと思います!

外出先でPC+Arduinoを常に一緒に持ち歩いて計測するのも大変なので(トホホ)

それではまた!