IoTシステムの概要を知り、実際にデバイスを動かしてみよう

本記事では、IoTシステムに興味がある、開発したいと考えている方に向けて、シンプルなIoTシステムの開発およびテストの実施方法を解説します。

岡嵜 雄平

2020年2月28日 6:30

はじめに

「IoT(Internet of Things)」がバズワードとなって早数年が経ちました。普段IT業務に携わる人々にとってはすっかり聞き馴染みのある言葉となりつつありますし、最近ではIoTを活かしたサービスや業務改善の例も目にする機会が増えてきています。

先日アメリカで開催された「CES(Consumer Electronics Show) 2020」の基調講演では、「近年IoTが当たり前となってきており、IoTという言葉の定義自体が変わってきている」との言及もありました。

一方、ITとは直接的に関わりのない業種では、まだまだ遠い世界の話に聞こえるかもしれません。しかし、IoTで日常のちょっとしたデータを収集・分析し、最適なアクションを取ることで、あなた自身の仕事や生活の質を日々アップデートできる可能性があります。

「IoTはテクノロジーの総合格闘技」と言われるほど、さまざまな要素技術に対する知識が求められます。しかし、現在では開発やプロトタイピングを容易にするプロダクトも多く、小規模なIoTシステムであれば個人で開発・リリースすることも可能です。

ぜひ、本記事を参考に、IoTシステム開発の最初の一歩を踏み出してください。

今回開発するIoTシステム

今回はシンプルなIoTシステムとして「人を検知したらSlackへ通知するシステム」を開発します。

人を検知したらSlackへ通知するシステム

開発要素として、デバイスにはM5Stackを、クラウドにAWSを利用してシステムを構築します。また、クラウド上に構築したシステムをテストする際にmockmockを利用します。

M5Stack

M5StackはEspressif社のマイコンESP32を搭載したマイコンモジュールです。Wi-FiやBluetoothによる接続が可能で、IoTのプロトタイプ開発やPoCに適しています。

M5Stack

GPIOやGroveポートが用意されているので、特定のセンサーであればはんだ付けをせずに接続できます。また、ArduinoIDEと呼ばれる統合開発環境を利用できるため、ソースコードのコンパイルや書き込みが簡単に行なえます。さらに、Arduinoライブラリというエコシステムを利用できるといったメリットもあります。

AWS

Amazon Web Services(以下、AWS)は、Amazon.comが提供するクラウドコンピューティングサービスです。AWSではさまざまなサービスが提供されていますが、今回は以下のサービスを利用します。

IoT Core

M5Stackから送信されたデータをAWSの他のサービスにルーティングするマネージド型クラウドサービスです。M5StackとIoT CoreはMQTTを使用してメッセージを送受信します。

DynamoDB

AWSが提供する完全マネージド型key-valueおよびドキュメントデータベースです。M5Stackから送信されたデータの蓄積先として使用します。

Lambda

クラウド上で簡単にコードを実行できるコンピューティングサービスです。今回はRubyのスクリプトを実行し、Webhook経由でSlackにメッセージを送信する目的で使用します。

mockmock

mockmockはIoTテスト用仮想デバイス作成サービスです。通常、IoTシステムにおけるクラウドアプリケーションはデバイスからデータ受信したときに初めて動作します。mockmockを利用してデバイスの代わりに擬似データを送信することで、効率的にテストができます。

IoT開発のテストを支援 | mockmock

また、本記事では使用しませんが、デバイスでは発生させることが難しい異常系のテストも可能なほか、有料プランを利用することで大量のデバイスが必要な負荷テストも容易に実行できます。

デバイスの開発

開発環境のインストール

本記事ではArduino IDEを使って開発します。Arduino IDEのダウンロード・インストールの手順はGetting Started with Arduino productsを参照し、ご利用中のOSに対応した手順を実施ください。

Arduino IDE

インストールが完了したら、M5Stackをボードに追加した後でライブラリを追加する必要があります。具体的な手順はArduino IDE Developmentを参照ください。

ライブラリのインストール

今回動かすプログラムで使用するライブラリを事前にインストールする必要があります。メニューバーから、「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」をクリックします。

ライブラリを管理

右上のテキストボックスに「pubsubclient」と入力し、PubSubClientの「インストール」をクリックします。

PubSubClientをインストール

M5Stackにセンサーを接続する

今回、人を検知するためにSeeed Technology Co.,Ltd.のGrove - PIR Motion Sensorを使用します。

M5Stack

センサーとM5Stackの接続方法に注意が必要です。GroveコネクタのセンサーなのでM5StackのGroveポートに接続するものと勘違いしがちですが、同じGroveコネクタであっても通信方式が異なるため、Groveポートに接続しても動作しません。

そのため、下記のように赤・黒・黃の各線をM5StackのGPIOに接続してください。

M5StackとPIR Motion Sensorの接続(表)

M5StackとPIR Motion Sensorの接続(裏)

ケースに取り付け

接続できたらアクリルケースに入れるなどして、センサーを固定しましょう。ケースに入れることで見栄えも良くなります。

この記事のキーワード :

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30