Esempio n. 1
0
def main():
    print("Insert Grove - I2C-High-Accuracy-Temperature")
    print("  to Grove-Base-Hat any I2C slot")

    sensor = Factory.getTemper("MCP9808-I2C")
    sensor.resolution(Temper.RES_1_16_CELSIUS)

    print('Detecting temperature...')
    while True:
        print('{} Celsius'.format(sensor.temperature))
        time.sleep(1)
def main():
    from grove.helper import SlotHelper
    sh = SlotHelper(SlotHelper.ADC)
    pin = sh.argv2pin()

    sensor = Factory.getTemper("NTC-ADC", pin)

    print('Detecting temperature...')
    while True:
        print('{} Celsius'.format(sensor.temperature))
        time.sleep(1)
Esempio n. 3
0
def main():
    config = configparser.ConfigParser()
    config.read('config.ini')
    pin = int(config['DEFAULT']['temp_sensor_pin'])
    red = redis.Redis()

    sensor = Factory.getTemper("NTC-ADC", pin)
    
    while True:
        temp = float(sensor.temperature)
        red.mset({'temperature': round(temp)})
        time.sleep(INTERVAL)
Esempio n. 4
0
def main():
    print("Insert Grove - I2C-High-Accuracy-Temperature")
    print("  to Grove-Base-Hat any I2C slot")

    #I2C address of temperature device: 0x18 (default) to 0x1F
    i2c_id = 0x18

    sensor = Factory.getTemper("MCP9808-I2C", address=i2c_id)
    sensor.resolution(Temper.RES_1_16_CELSIUS)

    print('Detecting temperature...')
    while True:
        print('{} Celsius'.format(sensor.temperature))
        time.sleep(1)
def main():
    from grove.helper import SlotHelper
    sh = SlotHelper(SlotHelper.ADC)
    pin = sh.argv2pin()

    sensor = Factory.getTemper("NTC-ADC", pin)

    print('Detecting temperature...')
    while True:
        print('{} Celsius'.format(sensor.temperature))
        url = 'http://127.0.0.1:8000/temperature/{}?Value={}'.format(
            pin, sensor.temperature)
        urllib.request.urlopen(url)
        time.sleep(0.4)
Esempio n. 6
0
def main():

    # print disable
    sys.stdout = open(os.devnull, 'w')

    from grove.helper import SlotHelper
    sh = SlotHelper(SlotHelper.ADC)
    pin = sh.argv2pin()

    sensor = Factory.getTemper("NTC-ADC", pin)

    # print enable
    sys.stdout = sys.__stdout__

    print(sensor.temperature)
Esempio n. 7
0
 def __init__(self, pin):
     self.__tmp = Factory.getTemper("NTC-ADC", pin)
Esempio n. 8
0
import time
from grove.factory import Factory
# connect to alalog pin 2(slot A2)
PIN = 0
sensor = Factory.getTemper("NTC-ADC", PIN)
print('Detecting temperature...')
while True:
    print('{} Celsius'.format(sensor.temperature))
    time.sleep(2)
    def __init__(self):

        self.warehouse_state = False
        self.door_outside_state = False
        self.door_inside_state = False

        self.warehouse_button = GroveLedButton(5)
        self.door_outside_button = GroveLedButton(18)
        self.door_inside_button = GroveLedButton(16)

        self.warehouse_button.on_press = self.on_press_main
        self.door_outside_button.on_press = self.on_press_door_outside
        self.door_inside_button.on_press = self.on_press_door_inside

        self.warehouse_relay = GroveRelay(22)
        self.door_outside_relay = GroveRelay(26)
        self.door_inside_relay = GroveRelay(24)

        self.time_stamp = datetime.now()
        self.temperature_doors = Factory.getTemper("MCP9808-I2C", 0x18)
        self.temperature_doors.resolution(Temper.RES_1_16_CELSIUS)
        self.temperature_warehouse = Factory.getTemper("MCP9808-I2C", 0x19)
        self.temperature_warehouse.resolution(Temper.RES_1_16_CELSIUS)
        print('starting OPC server ')
        self.opc_server = Server(shelffile="/home/pi/grove-opc-server")
        # shelffile is trick with freeopcua to speedup loading of xml object base
        self.opc_url = "opc.tcp://0.0.0.0:4840"
        self.opc_server.set_endpoint(self.opc_url)

        print('starting OPC server ..')
        self.opc_name = "Grove-opcua-server"
        self.addspace = self.opc_server.register_namespace(self.opc_name)
        print('starting OPC server ...')

        self.opc_node = self.opc_server.get_objects_node()
        self.param = self.opc_node.add_object(self.addspace, "Parameters")

        self.opc_time = self.param.add_variable(self.addspace, "Time", 0)
        self.opc_trigger = self.param.add_variable(self.addspace, "Trigger", 0)
        self.opc_warehouse_state = self.param.add_variable(
            self.addspace, "Warehouse state", 0)
        self.opc_door_outside = self.param.add_variable(
            self.addspace, "Outside door", 0)
        self.opc_door_inside = self.param.add_variable(self.addspace,
                                                       "Inside door", 0)
        self.opc_temperature_d = self.param.add_variable(
            self.addspace, "Temperature doorlock", 0.0)
        self.opc_temperature_w = self.param.add_variable(
            self.addspace, "Temperature warehouse", 0.0)

        self.opc_time.set_read_only()
        self.opc_trigger.set_read_only()
        self.opc_warehouse_state.set_read_only()
        self.opc_door_outside.set_read_only()
        self.opc_door_inside.set_read_only()
        self.opc_temperature_d.set_read_only()
        self.opc_temperature_w.set_read_only()

        print('starting OPC server .....')
        self.opc_server.start()
        print("OPC UA Server started at {}".format(self.opc_url))
        print("time      Doors Warehouse (Celsius)")
Esempio n. 10
0
                door_inside_button.led_on()


warehouse_button = GroveLedButton(5)
door_outside_button = GroveLedButton(18)
door_inside_button = GroveLedButton(16)

warehouse_button.on_press = on_press_main
door_outside_button.on_press = on_press_door_outside
door_inside_button.on_press = on_press_door_inside

warehouse_relay = GroveRelay(22)
door_outside_relay = GroveRelay(26)
door_inside_relay = GroveRelay(24)

temperature_doors = Factory.getTemper("MCP9808-I2C", 0x18)
temperature_doors.resolution(Temper.RES_1_16_CELSIUS)
temperature_warehouse = Factory.getTemper("MCP9808-I2C", 0x19)
temperature_warehouse.resolution(Temper.RES_1_16_CELSIUS)


async def main():
    print('starting OPC server ')
    opc_server = Server()
    await opc_server.init()
    opc_url = "opc.tcp://0.0.0.0:4840"
    opc_server.set_endpoint(opc_url)

    print('starting OPC server ..')
    opc_name = "Grove-opcua-server"
    addspace = await opc_server.register_namespace(opc_name)
 def __init__(self, pin):
     #Analog Port
     self.__tmp = Factory.getTemper("NTC-ADC", pin)
Esempio n. 12
0
 def __init__(self):
     self.channel = 6
     self.sensor = Factory.getTemper("NTC-ADC", 6)
def main():

    global main_state, door_1_state, door_2_state

    main_button = GroveLedButton(5)
    door_1_button = GroveLedButton(16)
    door_2_button = GroveLedButton(18)

    main_relay = GroveRelay(22)
    door_1_relay = GroveRelay(24)
    door_2_relay = GroveRelay(26)

    sensor_d = Factory.getTemper("MCP9808-I2C", 0x18)
    sensor_d.resolution(Temper.RES_1_16_CELSIUS)
    sensor_w = Factory.getTemper("MCP9808-I2C", 0x19)
    sensor_w.resolution(Temper.RES_1_16_CELSIUS)
    sensor_o = Factory.getTemper("NTC-ADC", 0x00, 2)
    sensor_air = GroveAirQualitySensor(6)

    def on_press_main():
        global main_state, door_1_state, door_2_state
        if main_state:
            main_state = False
            door_1_state = False
            door_2_state = False
            main_relay.off()
            door_1_relay.off()
            door_2_relay.off()
            main_button.led_off()
            door_1_button.led_off()
            door_2_button.led_off()
        else:
            main_state = True
            main_relay.on()
            main_button.led_on()

    def on_press_1():
        global main_state, door_1_state
        if main_state:
            if door_1_state:
                door_1_state = False
                door_1_relay.off()
                door_1_button.led_off()
            else:
                if not door_2_state:
                    door_1_state = True
                    door_1_relay.on()
                    door_1_button.led_on()

    def on_press_2():
        global main_state, door_2_state
        if main_state:
            if door_2_state:
                door_2_state = False
                door_2_relay.off()
                door_2_button.led_off()
            else:
                if not door_1_state:
                    door_2_state = True
                    door_2_relay.on()
                    door_2_button.led_on()

    main_button.on_press = on_press_main
    door_1_button.on_press = on_press_1
    door_2_button.on_press = on_press_2
    print('time      Air Q   (C) outdoor, door & warehouse temperatures')
    while True:
        try:
            time.sleep(1)
            print('{} '.format(datetime.now().strftime("%X")),
                  '{}    '.format(sensor_air.value),
                  '{} '.format(int(sensor_o.temperature)),
                  '{} '.format(sensor_d.temperature),
                  '{}'.format(sensor_w.temperature))
        except KeyboardInterrupt:
            main_relay.off()
            door_1_relay.off()
            door_2_relay.off()
            main_button.led_off()
            door_1_button.led_off()
            door_2_button.led_off()
            print("exit")
            exit(1)
def get_temp():
    sensor = Factory.getTemper("NTC-ADC", pinTemp)
    #print('{} Celsius'.format(sensor.temperature))
    return sensor.temperature
Esempio n. 15
0
def get_sensor(pin):
    sensor = Factory.getTemper("NTC-ADC", pin)
    return sensor
Esempio n. 16
0
 def __init__(self, pin):
     self.__pin = pin
     self.__sensor = Factory.getTemper("NTC-ADC", pin)
    def __init__(self, master=None):

        self.warehouse_state = False
        self.door_outside_state = False
        self.door_inside_state = False
        self.door_count = 0
        self.system_on_time = 0
        self.system_on = 0
        self.system_delta_time = 0
        self.door_open_time = 0
        self.door_time = 0

        self.warehouse_button = GroveLedButton(5)
        self.door_outside_button = GroveLedButton(18)
        self.door_inside_button = GroveLedButton(16)

        self.warehouse_button.on_press = self.on_press_main
        self.door_outside_button.on_press = self.on_press_door_outside
        self.door_inside_button.on_press = self.on_press_door_inside

        self.warehouse_relay = GroveRelay(22)
        self.door_outside_relay = GroveRelay(26)
        self.door_inside_relay = GroveRelay(24)

        self.sensor_d = Factory.getTemper("MCP9808-I2C", 0x18)
        self.sensor_d.resolution(Temper.RES_1_16_CELSIUS)
        self.sensor_w = Factory.getTemper("MCP9808-I2C", 0x19)
        self.sensor_w.resolution(Temper.RES_1_16_CELSIUS)
        print('{:.1f} {:.1f} Door & Warehouse temperature'.format(
            self.sensor_d.temperature, self.sensor_w.temperature))

        # Handle tkinter part
        super().__init__(master)
        self.master.protocol("WM_DELETE_WINDOW", self.close_app)

        self.master.wm_title("Warehouse")
        self.master.wm_resizable(width=False, height=False)
        fontlabel = ('helvetica', 15, 'bold')

        # top row names

        self.lbl_main = tk.Label(self.master,
                                 text="System",
                                 width=15,
                                 font=fontlabel)
        self.lbl_main.grid(row=0, column=0)

        self.lbl_door_outside = tk.Label(self.master,
                                         text="Outside Door",
                                         width=15,
                                         font=fontlabel)
        self.lbl_door_outside.grid(row=0, column=1)

        self.lbl_door_inside = tk.Label(self.master,
                                        text="Inside Door",
                                        width=15,
                                        font=fontlabel)
        self.lbl_door_inside.grid(row=0, column=2)

        self.lbl_info = tk.Label(self.master,
                                 text="Data",
                                 width=15,
                                 font=fontlabel)
        self.lbl_info.grid(row=0, column=3)

        # top row with switches (buttons) in on state (red, grayed in off mode)

        self.btn_warehouse_on = tk.Button(self.master,
                                          text="Turn System On",
                                          width=15)
        # only screen control after physical switch (event_warehouse_switch) is turned on, then button is also active
        self.btn_warehouse_on["command"] = self.on_press_main
        self.btn_warehouse_on.grid(row=1, column=0)

        self.btn_door_outside_open = tk.Button(self.master,
                                               text="Open Outside Door",
                                               width=15)
        self.btn_door_outside_open["command"] = self.on_press_door_outside
        self.btn_door_outside_open.grid(row=1, column=1)

        self.btn_door_inside_open = tk.Button(self.master,
                                              text="Open Inside Door",
                                              width=15)
        self.btn_door_inside_open["command"] = self.on_press_door_inside
        self.btn_door_inside_open.grid(row=1, column=2)

        self.lbl_energy = tk.Label(self.master,
                                   text="loss: 0",
                                   width=15,
                                   height=4)
        self.lbl_energy.grid(row=1, column=3)

        # Status information in middle row

        self.lbl_state_main = tk.Label(self.master,
                                       bg='light grey',
                                       text="OFF",
                                       width=15,
                                       height=4)
        self.lbl_state_main.grid(row=2, column=0)

        self.lbl_state_door_outside = tk.Label(self.master,
                                               bg='light grey',
                                               text="Closed",
                                               width=15,
                                               height=4)
        self.lbl_state_door_outside.grid(row=2, column=1)

        self.lbl_state_door_inside = tk.Label(self.master,
                                              bg='light grey',
                                              text="Closed",
                                              width=15,
                                              height=4)
        self.lbl_state_door_inside.grid(row=2, column=2)

        self.lbl_temperature = tk.Button(self.master, text="temperature")
        self.lbl_temperature.grid(row=2, column=3)

        # bottom row with switches (buttons) in off state (black button grayed in on)

        self.btn_warehouse_off = tk.Button(self.master,
                                           text="Turn System Off",
                                           width=15)
        self.btn_warehouse_off.config(bg='#00C1FF', fg='white')
        self.btn_warehouse_off["command"] = self.on_press_main
        self.btn_warehouse_off.grid(row=3, column=0)

        self.btn_door_outside_close = tk.Button(self.master,
                                                text="Close Outside Door",
                                                width=15)
        self.btn_door_outside_close.config(bg='#00C1FF', fg='white')
        self.btn_door_outside_close["command"] = self.on_press_door_outside
        self.btn_door_outside_close.grid(row=3, column=1)

        self.btn_door_inside_close = tk.Button(self.master,
                                               text="Close Inside Door",
                                               width=15)
        self.btn_door_inside_close.config(bg='#00C1FF', fg='white')
        self.btn_door_inside_close["command"] = self.on_press_door_inside
        self.btn_door_inside_close.grid(row=3, column=2)

        self.lbl_system_on = tk.Label(self.master, text="time on: 0", width=15)
        self.lbl_system_on.grid(row=3, column=3)

        self.btn_stop = tk.Button(self.master, text="Stop")
        self.btn_stop["command"] = self.close_app
        self.btn_stop.grid(row=4, column=0)

        self.lbl_count = tk.Label(self.master, text="# door: 0", width=15)
        self.lbl_count.grid(row=3, column=3)

        self.update_temp()
Esempio n. 18
0
door_1_state = False
door_2_state = False


def main():

    global main_state, door_1_state, door_2_state

    main_button = GroveLedButton(5)
    door_1_button = GroveLedButton(18)
    door_2_button = GroveLedButton(16)
    main_relay = GroveRelay(22)
     door_1_relay = GroveRelay(26)
    door_2_relay = GroveRelay(24)

    sensor_d = Factory.getTemper("MCP9808-I2C", 0x18)
    sensor_d.resolution(Temper.RES_1_16_CELSIUS)
    sensor_w = Factory.getTemper("MCP9808-I2C", 0x19)
    sensor_w.resolution(Temper.RES_1_16_CELSIUS)

    print('Time Temp.: door & warehouse (C)')

    def on_press_main():
        global main_state, door_1_state, door_2_state
        if main_state:
            main_state = False
            door_1_state = False
            door_2_state = False
            main_relay.off()
            door_1_relay.off()
            door_2_relay.off()
    def __init__(self):

        self.warehouse_state = False
        self.door_outside_state = False
        self.door_inside_state = False

        self.warehouse_button = GroveLedButton(5)
        self.door_outside_button = GroveLedButton(18)
        self.door_inside_button = GroveLedButton(16)

        self.warehouse_button.on_press = self.on_press_main
        self.door_outside_button.on_press = self.on_press_door_outside
        self.door_inside_button.on_press = self.on_press_door_inside

        self.warehouse_relay = GroveRelay(22)
        self.door_outside_relay = GroveRelay(26)
        self.door_inside_relay = GroveRelay(24)

        self.time_stamp = datetime.now()
        self.temperature_doors = Factory.getTemper("MCP9808-I2C", 0x18)
        self.temperature_doors.resolution(Temper.RES_1_16_CELSIUS)
        self.temperature_warehouse = Factory.getTemper("MCP9808-I2C", 0x19)
        self.temperature_warehouse.resolution(Temper.RES_1_16_CELSIUS)
        self.temperature_outdoor = Factory.getTemper("NTC-ADC", 0x00, 2)
        # 2 implies on the grove base hat board port A2, top row, last port)
        self.warehouse_air_quality = GroveAirQualitySensor(6)
        # 6 implies on the grove base hat board port A6, middle row, last port
        # print('{} Celsius warehouse temperature'.format(self.temperature_warehouse.temperature))
        # print('{} Celsius outside temperature'.format(int(self.temperature_outdoor.temperature)))
        # print('{} Air Quality (carbon monoxide & other gasses'.format(self.warehouse_air_quality.value))

        print('starting OPC server ')
        self.opc_server = Server(shelffile="/home/pi/grove-opc-server")
        #shelffile is trick with freeopcua to speedup loading of xml object base
        self.opc_url = "opc.tcp://0.0.0.0:4840"
        self.opc_server.set_endpoint(self.opc_url)

        print('starting OPC server ..')
        self.opc_name = "Grove-opcua-server"
        self.addspace = self.opc_server.register_namespace(self.opc_name)
        print('starting OPC server ...')

        self.opc_node = self.opc_server.get_objects_node()
        self.param = self.opc_node.add_object(self.addspace, "Parameters")

        self.opc_time = self.param.add_variable(self.addspace, "Time", 0)
        self.opc_temperature_w = self.param.add_variable(self.addspace, "Temperature warehouse", 0.0)
        self.opc_temperature_d = self.param.add_variable(self.addspace, "Temperature door-lock", 0.0)
        self.opc_temperature_o = self.param.add_variable(self.addspace, "Temperature outdoor", 0.0)
        self.opc_warehouse_air = self.param.add_variable(self.addspace, "Warehouse air", 0.0)
        self.opc_trigger = self.param.add_variable(self.addspace, "Trigger", 0)
        self.opc_warehouse_state = self.param.add_variable(self.addspace, "Warehouse state", 0)
        self.opc_door_outside = self.param.add_variable(self.addspace, "Outside door", 0)
        self.opc_door_inside = self.param.add_variable(self.addspace, "Inside door", 0)

        self.opc_time.set_read_only()
        self.opc_temperature_w.set_read_only()
        self.opc_temperature_d.set_read_only()
        self.opc_temperature_o.set_read_only()
        self.opc_warehouse_air.set_read_only()
        self.opc_trigger.set_read_only()
        self.opc_warehouse_state.set_read_only()
        self.opc_door_outside.set_read_only()
        self.opc_door_inside.set_read_only()

        print('starting OPC server .....')
        self.opc_server.start()
        print("OPC UA Server started at {}".format(self.opc_url))
        print()
        print("                                                   T = temperature Celsius")
        print("time     trigger  warehouse outside-door  inside-door Q-air  T-outdoor  T-doors T-warehouse")