2025年6月11日水曜日

温湿度計の製作2

どうも、dominoです。
前回の記事(こちら)では、ATmega88を使った温湿度計の記事を書きました。
しかし、前回の温湿度計で使用したATmega88では、使用していないポートが多く、
マイコンの実装面積も大きくなる問題がありました。
あと、ATmega88は値段が2010年ごろに比べて2倍を超える高級品になっているので、 
手元に山程あるマイコンATtiny2313に移植することにしました。 
というか、もともと2313で作っていたがI2Cの実装に心が折れただけです。 
出来上がったものがこちらです。

 完成した基板 

 基板裏側 

基板の設計 

ATtiny2313で基板を設計しながらいろいろ試行錯誤した結果、 
PB0-PB7を7セグのセグメントコントロールに、 
PD0-PD5を7セグコモンに接続しダイナミック点灯させることで、
配線がクロスすること無く無駄のないきれいな配線にすることができました。 
ATmega88の時に比べて配線がスッキリし、ユニバーサル基板の面積を増やすことができ、 他のセンサーや追加できるスペースを確保できました。

設計した基板 

回路 

ATtiny2313とTBD62783APGで7セグをドライブしていています。
TBD62783は7セグのコモンをドライブするのに使っています。
配線を簡略化した代償として、ポートAにI2Cを接続しています。
本来I2Cを接続できるポートは7セグを制御するのに使用されています。
I2Cのプルアップ抵抗は温度湿度センサー側にプルアップ抵抗が無いことも想定して、 
プルアップ4.7kΩを実装できるように入れています。
またI2Cで通信している様子がわかるように、I2CバスにLEDを入れています。
I2Cで通信しているとチカチカ光って可愛いです。

回路図

またセンサーをAHT25に変更しています。
AHT25は2025/06/11現在350円と他の温湿度計と比べ格安で手に入ります。
秋月で売っているAHT25はケーブルが付属していて、センサー部を任意の場所に固定できるので便利です。
冷蔵庫の中にセンサーを入れたり、通気口に貼り付けたりすることができて便利です。

ATtiny2313のポートAでI2C信号を生成
今回の一番苦労したのは、ATtiny2313のポートA(PA0とPA1)を使用したI2C信号の生成です。
ポートAを直接制御しビットバンギングでI2Cの信号を生成しました。
PA0をSDA、PA1をSCLとして使用しています。
詳細なコードは、GitHub(AHT25_Tmp_Hum_ATtiny2313)で公開しています。

まとめ

ATtiny2313への移植により、基板はコンパクトになり、配線の美しさも向上しました。
また、前回はユニバーサル基板で製作したが、流石に7セグの配線が面倒なので
JLCPCBに基板を発注しました。7セグ表示部の基板が黒色になったことで7セグの視認性が上がり見やすくなりました。

余談
AHT25とSHT31を両方部屋に置いて観察していますが温度はどちらも同じような値になっています。


2025年2月7日金曜日

温湿度計の製作

お久しぶりです。
dominoです。

最近とても寒いので温度計を作りたいと思っていたところ
結構前から作りかけで放置していた温湿度計を思い出したので、
表示部だけ再利用してプログラムを作成して完成させてみました。
作りかけの基板はI2Cの使用できるIOを別の制御に使用していたため、めんどくさくなって放置していました。

マイコンは、ATmega88P
センサーは、SHT31
7セグLEDは、LA-501DD
を使用しています。

どうしてもオレンジ色のLEDで表示したかった。

配線はUEWで行いました。

開発中の写真


スイッチが2つついていますが1つはリセットもう一つは未使用です。

プログラムはhenteko.orgを参考にしつつ作成しました。

回路図

設計中の基板


■失敗談
SENSIRION社の高精度温湿度センサSHT31を使用して製作したのですが、
部屋にある他の温度計より温度が少し高めに表示されるので、原因を探したところ
表示部のLEDやマイコンなどが、24度程度になっていてその温度を計測していたので、
現在はセンサーをピンヘッダーやピンソケットを利用してセンサーを表示部から
離れたところに設置しています。


ピンソケットを利用してセンサーを表示部から離した様子
(ついでに屋外に放置してみた様子)


作った温湿度計は自宅で元気に動いています。
作ったものが動いているとうれしい気持ちになりますね。
まだ試作なので、色々な問題がありますがいずれはキットにしたいですね。



2025/02/07 現在、秋月電子からAE-SHT31 (販売コード 112125)の在庫が無い為、
AHT25(販売コード 116731)に変更しようと思っています。