【自作IoT沼】デバイスをできるだけ安く量産する方法の整理

Blynk→Raspberry Pi→WOLわかったつもりになってるけどまだ「群盲象を撫でる」の一人だね。

自作IoTを量産する方法について考えたのでここに残しておく。完璧な考察ではなく自分が知っている範囲の知識を集めてあるだけなので特にIoT対応クラウドサービスの種類について抜けがあるのは仕方ない。

ではいくつかIoT機器を自作してみたなかで量産する方法について述べていく。

スポンサーリンク

IoT機器の量産て(機能を欲張らなければ)実はそんなに難しくない

Wi-Fiなし旧型ルンバを遠隔操作

当初は右も左もわからずいったい何から始めれば良いか。そもそも自分で作るなんて夢のまた夢だったIoT機器であるが、1年程度ネットの知見を集めまくるうちに何個も作るようになり、また定額費用はほとんどかからずほぼ無料に近い維持費でいけている。

IoTとくにホームオートメーションの肝は「マイコンボードにどうやって命令を送るか」だと思っている。

そこさえなんとかなればリレーをオンオフするだとかサーボをオンオフするだとか気軽にできると理解している。

IoT量産に必要な機器

マイコンボード

言うまでもなくまずはマイコンボードが必要だ。いくつか出回っているお手軽デバイスがあるがやはり金の乏しい自分なりに無意識にいつもチョイスしている機器でいうと

  • ESP32(800円前後)(2022年3月時点でまだ未経験)
  • ESP8266(500円前後)
  • Raspberry Pi(5~6000円より)

あたりが妥当なところだろう。っていうかまだ他のもの知らない。あとはせいぜいWi-Fi機能なしのArduinoUNOでドライブレコーダーリモート首振り機能つくったぐらい。

ほかにも当然ながらマイコンボードといったり超小型コンピュータなどあるが1個500円前後で入手ができる上記のESP8266あたりがいちばんコスパとしてベストなのではないだろうか。(ただし技適未取得という問題が残るが)

ほかのデバイスとして使ったことはないがM5Stackという超小型コンピュータがあるが価格が4桁になるので量産するにはちょっと値が張ってしまい負担が大きい。

スマートスピーカー

IoTでスマートホーム、特に声で指令というのを実現するにはスマートスピーカーが必要になってくるのでAlexaまたはGoogle Homeのなにがしかは1個買っておく必要がある。

最初はスマホのAlexaアプリやらグーグルアシスタントアプリがあればスマートスピーカーは必要なくね?って思っていたが自分が家に不在中にスマートホームを動かしたいと思ったらAlexaやらGoogle Homeは必要になるっぽい。

これについては少々話が長くなるので後でもう少し述べる。とにかくとりあえずスマートスピーカーは1個は持つべしだ。

B07PFFMQ64
Echo Dot (エコードット)第3世代 – スマートスピーカー with Alexa、チャコール

¥4,980(2022/03/14 16:10時点の価格)
平均評価点:5つ星のうち4.3
>>楽天市場で探す
>>Yahoo!ショッピングで探す

 

出力系デバイス

スマートホームを実現するにあたってアウトプットが何かしら出せないと面白くない。センサー系ばかり配置して家の中の温度やら湿度やらをスマホで知るだけでもいいかもしれないがそのデータを基にエアコンを動かしたり扇風機を動かしたりといったことをさせたいとしたら出力系デバイスが必要になる。

その代表例として

  • サーボ・・・物理的にスイッチ押すとかウィンチを回すとか鍵のサムターンを回すとかの役目
  • リレー・・・コンセントとかの電源制御の役目
  • 赤外線ランプ・・・エアコンやテレビやリモコン式照明のコントロール

余談:スマートロックについて

最初のとっかかりがスマートロックを自分で作れないものかと調べ始めたところからだったのでスマートロックを作るやり方についてちょっと述べておく。

スマートロックを作るのにいろいろ調査した結果、そう難しくはないとわかったのだが一番むずかしいのはサムターンを回す機構だ。

以前もスマートロックを作ろうとRaspberry Piでいろいろ準備し始めて結局最後になってサムターンを回す機構が実現できずにスマートスイッチにしたというオチがあるが、つまり物理的な機構が数倍あるいは数十倍難しいということがいえる。

その機構をつくるのに考えられる手段として以下のようなものが挙げられる。

などなどあるがとにかく見苦しくなく鍵を回す構造を作るのは難しい。

入力系

入力系として簡単なものから少々難しそうなものまで調べていくといろいろあるが、

  • 単純なボタン
  • 温度センサー(DHT11とか)
  • ガスセンサー(MQ-3とか)
  • モーションセンサー(HC-SR501とか)

IoTの命令伝達経路

SwitchBotスイッチみたいにスケジュールでスイッチ入れるラズベリーパイ

まずはAlexa(またはGoogle Home)に言葉で喋って家の中の機器を動かしたいのでAlexaに伝える。

次にAlexaからどうやって各自作機器に命令を伝えるかであるがいくつか方法がある。こういう仲介をする仕事をするデバイスまたはサービスをIoT界隈ではブローカーと呼ぶらしい。

サービス名ざっくり特徴処理の流れ
IFTTT
  • ほとんどあまねくサービスの橋渡しができるらしい
  • 月額高い
Alexa→IFTTT→いずれかサービス→ESP8266などデバイス
Blynk(LEGACY旧版)
  • スマホアプリでウィジェットとして機能をつくる
  • 2000エナジー分まで無料
  • 月額課金ではないので良心的
  • 2022年時点で新規アカウント作成不可能
Blynkアプリ→(Blynkクラウド)→デバイス直結
または
Alexa→Node-REDホームブリッジ→自前サーバー→Blynkクラウド→デバイス
Node-RED AlexaホームブリッジまたはNode-RED Googleアシスタント ブリッジ
  • Google Home用とAlexa用とサービスがある
  • 機器の登録だけできる
  • 2022年時点で完全無料
  • 完全理解していないがおそらく単独では機能しない
  • 登録した機器を動かすのに自前サーバーが必要
Alexa(またはGoogle Home)→ブリッジ→Node-RED→他のサービスまたはデバイス
SinricPro
  • サービスにデバイスを登録すればすぐスマートスピーカーが認識してくれる
  • 無料登録はデバイス3台までで以降1台ごとに年額3ドル(2022年)
Alexa(または云々)→Sinricクラウド→デバイス
Arduino IoT Cloud
  • デバイス2個まで無料
  • 月$1.99で10デバイスまで
調査中
Adafruit
  • SinricProと同様でデバイス登録できるサービス
  • 無料登録できるデバイスはおそらく数台
Alexa(または云々)→Adafruitクラウド→Node-RED→自前サーバー→他のサービス→デバイス
BeebotteAdafruitと類似上記と類似
Alexaサービス
  • AmazonAlexaのクラウドに自作デバイスを直接登録してしまおうというもの
  • 無料で結構使えるみたいだが手続きが複雑で断念した
Alexa→デバイス

上記の表で整理したが理解が間違っているものがあるかもしれない。特にAdafruitとBeetotteあたりはアカウントは作って機器登録まではやってみたもののデバイスと完全接続までは果たせなかったのでどういう動きをするのか理解しきれていない。

ソフトウェア要件

RaspberryPi3ModelB

Arduino IDE

これはESPなんちゃらというIoTデバイス(Wi-Fi機能やBluetooth機能を持つ)にプログラムを書き込んで動かす開発環境でほぼC言語またはC++みたいなものでつくる。

C言語の経験があれば使えるしライブラリが豊富でしかも基本的にぜんぶタダなので申し訳ないくらい。

さすがにパソコン未経験者からスタートしたらかなり習得には時間がかかるだろうし、パソコンの扱いに慣れていてもプログラミング言語未経験でもきつかろう。

幸い自分は若い頃に業務でC言語ほかを経験していたのと、今に至るまで業務で必要なものをEXCELやらACCESSのVBAでちょこちょこ作っているから可能だった。

ESPなんちゃらを使わずRaspberry Pi一本でやるっていうのであれば不要である。ただしRaspberry Piは6000~円とかするので何台も持てない。

スマートスピーカーからデバイスへの伝達手段イメージ

スマホを監視カメラにしてリモートで首振り

左が上流で右へいくほど下流で最後はデバイス

スマートスピーカー
AlexaまたはGoogle Home
スキル利用Sinric Pro(無料ではデバイス3個)デバイス
Arduino IoT Cloud(無料ではデバイス2個?)
IFTTT(無料では3レシピ)Blynk
Adafruit
Beebotte
その他いろいろ
Node-REDブリッジ自前サーバーBlynk
その他いろいろ

AdafruitとBeebotteについては自信がない。その他もっとメジャーなサービスがあるかもしれないが知らない。

自前サーバーってなんだよ?について

浴室乾燥用サーキュレーターのIoT

上記で自前サーバーと書かれているところがある。これはホームオートメーションしたい場所、つまりここでいえば自宅にパソコンを起動しておいてNode-REDのサーバーアプリを常時起動しておくとブリッジからのメッセージを他のクラウドサービス(例えばBlynk)に伝えてデバイスまで伝達させることができる。

通常のパソコンを常時起動しておくと電気使用料がかなりかかってしまうのでここではRaspberry Piをつかっても良い。っていうかRaspberry Piにするべき。

直接ラズベリーパイ使えばよいのでは?

それならIoT機器をすべてRaspberry Piにすれば面倒な伝達などひとつ減らせるのではないかと考えるかもしれない。

それでもよいが複数箇所へIoT機器を配置しようと思ったときにはRaspberry Piでは価格が6000円またはもっと高いし、Raspberry Piはちょっとしたパソコンレベルのスペックなのでもったいないのだ。

IoT機器はもっと機能を絞って低価格のものが望ましい。

Raspberry PiをNode-REDサーバーにするのが目下のところベスト

Node-REDなら今のところ無料かつ無制限でデバイスでも機能でも増やせるので助かる。

またそのNode-REDと密接に関連しているスマートホームブリッジサービス(Node-RED Alexa Home Skill Bridge  ,  Node-RED Google Assistant Bridge)が現在無料で利用できるのも嬉しい。

そのうち有料になるかもしれないが今(2022年)は大丈夫。

つまりなぜベストなのか、どうやって安くIoT機器を量産していくかというと

  1. 例としてスマートプラグを作る
  2. マイコンボード内部ではBlynkライブラリでBlynkからの命令を待つ
  3. Node-RED Alexa Home Bridgeに登録する
  4. Raspberry PiでNode-REDサービスを動かしておく
  5. Raspberry PiのNode-REDでAlexaからの伝達フローでスマートプラグに指令を送るようにする

このやり方の利点は

  • Raspberry Piはイニシャルコストのみかかるだけ
  • Raspberry Pi1台動かしておくだけで2台3台など不要
  • IFTTTとか不要
  • なんならRaspberry Piをスマートスピーカーにしてしまうこともできる(難易度高すぎて今だに成功してないけど)

これでスマートスピーカー(ここではAlexa)に伝えた指令からスマートプラグのオンオフができるようになる。

ちなみにBlynkでは無料で登録できるウィジェットには制限があるが、裏技としてバーチャルピン番号は無料でいくらでも(?)使えるのでスマホアプリでウィジェットとして使うのを我慢し、Node-RED経由でスマートスピーカー(またはスマートホームアプリ)から命令に限定すればかなり無制限に使えるとみている。

B01NHEBAN5
I-O DATA Raspberry Pi メインボード Bluetooth(R) Wi-Fi対応モデル Raspberry Pi 3 model B 安心の1年間ハードウェア保証 UD-RP3

(2022/03/12 16:26時点の価格)
平均評価点:5つ星のうち4.4
>>楽天市場で探す
>>Yahoo!ショッピングで探す

まとめ

つまり我が家ではRaspberry Piを1台ホームオートメーションの仲介サーバーとして起動しておいて、そいつは玄関灯のオンオフも承っているし、浴室ファンの昇降も承っている。でもってAlexaやGoogleアシスタントからの指令が来たら主にBlynkクラウドに転送して他の細かいIoTデバイスを動かすことに一役買っている。

という感じでこれからもいろいろIoT機器を格安(ボード代とサーボ代ぐらい)で量産できそうだ。

タイトルとURLをコピーしました