[PR]記事内のアフィリエイトリンクから収入を得る場合があります
スポンサーリンク

【自作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個は持つべしだ。

出力系デバイス

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

その代表例として

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

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

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

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

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

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

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

入力系

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

  • 単純なボタン、マイクロスイッチ、リードスイッチなどオンオフスイッチ系
  • 温度センサー(DHT11とか)
  • ガスセンサー(MQ-3とか)
  • モーションセンサー(HC-SR501とか)

IoTの命令伝達経路

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

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

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

サービス名ざっくり特徴処理の流れ
IFTTT
  • ほとんどあまねくサービスの橋渡しができるらしい
  • 月額料金高い
Alexa→IFTTT→いずれかサービス→ESP32などデバイス
Blynk(LEGACY旧版)
  • スマホアプリでウィジェットとして機能をつくる
  • 2000エナジー分まで無料
  • 月額課金ではないので良心的
  • 2022年時点で新規アカウント作成不可能
Blynkアプリ→(Blynkクラウド)→デバイス直結
または
Alexa→Node-REDホームブリッジ→自前サーバー→Blynkクラウド→デバイス
Blynk 2.0
  • 上記LEGACYの進化版
  • 月額課金(個人で使うにはちょっと負担大)
上記LEGACYと似ているがパソコンでウィジェット設計ができる

デフォルトで無線アップデート機能がある

Node-RED AlexaホームブリッジまたはNode-RED Googleアシスタント ブリッジ
  • Google Home用とAlexa用とサービスがある
  • 機器の登録だけできる
  • 2022年時点で完全無料
  • おそらく単独では機能せず下流にNode-REDサービスを用意する必要がある
  • 登録した機器を動かすのに自前サーバーが必要
Alexa(またはGoogle Home)→ブリッジ→Node-RED→他のサービスまたはデバイス
SinricPro
  • サービスにデバイスを登録すればすぐスマートスピーカーが認識してくれる
  • 無料登録はデバイス3台までで以降1台ごとに年額3ドル(2022年)
Alexa(または云々)→Sinricクラウド→デバイス
Arduino IoT Cloud
  • デバイス2個まで無料
  • 月$1.99で10デバイスまで
おそらくBlynk2.0と類似で機器のOTAアップデートができパソコン上でウィジェット設計可能
Adafruit
  • SinricProと同様でデバイス登録できるサービス
  • 無料登録できるデバイスはおそらく数台
Alexa(または云々)→Adafruitクラウド→Node-RED→自前サーバー→他のサービス→デバイス
BeebotteAdafruitと類似上記と類似
Alexaサービス
  • AmazonAlexaのクラウドに自作デバイスを直接登録してしまおうというもの
  • 無料で結構使えるみたいだが手続きが複雑で断念した
Alexa→デバイス

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

ソフトウェア要件

RaspberryPi3ModelB

Arduino IDE

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

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

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

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

ESPなんちゃらを使わずRaspberry Pi一本でやるっていうのであれば不要である。ただしRaspberry Piは1個6000~円とかするので何台も持てない。Raspberry Piでもzero wというさらに小型でWi-Fi機能あり技適取得済みで2000円ぐらいというコスパの良い小型コンピュータもあるが常に品薄で入手できないので考慮にいれない。

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

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

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

スマートスピーカー
AlexaまたはGoogle Home
スキル利用Sinric Pro(無料ではデバイス3個)デバイス
Arduino IoT Cloud(無料ではデバイス2個?)
IFTTT(無料では3レシピ)Blynk
Adafruit
Beebotte
その他いろいろ
Node-REDブリッジRaspberry Piに代表される自前サーバー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経由でスマートスピーカー(またはスマートホームアプリ)から命令に限定すればかなり無制限に使えるとみている。

BlynkサーバーのアプリをGitHubからダウンロードしてRaspberry Piで動かせば只で好きなだけウィジェットを作れて無限IoT機器をつくれることもわかり実現させた。

まとめ

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

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

▼ESP32なら技適OKだしAliExpressから買えばAmazonとかより時間はかかるものの安く買える。

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