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

2020年2月28日(金)
岡嵜 雄平

はじめに

「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の接続(裏)

ケースに取り付け

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

株式会社Fusic
mockmockの運用・開発を担当するエンジニア、AWS Certified Solutions Architect – Professional。山口県出身。高専卒業後、関西にて組込みソフトウェアの開発を数年間経験。その後、福岡へJターン転職。同時にWeb/IoTエンジニアにスキルチェンジした。プライベートでは2児の父。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています