[04.17 참고하지 마세요]rasberrypi3 실시간 그래프로 온도 센서 보이기

12601 단어 RaspberryPiPython
미안합니다.
우연히 mbass 때문에 여기 기사를 훑어봤어요.
한 번도 못 봐서 열람을 중지합니다.
※ 같은 raspberry pi가 얼굴 인식 학습에 대응하기 때문에 계층이 다르기 때문인 것 같습니다.
원인을 다시 밝히면 다시 시작할 테니 잘 부탁드립니다.
이번에는 rasberry pi3와 20가지 센서의 온도 센서를 조합해 보겠습니다.
psyhon에서 실시간 그래프에 도전합니다.
rasberry pi3와 20가지 센서를 구입했습니다.
하네스의 단계와 데이터의 단계는 다음과 같은 URL,
※ 이 URL에서도 언급했듯이 케이블에서 GND 등의 순서가 뒤섞여 있습니다
어쨌든 이때와 같은 배선은 문제없다↓.
※ 04.02.17 추기 접선은 이해하기 어려울 수 있습니다.
일단 gpio에 대해서.

다음은 경로설정 방법입니다.
여기에 DQ핀은 GPIO4, VDD핀은 3.3V, GND핀은 GND와 연결한다.
그리고 10KΩ의 저항으로 DQ핀과 VDD핀 사이를 끌어올린다.
이후 개인은 수치를 실시간화하여 다음과 같은 코드를 만들고 싶다.
실행 후 아래 그림과 같다(※ 잘 보이지 않지만 왼쪽 상단에는 실시간 그래프, 왼쪽 하단에는 실시간 센서 등이 표시됩니다. 오른쪽 상단에는 캡처 힌트가 있으니 무시하십시오.)

=================================
↓ 여기서 복사
#-*- coding: utf-8 -*-
#http://denshi.blog.jp/arduino/temperature-graph
import numpy as np
import matplotlib.pyplot as plt
import pygame
from pygame.locals import *
import serial
import sys
import os
import glob
from time import sleep

os.system('modprobe w1-gpio')
os.system('modprobe w1-gpio')

base_dir = '/sys/bus/w1/devices/'
device_folder = glob.glob(base_dir + '28*')[0]
device_file = device_folder + '/w1_slave'
def read_temp_raw():
f = open(device_file, 'r')
lines = f.readlines()
f.close()
return lines


def read_temp():
lines = read_temp_raw()
while lines[0].strip()[-3:] != 'YES':
sleep(0.2)
lines = read_temp_raw()
equals_pos = lines[1].find('t=')
if equals_pos != -1:
temp_string = lines[1][equals_pos + 2:]
temp_c = float(temp_string) / 1000.0
return temp_c
def main():

temps = [0]*100 # 温度格納
t = np.arange(0,100,1)
plt.ion()
pygame.init() # Pygameを初期化
screen = pygame.display.set_mode((200, 200)) # 画面作成(100×100)
pygame.display.set_caption("傾斜角度") # タイトルバー
font = pygame.font.Font(None, 50) # 文字の設定

while True:
screen.fill((0,0,0)) # 画面のクリア
deviceTemp = read_temp()
print(read_temp())
temp = str(deviceTemp) # \nまで読み込む(\nは削除)
text = font.render(temp + "[C]", False, (255,255,255)) # 表示する文字の設定
screen.blit(text, (10, 10)) # レンダ,表示位置
pygame.display.flip() # 画面を更新して、変更を反映
# 温度データのリスト更新
temps.pop(99)
temps.insert(0,float(temp))
# グラフ表示設定
line, = plt.plot(t, temps, 'r-',label="Temperature[C]") # Y軸更新
line.set_ydata(temps)
plt.title("Real-time temperature")
plt.xlabel("Time [s]")
plt.ylabel("Temperature [Celsius]")
plt.legend()
plt.grid()
plt.xlim([100,1])
plt.ylim([0,40])
plt.draw()
plt.clf()
#print(read_temp())
for event in pygame.event.get():
# 終了ボタンが押されたら終了処理
if event.type == QUIT:
pygame.quit()
ser.close()
plt.close()
sys.exit()


if __name__ == '__main__':
main()

좋은 웹페이지 즐겨찾기