MotionSense
コンポーネントと消耗品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
|
アプリとオンラインサービス
|
このプロジェクトについて
MotionSense <図> <図> <図> <図> <図>
はじめに
このチュートリアルでは、不正なアクティビティや侵入を通知するシステムを作成する方法について説明します。私はアクティビティ検出にArduinoとPIRを使用し、WiFi接続にはESP8266を使用していました。私のXperiaZ1は通知を受け取るために使用されます。通知を受け取るためにpopuler通知アプリPushbulletを使用し、Arduinoから通知を送信するためにPushbulletAPIを使用しました。
前提知識
- Arduinoと基本的なハードウェアに関する知識 [訪問:www.arduino.cc]
- ATコマンドに関するアイデア [読む:http://www.codeproject.com/Articles/85636/Introduction-to-AT-commands-and-its-uses]
- PIR、その仕組み [概要:https://en.wikipedia.org/wiki/Passive_infrared_sensor]
使用される「もの」
Arduino Mega 2560
ESP8266シリアルWiFiESP-01バリアント
HC-SR501PIRセンサー
1000 µFコンデンサ、さまざまな抵抗器[ WiFi電源用のコンデンサ、電圧調整用の抵抗]
単糸0.5mmワイヤー[ コネクタリード]
メス-メスのジャンパー線[ コネクタ]
Xperia Z1 [Pushbulletアプリの場合、どのスマートフォンでもかまいません]
私のラップトップ [arduinoでのコーディング]
Arduino IDE [v1.6.4]
何をすべきか
環境の設定: arduinoをインストールしていない場合は、arduinoのWebサイトからインストールしてください。
コピーコードを非表示にする
PIRの設定:
検出率を上げるには、最小のアラートサイクルで最大の感度が必要だと思います。したがって、PIRセンサーポットを次のように設定します:
次に、PIRセンサーの白い球を開くと、ピンの説明が表示されます。アウト| VCC
メスジャンパーをGNDVCCとOUTに接続します。
次に、ジャンパーピンのもう一方の端(PIRに接続)をArduinoに接続します:
PIR GND-> Arduino GND
PIR VCC-> Arduino 5V
PIR OUT-> DIGITALピン2 [選択に応じてピンを選択し、arduinoコードを変更することもできます]
PIRをテストするには、この ArduinoPlaygroundのコードを使用できます。
つまり、 PIR センサーは準備完了です 働く
コピーコードを非表示にする
ArduinoがWiFi経由でインターネットに接続できるようにする:
私はプロジェクトにESP8266(バリアントESP-01)シリアルWiFiモジュールを使用しました。これはかなり安価です。 ESP-01以外にも利用可能なバリアントがあります。さまざまなファームウェアも利用できます。デフォルトのATファームウェアを使用しました。この2つの画像で接続の参照を確認してください
ESP8266をジャンパー線でArduinoに接続しない:
ESP8266 GND-> Arduino GND
ESP8266 UXTX(送信ピン)-> Arduino RX2 (arduinoメガレシーバーピン、つまりコード内のSerial2)
ESP8266 CH_PD(HIGHにする)-> Arduino 5V (ESP 8266は3.3vに耐えられるため、電圧レギュレーター0f 3.3を1つ追加します。電圧レギュレーターがなかったので抵抗を使用しました。ただし、電圧レギュレーターを使用することをお勧めします)
RST、GPIO2、GPIO0を接続しないままにします
ESP8266 URXD(レシーバーピン)-> Arduino TX2 (arduinoレシーバーピン、つまりコード内のSerial2)
ESP8266 VCC-> 3.3vのArduino
ESP8266には、データ送信時に電力の問題があります。 Arduinoから電力を大量に消費するため、ArduinoにPC USB経由で電力が供給されている場合、arduinoが再起動する可能性があります。電源プラグを介した5V電源でも十分でない場合があります。したがって、ESP8266には常に外部電源を使用することをお勧めします。しかし、私の実験では、これに迅速で安価なソリューションを使用しました。 ESP8266に十分な電力を供給するために1つの1000µF電解コンデンサを使用しました。
長いピン-> 3.3vに接続されたESP8266VCC
短いピン-> arduinoGNDに接続されたESP8266GND
つまり、 ESP8266 WiFiモジュールは準備完了です 働く
コピーコードを非表示にする
Pushbullet Notifier:
Pushbulletを使用すると、プッシュ通知を介してさまざまなデバイスに無意識に通知できます。 PIRセンサーのプッシュ通知にAPIを使用します。 Pushbulletについてもっと読む
始めましょう。
PushBullet に移動します
登録して、Chromeアプリとスマートフォンアプリをダウンロードしてください。
Pushbullet にログオンします お使いのデバイスで。
次に、PCにインストールされているアプリまたはChrome拡張機能を使用してデバイスにプッシュメッセージを送信する方法を確認します。
APIセクションに移動します
注:ここでは、すべてのAPIリンクとURLがhttps接続用に提供されており、Arduinoはhttpsを処理するのにそれほど強力ではないため、httpsを使用できません。したがって、ここではpushbulletのドキュメントに記載されていないAPIのHTTPバージョンを使用しますが、このリファレンスはgithubから入手しました 。
プッシュ用のpushbulletドキュメントでは、HTTPSであるURLについて言及していたため、そのgithubプロジェクトで提供されているHTTPURLとポートを使用します。また、 / pushbullet を追加します 以前と彼らが言及したRESTパス。
例:
pushbullet doc によると、すべてのデバイスへの通知プッシュの場合 、RESTパスは: / v2 / pushs
ただし、使用します: / pushbullet / v2 / pushs
ベースURL: 173.17.168.19
ポート: 8181
次に、さまざまなAPIを確認し、説明を読んでそれらについて理解します。後で、このチュートリアルの拡張バージョンで使用できます。
arduinoからプッシュするには認証キーが必要です。だからあなたのアカウントに行きます
アクセストークンを探す 、これをコピーしてPCの安全な場所に保存します。
つまり、プッシュブレット これで準備完了になりました プッシュ通知の送受信に。
今すぐコーディングする時が来ました
この GitHubプロジェクトを開きます
実験フォルダに移動します。そこに MotionSense.ino があります 、スマートデバイスに通知をプッシュするコード。
このコードをarduinoIDEにコピーし、arduinoを接続します(WiFiとPIRセンサーがすでに設定されています)。
次に、これらのパラメータを変更します:
コピーコードを非表示にする
#define SSID "YOURSSID" / * YOURSIDをWiFiアクセスポイント名に置き換えます* /#define PASS "YOURPASSWORD" / *パスワードをWiFiアクセスポイントパスワードに置き換えます* /
PIROUTピンを目的のピンに変更することをお勧めします
コピーコードを非表示にする
#define PIRPIN 2 / * arduinoの目的のデジタルピンに変更します* /#define AUTH_TOKEN "YOUR_TOKEN_FROM_YOUR_ACCOUNT"; / * YOUR_TOKEN_FROM_YOUR_ACCOUNTをアクセストークンに置き換えます* /
上記のスニペットに記載されているアクセストークンも使用してください。
コンパイルして実行します。
センサーのキャリブレーション、WiFiモジュールの初期化、およびアクセスポイントへの接続には時間がかかります。
これらはシリアルモニターで確認できます。
すべてが完了すると、メインループのループが開始され、表示されます
「すべて問題ない|侵入なし」
シリアルモニターで継続的に。
PIRセンサーの前に行くと、動きが検出され、デバイスに通知がプッシュされます。
コードを簡単に理解する
#definesは、それに応じて変更する必要がある事前定義されたパラメータのセットです
セットアップでは、arduinoSerial()の初期化を見ることができます。 Serial2はWiFiシリアルアクセス用です。
機能を理解する :
コピーコードを非表示にする
Sensor_calibration(); / *適切な出力のためにセンサーを調整します。その前にPIRPINの電源を切る必要があります* /
コピーコードを非表示にする
check_WiFi_radio(); / * WiFiモジュールに問題がないかどうかを確認します* /
コピーコードを非表示にする
reset_wifi(); / * WiFiモジュールをリセットして問題をクリアします* /
コピーコードを非表示にする
set_wifi_mode(); / *アクセスポイントに接続するためのクライアントとしてWiFiモジュールを設定します* /
WiFiモードを設定した後、WiFiをリセットして設定する必要があります
コピーコードを非表示にする
check_wifi_stat(); / * WiFiモジュールがAPに接続されているかどうかを確認します* /
コピーコードを非表示にする
connect_ssid(); / *接続されていない場合は、接続パラメータで接続します* /
これまで、WiFiモジュールが初期化されて接続されました。次に、動きを感知したかどうかをPIRの読み取り値で確認する必要があります。メインループの下になります。
コピーコードを非表示にする
pirRead(); / * PIR値(0または1)を読み取ります。1の場合はモーション検知、0の場合は何もありません* /
何かが検出された場合は、最初にPushbulletサーバーに接続する必要があります
コピーコードを非表示にする
server_connect(); / *サーバーに接続しています* /
今すぐ通知をプッシュ
コピーコードを非表示にする
post(); / *すべてのデバイスに通知をプッシュします* /
切断
コピーコードを非表示にする
server_disconnect(); / *サーバー接続を閉じます* /
ループスルー
コード
MotionSenseコード
コードの説明については、リポジトリのreadmeをお読みくださいhttps://github.com/anupam19/ESP8266-experiments 回路図
製造プロセス