光目覚まし時計の自作

私は毎朝目覚めが悪いのでどうにか改善したいと思い、起床時をすっきりさせるために何か無いのかと探していました。
そうしたら「光目覚まし時計」というものを発見しました。

フィリップスから出ていますが、これがポチるのをためらうくらいには高い・・・
他にも色々ありましたが、安くても10000円くらいしますね。

それで買ってみて気に入らなかったらなんか嫌なので、じゃあ作っちゃおうという判断に至りました。
作るとそれ以上にかかることは分かっているんですけど、楽しいから別に構いません。

スポンサーリンク

トライアック万能調光器キットをPWMで制御する

フィリップスの光目覚まし時計はLEDで太陽の光を再現しているようでアラーム30分前から日の出を再現しているようです。
色まで実現するのはデザイン的に難しいと思ったので既存の電気スタンドを制御する形を取りました。

というわけで電気スタンドを制御、つまり調光するのに必要なものを準備します。

簡単に済ませるために、秋月のトライアック万能調光器キットを購入しました。

あとはこれをマイコンから制御すればいいのですが、トライアックのゲートをマイコンから制御するのはなかなか面倒くさそうです。
というわけで楽に実現するために調べてみると・・・ありました。

なるほど、アナログフォトカプラを使えばいいんですね。

というわけで電気スタンドの制御はできそうなのであとはアラーム機能がついた時計を作れば完成です。
全然順調に進まなかったんですけどね・・・

電気スタンド(LED電球)の調光

白っぽい色がいいという考えでLED電球にしたのですが、これが色々と面倒でした。
調光器対応と謳っていても相性があります。
つかなければ相性が悪いということで諦めましょう。

一応調光はできますが、微調整は難しいLED電球でした。
調光機能が付いている電気スタンドで試してみたらできたんですけどねえorz

結局これは無駄になり、東芝のちょっといいやつを買いました。

昼白色で調光器対応で60W相当となるとこれくらいしかありませんでした。
このLED電球は、調光器キットでちゃんと調光できます。
最小負荷電流も気にせず使えました。

調色もできたら・・・と考えてはいましたがいいお値段でしたのでやめました。

制御基板

制御基板はこんな感じです。
制御基板
裏もぎっしりで部品を詰め込んでます。
AC100VからDC5Vを作るのはダイソーに売っているUSB充電器を分解して使っています。
200円で買えて小型で5V1Aなので相当便利で助かっています。
もうACアダプタを用意する必要が無い気がしてくるくらいには。

最近ようやくコネクタを使うことを覚えたせいか、配線がコネクタ祭りになっています。
調光器基板
JSTのXHコネクタ、EHコネクタ、molexの5264/5267の最低2極と3極を常備しています。
2.5mmピッチなのでユニバーサル基板に入るので便利です。

ESP8266の起動には瞬間的に大きな電流がいるので容量が大きめのコンデンサがをつけます。
これがなければウォッチドッグタイマが作動しリセットがかかり続けるようなことになったりして正常に動きません。
適当に見つけたジャンクのコンデンサ(3300μF)をつけましたが、場所をとってしまいました。

RTCはRTC8564を使っています。
I2C通信のものじゃないとI/Oが足りず、I2C通信のものがこれしかなかったので・・・

マイコンはArduino Pro Miniです。
これを作った頃にはユニバーサル変換基板はまだ届いていませんでした、残念。

外観・デザイン

表示は黒背景の白文字のLCDにしました。
シンプルでよさげです。
LCDを嵌める角穴が汚いですが、自作なので許される範囲・・・?
光目覚まし時計 外観
目覚ましのON/OFFやLCDのライトアップは上部に設けたタッチスイッチで行います。

上記の大きな文字で時刻のみを表示するモードと下記の日付も表示するモードがあります。
日時モード
こちらの場合はアラームがON状態でベルのマークを表示するようにしました。
時刻だけのモードではアラームがどのような状態かを通知するためにコロンをベルのマークにするという暴挙に・・・
アラーム表示

電気スタンドはこれを使います。
電気スタンド

これとLED電球だけでも結構な出費なんですが、それは気にしない。

主な機能

主な機能は以下を搭載しました。

  • 時刻自動取得(NTP)
  • アラーム平日自動設定
  • 光・音アラーム
  • 調光照明

時刻自動取得(NTP)とアラームの平日自動設定

時刻の自動取得はESP8266(ESP-WROOM-02)から10分毎にNTPで取得しています。
Deep-Sleepで消費電力は極力抑えます。
また、平日・土日祝の判定にも使用しています。
平日・土日祝の判定には以下のサイトのWebAPIを使用しました。

曜日判定だと祝日も設定されてしまうので、それを避けるためです。

光・音アラーム

光目覚まし時計ですので光による目覚ましはもちろん搭載しますが、音による目覚ましも一応搭載しました。
ピピピピッという感じでスヌーズはないので延々と鳴り続ける仕様です。
音量調節はPWMで、自励式のブザーと並列にコンデンサをつけるとなんちゃって音量調整が可能です。
PWMの周波数を上げるとコンデンサの容量は小さく出来るかもしれません。
PWMブザー音量調整

光はアラーム10分前から徐々に明るくなるようにしています。
またArduinoのPWMの分解能はデフォルトで8bitですが、分解能を16bitに上げてより滑らかに明るくできるようにしました。

調光照明

光目覚まし時計の照明に電気スタンドを採用したもう1つ理由として、「そのまま照明としても使えるようにする」というのがあります。
ですので、左側面にあるボリュームでいつでも電気スタンドを調光できるようにしました。

設定項目

設定画面_mini
ブザーの有無や音量、バックライトの明るさと暗さ、時刻受信・平日自動設定の有無などが画面でできるようにしています。


今回のプログラムでATmega328Pのフラッシュメモリの4分の3くらいを使いました。
そこそこ規模が大きかったんだと完成した後になって感じています。
ただ何も考えずプログラムを書いたから膨らんだだけかもしれませんが。

作ってしまって言うのもアレですが、本当に効果があるかは分かりません。
何日かやってみてダメだと思ったら、ただの目覚まし時計として運用していこうかなと思います。

後日談

後日談はポートフォリオの方へ掲載しております。
本当に実用的なのか実際に試しています。

スポンサーリンク

Leave a Comment