Wi-Fiに接続できるマイコンボードまとめ


素人でもIoTデバイスの開発が容易になっている昨今、日曜大工感覚で週末にデバイスを作ることが多いとか思います。
そんな中、困ることが多いのがどのマイコンボードを使えばいいのかということです。
Arduino、RaspberryPi、Intel Edisonなど数多くのボードがあり、いったいどれを使えばいいのやら・・・

というわけで、今回は作ったデバイスをWi-Fiに接続するという観点から各ボードを比較してみました。
えっ、なんでWi-Fiに接続かって？、だって、折角作ったデバイスからEthernetケーブルが生えているなんてダサいじゃないですか！？
WirelessでコンパクトなほうがCoolですよね！

選定をするにあたっては、ボードの入手しやすさや日本語での情報量の多さを考慮して、以下のサイトで購入出来るもののみに絞りました。記事中に書かれている価格についての情報は全て2016/04/17現在のものです。

[秋月電子](http://akizukidenshi.com/catalog/top.aspx)
[SWITCH SCIENCE](https://www.switch-science.com/)

※ 批評は全て個人の感想であるため、実際のボード選定のときには一次情報を参照することを強くお勧めします。

# ESP-WROOM-02
![ESP-WROOM-02-1_500.jpg](https://qiita-image-store.s3.amazonaws.com/0/74551/70b1b135-a703-3d83-2deb-19018e49c476.jpeg "ESP-WROOM-02-1_500.jpg")

はい、いきなり本命きました！
ちょっとしたデバイスを作るだけなら、これを買えば大丈夫です！！

非常に小型(18mm×20mm×3mm)なデバイスの中にGPIO x 5、10bit ADC x 1、SPI、UART、I2C、I2S、IrDA、PWM、GPIOなど数多くの機能を有しています。
しかも数百円という非常にリーズナブルなお値段。
[秋月で¥550](http://akizukidenshi.com/catalog/g/gM-09607/)
[SWITCH SCIENCEで¥864](https://www.switch-science.com/catalog/2346/)

ブートローダーがすでに書き込まれているので、Arduinoと同様にUSBシリアル変換ケーブルを使って行うことができます。
マイコン一体型のモジュールをプログラムを書き換えてしまい、技適は大丈夫なのかと心配する人がいるかもしれませんが、公式が用意している方法で書き換えれば大丈夫らしいです。

参考：スイッチサイエンスさんがメーカーに問いあわせた結果
[ESP-WROOM-02のファームウェアを書き換えた場合、技適はどうなるのか](http://mag.switch-science.com/2016/01/20/esp-wroom-02_telec/)

写真からも見て分かる通り、モジュール単品としては表面実装です。
なので、ブレッドボードやユニバーサル基板に実装するときには、変換基板が必要です。
モジュールと変換基板がセットになっているものもあるので、通常はそちらを買うのがいいでしょう。

ブレッドボードへの実装をするのであれば、以下のようなT型の基板が、スペースを無駄にせずに実装できるので、オススメです。
いずれもピンヘッダは付属しないので注意が必要です。

[Wi-Fiモジュール ESP-WROOM-02 DIP化キット(秋月電子)](http://akizukidenshi.com/catalog/g/gK-09758/)
[ESP-WROOM-02ピッチ変換済みモジュール《T型》(SWITCH SCIENCE)](https://www.switch-science.com/catalog/2580/)

ユニバーサル基板への実装であれば、以下の基板がオススメです。
ESP-WROOM-02を他のマイコンボードに接続して通信部分のみを担わせるのであればシンプル版、ESP-WROOM-02自身をメインのマイコンボードとしたいのであればフル版がオススメです。
こちらもピンヘッダは付属しません。
[ESP-WROOM-02ピッチ変換済みモジュール《フル版》(SWITCH SCIENCE)](https://www.switch-science.com/catalog/2347/)
[ESP-WROOM-02ピッチ変換済みモジュール《シンプル版》(SWITCH SCIENCE)](https://www.switch-science.com/catalog/2341/)

# FlashAir
![2093.jpg](https://qiita-image-store.s3.amazonaws.com/0/74551/ebf8dbce-3093-5f30-ccde-49331d71d598.jpeg "2093.jpg")

FlashAirはデジカメで撮影した写真をWi-Fi経由で他のデバイスに転送することができるSDカードです。
なんでそんなものがココに？と思った人も多いかと思いますが、使いようによってはWi-Fi接続可能なマイコンボードとみなすこともできます。

[FlashAir Developerd](https://flashair-developers.com/ja/)

プログラムの書き込みにはPC以外必要なく、SDカード内の所定の位置にLuaのスクリプトファイルを置くだけです。
今回紹介するボードの中ではもっとも書き込み方法が簡単です。

GPIOピンを5本持ち、SPI通信機能も持っているため、他のICとの接続もできます。

また、Wi-Fi通信用のボードとしての使い方以外に本来SDカードとしての使い方もできるので、もし飽きてしまった時には再利用することができるというメリット(?)もあります。

[FlashAir 16GB(秋月電子)](http://akizukidenshi.com/catalog/g/gM-09651/)
[FlashAir 32GB(秋月電子)](http://akizukidenshi.com/catalog/g/gM-09865/)

# Arduino
![Arduino_Uno_-_R3.jpg](https://qiita-image-store.s3.amazonaws.com/0/74551/6de3169b-81dc-1c02-019f-0b90641d7e65.jpeg "Arduino_Uno_-_R3.jpg")

特に説明は必要ないくらいIoT界隈では有名なボードです。
ですが、ArduinoそものもにはWi-Fi機能はついていないため、何かしらのWi-Fi通信用のデバイスを接続する必要があります。
上で紹介したESP-WROOM-02かFlashAirを接続しUARTで通信すれば、Wi-Fi接続することができます。
ですが、そこまでしなくても、ESP-WROOM-02だけ用意すれば十分なケースが多いかと思います。
Wi-Fiに接続したいときには他のマイコンボードを利用するのがいいでしょう。

[Arduino本体一覧(秋月電子)](http://akizukidenshi.com/catalog/c/carduino1/)
[Arduino本体一覧(SWITCH SCIENCE)](https://www.switch-science.com/catalog/list/40/)

# Raspberry Pi
![100437_1024x1024.jpg](https://qiita-image-store.s3.amazonaws.com/0/74551/4688316b-7daa-0637-85db-8f2e4e96b6b9.jpeg "100437_1024x1024.jpg")

これも特に説明は必要ないくらいIoT界隈では有名なボードです。
バージョン3からはWi-Fi機能がボード上に搭載されたので、Wi-Fiに接続することを考えている場合は3を強くお勧めします。
今は品切れていますが、少し待ってから3を購入しましょう。

Googleで[検索](https://www.google.co.jp/webhp?hl=ja#hl=ja&q=raspberry+pi)すれば記事が多くヒットするのでここでの説明は割愛します。

[Raspberry Pi 3 Model B(秋月電子)](http://akizukidenshi.com/catalog/g/gM-10414/)
[Raspberry Pi 3 Model B(SWITCH SCIENCE)](https://www.switch-science.com/catalog/2650/)

# Intel Edison
![edison-photo1-1.jpg](https://qiita-image-store.s3.amazonaws.com/0/74551/7c653d43-986e-4792-b1ec-4b1a761709a1.jpeg "edison-photo1-1.jpg")

切手サイズの小ささなのにIntel Atom Processorが入っています。
Raspberry Piよりも小型なのにこちらの方が高性能です。

Wi-Fi機能もこの中に組み込まれています。
さらに多種多様なデジタルインターインターフェースまで組み込まれているという優れもの。

[Intel Edison(秋月電子)](http://akizukidenshi.com/catalog/g/gM-08569/)
[Intel Edison(SWITCH SCIENCE)](https://www.switch-science.com/catalog/1956/)

ですが、小さすぎて逆に扱いづらいので通常の電子工作ではBreakout Boardを使用する必要があります。
[Intel Edison Breakout Board Kit](https://www.switch-science.com/catalog/1957/)や[FRISKケースに入るEdison用ベース基板 Henry](https://www.switch-science.com/catalog/2258/)のような「端子を引き出す機能に毛が生えた程度のBreakout Board」を使用すると他のボードが必要になり、最終的なデバイスの大きさが大きくなりがちです。
ですので、以下のような既に多くの機能(9軸センサ、温度センサ、バッテリーチャージャー)がコンパクトに纏まったBreakoutBoardを利用するのがいいでしょう。

[Intel Edison用 9軸センサー搭載拡張基板 Petit Board](https://www.switch-science.com/catalog/2694/)

# 作りたいものの機能という面からオススメボードを紹介
いろいろなボードを紹介しましたが、作りたいものによってどのボードを利用するべきかは変わってきます。
ここでは必要な機能からどのボードがオススメなのかを紹介します。

## スイッチが押されたらHTTP通信をする程度の非常にシンプルな処理
### FlashAir
数行のプログラムをSDカードに書き込むだけで実現できます。

### ESP-WROOM-02C
マイコンに対する書き込み処理が少々面倒です。

## 関数が数個以上になってきた
### ESP-WROOM-02c
ArduinoIDEを利用して開発ができるため、ある程度複雑な処理でも開発できます。

### FlashAir
デバッグ機能がほぼないので複雑なプログラムを書き込むのは辛いです

## 画像処理などの計算量が多い処理をしたい
### Intel Edison
小型に収めたい、もしくは高性能な処理をしたいのであればIntel Edisonを使いましょう。

### RaspberryPi
価格を安く抑えたいのであればRaspberry Piを使いましょう。

# まとめ
センサーの信号をWi-Fi経由で送信したいのであれば、ESP-WROOM-02がオススメです。
画像処理やWebサーバーなどのリッチな機能が必要になったらIntel EdisonやRaspberry Piがオススメです。

FlashAirは気軽に使える感じがする一方でデバッグの手段が貧弱なので数十行以上のプログラムを開発するのは厳しい印象があります。