IchigoJamPCとAM2320・I2CEEPROMを使って 温度・湿度を記録します
はじめに
インターネット接続できない場所の気温と湿度の記録を簡単に残そうと思い、イチゴジャムPCで実現してみました。
説明
イチゴジャムPCにI2C接続した温度・湿度センサー(AM2320)から測定値を読み込み,I2CEEPROMに書き込みしています。
書き込むフォーマットをプログラムの行と同じにしたのでLOADとLISTコマンドで測定値を読み出す事出来ます。
時刻の記録はしていないので、紙にスタート時間と測定間隔を記録して後でデータに付け足します。
部品表
品名 | |
---|---|
イチゴジャムPC | イチゴジャムベーシックが動作します |
拡張メモリー | 下URL参考にするとよいです |
AM2320 | I2C接続の温湿度センサーです |
10kΩ抵抗2本 | プルアップ用抵抗ですが拡張メモリ等を使えば不要になります |
※拡張メモリーは https://15jamrecipe.jimdofree.com/周辺機器/外部記憶装置-eeprom/ などを参考にするとよいかと思います
お気に入りは秋月で売っている拡張メモリーですが1月30日時点で在庫1でした
回路図
この回路図ではAM2320とROMは単体の部品を使っていますが、いちごジャムPC用として売られている拡張メモリを使う方が手軽です
プロフラム
10 'SAVE EEPROM AM2320
20 POKE#710,3,0,4,0,0
25 K=0:J=16
30 FORI=0TO20:POKE#700,I+1
40 X=I2CW(#5C,#710,3,#720,0)
50 Y=I2CR(#5C,#710,0,#720,8)
60 CLS:H=255*PEEK(#722)+PEEK(#723):H=H/10:?H;
70 T=255*PEEK(#724)+PEEK(#725):Z=T/10:T=T%10:?Z;T
80 POKE#740,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
90 POKE#740,PEEK(#700),0,J-4,72,44,SCR(0,0),SCR(1,0),32,84,44,SCR(2,0),SCR(3,0),46,SCR(4,0)
100 S=I2CW(80,#713,2,#740,16)
105 K=K+J:P=(I+1)/J
110 POKE#713,P,K
120 LED1:WAIT20:LED0:BEEP1:WAIT160:NEXT
130 END
プログラムのだいたい説明
30行で繰り返し回数設定してます。
120行で測定間隔設定してます。60で1秒です。
LED点滅やビープ音は消費電流に関係するので、必要なければ外しておいた方が良いですが、起動したかどうか確認出来なくなります。
実際使う時は@ARUNやタクトスイッチ押したまま電源ONで自動起動するのも良いかと思います。
温度湿度とも画面表示した整数だけ保存されます。
測定回数
EEPROMのプログラム保存数X64回となります
1Mビット搭載なら8128回分保存可能になるはずですがそこまでためしていませんでした。
※お使いになるEEPROMで回数変わりますので保存可能回数を超えないようにしてください。
測定値の読み出し
FILES100で保存の概略確認出来ます。
LOAD100などで測定値を読み込み、LISTで表示します。
わかっていない事・制限事項
測定間隔を大きくしすぎると動作しないみたいです。
そういえば
EEPROMにプログラムが書き込まれていると エラー出るようです 対策としては 1clsのプログラムを書き込んでおくとよいみたいです
下写真のハードは調子に乗ってユニバーサル基板で作ってみたものです
数年前に作成しましたが今でも動作しました。
最後に
このプログラムがどのような動きをしているか知りたい場合は chatgptにこのプログラムをつけて
”以下のプログラムの動作を教えてください”と聞けば 作者より丁寧にわかりやすく教えてくれることがわかります
投稿者の人気記事
-
Makato-kan
さんが
2025/02/01
に
編集
をしました。
(メッセージ: 初版)
-
Makato-kan
さんが
2025/02/01
に
編集
をしました。
(メッセージ: listの出力画面を追加した)
-
Makato-kan
さんが
2025/02/01
に
編集
をしました。
(メッセージ: 最後にを追加しました)
-
Makato-kan
さんが
前の月曜日の17:43
に
編集
をしました。
(メッセージ: ちょっと手直し)
-
Makato-kan
さんが
前の月曜日の17:48
に
編集
をしました。
ログインしてコメントを投稿する