Étape 4: Python interagir
Ne pas tout simplement couper et coller ce code, mais assurez-vous que vous le comprenez donc vous êtes en mesure de créer vos propres programmes graphiques vivants à partir de zéro.
#step 1: la bibliothèque d’importation
importer des serial # import bibliothèque série
Import numpy # Import numpy
matplotlib.pyplot Import plt #import matplotlib bibliothèque
de drawnow import *
#step2 : les variables de configuration et créer l’objet de série
tempF =]
pression =]
arduinoData = serial. Série ('com11', 115200) #Creating notre objet série nommé arduinoData
matplotlib PLT.ion() #Tell vous voulez un mode interactif pour tracer les données en temps réel
CNT = 0
Remarque:-toujours vérifier le port com. pour mon cas, je me connecte l’arduino dans com11. votre est deffer de moi. et utiliser le même débit en bauds en sketch arduino et python en bauds sinon python ne parviennent pas à interagir avec l’arduino.
# Etape 3: créer une fonction de terrain:-
def makeFig() : #Create une fonction qui rend notre parcelle souhaitée
PLT.ylim(80,90) #Set y les valeurs min et max
PLT.title ("mon Live Streaming capteur Data') #Plot le titre
PLT.Grid(true) #Turn la grille sur
PLT.ylabel ('Temp F') #Set ylabels
PLT.Plot (tempF, ' ro-', label = 'Degrés F') #plot la température
PLT.Legend (loc = « haut à gauche ») #plot la légende
PLT2=PLT.TwinX() #Create un deuxième axe y
PLT.ylim(93450,93525) #Set limites du deuxième axe y - adapter aux lectures, que vous obtenez
PLT2.Plot (pression, ' b ^-', label = "Pression (Pa)") les données de pression #plot
PLT2.set_ylabel ('Pressrue (Pa) ») #label deuxième axe y
matplotlib PLT2.ticklabel_format(useOffset=false) #Force à l’axe des y pas autoscale
PLT2.Legend (loc = "en haut à droite") #plot la légende
step4:Loops que jamais:-
While True: # tout en boucle qui boucle pour toujours
tandis que (arduinoData.inWaiting()==0) : #Wait ici jusque là est données
Passez #do nothing
arduinoString = arduinoData.readline() #read la ligne de texte du port série
dataArray = arduinoString.split(',') #Split il dans un tableau appelé dataArray
Temp = float (dataArray[0]) #Convert premier élément nombre flottant et mis en temp
P = float (dataArray[1]) #Convert deuxième élément nombre flottante et mis en P tempF.append(temp) #Build notre tableau tempF en ajoutant lectures temp pressure.append(P) #Building notre gamme de pression en ajoutant P lectures drawnow(makeFig) #Call drawnow pour mettre à jour notre graphique direct
PLT.pause(.000001) #Pause brièvement. Important de garder drawnow de planter
CNT = cnt + 1
if(CNT>50) : il suffit de voir les points de 50 dernières données nous permet de #If vous avez points 50 ou plus, supprimez l’un de le tempF.pop(0) tableau #This
Pressure.pop(0)
Note : Voici le truc cnt. Lorsque comte dépassent les 50 ou plus, supprimez le premier celui du tableau.
Vous devriez voir données comme le graphique. Vous devrez probablement ajuster vos paramètres d’échelle axe y en Python pour s’assurer que l’échelle est approprié pour les données que vous prenez. Si votre graphique est vide, sans doute votre y-balance n’est pas bon pour vos mesures de données.