2015年7月31日金曜日

ESP-WROOM-02 WiFiモジュール firmware update

OS-X環境でESP-WROOM-02のfirmware version upをしようとしてちょっとハマったのでメモ。

最初に基板の改造です。
UART書き込み出来るようにIO0に切り替えスイッチを追加(pull-upしてあるのでGNDとショートするスイッチを追加)


上に出ているコネクタはUARTの通信を横から監視するためのdebug用コネクタです。

まず、書き込みツールのinstall
# git clone https://github.com/themadinventor/esptool.git
# cd esptool
# python setup.py install

次にfirmwareのイメージの準備
ESPRESSOのDownload BSSのTOPICSの中から最新のESP8266 SDKを選択
今回はESP8266 SDK (esp_iot_sdk_v1.2.0_mesh_v0.0.6_15_07_03)にAttachされている
esp_iot_sdk_v1.2.0_mesh_v0.0.6_15_07_03.zip
をダウンロードして解凍し、firmwareのイメージがあるdirectoryに移動
# cd esp_iot_sdk_v1/esp_iot_sdk_v1.2.0/bin

モジュールのIO0をLowに落としてリセットしUART書き込みモードに切り替えます。

最初に間違えて消してしまった時のためにMACアドレスを確認しておきます。
# esptool.py -p /dev/cu.usbserial-A101JG84 read_mac
Connecting...
MAC: xx:xx:xx:xx:xx:xx

次にイメージを書き込みます。
最初のときは
# esptool.py -p /dev/cu.usbserial-A101JG84 write_flash 0xfe000 blank.bin 0x00000 boot_v1.4\(b1\).bin 0x1000 at/user1.1024.new.2.bin 0xfc000 esp_init_data_default.bin
とやったら書き込みは完了したのですが、通常モードにして起動してuart terminalからアクセスするとゴミを大量に吐きまくってる状態になってしまいました。

これの解析のためにdebug用のコネクタを追加してUARTの通信をのぞいて色々調べてみると送信しているheaderの中のflash_size指定のbitが4Mbitになっているのがうまく書き込めていない原因のようです。これの解析に4〜5時間かかってしまいました。

esptoolのhelpをみるとwrite_flash用のoptionがあるようで
# esptool.py write_flash --help
で-ff -fm -fsのオプションをみつけて指定したところうまくいきました。

# esptool.py -p /dev/cu.usbserial-A101JG84 write_flash -ff 40m -fm qio -fs 32m 0xfe000 blank.bin 0x00000 boot_v1.4\(b1\).bin 0x1000 at/user1.1024.new.2.bin 0xfc000 esp_init_data_default.bin

Connecting...
Erasing flash...
Writing at 0x000fec00... (100 %)
Erasing flash...
Writing at 0x00000800... (100 %)
Erasing flash...
Writing at 0x00040c00... (100 %)
Erasing flash...
Writing at 0x000fc000... (100 %)

Leaving...

モジュールのIO0をHighに戻してリセットし通常モードにします。
terminalを接続しVersionを確認すると
AT+GMR
AT version:0.30.0.0(Jul  3 2015 19:35:49)
SDK version:1.2.0
compile time:Jul  3 2015 20:52:32
OK

無事Version upされてます。

2015年7月24日金曜日

ESP-WROOM-02 WiFiモジュール

Cerevoから発売された技適対応のWiFiモジュールが安いので買おうと思っていたら、あっという間に売り切れてしまいました。
暫く入荷待ちするつもりでいたら数日後にスイッチサイエンスからも予約販売されたのですかさず注文してみました。モジュール単体でも普通にハンダ付け出来そうですが、一応変換基板付きも一緒に購入しました。

IEEE802.11b/g/n対応で技適対応で710円+消費税は格安です。XBeeよりも千円くらい安くてWiFi接続できるのは魅力的ですね。WPA2対応のようですし、家電制御に使うにはこんなものかと思います。


入荷予定日に発送しましたとの通知が来て翌日届いたので、秋月のUSB-UARTモジュールと接続しました。


今週は組み立てただけで、ちょっと忙しくてまだ火入れできていません。
動かしたらどんな感じかレポートします。

2015年7月17日金曜日

DAIKINエアコンのコントロール

自宅ではないのですが、ダイキンのエアコンにHA2moduleを接続しました。機種はS22STES-Wです。
HA端子対応と聞いていたので簡単につながるかと思いましたが、色々と大変でした。
現地でカバーを開けて基板を確認してみましたが、どこにもHA端子らしいものが見当たりません。




ネットでカタログとか色々調べてみると、どうも別売りの基板が必要でそれなりの値段です。
エアコンの電源の状態を取るためにはHA端子が必要なのですがそのために基板を購入するのは勿体無いので、statusを取れそうなところを探してみました。
メイン基板上のコネクタなどをテスターであたりながら電源をon/offして変化するかを確認していきますが適当な信号が見当たりません。今回は自分のものではないので基板にハンダ付けとかで線を引き出すわけには行きません。
混み合っているところなので線を引き出すのが大変そうなのですが、結局on/offの表示LEDとSWや赤外線リモコンの受光部の載っている基板から取ることにしました。




基板のパターンを追いながら回路図(下の回路の黒線部分)にしていきます。
動作中の電圧をみながら動作を想定して、HA2moduleのHA端子のフォトカプラに繋ぐ回路を追加。
LED基板側の10pinコネクタを外してコネクタの種類を確認します。
形状からJSTのPHコネクタのようですので、オス・メスのコネクタを用意して中継する途中から信号を横取りすればいけそうです。(下の回路の赤線部分)



運転LEDは13.7Vの電源からLEDをとおして1.8kΩの抵抗の先で多分Trでon/offされるようです。
このLEDと並列にフォトカプラのLEDに2Kの抵抗を介して接続します。
HA2moduleのHA端子の制御側もフォトカプラのTrなのでon/off出来るSWのところに噛ませます。
これで通常のHA制御と同様の機能が実現できます。
ちょっと判りにくいですが、元々のPHコネクタの先に延長ハーネスを追加して途中から信号を取り出しています。
 




これに温度センサーと赤外線発光部をつけてエアコンの内部に収めて出来上がりです。
かなりごちゃごちゃしてますが、なんとか収まりました。


ちゃんとリモコン信号でも制御できて、HA端子側からon/off制御、動作ステータスがとれていることを確認して完成です。


2015年7月10日金曜日

バーチカルブラインドの電動化 その5

仮組みした所はロフトからアクセスが簡単な、目的とは別のブラインドの手動の紐が出ている側ですが、実際に取り付けたい所は簡単にアクセス出来ない吹き抜けの上のブラインドで、手動の紐と両立したいので手動の紐の出ていない側になります。梯子をかけて頑張って取り付けました。




紐の無い側の構造は非常に簡単で、2本の軸をスペーサーと止め輪(丸くて内側に歯がついていて軸に咬むようになっているリング)で止まっているだけなので止め輪を2つ外すことで簡単に取り外せます。写真はカバーと止め輪とスペーサーを外した状態です。

ここにモーター部を取り付けます。上から見るとこんな感じです。



ちょっとごちゃごちゃしていますが吹き抜けのところなので下から4.5mほどあり、それほど気になりません。




実際の動作はこんな感じです。




実験していた側のブラインドが24枚スラットだったのですが、最終的に取り付けた側のブラインドが30枚スラットと増えているのと僅かですが手動用の紐の負荷もあるのでちょっと重そうです。

本当はもう少し強力なモーターの方が良さそうですが、モーターの軸間が20mmなので直径20mm以下のモーターで手頃なものとなるとなかなか選択肢が無いのとGear比をこれ以上高くすると今度は手動で回せなくなりそうなので暫くこれで運用してみようかと思います。





2015年7月3日金曜日

バーチカルブラインドの電動化 その4





モーター電源を9V化しました。
基板も作り替えて3端子レギュレータをmurataのDC-DCコンバータに置き換えました。
これまではモーターを外形を軽く保持する形で構成していたのですが、回転で押されて位置が変動するのでちゃんと固定する形にしました。それに合わせてアクリル板も再設計して基板もカバーする形にしました。


カバー部分を曲げてこうなります。


モーター部分の固定


組み上げたところ


仮組みで取り付けてみたところ


制御ソフトも組んだので、スラットを半分回して全開まで送ってみました。


ちゃんと最後まで動いています。