ESP-WROOM-02開発ボードをlittleBitsモジュール化してMilkcocoaと連携する CocoaBit 作りました。

ようやくブログでお見せ出来るレベルでは安定稼働して2台出来上がりました!ESP-WROOM-02開発ボードをlittleBitsモジュール化してMilkcocoaと連携する CocoaBit(ココアビット) なるものを作りました。(まだ個人制作です)

例えばこんな仕組み。

CocoaBitが2つがMilkcocoaで連携しています。上部のCocoaBitはボタンが押されるとMilkcocoaにデータが送信され、下部のCocoaBitがMilkcocoaでのpushイベントを受信してLEDがONになります。

cocobit-first-contact_1

こちらの、実際の動作動画です。

このように、CocoaBitは単体でWifiにつながりMilkcocoaにつながるので

  • KoshianBitでBluetooth入力データを取得したものをMilkcocoaに通知する
  • littleBitsで取得した入力センサーデータをMilkcocoaに記録する
  • スマホや他のデバイスの入力アクションでMilkcocoaを経由してlittleBitsが反応する
  • 他のWEBサービスのアクションからMilkcocoaを経由してlittleBitsが反応させる
  • littleBitsの入力アクションからMilkcocoaを経由して他のWEBサービスと連携する

といったことが気軽にできるようになります!

CocoaBitを作った背景

CocoaBitを作った背景ですが、いままでもこのブログでお伝えしていたとおり、Raspberry Pi+Arduinoモジュールな方向でMilkcocoaに色々とつないで楽しかったものの、同時に「もっと小型に、もっと気軽に、littleBitsのモジュールとしてネットにつながるようなものをつくりたい」という想いから1年ほど考えていました。

その後Milkcocoaに出会いまして。これはおもしろい!ということで、ネットにつながったあとはどうする?という点では、Milkcocoaでやろうという狙いは定まりました。

しかし肝心のlittleBitsからネット連携。CocoaBitに至るまでには試行錯誤として、Raspberry Pi2からのRaspberryPi Zero、ArduinoモジュールでのArduino Micro 5V 16MHz、などいろいろ試していたものの、どうしてもWifiなど追加で必要でかさばってしまう悩ましさがありました。(早くネットつなぎたいのに!)

そこで悩んでいたところ、去年の中ごろから追い風がでてきます。

かのWifiモジュールESP-WROOM-02がArduino IDEでも開発可能かつ技適OKとなった一報のを皮切りにESP-WROOM-02開発ボードが颯爽と登場。Milkcocoa ESP8266 SDKもリリースされて好機到来ということで、ちくちくと制作していた次第です。

自分目線でしかない話としては日本でのlittleBitsをとりまくちょっとした事情も影響していますが、そのあたりは試行錯誤の話と合わせて、もしかしたらウラ話としていずれ話してみたいと思います。(話す機会があればですが)

ただ強調したいのは、その事情がなければ自分がデバイス連携において、このラインまで触ろうとしなかったと思うのでとても感謝しています。

CocoaBitの名前はいつかんがえたか

実は先月3/23のIoT初心者向けハンズオン Milkcocoa Meetup vol 9 のときに、以下のようなCocoaBitプロトタイプをMilkcocoa&littleBitsな方々に見せつつ、

cocobit-first-contact_2

そこから おー!いいすねー! と盛り上がりながら、ウフル川野さん・デジタルハイク浅川さん・KORG桑野さんと なんか名前つけたいっすね!と「そうだCocoaBitで行こう!」ということになった次第です。

ざっくりとした中身の動きを紹介

PERFモジュールでできてます

まだブラッシュアップすべき点はいろいろあるのですが、ざっくりとした中身の動きを紹介をします。

このように現在は、littleBitsのPERFモジュールをベースにしています。HARDWARE DEVELOPMENT KITも3回ほど購入しました^^;

cocobit-first-contact_3

こちらにピンヘッダをつけたESP-WROOM-02を装着しつつ電源をlittleBits側から供給しています。こちらの素敵なボード「Board1 ver.1.0」にあるように、「きれいな3.3V」という きれいなジャイアン にも似た表現に共感する程度には電源問題の試行錯誤はありましたが、なんとか着地できました。(このあたりESP-WROOM-02よもやま会みたいなものがあったら、ぜひワイワイ話したいです。)

Wifiの接続もアクセスポイントモードでブラウザから設定!

Wifiの接続についてはESP8266 (ESP-WROOM-02) でWi-Fi使用時のSSID/パスワードをブラウザで設定できるようにするナレッジを参考にさせていただいて、以下のようにWi-Fi使用時のSSID/パスワードが設定できます。

cocobit-first-contact_4

地味にMilkcocoaロゴのSVGをHTMLソースに埋め込んでますが、しっかり表示されていますね。こういったところも今後の設定画面レイアウトにおいての使い勝手向上に夢を感じます。なお、下部のMilkcocoa Settingは仮のもので、まだArduino IDEからしか設定はできませんが、いずれはWifiとともに設定が可能にする予定です。

すでに便利すぎて手放せない機能となっています!

リセットスイッチをカチッと押してIO0(あいおーぜろ)ボタンを押すとアクセスポイントモードになり、スマホからESP-WROOM-02にWifiをつないでアクセスすれば設定可能です。

cocobit-first-contact_5

同時にESP-WROOM-02のさまざまなナレッジを上げていただいている、先行の方々に感謝申し上げます。ほんと助かりました。

おわりに

cocobit-first-contact_6

まだちゃんと動くCocoaBitは2台しかないですが、ブラッシュアップ予定としては、

  • いまはデジタル値オンリーだがTOUTのほうのアナログ値も取れるようになったので対応したい
  • Milkcocoa SettingもArduino IDEでの固定値でなくブラウザから設定できるようにしたい
  • はんだづけがホントいつもヒヤヒヤするし錬成失敗もあってESP-WROOM-02が可哀想なのでガーバーデータでやってみたい
  • PERFモジュールが在庫が少なく手に入りにくいため、BITSNAPS+基盤でもつくれないかも検討中(BITSNAPSは自由になるところもあるのでそういう意味でもやってみたい)
  • 三端子レギュレータが大きいのでもっとコンパクトにしたい
  • ブラウザ設定の画面を整えたい

などなど、いろいろと良くしていきます!

現状は、まだ個人制作ですが、いずれ整ってきたら量産したり、みなさんで触れたり、たくさん動かしたいなーとも考えています。

それではよき littleBits & CocoaBit & ESP-WROOM-02 & Milkcocoa Lifeを!