e-tipsmemo

ごった煮

tasmotaを使用してみる

ちょっとネットワークに接続したデバイスを作りたいと思い、
手元あったESPxxxxマイコンの開発環境がどれくらい変化したかを確認することにした。

ESP8266EXが入っているWROOM-02を使いやすくしてあるモジュールで試す。
ESP−WROOM−02開発ボード: 無線、高周波関連商品 秋月電子通商-電子部品・ネット通販

Arduino IDE

以前使った時には、Arduino IDEを利用してArduinoのライブラリなどを利用することができた。
それは今回も変わらなかった。
IDEがアップデートされて、2.0-betaでは補完などが利用できるようになっているらしい。(が、試していない。)
f:id:katakanan:20210711195015p:plain

Tasmota/ESPhome

一般的にESPxxマイコンでやりたいことを5割ぐらいGUIでコンフィグすることで構成できるようにするっぽい環境も登場していた。


とりあえず Tasmotaを使う。

Tasmotaインストール

Getting Started - Tasmota
に沿って進める。
Pythonでの書き込みがかいてあるが、
それは飛ばして、Tasmotizerという書き込みアプリを利用する。

WROOM-02のボードをUSBで接続し、ドライバなんかを入れたらATコマンドが使用できる状態になっているはず。
そのあと、Tasmotizerを実行する。

COMポートとReleaseから一番ベーシックなファームウェアを選択する。
f:id:katakanan:20210711200409p:plain
f:id:katakanan:20210711201006p:plain

使用するESPマイコンモジュールによっては、フラッシュメモリの容量の関係で入らない可能性もあるらしい?

WROOM02はIO0をGNDにして、起動することで書き込みモードになる。
書き込みモードで、Tasmotizerの”Tasmotize!”をクリックする。

ちゃんと書き込めたら、WROOM02がAPモードになってアクセスできるようになっているので、
あとはInitial Configurationを進める
https://tasmota.github.io/docs/Getting-Started/#initial-configuration

WROOM-02を家のLANを構成しているWifiなどに接続させて、同一LANからWROOM-02に接続する。
IPアドレスは、Tasmotizerで"Get IP"をクリックすることでわかる。
f:id:katakanan:20210711210839p:plain

Lチカ via LAN

初期設定では以下の画面になっていると思われる。
f:id:katakanan:20210711201412p:plain
このコンフィグではsonoffというAC100VをLAN経由でON-OFFできるデバイスのための設定で、
中に、ESP82xxが使用されており、GPIO12(IO12)にリレーが接続されているようだ。
これかもしれない。(実物を持っていないのでわからない)
SONOFF BASICR2-WiFi DIY Wireless Smart Switch | SONOFF Official

ここにLEDを接続すれば"Toggle"ボタンで、LEDのON-OFFを切り替えられる。

コンフィグをいじる

では自分の設定で、ポートはどういじるのかという話で、
Main Menu-->Configuration-->Configure Templateから1個だけ?設定を保存できるらしい。

f:id:katakanan:20210711202317p:plain
f:id:katakanan:20210711202418p:plain

先ほどのsonoff Basic設定を見ると、GPIO12がRelayに設定されている。
f:id:katakanan:20210711202549p:plain

Generic (18)をベースに、
GPIO15をPWM 1
GPIO12をRelay 1
としてみる。Saveする。(LEDという設定もあるが、そのときはWebUIからではなくMQTTなどのリクエストで点灯可能?)
f:id:katakanan:20210711203414p:plain

そうしたら作成したModuleを選択する。
f:id:katakanan:20210711203014p:plain
f:id:katakanan:20210711203036p:plain
内部のサーバーが再起動したのち、Main menuのGUIが変わっている。
とりあえずわかりにくいが、以下のようなUIが生成されていた(実際には赤文字などはない)
f:id:katakanan:20210711203748p:plain

Toggleを押すことで、GPIO12 or 15のON/OFFが可能で、Statusのところはそれによって切り替わる。
スライドバーはPWMのDutyっぽいのを変更していると思われ、GPIO15に接続したLEDの明るさが変化する。波形は見ていない。

この設定は、Configure OtherのTemplateの文字列が同等のことを表現しているらしいので、これをコピーして別のtasmotaに入れれば、同じIO設定になると思われる。

感想

そもそもとして、Templateに自分が行いたいESPマイコンの動作と同じものがなければこれを使うのはそこまで楽ではないと思う。
コンフィグの幅としてはESPマイコンがESP86xxかESP32でIOの接続が違うとかその程度の差が吸収できる程度なのではないかと思う。

さらにここまでやって思ったのはWebから操作されるUIが生成されるのは便利だと思うが、別にそれは使いやすいわけではなかった。
(GPIOがどちらかわからない。ただしこれをArduino IDEで書くにのは大変そう)

実際にはMQTTやhttpのGETアクセスを受け取ることができ、GPIOが操作されたり、値を返したりすることができる。
よってLAN内の、Google HomeやAlexa、Home Assistantなどがそのリクエストを発行し、操作するというのが想定された使い方のようだ。(WebUIはおまけ?)
Google HomeもAlexaも持っていないのでわからない。MQTT Clientを入れればためせる。

MQTTリクエストが来た時のIR LEDの点灯パターンが違うとかになってくると、自分でファームウェアをビルドしなおす必要があるらしい。
UsersWiki : Tasmota で三菱エアコンを完全コントロール [nao-pon/blog/2021-02-07] - XOOPS マニア


本当はWiFiではなくRJ45でEthernet経由のESP32マイコンを簡単に利用したいのだが、それは可能なのか?不明
Support for ESP32 and Ethernet in TASMOTA | esp8266hints