【改造】sonoff TH10【ESPEasy】

sonoff TH10 というスマートスイッチを購入した。
電源コンセント等にとりつけると、ネットワーク制御できるというものだ。

近年、IoT(Internet of Things)がどうのと言われているが
今回の目的は、サーバラックの冷却である。

サーバラックといっても、ルータ等やハブが入れてあるだけで
そこまで発熱が大きくない。
ファンを24h稼働で動作させてみたが、騒音問題に悩まされた。

そこで、サーバラック内温度をセンサーで検出し、
閾値温度になったら、ファンを稼働させることを目標とする。

------

公式ファームウェアでも制御は可能であったが
スマホからしかアクセスできない、中華サーバへアクセス等
使いづらさがあったため、"ESP_Easy"というファームを導入する。

ESP8266というマイクロコントローラユニット用に開発された

ボードバージョンによって、コントローラが違う。
書き換えるファームの選択間違いのないよう注意すること。
最新のものは、後者である。
ver1.x:ESP8266、Ver2.x:ESP8285

ESPEasy

ESPEasy FW

DLミラー
設定が壊れた時のために、1024用のブランクファイルをアップしておく。
これで完全にリセットをすることができる。
------

1.本体を分解し、シリアル通信できるように改造をする必要がある。
必要なものは
①ストレートピンヘッダ
②USB-TTL 変換ケーブル
③半田、コテ

2.本体を分解し、基板左下にピンを取り付ける。
上から GND、TX、RX、3V3となっている。
注意点:USBからのTX、RXは逆になるように接続する。

イメージ 1

3.USBをPCに接続する。
注意:物理ボタンを押しながらUSBを接続すること(FW書き換えモードにするため)
※ドライバがないと認識されないため、注意!

この時、デバイスマネージャのポート番号を確認する。
FWを流しこむときに必要となる。

4.「FlashESP8266.exe」を実行し、ポートとFWを指定する。
TH10/16のフラッシュは1MBのため、1024のものを指定する。

エラーが表示される場合は、
シリアルピンの確認、ボタンを押しながらUSBを挿しているか確認。

5.書き込みが完了後、USBの抜き差しをするかUSBを抜きコンセントへ接続する。

6.wifiにて「ESP_Easy_0」へ接続する。
 パスワードは「configesp」

7.ウィザードに従って、無線lan親機に接続する。
 IPが配られたのちに、ブラウザでアクセスできる。

8.センサー、LED、ボタンの設定をしていく。
各GPIOは下記の通り。
・GPIO13 – LED(青色)
・GPIO12- リレー(電源ON・OFF)
・GPIO0 – 物理ボタン

・HardwareタブにてLED、リセットの設定をする。
GPIO13 がLED(青色)となる。
ボタンにリセット機能を割り当てておく。
イメージ 4

9.Devicesタブにてセンサー、スイッチの設定をする。
ここで設定したタスクをルール制御できる。
タスク1:温湿度取得
タスク2:ボタン取得
タスク3:センサー状態取得
イメージ 2

10.各種ページで設定することができる。
センサー読み取り間隔はここで設定する。
イメージ 3

11.Rulesタブはデフォで表示されていないため、
Tools→Advanced→Rulesにチェックを入れることで有効になる。
イメージ 5

12.Rulesにスクリプトを記入することで制御できる。
イメージ 6
今回やりたいことは、
センサー値を判断してリレーをONかOFFにすること。
記述の方法が少し癖があるため注意。

wikiにて記述方法が書いてあるので一度読むと良いだろう。


-------------------------------

<code>
on sensor#Temperature do //自動制御
if [sensor#Temperature]>25 //ここでセンサーを参照し、判断。ここでは25度以上を判定基準とする
gpio,12,1 //25度以上であれば、リレーをONにする。つまり電源ON。
else
gpio,12,0 /25度以上でなければ、リレーをOFFにする。つまり電源OFF
endon

On button#Switch Do //ボタン制御でONOFFできるかテスト中
    If [button#Switch] = 0
        gpio,12,0
    Else
        gpio,12,1
EndOn