def generate_fake_data_for_file(self, name): time_fake_data = [] light_fake_data = [] moisture_fake_data = [] for month in range(7, 9): for day in range(1, 32): for hour in range(1, 24): for minute in range(0, 60, 15): time_fake_data.append( datetime.datetime(2019, month, day, hour, minute, 0)) if 0 < hour < 12: light_fake_data.append( random.randrange(20 * hour - 20, 20 * hour)) moisture_fake_data.append( random.randrange(20 * hour - 20, 20 * hour)) else: light_fake_data.append( random.randrange(240 - (20 * (hour - 12) + 20), 240 - 20 * (hour - 12))) moisture_fake_data.append( random.randrange(240 - (20 * (hour - 12) + 20), 240 - 20 * (hour - 12))) fake_data_file = csv_recording.CSVRecording(name) for row in range(0, len(time_fake_data)): fake_data_file.add_record(moisture_fake_data[row], light_fake_data[row], time_fake_data[row]) fake_data_file.close()
def draw_moisture_level_graph(self, name="data.csv", show=False): CSV_handler = csv_recording.CSVRecording(name) plant_data = CSV_handler.read_data(1) fig = plt.figure(figsize=(14, 5)) plt.plot(plant_data[0], plant_data[1], c='r', marker=self.point_shape) plt.xlabel('Time', fontsize=16) plt.ylabel('Moisture Level', fontsize=16) plt.title('scatter plot - Moisture Level vs Time', fontsize=20) plt.gcf().axes[0].xaxis.set_major_formatter(self.formatter) plt.grid(True) plt.savefig("MoistureGraph.png", dpi=300) if show: plt.show() plt.close(fig) gc.collect()
def __init__(self, config, sensor_control): self._config = config self._csv_file = csv_recording.CSVRecording() self._sensor = sensor_control
def test_rows_ordered_by_time_from_CSV_data(self): # most recent readings at end of file CSV_handler = csv_recording.CSVRecording() list_of_datetimes = CSV_handler.read_data(1) self.assertEqual(sorted(list_of_datetimes[0]), list_of_datetimes[0])
def test_light_levels_are_inrange_of_0_to_1023(self): CSV_handler = csv_recording.CSVRecording() list_of_datetimes = CSV_handler.read_data(2) self.assertGreaterEqual(1023, sorted(list_of_datetimes[1])[0]) self.assertLessEqual(0, sorted(list_of_datetimes[1])[-1])
def test_moisture_values_are_in_range_of_0_to_1023(self): CSV_handler = csv_recording.CSVRecording() list_of_datetimes = CSV_handler.read_data(1) self.assertGreaterEqual(1023, sorted(list_of_datetimes[1])[0]) self.assertLessEqual(0, sorted(list_of_datetimes[1])[-1])