Es tut mir Leid. Ich habe diesen Artikel über Massive durchgesehen Ich konnte es nicht tun, deshalb werde ich einmal aufhören zu surfen.
Dieses Mal habe ich Rasberry Pi 3 mit 20 Arten von Temperatursensoren kombiniert. Fordern Sie Echtzeitdiagramme mit Python heraus.
Ich kaufte einen Himbeer-Pi 3 und 20 Arten von Sensoren
Um die Verkabelung und die Datenprozedur zu erhalten, gehen Sie zur folgenden URL.
https://colo-ri.jp/develop/2016/05/raspberry-pi-ds18b20.html
Als nächstes folgt die Verdrahtungsmethode: Hier ist der DQ-Pin mit GPIO4 verbunden, der VDD-Pin mit 3,3 V und der GND-Pin mit GND. Ziehen Sie dann mit einem 10KΩ-Widerstand zwischen dem DQ-Pin und dem VDD-Pin nach oben.
Später wollte ich persönlich ein Echtzeitdiagramm der Werte erstellen, also habe ich den folgenden Code erstellt. Bei der Ausführung ist dies wie in der Abbildung unten dargestellt (* Es ist etwas schwer zu erkennen, aber das Echtzeitdiagramm wird oben links und der Echtzeitsensor usw. unten links angezeigt. Ignorieren Sie die Eingabeaufforderung für die aufgenommene Aufnahme oben rechts.)
================================= ↓ Von hier kopieren
#-*- 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 #Temperaturspeicherung
t = np.arange(0,100,1)
plt.ion()
pygame.init() #Pygame initialisieren
screen = pygame.display.set_mode((200, 200)) #Bildschirmerstellung(100×100)
pygame.display.set_caption("Neigungswinkel") #Titelleiste
font = pygame.font.Font(None, 50) #Zeicheneinstellungen
while True:
screen.fill((0,0,0)) #Bildschirm löschen
deviceTemp = read_temp()
print(read_temp())
temp = str(deviceTemp) # \Lesen Sie bis zu n(\n wird gelöscht)
text = font.render(temp + "[C]", False, (255,255,255)) #Einstellung der anzuzeigenden Zeichen
screen.blit(text, (10, 10)) #Rendern, Position anzeigen
pygame.display.flip() #Aktualisieren Sie den Bildschirm, um die Änderungen widerzuspiegeln
#Liste der Temperaturdaten aktualisieren
temps.pop(99)
temps.insert(0,float(temp))
#Grafikanzeigeeinstellungen
line, = plt.plot(t, temps, 'r-',label="Temperature[C]") #Aktualisierung der Y-Achse
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():
#Beenden Sie die Verarbeitung, wenn die End-Taste gedrückt wird
if event.type == QUIT:
pygame.quit()
ser.close()
plt.close()
sys.exit()
if __name__ == '__main__':
main()
Recommended Posts