def measure_soil_moisture(self, data=None): while self.monitor == True: self.data = read.read_serial("/dev/ttyACM0") self.moisture0 = self.data[0] self.moisture1 = self.data[1] self.moisture2 = self.data[2] self.moisture3 = self.data[3] Gdk.threads_enter() # needed to avoid Segmentation fault error self.soil_moisture1.set_text(str(self.moisture0)) self.soil_moisture2.set_text(str(self.moisture1)) self.soil_moisture3.set_text(str(self.moisture2)) self.soil_moisture4.set_text(str(self.moisture3)) Gdk.threads_leave() # needed to avoid Segmentation fault error if self.step >= self.saving_intervall: print "writing data into csv" write.write_csv([int(self.moisture0),int(self.moisture1),int(self.moisture2),int(self.moisture3), "PUMP=FALSE", "NONE"]) self.step = 0 else: self.step += 1 time.sleep(0.1) return
def pump_control(self): while self.automation == True: time.sleep(1) if self.moisture0 >= self.min_moisture or self.moisture1 >= self.min_moisture: print self.moisture1 write.write_csv([int(self.moisture0),int(self.moisture1),int(self.moisture2),int(self.moisture3), "PUMP1=TRUE", "START"]) self.pump_run(self.port_pump1, self.pump1_switch) time.sleep(self.pump_length) write.write_csv([int(self.moisture0),int(self.moisture1),int(self.moisture2),int(self.moisture3), "PUMP1=TRUE", "END"]) else: print "no need for water @pump1" pass if self.moisture2 >= self.min_moisture or self.moisture3 >= self.min_moisture: print self.moisture3 write.write_csv([int(self.moisture0),int(self.moisture1),int(self.moisture2),int(self.moisture3), "PUMP2=TRUE","START"]) self.pump_run(self.port_pump2, self.pump2_switch) write.write_csv([int(self.moisture0),int(self.moisture1),int(self.moisture2),int(self.moisture3), "PUMP2=TRUE","END"]) time.sleep(self.pump_length) else: print "no need for water @pump2" pass return