Exemple #1
0
    def __init__(self, cfg=None):

        self.cfg = cfg

        self.last_measure_time = None
        self.previous_measure_time = None

        self.wind_trend = None
        self.pressure_trend = None
        # Station data
        self.idx = None
        self.status = -9999
        self.wind_dir = None
        self.wind_ave = None
        self.wind_gust = None

        self.temp_out = None
        self.hum_out = None
        self.abs_pressure = None
        self.rel_pressure = None
        self.rain = None
        self.rain_rate = None
        self.rain_rate_24h = None
        self.rain_rate_1h = None

        self.temp_in = None
        self.hum_in = None
        self.uv = None
        self.illuminance = None

        if (cfg != None):
            self.rb_wind_dir = TTLib.RingBuffer(
                cfg.number_of_measure_for_wind_dir_average)
            self.rb_wind_trend = TTLib.RingBuffer(
                cfg.number_of_measure_for_wind_trend)

        #calculated values
        self.wind_dir_code = None
        self.wind_chill = None
        self.temp_apparent = None
        self.dew_point = None
        self.cloud_base_altitude = None

        self.previous_rain = None

        self.wind_dir_ave = None

        self.battery = None

        if (not self.getLastTodayFromDB()):

            self.ResetStatistic()
Exemple #2
0
    def __init__(self, cfg):

        threading.Thread.__init__(self)

        sensor.Sensor.__init__(self, cfg)

        self.cfg = cfg
        self.bTimerRun = 0

        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)
        GPIO.setup(self.__PIN_A, GPIO.IN)  # wind Speed
        GPIO.setup(self.__PIN_B1, GPIO.IN)  # B1
        GPIO.setup(self.__PIN_B2, GPIO.IN)  # B2
        if (self.cfg.sensor_type.upper() != "NEVIO4"):
            GPIO.setup(self.__PIN_B3, GPIO.IN)  # B3
        if (self.cfg.sensor_type.upper() == "NEVIO16"):
            GPIO.setup(self.__PIN_B0, GPIO.IN)  # B0
        if (self.cfg.sensor_type.upper() == "NEVIO16S"):
            GPIO.setup(self.__PIN_B0, GPIO.IN)  # B0
        if (self.cfg.sensor_type.upper() == "NEVIO16W"):
            GPIO.setup(self.__PIN_B0, GPIO.IN)  # B0
        if (self.cfg.sensor_type.upper() == "NEVIO16TT"):
            GPIO.setup(self.__PIN_B0, GPIO.IN)  # B0

        self.rb_WindSpeed = TTLib.RingBuffer(
            self.cfg.number_of_measure_for_wind_average_gust_calculation)

        self.active = True
        self.start()
Exemple #3
0
    def __init__(self, cfg):

        threading.Thread.__init__(self)

        sensor.Sensor.__init__(self, cfg)

        self.libTX23 = cdll.LoadLibrary('./TX23/libTX23.so')
        if (self.libTX23.init() != 1):
            log("Error initializing TX23 library.Try to continue")

        self.cfg = cfg
        self.bTimerRun = 0

        self.rb_WindSpeed = TTLib.RingBuffer(
            self.cfg.number_of_measure_for_wind_average_gust_calculation)

        self.currentiDir = None

        self.active = True
        self.start()
Exemple #4
0
    def __init__(self, cfg):

        self.cfg = cfg

        threading.Thread.__init__(self)

        sensor.Sensor.__init__(self, cfg)

        myrevision = getrevision()

        if (myrevision == "a21041" or myrevision == "a01041"):
            self.model = 2
        else:
            self.model = 1

        self.model = 2  # ALWAYS USE SPI

        if (self.model == 2):
            # Open SPI bus
            log("Initializing SPI un device : /dev/spidev%d.0" %
                (cfg.mcp3002_spiDev))
            self.spi = spidev.SpiDev()
            self.spi.open(cfg.mcp3002_spiDev, 0)
        else:
            log("Initializing libMCP")
            self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so')
            if (self.libMCP.init() != 0):
                log("Error initializing mcp3002 library.Try to continue")

        self.bTimerRun = 0

        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)
        GPIO.setup(self.__PIN_A, GPIO.IN)  # wind Speed

        self.rb_WindSpeed = TTLib.RingBuffer(
            self.cfg.number_of_measure_for_wind_average_gust_calculation)

        self.active = True
        self.start()
Exemple #5
0
    def __init__(self, cfg):

        threading.Thread.__init__(self)

        sensor.Sensor.__init__(self, cfg)

        self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so')
        if (self.libMCP.init() != 0):
            log("Error initializing mcp3002 library.Try to continue")

        self.cfg = cfg
        self.bTimerRun = 0

        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)
        GPIO.setup(self.__PIN_A, GPIO.IN)  # wind Speed

        self.rb_WindSpeed = TTLib.RingBuffer(
            self.cfg.number_of_measure_for_wind_average_gust_calculation)

        self.map = intervalmap.intervalmap()
        self.map[0:75] = 5
        self.map[75:89] = 3
        self.map[89:111] = 4
        self.map[111:156] = 7
        self.map[156:214] = 6
        self.map[214:264] = 9
        self.map[264:342] = 8
        self.map[342:424] = 1
        self.map[424:514] = 2
        self.map[514:593] = 11
        self.map[593:640] = 10
        self.map[640:712] = 15
        self.map[712:769] = 0
        self.map[769:815] = 13
        self.map[815:870] = 14
        self.map[870:1024] = 12

        self.active = True
        self.start()
Exemple #6
0
    def __init__(self, cfg):

        self.cfg = cfg

        self.__PIN_A = cfg.anemometer_pin

        threading.Thread.__init__(self)

        sensor.Sensor.__init__(self, cfg)

        myrevision = getrevision()

        if (myrevision == "a21041" or myrevision == "a01041"):
            self.model = 2
        else:
            self.model = 1

        self.model = 2  # ALWAYS USE SPI

        if (self.model == 2):
            # Open SPI bus
            log("Initializing SPI un device : /dev/spidev%d.0" %
                (cfg.mcp3002_spiDev))
            self.spi = spidev.SpiDev()
            self.spi.open(cfg.mcp3002_spiDev, 0)
            self.spi.max_speed_hz = 1200000  # 1.2 MHz
            self.spi.mode = 0

        else:
            log("Initializing libMCP")
            self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so')
            if (self.libMCP.init() != 0):
                log("Error initializing mcp3002 library.Try to continue")

        self.bTimerRun = 0

        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)
        GPIO.setup(self.__PIN_A, GPIO.IN,
                   pull_up_down=GPIO.PUD_UP)  # wind Speed

        # bouncetime = 960 / MaxSpeedKmh
        # MaxSpeedKmh = 960 / bouncetime
        if (self.windspeed_interrupt_mode == 1):
            log("Sendor Argentine: Using  Interrupt mode ")
            GPIO.add_event_detect(self.__PIN_A,
                                  GPIO.BOTH,
                                  callback=self.increaserev,
                                  bouncetime=5)
        else:
            log("Sendor Argentine: Using  pooling  mode ")

        self.rb_WindSpeed = TTLib.RingBuffer(
            self.cfg.number_of_measure_for_wind_average_gust_calculation)

        self.map = intervalmap.intervalmap()

        #PCE-SENSOR-C Cucco per oriantare correttamente i sensori
        if (self.cfg.sensor_type.upper() == "PCE-SENSOR-C"):
            self.map[0:75] = 7
            self.map[75:89] = 5
            self.map[89:111] = 6
            self.map[111:156] = 9
            self.map[156:214] = 8
            self.map[214:264] = 11
            self.map[264:342] = 10
            self.map[342:424] = 3
            self.map[424:514] = 4
            self.map[514:593] = 13
            self.map[593:640] = 12
            self.map[640:712] = 1
            self.map[712:769] = 2
            self.map[769:815] = 15
            self.map[815:870] = 0
            self.map[870:1024] = 14
        else:
            self.map[0:75] = 5
            self.map[75:89] = 3
            self.map[89:111] = 4
            self.map[111:156] = 7
            self.map[156:214] = 6
            self.map[214:264] = 9
            self.map[264:342] = 8
            self.map[342:424] = 1
            self.map[424:514] = 2
            self.map[514:593] = 11
            self.map[593:640] = 10
            self.map[640:712] = 15
            self.map[712:785] = 0
            self.map[785:815] = 13
            self.map[815:870] = 14
            self.map[870:1024] = 12

        self.active = True
        self.start()
Exemple #7
0
    def __init__(self,cfg ):
        
        threading.Thread.__init__(self)

        sensor.Sensor.__init__(self,cfg )        
        
        myrevision = getrevision()
        
        if ( myrevision == "a21041" or myrevision == "a01041"  ):
            self.model = 2
        else:
            self.model = 1
            
        #print myrevision 
        
        if ( self.model == 2 ) :
            # Open SPI bus
            log("Initializing SPI")
            self.spi  = spidev.SpiDev()
            self.spi.open(0,0)
        else: 
            log("Initializing libMCP")
            self.libMCP = cdll.LoadLibrary('./mcp3002/libMCP3002.so')
            if ( self.libMCP.init() != 0 ):
                log("Error initializing mcp3002 library.Try to continue")
        
        self.cfg = cfg
        self.bTimerRun = 0

        GPIO.setmode(GPIO.BCM)
        GPIO.setwarnings(False)
        GPIO.setup(self.__PIN_A, GPIO.IN)   # wind Speed
 
        
        self.rb_WindSpeed = TTLib.RingBuffer(self.cfg.number_of_measure_for_wind_average_gust_calculation)            
        

        self.map = intervalmap.intervalmap()
        
        #PCE-SENSOR-C Cucco per oriantare correttamente i sensori
        if ( self.cfg.sensor_type.upper()  == "PCE-SENSOR-C" ):
            self.map[0:75]    = 7
            self.map[75:89]   = 5
            self.map[89:111]  = 6
            self.map[111:156] = 9
            self.map[156:214] = 8
            self.map[214:264] = 11
            self.map[264:342] = 10
            self.map[342:424] = 3
            self.map[424:514] = 4
            self.map[514:593] = 13
            self.map[593:640] = 12
            self.map[640:712] = 1
            self.map[712:769] = 2
            self.map[769:815] = 15
            self.map[815:870] = 0
            self.map[870:1024]= 14
        else:
            self.map[0:75]    = 5
            self.map[75:89]   = 3
            self.map[89:111]  = 4
            self.map[111:156] = 7
            self.map[156:214] = 6
            self.map[214:264] = 9
            self.map[264:342] = 8
            self.map[342:424] = 1
            self.map[424:514] = 2
            self.map[514:593] = 11
            self.map[593:640] = 10
            self.map[640:712] = 15
            self.map[712:785] = 0
            self.map[785:815] = 13
            self.map[815:870] = 14
            self.map[870:1024]= 12
                            
        self.active = True
        self.start()