IoT時代の電子工作を考える
電子工作なんてちょっとレトロで地味な趣味、ちょっとそんな雰囲気ないですか?
電子工作といえば、自作のラジオを作ったり、ラジコン作ってみたり、ですが最近は探せば一昔前ならなかったようなものもキットとして手に入るようになっていますし、世間はスマホにWeb、作るのならハードウエアよりソフトウエア、そこからさらに一歩進んでノーコード・ローコードの世界が広がってるよ!時代は作る側より運用側がメインだよ!なんて時代になってきている気がします。
メインストリームはそんな感じなんですが、そんな若干落ち目ムードもある電子工作+プログラミングの知見が逆に上り調子になってそうな分野と言えばIoTです。
インターネットは従来は通信端末やそれを使う人同士の情報のやり取りがメインでしたが、人と機械・通信機器と機械・機械同士をネットを介してつなげるIoTでは、従来よりやれることの幅が大きく広がるというのがその背景です。
そんなわけで、今回はマイコンを無線で操作することを考えてみようと思います。ただし、いきなりインターネット経由は多少怖いのでまずは前段階として、Bluetoothでマイコンをスマホから操作してみようと思います。
自作するならどんな構成?
とりあえずIoTって言っても幅広いです。まずは無難に、こんな感じの接続イメージでマイコンを制御してみたいと思います。

スマホから制御できる機器っていっぱいあると思うので、技術的には当然可能として、知りたいのはどんな①フレームワーク使うの?②どのくらいの規模のプログラミングすればいいの?って点です。
上記の視点で調査してみました。
スマホアプリ(アンドロイド)
数日間ネットで調べてみて分かったことは、Bluetoothで相手と情報をやりとりするアプリが開発できればいいって事みたいです。
考えてみれば、それはそうか。まあ、ここからプロトコルとか細かく検討していくと色々あるんでしょうけど、基本は単にBluetooth通信するアプリってだけですもんね。ハードウエア制御はマイコンがやるわけだし。
細かいのを入れるとスマホ向けの開発環境は大量にあるみたいですが、とりあえず(私の目に止まった)有名どころとしては、以下があるみたいです。
名称 | 言語 | 備考 |
Android Studio | ・Java ・Kotlin | 公式 (google) |
Xamarin | C# | Visual Studioから使える |
React Native | React.js | Facebook製 Instagramはこれ |
ReactはJamascriptの経験が浅いので私にとっては特にメリットなさそうです。
となると、元々慣れてる開発環境はVisualStudioなので、そっちにするか、それとも慣れれば間違いはないであろう公式使うか。
ただ、ゼロ経験からいきなり本格的に作っていくのも効率が悪そうなので、何かもっとライトな開発環境探してみたところ、こういうのもあるみたいです。
スマホアプリをグラフィカルな環境で作れるツールキットイメージみたいな感じなんですかね?画面イメージを見た限りではMicro Bitのプログラミング環境みたいな雰囲気です。
どれが一番いいのかは慣れの要素もありそうなので(少なくとも3つとも世間では実績あるわけですし)、まずは自分が慣れているVisual Studioで行ってみようと思います