🌏

IoT その1(温湿度センサーのデータをESP32のWi-Fi経由でThingsBoard Cloudで確認する~知識編~)

2023/05/01に公開

こんにちは、Ideagearの鈴木陽介です。

今回は、センサーで検知したデータをWi-Fi経由でクラウドにつなぎ、既存のIoTプラットフォームで確認する方法をご紹介します。

ただ、記事が長くなりそうなので、知識編と実践編に分け、今回はまずは知識編として、IoTプラットフォームとは何ぞや?どのようなセンサーやデバイスを使るのか?といった予備知識のご案内に注力したいと思います。

そんな話はいらんと。とっとと本題に入れという方は、直接下記記事をご覧ください。
https://zenn.dev/suzuky/articles/704b3f5ead9cd2

はじめに

今回は以下の3つのアイテムを使います。

1.DHT11(温湿度センサー)
2.ESP32(Wi-FiとBluetoothが具備されているマイコンボード)
3.ThingsBoard(オープンソースのIoTプラットフォーム)


写真の左の大きいのがESP32で、右の青いのがDHT11です。

DHT11

まず、温湿度センサーですが、電子工作でよく使われる一般的なもので価格も安価です。
https://akizukidenshi.com/catalog/g/gM-07003/
秋月さんではセンサー単体で480円

https://www.amazon.co.jp/s?k=DHT11&__mk_ja_JP=カタカナ&ref=nb_sb_noss
アマゾンでも同じくらいで、基板付きのモジュール化されているものでも1,000円はしません。

※本記事を書いている2023年5月1日時点での価格

Arduino系のマイコンボードを使ってDHT11を動かす記事はネットで多数で回っていますので、気になる方はそちらもご覧ください。(もちろん本記事をご覧いただいても使い方がわかります。)

ESP32

次に、ESP32ですが、何と言っても最大の特徴は、安価(日本国内だと約2,000円)なのにWi-FiとBluetoothが搭載されており、なおかつArduino IDEを使ってソースコードの編集やマイコンボードへの書き込みができることです。

つまり、超カンタンで使いやすいArduinoとほぼ同じように使用でき(書き込み時に多少テクニックが必要なためまったく同じではありませんが)、さらにBluetoothモジュールやWi-Fiモジュールを別で購入したり、その配線やソースコード(ライブラリーは使います)を気にすることなく、BluetoothもWi-Fiもデフォルトで使えてしまうという優れたシロモノです。
※一世代前のESP8266はWi-Fiのみ具備しています。

で、今回やりたいことは、温湿度センサーで検知した値をマイコンで読み取り、それをWi-Fi経由でブラウザ(クラウド)で確認することです。そして、その「マイコン」にESP32を使うことで、これだけで済ましてしまおうという魂胆です。詳細は後述します。

IoTプラットフォームとは?

まず、IoT(Internet of Things)はモノのインターネット、つまり、モノをネットにつないで何かやろうという話です。たとえば、ネット経由で遠隔でモノをコントロールしたり、センサーで検知した値や位置情報などのデータを共有することで、今後は5Gの普及とも相まって、様々なサービスに応用されていくことが考えられます。また、IoTにさらにAIを加えたAIoTという造語もあります。

では、IoTプラットフォームは何か?というと、カンタンに言えば、IoT、つまり、ネットでつないだ様々なモノをPCのブラウザやスマホのアプリなどでコントロールするためのシステムのことです。

このIoTプラットフォームについては、インターネットプロバイダーのごとく多種多様で玉石混交と言いますか、多くの会社がサービスをリリースしており、まさにIoTプラットフォーム戦国時代といった様相を呈しています。

既存サービスの一例を挙げますと、以下のようなものがあります。

■国内プラットフォーム
Symphonict(NECネッツエスアイ株式会社)
SORACOMプラットフォーム(株式会社ソラコム)
Things Cloud(NTTコミュニケーションズ株式会社)
Vieureka(Vieureka株式会社)

■海外プラットフォーム
Amazon / AWS IoT
Microsoft / Azure IoT
IBM / Watson IoT Platform
Google / Google Cloud Platform(GCP)
シーメンス / MindSphere
GEデジタル / Predix

詳細は下記記事をご覧ください。
https://www.aspicjapan.org/asu/article/2504
https://www.astina.co/media/2456/

ただ、実際にセンサーをネット経由で操作するといっても、サーバー上にそのシステムを構築する必要がありますが、それを一個人はもちろん、一企業で構築するのは人的リソース的にもコスト的にも困難です。上場しているような大企業ならまだしも、それ以外の大多数(ちなみに日本の場合は7割が中小企業)の組織や個人は既存のIoTプラットフォームを活用することが理にかなっています。

中国のIoTプラットフォーム

ここで一つ、中国のことですが、実例を挙げたいと思います。

広東省の東莞(省都である広州と香港の隣にある深センとの間に挟まれた工場が多く集まる都市)にある知り合いの工場では、最初は自社独自のIoTシステムを構築し、顧客にサービスを提供していたのですが、不具合が多過ぎてアップデートを断念しました。

結局、彼らは自前のIoTシステム構築をあきらめ、Tuyaという中国大手のIoTプラットフォームを採用することを決めました。今では、自社製品の制御基板にTuyaのWi-Fiモジュールを載せることで、TuyaのIoTプラットフォーム経由で顧客にIoTサービスを実施しています。
https://www.tuya.com/cn/

余談ですが、Tuyaは以前、深セン華強北(日本の秋葉原のような街)でフラッグシップショップを運営しており、私も何回か足を運んで取引先と共に説明を受けたことがあります。コロナ禍の影響か、2年ほど前にショップはクローズしてしまいましたが、コロナ前の時点でも世の中に出ているかなりの数の家電や電子製品にTuyaのWi-Fiモジュールが使われているのがわかりました。

ThingsBoard

下記はThingsBoardのトップページです。
https://thingsboard.io/

下記まとめサイトによると:

『|概要
「ThingsBoard」は、「データ収集」「データ処理」「データ視覚化」「デバイス管理」のためのオープンソースIoTプラットフォームです。

|マイクロサービス
マイクロサービスアーキテクチャによりThingsBoardクラスタを構築することで、最大のスケーラビリティとフォールトトレランスを実現します。

クラウドとオンプレミスの両方の展開をサポートしています。』

とのことです。
https://majisemi.com/topics/tool/635/#③マイクロサービスアーキテクチャ「ThingsBoard」

何やら小難しい単語がいっぱい出てきましたが、、、

まず、マイクロサービス(あるいはマイクロサービスアーキテクチャとも呼ばれる)とは、アプリ開発の手法の一種で、大規模なアプリをマイクロサービスによって分割することで、それぞれが独立した小さな単位のアプリとしてユーザーからのリクエストを処理し、レスポンスを返すことができます。会社でいうと事業部制のようなものですね。

次に、オンプレミスとは、クラウドの対義語にあたるもので、サーバーやネットワーク機器などを自社で保有して運用することです。

ところで、私がThingsBoardを使い始めたのは先月からですが、その前の昨年11月にCayenneという別のIoTプラットフォームを試したことがあります。
https://developers.mydevices.com/cayenne/features/

こちらはWi-Fi経由でなく、LANケーブル経由でネットにつなぎましたが、IoT環境の構築も操作も非常に簡単だっため、IoTプラットフォームについては良い印象を持っていました。

下記動画は、昨年11月にCayenneのプラットフォーム経由でマイクロサーボモーター(SG90)時のものです。
https://twitter.com/Ideaport_Suzuky/status/1595281422855548928

ただ、ここが結構重要なポイントですが、CanyenneはmyDevices社が運営するサービスである一方、ThingsBoardはオープンソースだという点です。

Cayenneは世界中のあらゆるセンサーやデバイスをいかにカンタンにIoT化するかという点にポイントをおいているようで、他のIoTプラットフォームとの連携はあまり考えらていないようです。ただ、ほとんどのプラットフォームはこちら側の考え方だと思います。

このように、オープンソースではないIoTプラットフォームですと、他社と「競合」することになりますが、ThingsBoardはオープンソースだけにそれをほぼ気にする必要がありません。このため、たとえば、AmazonのAWS IoTやMicrosoftのAzure IoTなど他のIoTプラットフォームとも連係しやすくなっています。

まとめ

今回はIoTプラットフォームに関する予備知識についてまとめました。

では、次回はセンサーやマイコンを使った実際の配線やソースコード、ThingsBoard Cloudの使い方についてご説明します。

Discussion