Note
こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。
参加する理由は?
- エキスパートサポート:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。
- 学び&共有:ヒントやチュートリアルを交換してスキルを向上させましょう。
- 独占的なプレビュー:新製品の発表や先行プレビューに早期アクセスしましょう。
- 特別割引:最新製品の独占割引をお楽しみください。
- 祭りのプロモーションとギフト:ギフトや祝日のプロモーションに参加しましょう。
👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう!
このプロジェクトでは、PIRセンサーを使用して侵入者や家に入ってくる野良動物を検出するセキュリティデバイスを作成します。侵入が発生した場合、メールアラートを受け取ります。
基本的なサービスとしてWebhooksを利用します。UNO R4からIFTTTのサービスへPOSTリクエストが送信されます。
必要なコンポーネント
このプロジェクトには以下のコンポーネントが必要です。
全体のキットを購入すると便利です。こちらがリンクです:
名称 | このキットのアイテム数 | リンク |
---|---|---|
Elite Explorer Kit | 300+ | |link_Elite_Explorer_kit| |
以下のリンクから別々に購入することもできます。
コンポーネント紹介 | 購入リンク |
---|---|
:ref:`uno_r4_wifi` | - |
:ref:`cpn_wires` | |link_wires_buy| |
:ref:`cpn_pir` | |link_pir_buy| |
配線図
回路図
IFTTTの設定
IFTTTは、さまざまなデータサービスを連携する方法を提供する無料のサービスです。
ウェブフック(カスタムURL)をIFTTTに送信して応答するAppletを作成し、その後メールを送信します。
IFTTTで以下の手順に従ってください。
|link_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キーも必要です。これは、 |link_webhooks| から取得できます。
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"
コードの実行
Note
- ファイル
03_ifttt_pir.ino
をelite-explorer-kit-main\iot_project\03_ifttt_pir
のパスから直接開くことができます。 - または、このコードをArduino IDEにコピーしてください。
Note
コード内で、SSIDとパスワードは arduino_secrets.h
に格納されています。この例をアップロードする前に、自分のWiFiの認証情報でそれらを修正する必要があります。さらに、コードを共有または保存する際には、この情報を機密に保つためのセキュリティ対策を講じてください。
Warning
メールボックスが溢れるのを防ぐため、このプロジェクトのコードを実行する前に :ref:`cpn_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)が含まれます。