def __init__(self,frecuencia, pins): GPIOSensor.__init__(self, frecuencia, pins) self.tipo = "LINUX"
import abc from GPIOSensor import GPIOSensor from Data import Data # Sensor de prueba para Linux class LinuxSensor(GPIOSensor): def __init__(self,frecuencia, pins): GPIOSensor.__init__(self, frecuencia, pins) self.tipo = "LINUX" def setGPIOpins(self): pass def getData(self): return Data(self.tipo, self.sense(), "cm") def clearSensor(self): pass def getType(self): return self.tipo def sense(self): self.setSense(False) return 'LINUX_DATA' GPIOSensor.register(LinuxSensor)
GPIO.setup(self.ECHO,GPIO.IN) def getData(self, receiver, priority, timeout, device): return Data(receiver, self.tipo, priority, timeout, device, self.sense(), "cm") def sense(self): GPIO.output(self.TRIG,False) # print "Waiting for sensor to settle" time.sleep(0.5) GPIO.output(self.TRIG,True) time.sleep(0.00001) GPIO.output(self.TRIG,False) while GPIO.input(self.ECHO)==0: pulse_start = time.time() while GPIO.input(self.ECHO)==1: pulse_end = time.time() pulse_duration = pulse_end - pulse_start distance = pulse_duration * 17000 distance = round(distance,2) return distance def getType(self): return self.tipo GPIOSensor.register(Ultrasonic)
def __init__(self, frecuencia, pins): GPIOSensor.__init__(self, frecuencia, pins) self.tipo = "ULTRASONIC" GPIO.setmode(GPIO.BCM) # Usa el sistema de nombramiento BCM - la otra alternativa es BOARD self.setGPIOpins()
while data[count] == 1: # Unos de la transmision bit_count = bit_count + 1 count = count + 1 if bit_count >= 3: if i >= 0 and i < 8: HumidityBit = HumidityBit + "1" if i >= 16 and i < 24: TemperatureBit = TemperatureBit + "1" else: if i >= 0 and i < 8: HumidityBit = HumidityBit + "0" if i >= 16 and i < 24: TemperatureBit = TemperatureBit + "0" Temperature = self.bin2dec(TemperatureBit) time.sleep(2) return Temperature except: return "ERR_RANGE" def bin2dec(self, string_num): return str(int(string_num, 2)) def getType(self): print self.tipo GPIOSensor.register(HumidityTemperature)