IoT デバイスのつくり方入門 ~機器とセンサーの選び方|研修コースに参加してみた

今回参加したコースは IoT デバイスのつくり方入門 ~機器とセンサーの選び方 です。
DX で IoT / AI は欠かせない技術となりました。 とはいえ IoT には基板を含めたデバイスの開発やデバイスとの通信なども含まれ、普通のアプリケーション開発よりもスタック (層) の深みが違います。
そこで、このコースでは主にアプリケーション開発者向けに、 IoT ではどんな技術 (層) が必要とされるのか、特に馴染みが薄い機器、マイコンやマイコンボード、センサーを中心に IoT デバイスの開発を解説いただきました。そして最終的にはクラウドに接続して AWS IoT Core を使った構成を学びました。
コースの中では、実際の機器をデモしながら観せていただくことが多く、普段馴染みがなかっただけに、縁遠かった IoT を身近に感じられました!
では、どのような内容だったのか、レポートします!
もくじ
コース情報
想定している受講者 | 特になし |
---|---|
受講目標 |
|
講師紹介
講師は AI / IoT だけでなくフルスタックに登壇される 植田崇靖 さんです。

「電子回路から機械学習まで、学ぶことが楽しい!」
今日のコースはマイコンボードとセンサーを中心に解説し、後半では実際にその IoT デバイスを見てもらいます、とお話になってコースがスタートしました。
IoT に必要なもの
まず、 IoT を簡単に確認しました。
- IoT とは、「モノのインターネット( Internet of Things )」
- 「すべてのモノがインターネットを通じて結びつく」というのが IoT の定義
最近ではデータ収集に IoT のデバイスがよく使われています。
- センサー等を利用して小さなデータを大量に取得する
- 小さなデータとは、例えばスイッチの ON / OFF を記録したタイムスタンプのデータなど(数バイト程度)
- こういった雑多なデータが集まって大量のデータになる = ビッグデータ
- IoT の機能を有したデバイス同士が互いに情報をやり取りする場合もある
続けて、 IoT に登場する技術 (層) を紹介いただきました。
- IoT デバイス
- ゼロから作ることもあれば、既存の設備にアドオンで設置するデバイスをつくることもある
- ネットワーク
- デバイス – サーバ間のネットワークへの不正アクセスや盗聴を防ぐ (これは他のアプリケーション開発でも同じ)
- 既存のネットワークを使うことが多い
- 温度などのデータなのでそれほど機密性の高いものでもない
- データベース
- データストアには NoSQL (特にドキュメント DB 、 AWS であれば DynamoDB ) をよく使う
- データは構造化されておらず、形式 (型やフィールド) も変わることが多く RDBMS だと使いにくい
- データ解析
- 収集したデータをもとに解析 -> 機械学習で学習モデルを作る
- データの分類や予測に使う
通常のアプリケーション開発に比べて、非常に学習する層が厚く、幅が広いですよね。
ここからはどのような IoT の機器を使って、どのようなデータが収集できるのか、ということを掘り下げます。
データを収集する
「データを収集する」のは簡単そうに聞こえますが、 実はそうではありません。
- 数値データを収集する
- 例えば、温度は環境センサー、明るさは照度センサーを使うが、そのままではデータが取得できない
- センサーの返り値はアナログ ( ex. 電圧の変化) もしくは デジタル ( 0 と 1 )
- 温度などの数値が返ってくる訳ではない
- 返り値をもとに計算しないといけない
- その計算や表示、伝送のために PC の代わりにマイコンを使用する
- マイコンも実は複雑なので、簡単に操作できるマイコンボードが使われる
センサーでいい感じに数値が取れないとは知りませんでした。だからマイコンが必要なんですね。また、そのマイコンもマイコンボードと、ほぼ一緒のように思っていたのですが、全然違いました。 馴染みがないにもほどが過ぎますかね … 。
このマイコンボードはまた後に詳しく解説します。
データをアップロードする
Internet of Thnigs というからにはインターネットに繋げます。その「収集したデータをアップロードする」方法を解説いただきました。
- IoT デバイスをネットワークの Gateway に接続
- 最近のマイコンボードは無線 LAN 機能がついている
- ライブラリを使うと簡単に利用できる
- 屋内だとルータに繋げ、屋外だと LPWA (Low Power Wide Area 。規格のこと) に対応した Sigfox などに繋げる
- 最近のマイコンボードは無線 LAN 機能がついている
- 最近では自前でサーバ構築してアップロードするのではなく、各種サービスを利用することが多い
- クラウドサービス ( SaaS ) に繋げて保存と視覚化まで行う ( Ambient など)
- AWS などのようなクラウドにアップロードして分析まで行う
なお IoT デバイス専用のデータ通信サービスも増え、伝送量や伝送回数に制限があるものの、 2 年間で数千円〜 1 万円ぐらいの安価で使えます。
IoT デバイスを構成する機器とセンサー
これまでのことを整理すると、 IoT デバイスを作るには以下が必要です。
- マイコンボード
- センサー
- 通信モジュール
ここからそれぞれを深堀りします。
代表的なマイコンボード
マイコンボードとして
- Raspberry Pi (ラズベリーパイ)
- Arduino (アルデュイーノ)
- Mbed (エンベッド)
がよく使われ、日本では上から下の順番で人気があります。
実際に実物を紹介いただきながら、それぞれ解説いただきました。
Raspberry Pi ラズベリーパイ
- マイコンボードではなく Linux ( Ubuntu ) を搭載したパソコン
- もともとは発展途上国向けの教育用パソコンとして製造
- Raspberry Pi のターミナルで開発可能 ( SSH 接続も OK なのでそちらが主流)
- USB や SD カードのスロットなど様々なポートがある
- ソフトウェア開発者からすると使いやすい
- マイコンではないため消費電力が多く、熱がこもりやすい (ヒートシンクカバーはこのため)
- マイコンボードとして使いやすい製品も出てきた
- パソコンなので対応言語も多い ( C 言語, Python, PHP など)
model 4 はヒートシンクカバーをつけて中身が見えなくなった
Arduino アルデュイーノ
- マイコンボードらしいマイコンボード
- オープンソースハードウェアとして設計がクリエイティブ・コモンズで、 Arduino IDE が OSS としてそれぞれ公開されている
- 対応ライブラリがたくさんある
- 互換機もたくさんある ( M5Stack が有名)
Arduino の様々な互換機 - プログラミング言語は C 言語風の Arduino 言語を使用
- M5Stack では加えて Python も使える
Mbed
- Arm マイコン搭載
- 実運用でマイコンボードではなくマイコンを使うときは互換しやすい
- オープンソースハードウェアとして公開されている
- ブラウザで動くオンライン IDE で開発
- C / C++ で書く
レイヤが低くなると、非力なマシンスペックになるので、やはり C 言語を使うことが多くなりますね。
代表的なセンサー
続いて、センサーについても代表的なものを、実物を見ながら解説いただきました。
距離センサー
- 赤外線 (画像左) / 超音波 (画像真ん中) / レーザ (画像右) で測定
- それぞれ特徴があるので用途がわかれる ( ex. 屋内、屋外、正確さ etc.)
加速度センサー
- ジャイロセンサーと一緒に使われることが多く、傾きを取っている
- 姿勢制御によく使われる
光電センサー
- 装置の生産数量数などを数えるときによく使われる
環境センサー
- 気温や湿度などを測定するときに使う

その他、輝度センサー、埃のセンサー、人感センサーなどを実物とともに紹介いただきました。

どういう仕組で測定しているのか、細かに説明されたので、非常に親しみやすいものでした。
IoT デバイスを構成する最後の要素、通信モジュールについても、前段のデータのアップロードで触れた、屋内・屋外での通信について詳しく解説いただきました。
IoT デバイスのつくり方
ここからは IoT デバイスをゼロから作るときの手順です。
- ウォーターフォールと同じような流れ
- 要件定義
- 現地の状況は千差万別なので最適な センサー / マイコンボード / 通信モジュールを選ぶ
- センサーのメーカーサイトの実例が参考になる
- センサーには仕様書があるので確認する
- 組込の場合、要件定義で試作機を開発 -> 動作試験を行う
- 現地の状況は千差万別なので最適な センサー / マイコンボード / 通信モジュールを選ぶ
- 機械設計
- 試作機を機械設計して量産したり、防塵、防水などのケースをつける
- 電気回路
- 主に電源設計を行う。ここがとても難しい
- 既存の電源を使うのが難しいため
- 過電流などにも注意
- 主に電源設計を行う。ここがとても難しい
- 電子回路設計
- 試作用の基盤から専用の基盤を製造
- P板.com など Web で注文
- 試作用の基盤から専用の基盤を製造
- マイコン製造
- IoT デバイスを量産するときなどは試作用のマイコンボードからマイコンに切り替える
- プログラムの書き込み装置も専用にある
- マイコンのプログラムは C 言語 or アセンブラで書く
- IoT デバイスを量産するときなどは試作用のマイコンボードからマイコンに切り替える
実際に、植田さんが昨年 2020 年に開発した、展示会の会場で人数を常にモニタリングする装置を例に、実際の模様をご説明いただきました (今回は短納期だったこともあり試作機で納品)。


収集したデータをクラウドで処理
今まではどのようにデータを収集し送るか、という話が中心でしたが、ここからは収集したデータを、どう受け取って、どう処理するか、という話です。
データの見える化で使える Ambient
- Ambient のページ
- さまざまなマイコンボードに対応しデータをグラフ化するクラウドサービス
植田さんの使用例 - 無料で使える (有料版がない)
- データは保存され CSV をダウンロード可能
- ただし週 / 月ではなく 1 日単位でダウンロード
- フリーのアカウントしかない
- 送信できるデータ種類の制限、送信量などに制限がある
- 1 日 3000 件を超えると新しいデータから削除される
- データの保存期間は 1 年間
- チュートリアルやライブラリ、サンプルが充実している
ただし、機械学習やデータ分析を行うには、いちいち CSV のダウンロードが必要になるので、あまり向いていないとのことでした (テストや監視などで使用)。
データ分析 / 機械学習でクラウドを使用 ~ AWS IoT Core との連携例
IoT で機械学習やデータ分析を行う際は、クラウドサービスを利用します。
そこで一番単純な構成をもとに、使用するサービスを紹介いただきました。

-
AWS IoT Core
- IoT デバイス (よく “モノ” と言う) からクラウドに繋ぐサービス
- IoT Core に登録したモノのみが接続できる (モノ側に証明書を発行する)
- モノからのデータ伝送は MQTT プロトコルで繋ぐ
- MQTT とは M2M ( Machine to Machine ) に特化したプロトコル
- モノから送られたデータを DynamoDB に送信する、などの “ルール” を選択・設定できる
- NoSQL でドキュメント型 DB
- JSON でデータを格納する
実際に植田さんが使用している AWS IoT の証明書発行やルール選択、実際に取得したデータ一覧の画面も紹介いただきました。

Web アプリケーションでは MVC のコントローラやモデルといった開発が必要ですが、逆に単純なデータだけに “ルール” を選んで設定するというのは新鮮ですね。
この画面を一通り紹介いただいたところで、このコースは修了しました。
まとめ
IoT に必要な技術と、特にアプリケーション開発者には馴染みの薄い “IoT デバイスのつくり方” を、マイコンボードとセンサーを中心に解説いただきました。聞きしに勝るレイヤのまたぎ方でした。
ソフトウェアと非常に近いレイヤながら、基本的なことでも知らないことが多く、とても勉強になりました! … と思ったのですが、基本情報技術者試験の試験範囲や過去問題をみると、しっかり出題されていますね 😅😅 。
一方、植田さんに字面ではなく、多くの実機を見せていただいたので、とても親しみがわき、「なるほど、そういう仕組みでデータを取得するのか」と感心しきりでした。
IoT の学習をスタートするには、とてもオススメのコースでした!
label SEカレッジを詳しく知りたいという方はこちらから !!

IT専門の定額制研修 月額28,000円 ~/ 1社 で IT研修 制度を導入できます。
年間 670 コースをほぼ毎日開催中!!

SEプラスにしかないコンテンツや、研修サービスの運営情報を発信しています。