VEML6075 を使用して UV インデックスを取得するための Raspberry Pi 講座

##■はじめに
Raspbian がバージョンアップし、 Raspbian Buster になったことから、対応を兼ねて新たに構築します。
Raspberry Pi とはなんぞや、という方向けの記事となっております。
Raspbian Stretch(前バージョン)より標準装備のものがバージョンアップされていて、面倒な作業は特にありません。
手元の Windows マシンから各種準備とセットアップを行いますが、
余計な説明や詳細な用語解説はせず、UV インデックスが取得出来ることをゴールに設定しています。
![IMG_2708.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/48403428-e062-cf6f-2c0b-13b2d48a348d.jpeg)

##■使うもの
- Raspberry pi 3 Model B<br>
https://www.switch-science.com/catalog/3050/<br>
Zero でも構いませんが、 GPIO のピンヘッドをはんだづけする必要がありますので初めての方はこちらが良いかと思います。
- VEML6075(UVセンサ)<br>
https://www.switch-science.com/catalog/4083/<br>
UV インデックスを取得するセンサーで UVA/UVB と記載があるものの肝心の 280nm-315nm 間の取得に関する記載なし。
- Raspbian を書き込んだ micro SD カード<br>
micro SD カードを使うので USB の SD カードリーダーも別途必要です。<br>
Class 10 であればメーカー問わずなんでも構いません。<br>
使い回す場合は入っているデータは必ず退避し、フォーマットの上使用して下さい。
- ブレッドボード<br>
https://www.switch-science.com/catalog/list/?keyword=%E3%83%96%E3%83%AC%E3%83%83%E3%83%89%E3%83%9C%E3%83%BC%E3%83%89<br>
なんでも良いです。
- ジャンパーワイヤ(オス - メスのもの)<br>
https://www.switch-science.com/catalog/2294/<br>
- 5V/3A を許容する AC アダプタ<br>
http://akizukidenshi.com/catalog/g/gM-12001/<br>
- はんだ(プリント基板用)<br>
https://www.monotaro.com/g/01270476/
- はんだごて<br>
https://www.monotaro.com/g/01291417/<br>
安いもので構いません。
- ニッパー

##■初期設定に必要なもの
・パソコン
・USB キーボード
・USB マウス
・HDMI ケーブル
・HDMI 接続出来るモニタ

##■作業はじめ
Zip で圧縮されたファイルを解凍しますが、 Windows 7 以降は標準で解凍出来るため、解凍ソフトなどは不要です。

1. SD カードにオペレーションシステムを書き込む<br>
2.  Raspbian の最新版を[ダウンロード](https://downloads.raspberrypi.org/raspbian_full_latest)する<br>
3. dd for Windows を[ダウンロード](http://download.si-linux.co.jp/dd_for_windows/DDWin_Ver0998.zip)する<br>
4. ダウンロードした Raspbian と dd for windows を解凍し、dd for windows を起動する
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/b83996d4-fa5b-79a5-5dba-1677f5fb9d0d.png)
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/7517104b-5756-f1ee-9a45-45cac0004e45.png)

ディスク選択を押し、USB リーダーに挿した SD カードを指定し、ファイル選択で解凍した Raspbian のフォルダ内にある img ファイルを指定します。
この際、フォルダ選択だけではオペレーションシステムのイメージが見えないため、All Files を指定し、 ".img" となっているファイルを指定して下さい。

##■Raspberry Pi の起動
書き込んだ SD カードをラズベリーパイに挿してキーボード、マウス、モニターを Raspbery Pi 本体に接続の上、電源を接続し起動します。
![IMG_2838.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/1d451627-ea3b-6d10-5c31-93477f123f20.jpeg)

電源を挿した時点で起動します。
緑のランプがチカチカしない場合、オペレーションシステムの書き込みがうまくいっていない可能性があります。
画面に従い初期設定を行いますが、途中 wi-fi でネットワークに接続する項目があるため、無線 LAN ルータの SSID とパスワードを入力して下さい)
もし wi-fi のことがわからない場合、有線で接続することも可能ですので、ルータと本体を LAN ケーブルで結線して下さい。

以下の作業はインターネット接続、キーボード、マウス、モニターを本体に接続したまま作業して下さい。

##■各種設定
ターミナルを起動します。
デスクトップ画面にある左上のアイコンからターミナルを立ち上げます。

続いて i2c を有効化します。

```
pi@raspberrypi:~ $> sudo su -
root@raspberrypi:~# raspi-config
```

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439323234382f32363365633662352d363738372d303336372d653066632d3636663761616437653465332e706.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/b37baac2-cf6d-465a-ee5b-22327fcf8675.png)

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439323234382f34336231633365632d356537352d616636332d316261322d3839396139643435313534312e706.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/2b49e4e3-6b7d-c624-fb06-dfca9b0c0623.png)

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439323234382f35626665316335632d386630342d356334632d356561632d6639663132663334633735322e706.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/47f13be5-ceab-f14f-3cc0-ff198dcdf2ac.png)

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439323234382f36613065353665622d623530362d326565642d366235662d6435333133633664366132372e706.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/1b25699d-532b-293b-598d-a695e47888c3.png)


<了解>の後、[Finish]を選択して元の画面に戻ります。

##■センサーの接続
Raspberry Pi に VEML6075 センサーを接続します。
マニュアルは[こちら](https://learn.adafruit.com/adafruit-veml6075-uva-uvb-uv-index-sensor/assembly)。
購入時はセンサーとピンは分離しているため、はんだづけが必要です。1本余分になっているため、5本になるようピンをニッパーなどでカットして下さい。
■写真
![IMG_2840.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/72f063f6-5b92-a716-30fa-611f7d4fc7be.jpeg)
■図解
![Untitled Sketch_ブレッドボード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/ac761d04-03b2-dffb-8705-4488f12f9848.png)

オペレーションシステムがセンサーを正常に認識しているかを確認して下さい(0x10として認識)

```
root@raspberrypi:~# i2cdetect -y 1
```

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3439323234382f36656233653962322d383638642d616530642d616532312d6433363332653963393332342e6a.jfif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/cd984fc8-3fa2-4cb2-3ae0-514715227f5a.jpeg)


図の通りにジャンパーワイヤで結線します。
認識されない場合、はんだづけか配線の誤りがあるため、見直してください。

##■UV インデックスを取得する
コードをダウンロードし、UV インデックス取得が実行出来る状態にします。
マニュアルは[こちら](https://learn.adafruit.com/adafruit-veml6075-uva-uvb-uv-index-sensor/python-circuitpython)

```
root@raspberrypi:~# git clone https://github.com/adafruit/Adafruit_CircuitPython_VEML6075.git
root@raspberrypi:~# cd ~/Adafruit_CircuitPython_VEML6075/
root@raspberrypi:~# python3 setup.py install
```

実際にコードを実行して UV インデックスを取得します。

```
root@raspberrypi:~# cd ~/Adafruit_CircuitPython_VEML6075/examples
root@raspberrypi:~# python3 veml6075_simpletest.py
```

ここまで問題がなければ UV インデックスの取得が開始されます。
手持ちの紫外線灯を近づけたり離したりしてみて下さい。
停止させる場合は CTRL+C を押下して下さい。
![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/492248/68767020-060f-7867-b4a8-c5bebffe4bd2.png)

##■おわりに
Raspberry Pi を利用した UV インデックスの取得について書きました。
これを使うことで手持ちの紫外線灯のおおまかな数値を知ることが出来るようになります。
小型の3.5インチモニターをつけたり、スマートフォンから見られるようにする等、いろいろなことが出来ますが、とりあえずここまでにします。

##■参考 URL
VEML6075 マニュアル
https://learn.adafruit.com/adafruit-veml6075-uva-uvb-uv-index-sensor
VEML6075 リポジトリ
https://github.com/adafruit/Adafruit_CircuitPython_VEML6075