Je suis désolé. Il m'est arrivé de parcourir cet article sur les massifs Je n'ai pas pu le faire, je vais donc arrêter de naviguer une fois.
Cette fois, j'ai combiné rasberry pi 3 avec 20 types de capteurs de température. Défiez les graphiques en temps réel avec python.
J'ai acheté un Raspberry Pi 3 et 20 types de capteurs
Pour obtenir la procédure de câblage et la procédure de données, accédez à l'URL ci-dessous.
https://colo-ri.jp/develop/2016/05/raspberry-pi-ds18b20.html
Vient ensuite la méthode de câblage: Ici, la broche DQ est connectée à GPIO4, la broche VDD est connectée à 3,3 V et la broche GND est connectée à GND. Ensuite, tirez entre la broche DQ et la broche VDD avec une résistance 10KΩ.
Plus tard, personnellement, j'ai voulu faire un graphique en temps réel des valeurs, j'ai donc créé le code suivant. Lorsqu'il est exécuté, il est comme indiqué dans l'image ci-dessous (* C'est un peu difficile à voir, mais le graphique en temps réel est affiché en haut à gauche et le capteur en temps réel, etc. est affiché en bas à gauche .. Le coin supérieur droit est l'invite de prise de vue, donc ignorez-le.)
================================= ↓ Copier d'ici
#-*- 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 #Stockage de température
t = np.arange(0,100,1)
plt.ion()
pygame.init() #Initialiser Pygame
screen = pygame.display.set_mode((200, 200)) #Création d'écran(100×100)
pygame.display.set_caption("Angle d'inclinaison") #Barre de titre
font = pygame.font.Font(None, 50) #Paramètres de caractère
while True:
screen.fill((0,0,0)) #Écran propre
deviceTemp = read_temp()
print(read_temp())
temp = str(deviceTemp) # \Lire jusqu'à n(\n est supprimé)
text = font.render(temp + "[C]", False, (255,255,255)) #Réglage des caractères à afficher
screen.blit(text, (10, 10)) #Rendu, position d'affichage
pygame.display.flip() #Actualisez l'écran pour refléter les changements
#Mettre à jour la liste des données de température
temps.pop(99)
temps.insert(0,float(temp))
#Paramètres d'affichage du graphique
line, = plt.plot(t, temps, 'r-',label="Temperature[C]") #Mise à jour de l'axe 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():
#Terminer le traitement lorsque le bouton de fin est enfoncé
if event.type == QUIT:
pygame.quit()
ser.close()
plt.close()
sys.exit()
if __name__ == '__main__':
main()
Recommended Posts