#377初級IoT

Pico W IoT人感カウンター(PIR)

ドアや廊下を何回通ったかを数え、動きがあった瞬間をスマホでリアルタイムに確認できます。このプロジェクトは、アプリのIoTテンプレート人感センサーの手順ガイドです。Raspberry Pi Pico WとPIR人感センサーを、たった3本の線でつなぎます。マイ工房 › デバイス › デバイスを追加から始めると、Ohmiがあなたのデバイスキーでコードを用意します。このページのコードは見本で、キーとWi-Fi情報は仮の値です。

0.0(0)
Pico W IoT人感カウンター(PIR)
家の前を1日に何人通るのか、ネコが夜中に何回台所へ行くのか、気になる人にぴったりのプロジェクトです。赤外線の人感センサーがあたたかいものの動きに気づき、ボードが新しい動きを1回ずつ数え、カウンターはスマホのグラフにたまっていきます。動きがあった瞬間もリアルタイムで見られ、カウンターはワンタップでリセットできます。線は3本だけなので、IoTの最初の一歩にちょうどよい作品です。
IoT · リモート操作最初のデバイスは無料

このデバイスをアプリから操作しよう

ESP32 または Raspberry Pi Pico W を Wi-Fi につなげば、スマホからオン/オフでき、計測値をリアルタイムで見られます。コードは Ohmi が用意するので、Wi-Fi 情報を入力して書き込むだけです。

アプリのテンプレート:人感センサー

  • アプリのどこにある?ツールタブ、またはマイ工房 › デバイスから新しいデバイスを追加し、このテンプレートを選びます。
  • Arduino ライブラリArduino IDE でライブラリマネージャを開き、BlueGraysIoT を検索してインストールします。
アプリを無料でダウンロード

無料プランは 1 デバイス、1 グラフ、24 時間の履歴。プレミアムならデバイスとグラフを増やし、履歴も長く残せます。

回路図

Pico W IoT人感カウンター(PIR) - Circuit

ソースコード

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Pico W IoT人感カウンター(PIR)
4// ─────────────────────────────────────────
5// BlueGraysアプリのIoTテンプレート「人感センサー」です。PIRセンサーが動きを見つけるとボードがすぐアプリに知らせ、新しい動きを1回ずつ数え、カウンターはアプリのグラフにたまっていきます。カウンターをリセットボタンで0に戻せます。本物のコードは、アプリの中でOhmiがあなたのデバイスキーを使って用意します(マイ工房›デバイス›デバイスを追加)。ここにあるコードは見本で、デバイスキーとWi-Fi情報は仮の値です。ライブラリマネージャ:BlueGraysIoT(依存ライブラリも一緒に)。Arduino
6// IDEではボードにRaspberry Pi Pico
7// Wを選びます(picoパッケージ)。ボードは2.4GHzのWi-Fiにだけつながります。PIRセンサーは電源を入れてから1分ほど慣らし運転が必要で、その間は数えまちがえることがあります。
8//
9// ピン:
10//   GP13 -> PIRセンサー OUT
11//   VBUS (5V), GND -> PIRセンサー VCC, GND
12//   ESP32:PIR OUT GPIO33、VCC 5V
13
14/*
15 * 人感センサー · BlueGrays IoT
16 * BlueGrays · bluegrays.com
17 * このコードは共有しないでください。デバイスキーとWi-Fiのパスワードが含まれています。
18 */
19
20#include <BlueGraysIoT.h>
21
22const char *DEVICE_KEY = "デバイスキー";
23const char *WIFI_NAME = "Wi-Fiの名前";
24const char *WIFI_PASSWORD = "Wi-Fiのパスワード";
25
26BlueGraysIoT bg(DEVICE_KEY);
27
28const int PIR_PIN = 13;
29bool lastMotion = false; long counter = 0;
30
31void setup() {
32  Serial.begin(115200);
33  pinMode(PIR_PIN, INPUT);
34  bg.onSwitch("sifirla", [](bool on) { if (!on) return; counter = 0; bg.send("sifirla", false); });
35  bg.setDebug(Serial);
36  bg.setLanguage(BG_LANG_EN);
37  bg.begin(WIFI_NAME, WIFI_PASSWORD);
38}
39
40void loop() {
41  bg.loop();  // ここで長いdelay()は使わないでください
42  bool motion = digitalRead(PIR_PIN) == HIGH;
43  if (motion && !lastMotion) counter++;
44  lastMotion = motion;
45  bg.send("hareket", motion);
46  bg.send("sayac", counter);
47}
48

よくある質問

このページのコードをそのままボードに書き込めますか?

書き込めますが、接続はできません。コードの中のデバイスキーとWi-Fi情報は仮の値です。アプリでマイ工房 › デバイス › デバイスを追加を開き、人感センサーのテンプレートを選ぶと、Ohmiがあなたのキー、ネットワーク名、パスワードでコードを用意します。そのコードをコピーして書き込みましょう。コード全体はあとからデバイス › コードとキーでも見られます。

ESP32でも使えますか?

使えます。デバイスを追加するときにボードとしてESP32を選んでください。コードは同じで、センサーのピンだけが変わります。PIRのOUTはGPIO33、VCCは5Vピンです。Arduino IDEのボードマネージャで「esp32」パッケージをインストールします。このページの回路と写真はPico Wで作りました。

停電するとカウンターはリセットされますか?

はい。カウンターはボードのメモリに入っているので、ボードが再起動すると0から始まります。アプリのグラフはサーバーに保存されているので、過去の値は消えません。新しいカウントだけが0から続きます。自分でリセットしたいときは、アプリのカウンターをリセットボタンを押してください。

Wi-Fiのパスワードとデバイスキーは安全ですか?

Wi-Fiのパスワードはスマホの中だけに残り、サーバーには送信されません。コードへの書き込みもスマホの中で行われます。デバイスキーは安全な接続のヘッダーでだけ送られ、シリアルモニタには表示されません。それでも両方ともコードの中に入っているので、アプリからコピーしたコードは人に見せないでください。キーを誰かに見られたら、キーを再発行で新しいキーにして、新しいコードを書き込みましょう。