goo blog サービス終了のお知らせ 

Stingray's ブログ

米作りと趣味の電子工作

室内温室

2007-11-04 18:17:01 | 電子工作
HSPで作成した設定ツールから記録データを読み込むのも良いのだが、CSVファイル形式で保存しているのでそのままEXCELへ取り込めないかと調べていたところ、「EasyComm」と言うVBAモジュールを見つけた。自由に使って良いとの事なので使って見ることにした。

やって見ると簡単に出来てしまった。とにかくこれでデータを読み込める。

' 温度・湿度データ読み込みプログラム
' 1レコードのデータを読み込み、「,」をデリミタとしてセルへ格納する。
' 1024レコードまで繰り返す。

Sub testcom3()

Macro1     ’ シートヘッダを生成

COMn = 4
ec.Setting = "115200,n,8,1"
ec.HandShaking = ec.HANDSHAKEs.RTSCTS
ec.AsciiBytes = 32
ec.Ascii = "r"

For record = 1 To 1024

Do While ec.InBuffer < 32
DoEvents
Loop
buf1 = Split(ec.Ascii, ",")

For fn = 1 To 6
'ワークシートへ書き込む。
'ヘッダ部をスキップ。bufは「0」始まり。
Cells(record + 1, fn) = buf1(fn - 1)
Next fn

Next record

ec.COMn = 0
MsgBox ("データの読み込みが終了しました。")
End Sub

Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2007/10/10 ユーザー名 : ishi
' ヘッダ部生成
'
Range("A1").Select
ActiveCell.FormulaR1C1 = "日付"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ヒヅケ"
Range("B1").Select
ActiveCell.FormulaR1C1 = "時刻"
ActiveCell.Characters(1, 2).PhoneticCharacters = "ジコク"
Range("C1").Select
ActiveCell.FormulaR1C1 = "室外温度"
ActiveCell.Characters(1, 2).PhoneticCharacters = "シツガイ"
ActiveCell.Characters(3, 2).PhoneticCharacters = "オンド"
Range("D1").Select
ActiveCell.FormulaR1C1 = "室内温度"
ActiveCell.Characters(1, 2).PhoneticCharacters = "シツナイ"
ActiveCell.Characters(3, 2).PhoneticCharacters = "オンド"
Range("E1").Select
ActiveCell.FormulaR1C1 = "室内湿度"
ActiveCell.Characters(1, 2).PhoneticCharacters = "シツナイ"
ActiveCell.Characters(3, 2).PhoneticCharacters = "シツド"
Range("F1").Select
ActiveCell.FormulaR1C1 = "ヒータ制御"
ActiveCell.Characters(1, 3).PhoneticCharacters = "ヒータ"
ActiveCell.Characters(4, 5).PhoneticCharacters = "セイギョ"
Range("A2").Select
End Sub

</font>
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

室内用温室

2007-10-06 23:08:43 | 電子工作
機能メモ
1.温度・湿度データを5分毎に測定し、更に内部EEPROMへ記録する。
2.温度目標値と5分毎に測定した温度を比較し、ヒータのON/OFF制御を行う。
3.内部EEPROMへ記録したデータは、シリアル接続によりパソコンへ取り込む。
4.初期化用ファイル(サイズ 0x8000h)を書き込むことにより内部EEPROMを初期化することができる。
5.内部クロックは15分程度のバックアップが可能。
6.内部クロックの時刻は制御プログラムから設定する。この時、時刻はパソコンのクロックを使用する。
7.温度目標値は制御プログラムから設定する。



最終 回路図は、こんな感じになった。 これから実際に温室の温度測定と制御に使って見たい。


コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

室内用温室

2007-08-11 11:22:31 | 電子工作
近所のホームセンターから買ってきた塩ビのケースに温度・湿度ロガーを入れてみた。電源ユニットは、ソケット(メス)をケースの中へ入れて接続する予定だったが、スペースが足りずソケット(オス)へ端子をねじ止めした。SHT-11 温度・湿度センサはケースの外へ出している。センサ基板には防湿処理が必要かな。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

室内用温室

2007-07-16 23:18:32 | 電子工作
久々に、室内温度計。RTC-8564の時刻設定ルーチンを作っていなかったので、作ってみたところ、2時間ほどの作業で出来てしまった。PIC-BASICとHSPの組み合わせ最強ですな。こんな感じ。 


HSP ソース

・・・・中略・・・・

; 時刻設定
*set_time
comput "t" ;時刻設定コマンド送信

a = gettime(5) ;分
min = int((a - (a/10*10)) + a/10*16) ;bcdコードへ変換
computc min ;シリアルポートから1バイト送信
wait 2 ;20msecウエイト
pos 0,100 ;出力位置設定
print "分 = " + min

a = gettime(4) ;時刻
hour = int((a - (a/10*10)) + a/10*16)
computc hour ;シリアルポートから1バイト送信
wait 2 ;20msecウエイト
print "時刻 = " + hour

a = gettime(3) ;日
day = int((a - (a/10*10)) + a/10*16)
computc day ;シリアルポートから1バイト送信
wait 2 ;20msecウエイト
print "日 = " + day

a = gettime(2) ;曜日
week = int((a - (a/10*10)) + a/10*16)
computc week ;シリアルポートから1バイト送信
wait 2 ;20msecウエイト
print "曜日 = " + week

a = gettime(1) ;月
month = int((a - (a/10*10)) + a/10*16)
computc month ;シリアルポートから1バイト送信
wait 2 ;20msecウエイト
print "月 = " + month

a = gettime(0) - 2000 ;年
year = int((a - (a/10*10)) + a/10*16)
computc year ;シリアルポートから1バイト送信
wait 2 ;20msecウエイト
print "年 = " + year

print "END"
stop


PIC-BASIC ソース

・・・・中略・・・・

While 1
Clearlcd
Putlcd "I2C EEPROM R/W"
Setpos 0,1
Putlcd "ready..."
'コマンド待ち
adr=0
cmd=0
Do
Serin pb115200,100,cmd
If(rb.Bit0=0) Then Gosub romview '閲覧モード
Until (cmd=0)
cmd = cmd | &h20 '小文字化

If cmd = &h72 Then Gosub romread '読み込みモード[r]
If cmd = &h77 Then Gosub romwrite '書き込みモード[w]
If cmd = &h74 Then Gosub set_time '時刻設定モード[t]

Wend

・・・・中略・・・・

'//// 時刻設定モード ////
set_time:
Gosub init 'I2C初期設定
Sleep 12 'SHT11のready待ち
Clearlcd
Putlcd "time set mode"
Serin pb115200,1000, min
Serin pb115200,1000, hour
Serin pb115200,1000, day
Serin pb115200,1000, week
Serin pb115200,1000, month
Serin pb115200,1000, year

Gosub stCond

sdata = rtcaddr '送信データへスレーブアドレスセット
Gosub send
sdata = &h03 '分アドレス送信
Gosub send
sdata = min '分データ送信
Gosub send
sdata = hour '時刻データ
Gosub send
sdata = day '日データ
Gosub send
sdata = week '曜日データ
Gosub send
sdata = month '月データ
Gosub send
sdata = year '年データ
Gosub send
Gosub stopseq

Sleep 1000
Return
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

室内用温室

2007-06-13 21:37:03 | 電子工作
温度・湿度測定と記録が可能な状態になる。日付・時刻は設定していないので電源を入れてからの経過時間。後は、リレー接点の取り出しと、適当なケースに入れる必要がある。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする