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)
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)
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)
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)
def __init__(self, pin): self.__tmp = Factory.getTemper("NTC-ADC", pin)
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)")
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)
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
def get_sensor(pin): sensor = Factory.getTemper("NTC-ADC", pin) return sensor
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()
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")