忍者ブログ

設備のマニアどっとこむ

設備、電子工作、DIYのブログ!

ラズパイとTkinterで温度のGUI監視

やっとというか、遂にというか温度監視をGUIでできました。pythonのGUIツールTkinterを使ってます。

今まではSlackでつぶやいたり、単発だったのですが、今回は連続監視です。


ラズパイと接続している素子はadt7410ってていう温度センサーでI2Cで通信しています。




↑↑マイニングマシンのグラボ排気をリアルタイムで計測しています。
けっこう素子の反応が良くて0.7秒毎でもいけそうです。(GUIはもっさりしますが)
import smbus
import time
import sys
import RPi.GPIO as GPIO
import tkinter as tk
GPIO.setmode(GPIO.BCM)
 
i2c = smbus.SMBus(1)
address = 0x48
root = tk.Tk()
root.geometry("600x300")
t = tk.Label(text='温度[℃]',font = ('', 70))
t.pack()
while True :
 block = i2c.read_i2c_block_data(address, 0x00, 12)
 temp = (block[0] << 8 | block[1]) >> 3
    
 
 print("Temperature:%6.2f" % (temp / 16.0))
 time.sleep(0.7)
               
 temp2 = (temp / 16.0)
 s = tk.Label(text=temp2,font = ('', 70))
 s.pack()
 s.update()
 s.forget()
root.mainloop()
 
正直、かなりTkinterは手ごわいです。update()とかforget()の使い方を間違えるとブラクラみたいになります笑 一度表示した数値を消して上書きするのは大変でした。

t = tk.Label(text='温度[℃]',font = ('', 70))
↑このあたりもtext=をいれないとAttributeError: 'Label' object has no attribute '_w'となったりします。
変数がNoneになった時に出るそうですが…

これをうまく使えばモニターで常時監視できそうです、温度以外ではビットコインをやってみました。



モニターによってはGPIOが死んでしまいますが…


もうちょっと勉強すればデジタルサイネージ、設備監視装置なんてできる・・・ かも。















拍手[0回]

PR

コメント

翻訳(Translate)

AD

シェアしてね

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備のマニア
最近はarduino,Raspberry pi等の電子工作にハマる。
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトほか

カウンター

お問い合わせ

忍者アクセスランキング