Exemplo n.º 1
0
def main():

    signal.signal(signal.SIGABRT, handler)
    signal.signal(signal.SIGINT, handler)
    signal.signal(signal.SIGTERM, handler)

    print('Starting main program')

    try:

        errmsg = YRefParam()

        # Setup the API to use local USB devices
        if YAPI.RegisterHub("usb", errmsg) != YAPI.SUCCESS:
            print("init error" + errmsg.value)
            raise ServiceExit

        disp = YDisplay.FirstDisplay()
        if disp is None:
            print('No module connected')
            raise ServiceExit

        if not disp.isOnline():
            print("Module not connected ")
            raise ServiceExit

        # display clean up
        disp.resetAll()

        l0 = disp.get_displayLayer(0)

        l1 = disp.get_displayLayer(1)
        l2 = disp.get_displayLayer(2)
        l1.hide()  # L1 is hidden, l2 stays visible
        centerX = disp.get_displayWidth() / 2
        centerY = disp.get_displayHeight() / 2
        radius = disp.get_displayHeight() / 2
        a = 0

        x = 0

        y = DeviceManager(queue)
        # d = DisplayManager(queue)

        y.start()
        # d.start()

        while True:
            # we draw in the hidden layer
            l1.clear()

            l1.selectFont("Large.yfm")
            drawText(l1, x, centerY, "Work")
            x += 1
            if x > disp.get_layerWidth() + (disp.get_layerWidth() / 2):
                x = -(disp.get_layerWidth() / 2)

            disp.swapLayerContent(1, 2)

            # Do something
            print('Doing something imporant in the background (main)')

            num = queue.get()
            queue.task_done()
            print("Consumed", num)

            time.sleep(0.5)
    except ServiceExit:
        y.shutdown_flag.set()
        # d.shutdown_flag.set()

        y.join()
        # d.join()

    print("Exiting the main program")
Exemplo n.º 2
0
        data = {}
        data['ip_address'] = IP_ADDRESS
        data['port'] = PORT
        data['endpoints'] = []
        data['endpoints'].append('/devices')
        data['endpoints'].append('/users')
        data['endpoints'].append('/services')
        data = json.dumps(data)
        return data


if __name__ == "__main__":
    conf = {
        '/': {
            'request.dispatch': cherrypy.dispatch.MethodDispatcher(),
        }
    }

    cherrypy.tree.mount(BrokerInfo(), '/', conf)
    cherrypy.tree.mount(DeviceManager.DeviceManager(), '/devices', conf)
    cherrypy.tree.mount(ServiceManager.ServiceManager(), '/services', conf)
    cherrypy.tree.mount(UserManager.UserManager(), '/users', conf)

    cherrypy.config.update({
        'server.socket_host': IP_ADDRESS,
        'server.socket_port': PORT
    })

    Cleaner.Cleaner()
    cherrypy.engine.start()
    cherrypy.engine.block()
Exemplo n.º 3
0
import time
import mysql.connector
import DatabaseManager
import SmartBulbManager
import DeviceManager
# Init Database

database = DatabaseManager.DatabaseConnector()
database.connect()
database.createDataModel()
database.disconnect()

# Discover available devices

deviceManager = DeviceManager.DeviceManager()
deviceManager.fetchAvailableDevices()

# Create Bulb
#print('aqui')
#bulb = SmartBulbManager.SmartBulb('Luz do Quarto','192.168.15.14')
#bulb.turnOff()

 def __init__(self, aManageIRQ):
     self.deviceManage = DeviceManager(aManageIRQ)
Exemplo n.º 5
0
dht11_temperature = MQTT.PublisherAdapter("/sensors/dht11/01/temperature",
                                          dht11.get_temperature)
dht11_humidity = MQTT.PublisherAdapter("/sensors/dht11/01/humidity",
                                       dht11.get_humidity)
rpi_cpu_temp = RPiSensors.CPUTemperature("/sensors/temperature/cpu")
rpi_gpio_pump1 = RPiSensors.GPIO("/devices/pump/air", 27, True, RPi.GPIO.OUT,
                                 False)
rpi_gpio_pump2 = RPiSensors.GPIO("/devices/pump/circulation", 22, False,
                                 RPi.GPIO.OUT, True)
# temp_tank = I2CDevices.ADS1115_NTC_ChannelAdapter("/sensors/temperature/tank", ads_ntc, 1)
# temp_ext = I2CDevices.ADS1115_NTC_ChannelAdapter("/sensors/temperature/ext", ads_ntc, 2)

mqtt_client = MQTT.Client(device_id)
mqtt_client.username_pw_set(mqtt_user, mqtt_pass)

device_manager = DeviceManager.DeviceManager(mqtt_client)
device_manager.add(dht11_temperature, 60)
device_manager.add(dht11_humidity, 60)
device_manager.add(rpi_cpu_temp, 60)
device_manager.add(rpi_gpio_pump1, 60)
device_manager.add(rpi_gpio_pump2, 60)
device_manager.add(temp_tank, 60)
device_manager.add(temp_ext, 60)
device_manager.add(tank_level, 60)

schedule.every(900).seconds.do(ads.reset)  # reset ads every 15 minutes

# finally connect
connected = False
while not connected:
    try: