努力したWiki

推敲の足りないメモ書き多数

ユーザ用ツール

サイト用ツール


documents:os:linux:debian:bbb-doc011

011.温湿度計

2026-10-21 作成した温湿度計1号機の話。とりあえずFix。

概要

  • I²C
  • LCD接続をI²Cへ変更
  • センサーをAHT10へ交換
  • コントローラーをESP32へ変更

I²C

I²C(Inter-Integrated Circuit)とは

I²C(Inter-Integrated Circuit、アイ・スクエアド・シー)は、マイコンとセンサーやディスプレイなどの周辺機器を接続するためのシリアル通信方式。
一般に「アイ・ツー・シー」とも呼ばれる。

通信には次の2本の信号線を使用する。

  1. SDA(Serial Data):データを送受信する信号線
  2. SCL(Serial Clock):通信のタイミングを合わせるクロック信号線

I²Cでは、複数の機器を同じ信号線に接続できる。各機器にはアドレスが割り当てられ、通信相手をアドレスで指定する事でそれぞれの機器とデータをやり取りできる。
信号線は通常プルアップ抵抗を介して電源に接続され、通信速度は標準モードで100kHz、高速モードで400kHz。

配線が少なく、複数の機器を比較的簡単に接続できるので、温湿度センサー、気圧センサー、OLEDディスプレイなどの制御に広く利用されている。

車載の電子機器間を接続するCANみたいな規格と思えばいいんだろうか。

LCD接続をI²Cへ変更

ふたが閉まらない

3.3V→5vの変換基板を作って、動作確認もできて、さあ次はこの回路達を格納するケースを探そう、となった。
候補がこのペンケース。
素材が柔らかく、加工するにはもってこいで、価格もまぁお手頃。

……基板とBBG、収まんないぞ!!

実際にはギリギリ納まる。BBG、変換基板、LCD、温度センサー、は入る。ギリギリ。
ただ、ケーブルを考慮出来てなかった。大量のケーブルがペンケースの蓋を閉められないほど溢れてしまう…

配線を減らす

配線を減らせば行けるのだ。配線を減らせれば……

この配線の多さは変換基板が起因している。変換基板が不要になれば当然減らせるけどそうするとBBGを使えなくなる。

Amazonを眺めていると、ドンピシャなものが目に入る!

I²C接続のLCD1602

パラレル接続をシリアル接続できればケーブルを減らせる。まさにドンピシャだ。
Freenove I2C IIC LCD 1602 ディスプレイ セリアル 16x2 スクリーン 新型(2パック)

ただこいつは5V仕様なので変換基板的なものはやはり必要。

レベルシフタ基板

電圧3.3Vと5Vを仲介する機構が必要になる。…探してみるもんだwあったあった。
I2Cロジックレベルコンバータ双方向モジュール3.3V〜5Vシフター

これなら自作のあの基板を完全排除できる。しかも双方向だから応用も色々効きそう。購入。

手元のESP32-WROOM-32E

ESP32-WROOM

どうせならBBG代わりになるものも探してみようとなり…なんだよ有名処あるじゃんEPS32!
その中でもWiFiが使える奴があるのでこれを選択した。
Freenove ESP32 開発ボード ESP32 キット デュアルコア32ビット240MHzマイクロコントローラー、オーバーボードカメラWiFi+BT、Python C コード、例プロジェクトチュートリアル

例プロジェクトチュートリアルってのは、Freenoveが提供する開発リソースで、ライブラリや開発用IDEを公開しているのでそれらを使う事が出来ますよ、って意味合い。

新しいのにESP32-S3やC5とかあるようだけど、今回の用途とお値段的にESP32-WROOMで充分だと判断。

2階層配置

基板を配置可能とは言ってもスペースに余裕があまりないのは確か。どうしようか悩んでいた時にレベルシフタ基板を見つけられて幸いだった。試したのがこの2階層構造。

ピンソケットでESP32を高い位置に配置してその下にレベルシフタ基盤を配置。ケースの蓋もきちんと閉じられる。これは成功したと思う。

2カ所のピンヘッダはそれぞれLCD1602とAHT10への接続で使う。

ケース加工

人により異なるだろうし工程まで詳しくは書かないけど、今回はピンバイスで穴を開けてLCDの配置用の穴をくり抜き。固定にはM2のナイロンネジ。M3の方が良かったんだけど手持ちに無かった。

センサーはケースの外に配置した方が良いとのアドバイスがあったので、LCDから離して配置。こちらもナイロンネジで固定。

あとはESP32-WROOMの基板位置を確認してケースに固定。

筐体完成

USBケーブルコネクタの厚みを計算し忘れていたりハプニングはあったものの、完成した。
20261021-032725.jpeg

USBケーブルは給電で使用するので一般的な充電用ケーブルで問題無し。
電源ON確認用のLEDを配置するつもりが、ケースが半透明でESP32-WROOM本体のLEDの明かりが見えるので、これで代替する事にした。
電源が入るとESP32マイコンがWiFiへDHCPで接続し、接続できるとAHT10センサーで計測した数値を指定されたMQTTサーバへ送信する。このとき本体の青LEDがフラッシュするので動作確認も簡単。

表示されているIPアドレスに対してブラウザでアクセスするとMQTTの送信先を変更出来たり、と言った設定書換えが可能。

documents/os/linux/debian/bbb-doc011.txt · 最終更新: by k896951

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki