#373初級IoT

Pico W IoT温湿度モニター(DHT22)

どこにいても、部屋の温度と湿度をスマホでリアルタイムに確認し、グラフで変化を見られます。このプロジェクトは、アプリのIoTテンプレート温度と湿度の手順ガイドです。Raspberry Pi Pico WとDHT22を3本の線でつないで組み立てます。マイ工房 › デバイス › デバイスを追加で、ボードにPico W、テンプレートに温度と湿度を選ぶと、Ohmiがあなたのデバイスキーでコードを用意します。このページのコードは見本で、キーとWi-Fi情報は仮の値です。

0.0(0)
Pico W IoT温湿度モニター(DHT22)
旅行中に家が冷えきっていないか、赤ちゃんの部屋が暑くなりすぎていないか、お風呂場の湿度がいつ上がるのか、気になる人にぴったりのプロジェクトです。小さなボードがセンサーで読んだ温度と湿度を数秒ごとにスマホへ送り、値はグラフにたまっていくので、一日の変化がひと目でわかります。コードはアプリが用意するので、あなたは3本の線をつないで書き込むだけ。はんだ付けも家庭用電源も不要で、はじめてのIoTセンサーにいちばん安全なスタートです。
IoT · リモート操作最初のデバイスは無料

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

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

アプリのテンプレート:温度と湿度

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

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

回路図

Pico W IoT温湿度モニター(DHT22) - Circuit

ソースコード

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   Pico W IoT温湿度モニター(DHT22)
4// ─────────────────────────────────────────
5// BlueGraysアプリのIoTテンプレート「温度と湿度」です。DHT22が部屋の温度と湿度を2秒ごとにアプリへ送り、値はグラフにたまっていきます。本物のコードは、アプリの中でOhmiがあなたのデバイスキーを使って用意します(マイ工房›デバイス›デバイスを追加)。ここにあるコードは見本で、デバイスキーとWi-Fi情報は仮の値です。ボードパッケージ:Raspberry
6// Pi Pico(Earle
7// Philhower)。ライブラリマネージャ:BlueGraysIoT(依存ライブラリも一緒に)。ボードは2.4GHzのWi-Fiにだけつながります。
8//
9// ピン:
10//   GP16 -> DHT22 OUT(データ)
11//   3V3, GND -> DHT22 VCC, GND
12//   ESP32:DHT22 OUT GPIO4
13
14/*
15 * 温度と湿度 · BlueGrays IoT
16 * BlueGrays · bluegrays.com
17 * このコードは共有しないでください。デバイスキーとWi-Fiのパスワードが含まれています。
18 */
19
20#include <BlueGraysIoT.h>
21#include <DHT.h>
22
23const char *DEVICE_KEY = "デバイスキー";
24const char *WIFI_NAME = "Wi-Fiの名前";
25const char *WIFI_PASSWORD = "Wi-Fiのパスワード";
26
27BlueGraysIoT bg(DEVICE_KEY);
28
29DHT dht(16, DHT22);
30unsigned long lastReadMs = 0;
31
32void setup() {
33  Serial.begin(115200);
34  dht.begin();
35  bg.setDeadband("sicaklik", 0.1);
36  bg.setDeadband("nem", 1.0);
37  bg.setDebug(Serial);
38  bg.setLanguage(BG_LANG_EN);
39  bg.begin(WIFI_NAME, WIFI_PASSWORD);
40}
41
42void loop() {
43  bg.loop();  // ここで長いdelay()は使わないでください
44  if (millis() - lastReadMs >= 2000) {
45    lastReadMs = millis();
46    bg.send("sicaklik", dht.readTemperature());
47    bg.send("nem", dht.readHumidity());
48  }
49}
50

よくある質問

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

書き込めますが、接続はできません。コードの中のデバイスキーと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を依存ライブラリと一緒にインストールします。

ESP32でも使えますか?

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

グラフではどのくらい前まで見られますか?

値はサーバーに保存され、アプリにリアルタイムの値とグラフで表示されます。どこまでさかのぼれるかはプランによって変わり、プレミアムではずっと長い履歴が残ります。ボードは2秒ごとに読み取りますが、温度が0.1 °C、湿度が1ポイント変わったときだけ送ります。そのためグラフがすっきりし、サーバーにもむだな負担をかけません。