半田付けも電子回路組み立ても不要！Arduinoでセンサーを扱う方法（シールド利用）

#はじめに

センサーを使ってモノを作りたい！手軽にIoTのプロトタイプを作りたい！っていうときに
『半田付け』や『電子回路の組み立て』が必要となると、ハードルが高いと感じる人も多いのではないでしょうか。

そこで、今回は「シールド」を使って、半田付けも電子回路の組み立てもせずに
Arduino で センサー を扱う方法を紹介します。

具体的には、「Arduinoとダストセンサーをつなげて、センサー値を確認する方法」を紹介しますが
他のセンサーを扱う場合でも簡単に応用できるように、説明を書いています。

この方法を使ったら、作業時間20分程度でした。

やりたいことが「モノを作る」って部分であれば
センサーとArduinoをつなぐところに手間取ってるのはもったいない！
これでようやく手軽に色々作れそうです。楽しみー(*´﹀`*)♪


#準備するもの

① 開発用PC（mac、Windows、Linuxなど）
② Arduino
　　→[今回使用したものはコチラ](https://www.amazon.co.jp/スイッチサイエンス-【永久保証付き】Arduino-Uno/dp/B0044X2E5S/ref=pd_sbs_147_3?_encoding=UTF8&pd_rd_i=B0044X2E5S&pd_rd_r=950c2826-7d1f-11e8-8003-67533ad5f486&pd_rd_w=V2ffB&pd_rd_wg=lnLzR&pf_rd_i=desktop-dp-sims&pf_rd_m=AN1VRQENFRJN5&pf_rd_p=5805929820760247504&pf_rd_r=FZ72J64RKCK4HTV1WTNY&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&psc=1&refRID=FZ72J64RKCK4HTV1WTNY)
③ USBケーブル（※タイプ：A to B であること）
　　→[今回使用したものはコチラ](https://www.amazon.co.jp/エレコム-RoHS指令準拠-環境配慮パッケージ-エコUSBケーブル-U2C-JB05BK/dp/B0036SGFH0/ref=pd_sbs_147_3?_encoding=UTF8&pd_rd_i=B0036SGFH0&pd_rd_r=ac0d4943-7e08-11e8-a1d2-7d2510fdbd6f&pd_rd_w=XSUhD&pd_rd_wg=d1fwH&pf_rd_i=desktop-dp-sims&pf_rd_m=AN1VRQENFRJN5&pf_rd_p=5805929820760247504&pf_rd_r=CYMJ8V89KVA59JTWT1RJ&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&psc=1&refRID=CYMJ8V89KVA59JTWT1RJ)
④ 半田付け不要なArduinoシールド
　　→[今回使用したものはコチラ](https://www.amazon.co.jp/スイッチサイエンス-GROVE-ベースシールド/dp/B01ICVI7YO/ref=pd_sbs_23_5?_encoding=UTF8&pd_rd_i=B01ICVI7YO&pd_rd_r=c58a66d2-7d1f-11e8-a1d2-7d2510fdbd6f&pd_rd_w=AcwdO&pd_rd_wg=io6KQ&pf_rd_i=desktop-dp-sims&pf_rd_m=AN1VRQENFRJN5&pf_rd_p=5805929820760247504&pf_rd_r=Z9332RVVPCYTZ7Q1ATFS&pf_rd_s=desktop-dp-sims&pf_rd_t=40701&psc=1&refRID=Z9332RVVPCYTZ7Q1ATFS)
⑤ ダストセンサー（※④のシールドで利用可能なセンサーであること）
　　→[今回使用したものはコチラ](https://www.amazon.co.jp/スイッチサイエンス-GROVE-ダストセンサ/dp/B01MUF146Q)

補足）
使いたいセンサーで利用できる「半田付け不要なシールド」が提供されていない場合
残念ながら、今回の手法は使えません。
しかし、「半田付け不要なシールド」を提供しているようなメーカでは
たいてい多種のセンサーを提供していることが多いです。
なので、高性能センサー／特殊センサーを利用したいケースでない限りは
結構使える手法かなと思います。

参考までに、「半田付け不要なシールド」を提供しているメーカ と 製品情報 をいくつか記載します。
・[Seeed株式会社](https://www.seeed.co.jp) のGROVEシリーズ
　　→製品情報： https://www.switch-science.com
　　　※メーカの公式サイトではないが、上記サイトが見やすく充実している。
・ローム株式会社 の ロームセンサ評価キット
　　→製品情報： https://www.rohm.co.jp/sensor-shield-support
・
＃まだまだ未熟な分野でもあるので、新しい製品が出ていないかは必要に応じてググってもらえたら。

#手順概要

Step1. 開発用PC上に、Arduinoソフトウェア開発環境を作る
Step2. PC - Arduino - シールド - センサー をつなげる
Step3. センサーの値を確認する


#手順詳細

##Step1. 開発用PC上に、Arduinoソフトウェア開発環境を作る

Arduinoの公式サイトに従って開発環境を作る
https://www.arduino.cc/en/Main/Software

補足）
作り方としては、以下２パターンがあります。
① Arduino Web Editor
　　…アカウント登録して、ブラウザ上で開発
② Download Arduino IDE
　　…環境をダウンロードして、ローカルで開発

どちらでも構いませんが、以下メリットがある①がオススメです。
今回は①を使います。
・常に最新環境で開発できる
・別デバイスからでも開発できる

〜 作った環境の確認 〜
PCとArduinoをつなげて、定番のLチカ！

1. PCとArduinoをUSBケーブルでつなぐ
2. Web Editor を起動する<BR>
→こんな画面が表示されるはず<BR>
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/4136cd02-3fe7-e366-8812-97cc96ec70d4.png" width=60%>
3. 画面上にある「--Select Boad or Port--」と表示されている部分をクリックして<BR>
つないだArduinoを指定する
4. 左側のメニューで [Example] - [01.BASICS] - [Blink] を選択<BR>
→こんな画面が表示されるはず<BR>
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/03e1b359-96db-35ee-7116-ab2dd04b4900.png" width=60%>
5. 画面上部のボタン「→」をクリックして、Arduinoへ書き込み
6. Lチカ完了！<BR>
Arduino上のLEDが１秒ごとに点滅しているはず


##Step2. PC - Arduino - シールド - センサー をつなげる

PC - Arduino は、Step1. でつないであるはず

次は、Arduino と シールド をつなげる

シールド
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/106df7b0-aa76-1eb2-3aef-8f265e4183ee.jpeg" width=40%>

を

Arduino
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/f76d60ef-9401-9c1a-32cc-eec056da344e.jpeg" width=40%>

に

上から挿す感じ

<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/d7f3297d-0e9a-057f-4734-d9b7ccbb8b29.jpeg" width=40%>

最後に、シールド と ダストセンサー をつなげる

センサーはこんな感じ
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/dcefc42b-132a-ab25-33ab-22c5bd10a059.jpeg" width=40%>

[センサーの説明資料](http://wiki.seeedstudio.com/Grove-Dust_Sensor/) に記載の通り、今回はシールドの「D8」に挿す

<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/a54728c6-1f61-2adc-94f4-bd44929e96e4.jpeg" width=40%>

##Step3. センサーの値を確認する

1. Web Editor の左側のメニューで 、[Sketchbook] - [NEW SKETCH] を選択

2. 画面右側のエディタで、センサーの値を取得するコードを書く
→今回は、[センサーの説明資料](http://wiki.seeedstudio.com/Grove-Dust_Sensor/) のサンプルコードをコピペして利用

3. 画面上部のボタン「レ」をクリックして、コードをビルド

4. 画面上部のボタン「→」をクリックして、Arduinoへ書き込み
→こんな画面が表示されるはず
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/0bbdc10f-56bd-e593-57ff-f9bcd468520d.png" width=60%>

5. 左側のメニューで [Monitor] を選択
しばらくすると、画面上に、30秒間隔でサンプリング（ダスト密度）が表示されるようになる！
<img src="https://qiita-image-store.s3.amazonaws.com/0/266162/4c44b913-3570-4b19-24c6-986b125ca434.png" width=60%>

！！！完成！！！

余談ですが、このダストセンサーの場合、
単位を[μg/m^3]に変換するコードを書いたりすれば、PM2.5の測定をしたりもできるみたいです。