忍者ブログ

設備のマニアどっとこむ

IoT開発、設備・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が死んでしまいますが…


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















拍手[3回]

PR

コメント

翻訳(Translate)

プロフィール

HN:
佐々木 雅史
性別:
男性
自己紹介:
2021年 ラズパイ、M5stackを用いたIoT開発を専門で受注するアルティメンテを設立。代表を務める。
・2020年ラズパイコンテスト優良賞受賞
・設備系資格多数(電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトなど)

AD

カレンダー

02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31