使用した部品

この時計を作るのに以下の電気部品を利用しました。

ESP32 DevKitC Board

Wifiにつなぐお手軽なマイコンボードとして、ESP32を使用します。Amazonで2,000円程度で購入できます。

ブレッドボード

マイコンボードを挿して回路を作りやすくするために、ブレッドボードをそのまま使います。写真のように6つ穴があるタイプでないと、ESP32のボードは挿せません。

7segLED

秋月電子のこのパーツを利用します。
この7segLEDは、各桁に小数点のドットと、時計にするためのコロンと、温度計用のドットなどが付いています。また、青、白、赤と同じ形の色違いの商品がありますので、お好みで二つの色を選ぶことができます。

温度センサ

温度や湿度、気圧が一度にとれるセンサを用意します。私は秋月で販売しているBME680を選びました。

ロジックIC

デコーダの138と、トランジスタアレイのTBD62783Aを使用します。

ユニバーサル基板

ユニバーサル基板を用意します。47mm×72mmくらいの大きさがオススメです。

電子回路製作

細かい説明は割愛して回路図だけ掲載しますが、ブレッドボードとユニバーサル基板を使って回路を製作します。
7segLEDをダイナミック点灯させるために、デコーダの138を使用します。また、LEDは5Vで点灯させるため、マイコンボードのGPIOをいったんトランジスタアレイに繋ぎ、そこから5VでLEDをドライブします。

はんだ付けを行う

写真が実際にユニーバサル基板にはんだ付けした様子です。

プログラミング

ESP32のプログラミングを行います。
私の作成したプログラムはこちらから(https://github.com/hasebems/7seg_clock)ダウンロード可能です。
ご利用の際は、wifiの SSID/PW をプログラムの中に書き込んでいただく必要があります。

ESP32をインストール

このURL(https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html)の内容に従って、Arduino IDEに対して、ESP32のインストールを行います。

esp32 2.0.4 まで動作を確認しています。

書き込み時のボード設定

VSCodeから書き込む場合、図のような設定で書き込みます。
Board: ESP32 Dev Module
Upload Speed: 921600
CPU Freq.: 240MHz(WiFi/BT)
Partition Scheme: Default 4MB with spiffs
Flash Mode: QIO
Flash Size: 4MB
PSRAM: Disabled
Arduino Runs on: Core1
Event Runs on: Core1
Core Debug Level: None

土台の3Dプリント

土台部分を3Dプリントします。
今回は、マイコンボードが載ったブレッドボードを土台の上に乗せ、LEDがついたユニバーサル基板側を斜めに立てるようにネジ止めして固定しました。

アクリル板を切り出す

半透明のアクリル板をお好みの形にレーザーカッターで切り取り、7segLEDの基板とネジ止めして出来上がりです。

残る問題点

今回の製作を通して、まだ解決できていない問題があります。

表示範囲

温度表示では、4桁の7segのうち、最後を℃表記するため、3桁しか使えません。
3桁目は小数点以下一桁で使用します。
そうすると、マイナス温度は -9.9 までしか表示できません。