スポンサーリンク

「目覚まし時計風」IN-14ニキシー管置き時計が完成しました!!

スポンサーリンク

for English ver.

先日は、ハードウェアの作成と目覚まし時計への組み込みを行いました。

今回はプログラムを作って、時計を完成させます。

スポンサーリンク

スマホからWiFiの設定を行う

NTPから正確な時刻を取得する

マイコンにはESP32を使っているので、無線LANに接続することができます。ネットワークにつながっていれば、NTPサーバから時刻を取得して、正確な時計を表示することができます。

基本的には、以前作ったニキシー管時計と同じようなプログラムです。

このプログラムを流用することで、常に正確な時刻が表示されるプログラムが大方できました。

どうやってアクセスポイントに接続させるか

無線LANに接続するためには、アクセスポイントの SSIDと、パスワードが必要です。前回のニキシー管時計は、家で使うこと前提に、SSIDとパスワードは変更しないと仮定して、プログラムにSSIDとパスワードを直接記述していました。

しかしこの場合、この時計を誰かに渡した時に、その渡した方の家にあるアクセスポイントに接続させることができません。

誰でも使えるように、後からSSIDとパスワードを設定できる仕組みが必要になってきます。

スマホから設定できるようにする WiFiManager

そこで、見つけてきたのがWiFiManagerというライブラリです。

このライブラリは、ESP32にサーバーを構築し、スマホからそのweb画面にアクセスしてSSIDとパスワードが設定できるようになります。

使い方は超簡単です。

#include "WiFiManager.h"

void setup() {
  ...  
  WiFiManager wm;
  wm.autoConnect("NixieClock", "password");
  ...

基本的にはこれだけ。

このプログラムによって、ESP32が”NixieClock”という名前のアクセスポイントになります。

スマホでそのアクセスポイントに接続すると、ログインのページが表示されます。

「アクセスポイント設定」をクリックすると、設定ページが表示されます。

このページで、ESP32から接続するアクセスポイントをクリックし、そのパスワードを設定すれば、これ以降はそのアクセスポイントにつながるようになります。

上記のページは日本語になっていますが、元々のは英語表示となっています。わかりやすいよう、ライブラリに入っている「strings_en.h」のファイルの適切な場所を日本語に書き換えて、日本語表示にしました。

スポンサーリンク

プログラムを作る

以前作ったプログラムと、先ほどのWiFiManagerのプログラムを混ぜ混ぜしてプログラムを書いていきました。

ソースを載せると見にくくなってしまうので、プログラムのzipファイルをここに置いておきます

アクセスポイントに接続を試みている時の状態

電源投入後、アクセスポイントに接続しようとします。この時は、数字がランダムに表示されるようにしました。

この時、WiFiManagerも起動しており、アクセスポイントの設定が済んでいない場合は、スマホからアクセスポイントの設定が可能です。

接続できなかったら

10分経っても、アクセスポイントに接続できなかったら、諦めて0000を点滅するようにしました。

長時間に渡ってWiFiManagerが起動していると、知らない人からもアクセスされる可能性があるので、0000点滅になったら、WiFi Managerは停止し、スマホからアクセスできないようになっています。

アクセスポイントに接続できたら

無事アクセスポイントに接続できたらば、NTPから時刻を取得し表示します。

時刻の表示と共に、ニキシー管に内蔵されている「.」を利用して、振り子のような表現も追加しました。上のGIFアニメでは、カクカクした動きですが、実際はPWMで調光した滑らかな振り子の動きが表現できています。

2020.4.18 動画を追加しました

追加終わり

スポンサーリンク

スマホから設定できるNTP時計が完成しました

目覚まし時計の姿をしているけど、ベルが鳴らない、ニキシー管置き時計が完成しました。

今回はIN-14という、直立するタイプのニキシー管を使いました。このようなニキシー管の方が、真空管ぽくてかっこいいですね。

今回使った、ニキシー管用DCDCコンバータは👇こちら👇で購入可能です。

電子工作
スポンサーリンク
スポンサーリンク

関連記事

kohacraftのblog

コメント