使用した部品0この時計を作るのに以下の電気部品を利用しました。ESP32 DevKitC Board0Wifiにつなぐお手軽なマイコンボードとして、ESP32を使用します。Amazonで2,000円程度で購入できます。ブレッドボード0マイコンボードを挿して回路を作りやすくするために、ブレッドボードをそのまま使います。写真のように6つ穴があるタイプでないと、ESP32のボードは挿せません。7segLED0秋月電子のこのパーツを利用します。この7segLEDは、各桁に小数点のドットと、時計にするためのコロンと、温度計用のドットなどが付いています。また、青、白、赤と同じ形の色違いの商品がありますので、お好みで二つの色を選ぶことができます。温度センサ0温度や湿度、気圧が一度にとれるセンサを用意します。私は秋月で販売しているBME680を選びました。ロジックIC0デコーダの138と、トランジスタアレイのTBD62783Aを使用します。ユニバーサル基板0ユニバーサル基板を用意します。47mm×72mmくらいの大きさがオススメです。Add Annotation Order
7segLED0秋月電子のこのパーツを利用します。この7segLEDは、各桁に小数点のドットと、時計にするためのコロンと、温度計用のドットなどが付いています。また、青、白、赤と同じ形の色違いの商品がありますので、お好みで二つの色を選ぶことができます。
電子回路製作0細かい説明は割愛して回路図だけ掲載しますが、ブレッドボードとユニバーサル基板を使って回路を製作します。7segLEDをダイナミック点灯させるために、デコーダの138を使用します。また、LEDは5Vで点灯させるため、マイコンボードのGPIOをいったんトランジスタアレイに繋ぎ、そこから5VでLEDをドライブします。はんだ付けを行う0写真が実際にユニーバサル基板にはんだ付けした様子です。Add Annotation Order
プログラミング0ESP32のプログラミングを行います。私の作成したプログラムはこちらから(https://github.com/hasebems/7seg_clock)ダウンロード可能です。ご利用の際は、wifiの SSID/PW をプログラムの中に書き込んでいただく必要があります。ESP32をインストール0このURL(https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html)の内容に従って、Arduino IDEに対して、ESP32のインストールを行います。esp32 2.0.4 まで動作を確認しています。書き込み時のボード設定0VSCodeから書き込む場合、図のような設定で書き込みます。Board: ESP32 Dev ModuleUpload Speed: 921600CPU Freq.: 240MHz(WiFi/BT)Partition Scheme: Default 4MB with spiffsFlash Mode: QIOFlash Size: 4MBPSRAM: DisabledArduino Runs on: Core1Event Runs on: Core1Core Debug Level: NoneAdd Annotation Order
ESP32をインストール0このURL(https://docs.espressif.com/projects/arduino-esp32/en/latest/installing.html)の内容に従って、Arduino IDEに対して、ESP32のインストールを行います。esp32 2.0.4 まで動作を確認しています。
書き込み時のボード設定0VSCodeから書き込む場合、図のような設定で書き込みます。Board: ESP32 Dev ModuleUpload Speed: 921600CPU Freq.: 240MHz(WiFi/BT)Partition Scheme: Default 4MB with spiffsFlash Mode: QIOFlash Size: 4MBPSRAM: DisabledArduino Runs on: Core1Event Runs on: Core1Core Debug Level: None
土台の3Dプリント0土台部分を3Dプリントします。今回は、マイコンボードが載ったブレッドボードを土台の上に乗せ、LEDがついたユニバーサル基板側を斜めに立てるようにネジ止めして固定しました。Add Annotation Order
残る問題点0今回の製作を通して、まだ解決できていない問題があります。表示範囲0温度表示では、4桁の7segのうち、最後を℃表記するため、3桁しか使えません。3桁目は小数点以下一桁で使用します。そうすると、マイナス温度は -9.9 までしか表示できません。Add Annotation Order
Comments