#!/usr/bin/python3 import time import json from controller import Controller from mass import Mass from stirrer import Stirrer from matplotlib.pyplot import figure, clf, plot, xlabel, ylabel, xlim, ylim, title, grid, axes, show, subplot from pololu1376 import Pololu1376 def results_plot(self): figure(1) subplot(4, 1, 1) plot(self.time_v, self.theta_v, 'b-', linewidth=1) title('Temperature') grid(True) ylabel('°C') subplot(4, 1, 2) plot(self.time_v, self.power_v, 'r-', linewidth=1) title('Power') grid(True) ylabel('W') subplot(4, 1, 3) plot(self.time_v, self.error_v, 'b-', linewidth=1) title('Error') grid(True) ylabel('°C') subplot(4, 1, 4) plot(self.time_v, self.heatrate_v, 'r-', linewidth=1) title('Heatrate') grid(True) ylabel('°C/min') xlabel('t/min') show() if __name__ == '__main__': fp = open("brewpi.cfg.json") configJson = json.load(fp) plant = Mass(configJson["WaterSim"]) # ruehrer = Stirrer(configJson["Controller"]['dt']) ruehrer = Pololu1376(configJson["Controller"]['dt'], "/dev/ttyACM0", "115200") ablauf = Controller(configJson["Controller"], plant, ruehrer) fp = open("Rezept-001.json") recipeJson = json.load(fp) ablauf.start(recipeJson) ablauf.wait_finished() results_plot(ablauf) print ("End of program.")