アルディーノで居間の灯り - Arduino, ESP-WROOM-02 ▲factory top


うちのアルディーノ の活用例です。

はじめに 2023 Jul

これまでの居間の灯りは、 最初のマンションに入居した30数年前に奮発して買った少し大きめの灯りでした。 長らく活躍してくれましたが、 最近その大きさに圧迫感を感じていました。。

そこで、 オーディオコーナーの照明でパワーLEDの扱いにも慣れ、 アルディーノの開発環境も整ったところで、 アルディーノでコントロールするコンパクトな灯りを作ることにしました。

これまでの灯り、シェードは厚みのあるガラス製です 今回作った灯り、拡散板をつける前のLED照明です

 

コントロールといってもリモコンがたくさんあるのは嫌なのでスマホを使います。 アルディーノ(ESP-WROOM-02)はwifiにつながっているので 直接コントロールすることも出来ますが、 アプリやURLが増えるのも困り物です。

そこで、以前に作ったオーディオコーナーのコントロール用の Webページ を拡張し、操作はそこに入れることにします。 そうなると、このページはラズパイにあるので、 制御はラズパイ経由でアルディーノに伝達されることになります。

こんな風にラズパイを司令塔にすると一見面倒に見えますが、 以下のような発展の可能が生まれます。
  • 部屋にある複数の灯りをボタン一つで同時に操作することが出来る
  • ラズパイが人がいることを知るとその場所の灯りを選んで明るくしてくれる
  • 部屋に入ると灯りをつけ、出ると消す(いちいちスイッチに触るのは面倒)
  • ジャスチャーや声で操作する etc..

 

オーディオコーナー用の Webリモコンを、 ホームコントロール用の Webリモコンに拡張しました
オーディオのタブ インターネットラジオのタブ 部屋の灯りのタブ ※今回追加
現在機能しているのはリビングだけです

Socket 接続 2023 Jul 15

上で述べたように、ラズパイを司令塔にし、 周辺アルディーノはラズパイにぶら下がる構造です。


アルディーノは基本機能に徹する
ラズパイはいつでも PC からログインしプログラムの試行錯誤が行えますが、 アルディーノ(ESP-WROOM-02)は 開発ボードから引き抜いて実機に差すとプログラム変更は出来ません。 今回のように天井に設置されていたりすると差替えも大変です。 そこで、アルディーノ側の機能は Device Driver の如く基本機能に徹し、 付加価値的なことはラズパイ側で行うことにします。 付加価値的なこととは、 明るさの変化を直線的ではなく対数変化にするなど 「加減」や「ニュアンス」に関わる調整、 あるいはWebページデザインといったことです。

PC からもコントロール出来る
今更 Windows のプログラミングをする気はありませんが、 PC に Python をインストールしておけば、 図のように Socket に PC からも簡単に接続出来ます。 プログラムの初期の確認や検討ではこの方がお手軽な場合もあります。 また、やりたければ、 ラズパイのWebページではなく PC からホームコントロールを行うことも可能です。

拡張が楽
この構造には重複した部分がなく、 付加価値的機能はラズパイ、 周辺ターゲットの制御はアルディーノ、 と役割分担が単純明快で拡張が楽です。

 

固定IPアドレスの設定 2023 Jul 22

PC やラズパイ、アルディーノ(ESP-WROOM-02)は、 家のルーターで TCP/IP 接続され、 それぞれ IPアドレスを持っています。 その IPアドレスが変わると接続出来なくなってしまうので、 ルーターの設定で、 接続されるデバイスの IPアドレスを固定アドレスにする必要があります。

以下は、私が使っている OCN 光のルーター RT-500MI の場合です。
  • ルーターへは一般的にIPV4アドレス http://192.168.1.1/ でログインします
  • ルーターのオンラインガイド DHCP固定IPアドレス設定
    詳細設定→DHCPv4サーバ設定→DHCP固定IPアドレス設定、より個別に設定
    • IPアドレス末尾は適当に決める
    • MACアドレスは以下により調べる
    • RasPi は $ ifconfig コマンド
    • Arduino は MACアドレスを表示するコードを走らせる
  • 無線LAN設定→2.4GHz→対象を編集で、マックアドレスフィルタリングしない
  • RasPi 3B の WiFi は IEEE 802.11 b/g/n 2.4GHz のみで 5GHz は未対応

ターゲット 固定IPアドレス MACアドレス 接続方法
RasPi http://192.168.1.6 b8:27:eb:4c:0a:14 SSID2 接続
Arduino(ESP-WROOM-02) http://192.168.1.7 3C:61:05:D6:C3:D9 SSID2 接続
Windows PC http://192.168.1.4 有線接続

部品集め

パワーLED
LEDの発光量(総W数)と発光色(色温度)の考察
リビングルームの照明家電の色温度調整範囲は
電球色:2700K 最大4500 lm ~ 昼白色:5000K 最大5000 lm などのよう。
電球単体では
発光色 商品名(参考) 電球換算W数-消費電力 色温度 全光束
電球色 東芝 LDA12L-G/100W/2 100W-12W 2700 K 1520 lm
昼白色 東芝 LDA11N-G/100W/2 100W-11W 5000 K 1520 lm

電球色 10W Power LED(千石電商)

パワーLED用DC電源 48V1A程度
大昔使っていた6インチのブラウン管ポータブルテレビの ACアダプター(24V1.2A)が2つ残っていたので、 これを分解し直列接続で使うことにしました。 新規なら48V1A程度の小型スイッチング電源を使います。

アルディーノ(ESP-WROOM-02)用DC電源 3.3V100mA程度
ヤフオクやメルカリで3個千円とかで出ている、 5V1Aのスマホ用ACアダプターを分解し流用することにしました。 しかしながら後から考えると、 パワーLED用のDC電源があるのだからそこから3.3V三端子に給電すれば ACアダプターは不要だった気がします。 (電圧が高い場合は抵抗でドロップして)

ドロップアウト電圧の低い三端子 3.3V 1.5A(秋月電子) 5個入

その他部品
150 x 300 x 1.5 アルミ板(amazon)
スレショルド電圧の低い Power MOS FET(秋月電子)
定電流使用三端子 LM317T(秋月電子) 後から考えると絶縁タイプを使えばヒートシンクは不要でした
0.1uF パスコン(秋月電子)
2Aヒューズ(秋月電子)
ヒューズホルダー(秋月電子)
AINEX 12cm 究極静音ファン CFZ-120GLB (購入先 amazon)

 

回路 2023 Nov

リセット回路は似たような回路が ESP-WROOM-02 Wi-Fiモジュール内にあり要検討です。 無ければその分起動が早くなる可能性があります。

 

製作過程 2023 Nov

今回は機構的に熱的に作ってみないとピンとこないので、 部品を集めて試行錯誤しながらとなりました。

放熱板を兼ねるアルミ板にパワーLEDを取付けます 電球色 10W Power LED、放熱グリスを付けます
レイアウトはこんな感じでしょうか 組んでみました(クリックで拡大)
アルディーノ(ESP-WROOM-02)(クリックで拡大) かなり熱くなるのでファンを追加(クリックで拡大)
暫定の拡散板にて

ESP-WROOM-02 の向こうに見える抵抗の束は、 定電流の電流値を決める 27Ω 20パラ すなわち 1.3Ωです。

 

試行錯誤 2023 Dec 8

発光色
最初は暖色系の Power LED を4個使っていました。 なかなか雰囲気のある光ですが、 多少雰囲気が強すぎるのではないかと4個の内の2個を白色のLEDに替えてみました。 確かにこの方がこれまでの蛍光灯に近い光にはなりました。 がしかし、つまらない。。 結局最初の暖色系4個に戻しました。 そろそろ蛍光灯色の生活にさよならしようと思いました。 今後、より高効率なデバイスや心休まる発光色のLEDが出たら試してみようと思います。

熱対策
最初はファンなど想定してませんでした。 明るさ最大でしばらく点灯するとアルミ板が「アチチ」になるのでファンを付けました。 後付けなのでアルミ板の中心付近に取付ける場所がなくなってしまいましたが、 現状でも触れる程度には冷えるようです。 騒音が気がかりでしたが、 この「究極静音」ファンは真下にいてもファンの音は聞こえません。 静音進化に脱帽です。

拡散板
パワーLEDは点発光に近いのでやたらクリアで強烈です。 最大の難問は拡散板だということが分かってきました。 いくつか拡散板とうたうアクリル板を試してみましたが、 これという結果が得られません。 まだ何が良いのか分からない状態で、 上の写真の暫定版はなんとコンビニの袋を四角に切ったものです。 これよりもう少し透過度の高い拡散板を探しています。

ソフトウェア

Arduino repository
light/light.ino アルディーノの「スケッチ」のコードです
windows_socket.py PC から Socket に接続する場合のコードです

ソースコードは GitHub へ。