IFTTTを使用したセキュリティシステム¶
このプロジェクトでは、PIRセンサーを使用して侵入者や家に入ってくる野良動物を検出するセキュリティデバイスを作成します。侵入が発生した場合、メールアラートを受け取ります。
基本的なサービスとしてWebhooksを利用します。UNO R4からIFTTTのサービスへPOSTリクエストが送信されます。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 |
このキットのアイテム数 |
リンク |
---|---|---|
Elite Explorer Kit |
300+ |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 |
購入リンク |
---|---|
- |
|
配線図
回路図
IFTTTの設定
IFTTTは、さまざまなデータサービスを連携する方法を提供する無料のサービスです。
ウェブフック(カスタムURL)をIFTTTに送信して応答するAppletを作成し、その後メールを送信します。
IFTTTで以下の手順に従ってください。
IFTTT にアクセスしてログインまたはアカウントを作成します。
Create をクリックします。
If This イベントを追加します。
Webhooks を検索します。
Receive a web request を選択します。
イベント名(例:SecurityWarning)を入力し、 Create trigger をクリックします。
Then That イベントを追加します。
Emailを検索します。
Send me an email を選択します。
Subject と Body を入力し、 Create action をクリックします。
Continue をクリックして設定を完了します。
必要に応じてタイトル名を調整します。
Appletの詳細ページに自動的にリダイレクトされます。ここで、Appletが現在接続されていることが確認でき、スイッチを切り替えて有効/無効にすることができます。
IFTTT Appletを作成したので、デバイスがIFTTTにアクセスするために必要なWebhooksキーも必要です。これは、 Webhooks Settings から取得できます。
Webhooksキーを「arduino_secrets.h」にコピーし、SSIDとパスワードを入力してください。
#define SECRET_SSID "your_ssid" // your network SSID (name) #define SECRET_PASS "your_password" // your network password (used for WPA, or as a key for WEP) #define WEBHOOKS_KEY "your_key"
コードの実行
注釈
ファイル
03_ifttt_pir.ino
をelite-explorer-kit-main\iot_project\03_ifttt_pir
のパスから直接開くことができます。または、このコードをArduino IDEにコピーしてください。
注釈
コード内で、SSIDとパスワードは arduino_secrets.h
に格納されています。この例をアップロードする前に、自分のWiFiの認証情報でそれらを修正する必要があります。さらに、コードを共有または保存する際には、この情報を機密に保つためのセキュリティ対策を講じてください。
警告
メールボックスが溢れるのを防ぐため、このプロジェクトのコードを実行する前に PIR動作センサーモジュール をデバッグしてください。
どのように動作するのか?
必要なライブラリとヘッダーファイルを含みます:
「WiFiS3.h」
: Wi-Fi接続の管理に使用します。「arduino_secrets.h」
: Wi-Fiネットワーク名とパスワードなどの機密情報を含みます。
グローバル変数と定数を定義します:
ssid
: Wi-Fiネットワークの名前。pass
: Wi-Fiネットワークのパスワード。status
: Wi-Fi接続の状態。client
: Wi-Fiサーバーとの通信に使用するクライアント。server
: IFTTT Webhookサーバーのアドレス。event
: IFTTT Webhookイベントの名前。webRequestURL
: HTTPリクエストを送信するための構築されたURL。Webhookイベント名とキーを含みます。pirPin
: PIRセンサーが接続されているデジタルピン。motionDetected
: 動き検出を追跡するフラグ変数。
setup()
関数:シリアル通信を初期化します。
Wi-Fiモジュールの存在をチェックし、そのファームウェアバージョンを出力します。
Wi-Fiネットワークに接続を試み、失敗した場合は再試行します。
PIRセンサーが接続されているピンを入力モードに設定します。
readResponse()
関数:IFTTTサーバーからのHTTP応答データを読み取り、シリアルコンソールに印刷します。
loop()
関数:readResponse()
関数を呼び出してHTTP応答データを読み取ります。- PIRセンサーを使用して動きをチェックします。動きが検出され、以前に検出されていない場合:
コンソールに「動きを検出!」と印刷します。
triggerIFTTTEvent()
関数を呼び出し、IFTTTサーバーにHTTPリクエストを送信し、Webhookイベントをトリガーします。motionDetected
フラグをtrue
に設定して、動きが検出されたことを示します。
動きが検出されない場合は、
motionDetected
フラグをfalse
に設定します。
triggerIFTTTEvent()
関数:IFTTTサーバーとの接続を確立します。
HTTP GETリクエストを送信し、WebhookイベントのURLと他のHTTPヘッダーを含みます。
printWifiStatus()
関数:接続されているWi-Fiネットワークに関する情報をシリアルコンソールに出力します。これにはSSID、IPアドレス、信号強度(RSSI)が含まれます。