示例#1
0
def main():
    pin = Pin(('GPIO_1', 5), Pin.OUT)
    led = Signal(pin, invert=True)
    led.off()
    led_status = 'OFF'

    while True:
        reported = {'state': {'reported': {}}}

        reported['state']['reported']['led'] = led_status

        degu.update_shadow(ujson.dumps(reported))

        received = degu.get_shadow()
        if received:
            try:
                desired = ujson.loads(received)
                try:
                    led_status = desired['state']['desired']['led']
                except:
                    pass
                if led_status == 'ON':
                    led.on()
                else:
                    led.off()
            except:
                pass

        time.sleep(1)
示例#2
0
def main():
    reported = {'state': {'reported': {}}}

    gps = GPS(0, GPS_BAUDRATE)

    while True:
        reported['state']['reported'] = gps.read(("gprmc", "gpgsa"))
        json = ujson.dumps(reported)
        print(json)
        degu.update_shadow(json)
        time.sleep(1)
示例#3
0
def main():
    reported = {'state': {'reported': {}}}

    vib = PIR(0)

    while True:
        reported['state']['reported']['motion'] = vib.detect()
        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(1)
示例#4
0
def main():
    reported = {'state': {'reported': {}}}

    collision = Collision(0)

    while True:
        reported['state']['reported']['collision'] = collision.detect()
        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(1)
示例#5
0
def main():
    reported = {'state': {'reported': {}}}

    lsm6ds3 = LSM6DS3(0x6A, True, True)  #device_addr, accel_mode, gyros_mode

    while True:
        reported['state']['reported']['accel'] = lsm6ds3.accel_start()
        reported['state']['reported']['gyro'] = lsm6ds3.gyros_start()

        print(ujson.dumps(reported))
        degu.update_shadow(ujson.dumps(reported))
        time.sleep(5)
示例#6
0
def main():
    reported = {'state': {'reported': {}}}

    loudness = Loudness(0)

    while True:
        reported['state']['reported']['loudness'] = loudness.read()

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(30)
示例#7
0
def main():
    reported = {'state': {'reported': {}}}

    air = AirQuality(0)

    while True:
        reported['state']['reported']['air_quality'] = air.read()

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(60)
示例#8
0
def main():
    reported = {'state': {'reported': {}}}

    mmc7660 = MMC7660(MMC7660_I2CADDR)

    while True:
        reported['state']['reported']['axis'] = mmc7660.getAxes()

        json = ujson.dumps(reported)
        print(json)
        degu.update_shadow(json)
        time.sleep(5)
示例#9
0
def main():
    reported = {'state': {'reported': {}}}

    moisture = Moisture(0)

    while True:
        reported['state']['reported']['moisture'] = moisture.read()

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(30)
示例#10
0
def main():
    reported = {'state': {'reported': {}}}

    current = Current(0)

    while True:
        reported['state']['reported']['current'] = current.read()

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(1)
示例#11
0
def main():
    reported = {'state': {'reported': {}}}

    temp = Temperature(0)

    while True:
        reported['state']['reported']['temp'] = temp.read()

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(60)
示例#12
0
def main():
    reported = {'state': {'reported': {}}}

    bma400 = BMA400(BMA400_I2CADDR)

    while True:
        reported['state']['reported']['temp'] = bma400.temprature_read()
        reported['state']['reported']['axis'] = bma400.accel_axis_read()

        json = ujson.dumps(reported)
        print(json)
        degu.update_shadow(json)
        time.sleep(5)
示例#13
0
def main():
    reported = {'state': {'reported': {}}}

    bus = I2C(1)
    bmp = BMP280(i2c=bus)

    while True:
        reported['state']['reported']['temp'] = bmp.values[0]
        reported['state']['reported']['pres'] = bmp.values[1]

        print(ujson.dumps(reported))
        degu.update_shadow(ujson.dumps(reported))
        time.sleep(60)
示例#14
0
def main():
    reported = {'state': {'reported': {}}}

    vib = Vibration(0)

    while True:
        reported['state']['reported']['vibration'] = "not detected"
        for i in range(100):
            if vib.detect():
                reported['state']['reported']['detected'] = "detected"
            sleep(0.01)
        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
示例#15
0
def main():
    reported = {'state': {'reported': {}}}

    bus = I2C(1)
    sht31 = SHT31(i2c=bus)

    while True:
        values = sht31.get_temp_humi()

        reported['state']['reported']['temp'] = values[0]
        reported['state']['reported']['humid'] = values[1]

        print(ujson.dumps(reported))
        degu.update_shadow(ujson.dumps(reported))
        time.sleep(60)
示例#16
0
def main():
    reported = {'state': {'reported': {}}}

    pm25 = PM25()

    while True:
        concentration = pm25.get_concentration()
        reported['state']['reported']['pollution'] = {
            'pm1.0': concentration[0],
            'pm2.5': concentration[1],
            'pm10': concentration[2]
        }

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(60)
示例#17
0
def main():
    reported = {'state': {'reported': {}}}

    while True:
        co2 = CO2()

        concentration = co2.getConcentration()
        reported['state']['reported']['co2'] = {
            'co2concentration': concentration[0],
            'temperature': concentration[1],
            'humidity': concentration[2]
        }

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(60)
示例#18
0
def main():
    reported = {'state': {'reported': {}}}

    colorSensor = ColorSensor()

    while True:
        color = colorSensor.readColor()
        reported['state']['reported']['color'] = {
            'red': color[0],
            'green': color[1],
            'blue': color[2]
        }

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(60)
示例#19
0
def main():
    reported = {'state': {'reported': {}}}

    rtc = RTC()

    # RTC initialization
    rtc.setTime(2019, 5, 22, 17, 31, 30)

    days = ["MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"]
    formatString = "{}-{:0>2}-{:0>2}({:0>2}) {:0>2}:{:0>2}:{:0>2}"

    while True:
        time = rtc.getTime()
        reported['state']['reported']['time'] = {
            "time":
            formatString.format(time[0], time[1], time[2], days[time[3]],
                                time[4], time[5], time[6])
        }

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)
        sleep(1)
示例#20
0
from machine import Pin
import degu
import ujson

if __name__ == '__main__':
    reported = {'state': {'reported': {}}}

    sw4 = Pin(('GPIO_1', 14), Pin.IN, Pin.PULL_UP)
    led = Pin(('GPIO_1', 8), Pin.OUT)

    before = 0
    while True:
        value = sw4.value()
        if value != before:
            if value == 1:
                reported['state']['reported']['led'] = 'off'
                led.off()
            else:
                reported['state']['reported']['led'] = 'on'
                led.on()

            print(ujson.dumps(reported))
            degu.update_shadow(ujson.dumps(reported))
            before = value
示例#21
0
import ujson

import degu

def battery_voltage():
    R6 = 68
    R8 = 100

    ADC_REF = 0.6
    ADC_RESOLUTION=4096 #12bit
    ain = ADC(1)
    ain.gain(ain.GAIN_1_6) #gain set to 1/6

    raw = ain.read()
    vin = (raw / ADC_RESOLUTION) * ADC_REF * 6

    v = vin * ((R6 + R8) / R8)
    return v

if __name__ == '__main__':
    reported = {'state':{'reported':{}}}

    while True:
        reported['state']['reported']['battery'] = battery_voltage()

        json = ujson.dumps(reported)
        degu.update_shadow(json)
        print(json)

        degu.suspend(30)