#378中級IoT

ESP32 IoTカーテン開閉(SG90サーボ)

スマホで+か−を押すと、同じ瞬間にサーボがその角度まで回ります。模型のカーテン、ブラインドの角度調整棒、小さなふたを、どこにいても開け閉めできます。このプロジェクトは、アプリのIoTテンプレートサーボでカーテンの手順ガイドです。ESP32とSG90サーボを、たった3本の線でつなぎます。マイ工房 › デバイス › デバイスを追加から始めると、Ohmiがあなたのデバイスキーでコードを用意します。このページのコードは見本で、キーとWi-Fi情報は仮の値です。

0.0(0)
ESP32 IoTカーテン開閉(SG90サーボ)
ベッドから出ずにカーテンを少し開けたい、外出先からブラインドを閉めたい、そんな人にぴったりのプロジェクトです。スマホで決めた角度まで、サーボモーターが回ります。停電のあとも、ボードは最後の角度に戻ります。まずは模型のカーテンやブラインドの角度調整棒で試すので、サーボの力と限界がわかります。線は3本だけなので、スマホから動きを操る最初の一歩にちょうどよい作品です。
IoT · リモート操作最初のデバイスは無料

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

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

アプリのテンプレート:サーボでカーテン

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

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

回路図

ESP32 IoTカーテン開閉(SG90サーボ) - Circuit

ソースコード

C++ (Arduino IDE)
1// ─────────────────────────────────────────
2//   BlueGrays · bluegrays.com
3//   ESP32 IoTカーテン開閉(SG90サーボ)
4// ─────────────────────────────────────────
5// BlueGraysアプリのIoTテンプレート「サーボでカーテン」です。アプリのカーテンの角度の+・−ボタンで、SG90サーボを0~180度の好きな角度に回します。模型のカーテン、ブラインドの角度調整棒、小さなふたなどをスマホから開け閉めできます。本物のコードは、アプリの中でOhmiがあなたのデバイスキーを使って用意します(マイ工房›デバイス›デバイスを追加)。ここにあるコードは見本で、デバイスキーとWi-Fi情報は仮の値です。ライブラリマネージャ:BlueGraysIoT(依存ライブラリも一緒に)とESP32Servo。ボードは2.4GHzのWi-Fiにだけつながります。SG90は小さなサーボです。本物のカーテンには、専用の5
6// V電源をつけたもっと強いサーボが必要です。回るアームに指を近づけないでください。
7//
8// ピン:
9//   GPIO18 -> サーボ信号(オレンジ)
10//   5V, GND -> サーボ V+(赤)、GND(茶)
11//   Pico W:サーボ信号 GP17
12
13/*
14 * サーボでカーテン · BlueGrays IoT
15 * BlueGrays · bluegrays.com
16 * このコードは共有しないでください。デバイスキーとWi-Fiのパスワードが含まれています。
17 */
18
19#include <BlueGraysIoT.h>
20#include <ESP32Servo.h>  // ライブラリマネージャー:「ESP32Servo」
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 SERVO_PIN = 18;
29Servo servo;
30
31void setup() {
32  Serial.begin(115200);
33  servo.attach(SERVO_PIN);
34  bg.onNumber("aci", [](float v) { servo.write((int)v); });
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}
43

よくある質問

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

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

Pico Wでも使えますか?

使えます。デバイスを追加するときにボードとしてPico Wを選んでください。コードは同じで、サーボのピンがGP17になり、ESP32Servoの代わりにpicoパッケージについてくるServoライブラリを使うので、ほかにインストールするものはありません。サーボの赤い線はVBUS(5 V)につなぎます。Arduino IDEのボードマネージャで「pico」パッケージをインストールします。このページの回路と写真はESP32で作りました。

SG90で本物のカーテンを引けますか?

引けません。SG90は小さなサーボで、模型のカーテン、ブラインドの角度調整棒、軽いふたなら回せます。本物のカーテンには、MG996Rのような強いサーボかギア付きモーターが必要です。強いサーボはボードの5Vピンではなく、2 A以上出せる別の5 Vアダプターから給電し、アダプターのGNDをボードのGNDにつなぎます。回るアームに指を近づけず、動く道に固いじゃまものを置かないでください。

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

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