Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. import serial
  2. import matplotlib.pyplot as plotInterface
  3. from drawnow import *
  4.  
  5. temperatureData = [] #Tablica przechowujaca kolejne odczytane wartosci temperatury
  6. dataCounter = 0 #Licznik elementow tablicy temperatureData
  7. stmData = serial.Serial('com3', 115200) #Obiekt serial do przechowywania danych z interfejsu UART
  8. plotInterface.ion() #Uruchomienie interaktywnego trybu bilbioteki matplotlib do wyswietlania w czasie rzeczywistym
  9.  
  10. #Funkcja rysujaca punkty na wykresie
  11. def drawPoint():
  12. plotInterface.ylim(20,40) #Zakres wartosci na osi Y zgodny z zakresem pomiarowym czujnika DS18B20
  13. plotInterface.grid(True)
  14. plotInterface.ylabel('Temperatura (*C)')
  15. plotInterface.xlabel('Liczba przechowywanych odczytow')
  16. plotInterface.plot(temperatureData, 'ro-', label='Pojedynczy odczyt')
  17. plotInterface.legend(loc='upper left')
  18. plotInterface.ticklabel_format(useOffset=False) #Wylacz automatyczne skalowanie osi Y
  19.  
  20. #Nieskonczona petla dzialajaca rownolegle z programem na mikrokontrolerze
  21. while True:
  22.  
  23. #Petla wewnetrzna, zapobiega wykonaniu instrukcji petli zewnetrznej az do momentu wykrycia nowych danych
  24. while (stmData.inWaiting() == 0):
  25. pass
  26.  
  27. uartString = stmData.readline() #Odczytenie stringa transmitowanego przez interfejs UART
  28. currentTemperature = float(uartString)
  29. temperatureData.append(currentTemperature)
  30.  
  31. print str(currentTemperature) + "*C"
  32.  
  33. drawnow(drawPoint)
  34. plotInterface.pause(.000001)
  35.  
  36. #Po wykonaniu 50 odczytow temperatury usuwaj najstarszy z kazdym kolejnym
  37. dataCounter = dataCounter + 1
  38. if(dataCounter > 50):
  39. temperatureData.pop(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement