Tapoプラグ(P105,P110M)をESP32から直接制御するAPIを公開
こちらのGithubで公開しました。
使い方は簡単です。3つのヘッダーファイルをESP32のプロジェクトにコピーします。
※ArduinoIDEを使用している場合は、新しいタブをそれぞれの名前で作成して、中身をそれぞれコピペしてください。
あとはメインプログラムで"tapo_device.h"をインクルードするだけで簡単に使用できます。こちらは5秒ごとにオン・オフを繰り返すサンプルコードです。
WiFiのSSIDとパスワード、Tapoアプリのログインメールアドレスとパスワードは自身のものに書き換えてください。
#include <Arduino.h>
#include <WiFi.h>
#define TAPO_DEBUG_MODE // Comment this line to disable debug messages
#include "tapo_device.h"
TapoDevice tapo;
void setup() {
Serial.begin(115200);
// Connect to WiFi
WiFi.begin("wifi-ssid", "wifi-password");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
// Initialize Tapo device
tapo.begin("device-ip-address", "tapo-username", "tapo-password");
// Example: tapo.begin("192.168.1.100", "abc@example.com", "abc123");
}
void loop() {
tapo.on(); // Turn on the device
delay(5000);
tapo.off(); // Turn off the device
delay(5000);
}
デバッグメッセージが不要な場合は、#define TAPO_DEBUG_MODEをコメントアウトしてください。
応用例
TapoプラグをESP32からコントロールする応用例として、温湿度センサー(https://akizukidenshi.com/catalog/g/g107003/)と加湿器(https://amzn.asia/d/8dc1p1s)を組み合わせて、湿度を一定に保つシステムを作ってみます。
この加湿器は本体に物理スイッチが付いているため、これを常にオンにしておけばTapoプラグから制御可能です。またタンクの水が無くなると、物理スイッチとは別についているリセットスイッチがオフになり、運転が停止します。そのため、タンクの水が空の状態でTapoプラグがオンになっても、空焚きしてしまう心配はありません。
使用機材
ESP32開発ボート (https://akizukidenshi.com/catalog/g/g115674/)
Tapo P110M (https://amzn.asia/d/9l29HYr)
(執筆中)