#375初級IoT

Pico W IoTドアセンサー(リードスイッチ)

ドアや窓が開けっぱなしになっていませんか?どこにいてもスマホで確かめられます。このプロジェクトは、アプリのIoTテンプレートドア / 窓の手順ガイドです。Raspberry Pi Pico W、リードスイッチ、小さな磁石を2本の線でつないで組み立てます。マイ工房 › デバイス › デバイスを追加で、ボードにPico W、テンプレートにドア / 窓を選ぶと、Ohmiがあなたのデバイスキーでコードを用意します。このページのコードは見本で、キーとWi-Fi情報は仮の値です。

0.0(0)
Pico W IoTドアセンサー(リードスイッチ)
出かけたあとで、ベランダのドアを閉めたかどうか気になったことはありませんか?弟が自分の部屋に入ったか知りたい、なんてこともあるかもしれません。そんな人にぴったりのプロジェクトです。ドアの枠に小さなリードスイッチを、ドアそのものに磁石をはります。ドアが開くと磁石が離れ、アプリの表示がすぐに「開いている」に変わります。コードはアプリが用意するので、あなたは2本の線をつないで書き込むだけ。抵抗さえいらず、ボードの内部プルアップで足ります。はじめてのIoTセンサーにいちばんシンプルなスタートです。
IoT · リモート操作最初のデバイスは無料

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

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

アプリのテンプレート:ドア / 窓

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

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

回路図

Pico W IoTドアセンサー(リードスイッチ) - Circuit

ソースコード

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Pico W IoTドアセンサー(リードスイッチ)
4// ─────────────────────────────────────────
5// BlueGraysアプリのIoTテンプレート「ドア /
6// 窓」です。リードスイッチと磁石で、ドアや窓が開いているか閉まっているかをスマホで確認できます。本物のコードは、アプリの中でOhmiがあなたのデバイスキーを使って用意します(マイ工房›デバイス›デバイスを追加)。ここにあるコードは見本で、デバイスキーとWi-Fi情報は仮の値です。ボードパッケージ:Raspberry
7// Pi Pico(Earle
8// Philhower)。ライブラリマネージャ:BlueGraysIoT(依存ライブラリも一緒に)。ボードは2.4GHzのWi-Fiにだけつながります。磁石が近いとリードスイッチが閉じ、ドアは閉まっているとみなされます。
9//
10// ピン:
11//   GP14 -> リードスイッチの片方の足
12//   GND -> リードスイッチのもう片方の足
13//   ESP32:リード GPIO27
14
15/*
16 * ドア / 窓 · BlueGrays IoT
17 * BlueGrays · bluegrays.com
18 * このコードは共有しないでください。デバイスキーとWi-Fiのパスワードが含まれています。
19 */
20
21#include <BlueGraysIoT.h>
22
23const char *DEVICE_KEY = "デバイスキー";
24const char *WIFI_NAME = "Wi-Fiの名前";
25const char *WIFI_PASSWORD = "Wi-Fiのパスワード";
26
27BlueGraysIoT bg(DEVICE_KEY);
28
29const int REED_PIN = 14;
30bool lastRaw = false, stableOpen = false;
31unsigned long changedAtMs = 0;
32
33void setup() {
34  Serial.begin(115200);
35  pinMode(REED_PIN, INPUT_PULLUP);
36  bg.setDebug(Serial);
37  bg.setLanguage(BG_LANG_EN);
38  bg.begin(WIFI_NAME, WIFI_PASSWORD);
39}
40
41void loop() {
42  bg.loop();  // ここで長いdelay()は使わないでください
43  bool raw = digitalRead(REED_PIN) == HIGH;
44  if (raw != lastRaw) { lastRaw = raw; changedAtMs = millis(); }
45  if (millis() - changedAtMs > 50) stableOpen = raw;
46  bg.send("kapi", stableOpen ? "acik" : "kapali");
47}
48

よくある質問

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

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

Pico Wへの書き込み方は?MicroPythonですか?

このプロジェクトはMicroPythonではなく、Arduino C++で動きます。Arduino IDEのボードマネージャで「pico」(Raspberry Pi Pico/RP2040、Earle Philhower)パッケージをインストールし、ツール › ボードでRaspberry Pi Pico Wを選びます。はじめての書き込みのときやポートが出てこないときは、BOOTSELボタンを押したままUSBケーブルをさしてください。Arduino IDEがボードをドライブとして認識し、書き込みます。ライブラリマネージャでBlueGraysIoTを依存ライブラリと一緒にインストールします。

リードスイッチと磁石はどうつければいいですか?

リードスイッチをドアの枠に、磁石をドアが閉まったときにちょうど向かい合う位置のドアに、両面テープでつけるか、ねじでとめます。すき間は1 cmより小さくしてください。磁石が近いとリードスイッチが閉じて「閉じている」、ドアが開いて磁石が離れると「開いている」になります。リードスイッチの2本の足に極性はないので、どちらをGP14につないでもかまいません。線をのばすなら細い2芯のケーブルで十分です。ガラスのリードスイッチは割れやすいので、本体のすぐそばで足を曲げないでください。

ESP32でも使えますか?

使えます。デバイスを追加するときにボードとしてESP32を選んでください。コードは同じで、ピンだけが変わります。リードスイッチの片方の足はGPIO27、もう片方はGNDです。Arduino IDEのボードマネージャで「esp32」パッケージをインストールします。このページの回路と写真はPico Wで作りました。