Beispiel #1
0
def __init_bme280_i2c():
    global BME280_OBJ
    if BME280_OBJ is None:
        i2c = I2C(scl=Pin(get_pin_on_platform_by_key('i2c_scl')),
                  sda=Pin(get_pin_on_platform_by_key('i2c_sda')),
                  freq=10000)
        BME280_OBJ = BME280(i2c=i2c)
    return BME280_OBJ
Beispiel #2
0
def __init():
    global __OLED
    if __OLED is None:
        from machine import Pin, I2C
        from ssd1306 import SSD1306_I2C
        from LogicalPins import get_pin_on_platform_by_key
        i2c = I2C(-1, Pin(get_pin_on_platform_by_key('i2c_scl')),
                  Pin(get_pin_on_platform_by_key('i2c_sda')))
        __OLED = SSD1306_I2C(128, 64, i2c)
    return __OLED
Beispiel #3
0
def __RGB_init():
    global __RGB_OBJS
    if __RGB_OBJS[0] is None or __RGB_OBJS[1] is None or __RGB_OBJS[2] is None:
        from machine import Pin, PWM
        from LogicalPins import get_pin_on_platform_by_key
        red = Pin(get_pin_on_platform_by_key('pwm_1'))
        green = Pin(get_pin_on_platform_by_key('pwm_2'))
        blue = Pin(get_pin_on_platform_by_key('pwm_3'))
        __RGB_OBJS = (PWM(red, freq=480), PWM(green,
                                              freq=480), PWM(blue, freq=480))
    return __RGB_OBJS
Beispiel #4
0
def __RGB_init():
    global __RLED, __GLED, __BLED
    if __RLED is None or __GLED is None or __BLED is None:
        from machine import Pin, PWM
        from LogicalPins import get_pin_on_platform_by_key
        d7_gpio13_red = Pin(get_pin_on_platform_by_key('pwm_1'))
        d4_gpio2_green = Pin(get_pin_on_platform_by_key('pwm_2'))
        d3_gpio0_blue = Pin(get_pin_on_platform_by_key('pwm_3'))
        __RLED = PWM(d7_gpio13_red, freq=80)
        __GLED = PWM(d4_gpio2_green, freq=80)
        __BLED = PWM(d3_gpio0_blue, freq=80)
Beispiel #5
0
def __init_HCSR04():
    global __TRIGGER_OBJ, __ECHO_OBJ
    if __TRIGGER_OBJ is None or __ECHO_OBJ is None:
        from LogicalPins import get_pin_on_platform_by_key

        trigger_pin = get_pin_on_platform_by_key('simple_0')
        echo_pin = get_pin_on_platform_by_key('pwm_5')
        # Init trigger pin (out)
        __TRIGGER_OBJ = Pin(trigger_pin, mode=Pin.OUT, pull=None)
        __TRIGGER_OBJ.value(0)
        # Init echo pin (in)
        __ECHO_OBJ = Pin(echo_pin, mode=Pin.IN, pull=None)
    return __TRIGGER_OBJ, __ECHO_OBJ
Beispiel #6
0
def __l298n_init():
    global __L298N_OBJS
    if len(__L298N_OBJS) == 0:
        from machine import Pin, PWM
        from LogicalPins import get_pin_on_platform_by_key
        __L298N_OBJS.append(
            PWM(Pin(get_pin_on_platform_by_key('pwm_6')), freq=1024))
        __L298N_OBJS.append(Pin(get_pin_on_platform_by_key('pwm_5'), Pin.OUT))
        __L298N_OBJS.append(Pin(get_pin_on_platform_by_key('pwm_7'), Pin.OUT))
        __L298N_OBJS[0].duty(0)  # Set default speed (PWM)
        __L298N_OBJS[1].value(0)  # Set default direction for dc motor1
        __L298N_OBJS[2].value(1)  # Set default direction for dc motor1
    return __L298N_OBJS
Beispiel #7
0
def __init_tempt6000():
    """
    Setup ADC
    read        0(0V)-1024(1V) MAX 1V input
    read_u16    0 - 65535 range
    """
    global __ADC
    if __ADC is None:
        from machine import ADC, Pin
        from LogicalPins import get_pin_on_platform_by_key
        if 'esp8266' in platform:
            __ADC = ADC(get_pin_on_platform_by_key('adc_1'))
        else:
            __ADC = ADC(Pin(get_pin_on_platform_by_key('adc_1')))
    return __ADC
Beispiel #8
0
def __SWITCH_init():
    global __SWITCH_OBJ
    if __SWITCH_OBJ is None:
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        __SWITCH_OBJ = Pin(get_pin_on_platform_by_key('simple_0'), Pin.OUT)
    return __SWITCH_OBJ
Beispiel #9
0
def __init_PIR_sensor():
    global __PIR_OBJ
    if __PIR_OBJ is None:
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        __PIR_OBJ = Pin(get_pin_on_platform_by_key('simple_2'), Pin.IN,
                        Pin.PULL_UP)
    return __PIR_OBJ
Beispiel #10
0
def __init_DHT22():
    global __DHT_OBJ
    if __DHT_OBJ is None:
        from dht import DHT22
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        __DHT_OBJ = DHT22(Pin(get_pin_on_platform_by_key('simple_1')))
    return __DHT_OBJ
Beispiel #11
0
def __dimmer_init():
    global __DIMMER_OBJ
    if __DIMMER_OBJ is None:
        from machine import Pin, PWM
        from LogicalPins import get_pin_on_platform_by_key
        dimmer_pin = Pin(get_pin_on_platform_by_key('pwm_5'))
        __DIMMER_OBJ = PWM(dimmer_pin, freq=480)
    return __DIMMER_OBJ
Beispiel #12
0
def __init_ADC():
    """
    Setup ADC
    """
    global __ADC
    if __ADC is None:
        from machine import ADC, Pin
        from LogicalPins import get_pin_on_platform_by_key
        if 'esp8266' in platform:
            __ADC = ADC(get_pin_on_platform_by_key('adc_2'))
        else:
            __ADC = ADC(Pin(get_pin_on_platform_by_key('adc_2')))
            # set 11dB input attenuation (voltage range roughly 0.0v - 3.6v)
            __ADC.atten(ADC.ATTN_11DB)
            # set 9 bit return values (returned range 0-511)
            __ADC.width(ADC.WIDTH_9BIT)
    return __ADC
Beispiel #13
0
def touch(triglvl=300):
    """
    triglvl - trigger level, value < triglvl decide touched
    """
    from machine import TouchPad, Pin
    from LogicalPins import get_pin_on_platform_by_key
    t = TouchPad(Pin(get_pin_on_platform_by_key('touch_0')))
    value = t.read()  # Returns a smaller number when touched
    return {'isTouched': True if value < triglvl else False, 'value': value}
Beispiel #14
0
def getpin(key='builtin'):
    from sys import modules
    from LogicalPins import get_pin_on_platform_by_key
    return {
        key:
        get_pin_on_platform_by_key(key),
        'pinmap':
        ', '.join((mdl.replace('LP_', '').split('.')[0]
                   for mdl in modules.keys() if mdl.startswith('LP_')))
    }
Beispiel #15
0
def __SERVO_init():
    global __SERVO
    if __SERVO is None:
        try:
            pin = Pin(get_pin_on_platform_by_key('pwm_0'))
            __SERVO = PWM(pin, freq=50)
            del pin
        except Exception as e:
            return str(e)
    return __SERVO
Beispiel #16
0
def __SERVO2_init():
    global __SERVO2
    if __SERVO2 is None:
        try:
            pin = Pin(
                get_pin_on_platform_by_key('pwm_2'))  # Alternative wiring
            __SERVO2 = PWM(pin, freq=50)
            del pin
        except Exception as e:
            return str(e)
    return __SERVO2
Beispiel #17
0
def __init_NEOPIXEL(n=8):
    """
    Init NeoPixel module
    n - number of led fragments
    """
    global __NEOPIXEL_OBJ
    if __NEOPIXEL_OBJ is None:
        from neopixel import NeoPixel
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        neopixel_pin = Pin(get_pin_on_platform_by_key('pwm_3'))     # Get Neopixel pin from LED PIN pool
        __NEOPIXEL_OBJ = NeoPixel(neopixel_pin, n)                  # initialize for max 8 segments
    return __NEOPIXEL_OBJ
Beispiel #18
0
def __get_resistance():
    """
    Returns the resistance of the sensor in kOhms // -1 if not value got in pin
    10.0 - 'RLOAD' The load resistance on the board
    """
    global __ADC
    if __ADC is None:
        from machine import ADC
        from LogicalPins import get_pin_on_platform_by_key
        __ADC = ADC(get_pin_on_platform_by_key('adc_0'))
    value = __ADC.read()
    if value == 0:
        return -1
    return (1023. / value - 1.) * 10.0
Beispiel #19
0
def init_eventPIN():
    """
    EVENT INTERRUPT CONFIGURATION
    """
    global CFG_EVIRQCBF
    if cfgget('extirq') and cfgget('extirqcbf').lower() != 'n/a':
        CFG_EVIRQCBF = cfgget('extirqcbf')
        pin = get_pin_on_platform_by_key('pwm_4')
        console_write("[IRQ] EVENTIRQ ENABLED PIN: {} CBF: {}".format(pin, CFG_EVIRQCBF))
        # Init event irq with callback function wrapper
        from machine import Pin
        pin_obj = Pin(pin, Pin.IN, Pin.PULL_UP)
        pin_obj.irq(trigger=Pin.IRQ_RISING, handler=secureEventInterruptHandler)
    else:
        console_write("[IRQ] EVENTIRQ: isenable: {} callback: {}".format(cfgget('extirq'), CFG_EVIRQCBF))
Beispiel #20
0
def __init_NEOPIXEL(n=24):
    """
    Init NeoPixel module
    n - number of led fragments
    n - must be set from code! (no persistent object handling in LMs)
    """
    global __NEOPIXEL_OBJ
    if __NEOPIXEL_OBJ is None:
        from neopixel import NeoPixel
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        neopixel_pin = Pin(get_pin_on_platform_by_key(
            'pwm_3'))  # Get Neopixel pin from LED PIN pool
        __NEOPIXEL_OBJ = NeoPixel(neopixel_pin,
                                  n)  # initialize for max 8 segments
        del neopixel_pin
    return __NEOPIXEL_OBJ
Beispiel #21
0
- cache handling
- read / write to file
- secure type handling
- default parameter injection (update)

Designed by Marcell Ban aka BxNxM
"""
#################################################################
#                           IMPORTS                             #
#################################################################
from time import sleep
from json import load, dump

from machine import Pin
from LogicalPins import get_pin_on_platform_by_key
PLED = Pin(get_pin_on_platform_by_key('builtin'), Pin.OUT)

# SET IT LATER FROM CONFIG
__DEBUG_PRINT = True
__CONFIG_CACHE = {}
# - MicrOS config
__CONFIG_PATH = "node_config.json"

#################################################################
#                       MODULE CONFIG
#################################################################


def default_config():
    """
    micrOS "code" config.
Beispiel #22
0
            return str(value)
        if isinstance(value_in_cfg, int):
            del value_in_cfg
            return int(value)
        if isinstance(value_in_cfg, float):
            del value_in_cfg
            return float(value)
    except Exception as e:
        console_write("Input value type error! {}".format(e))
    return None


#################################################################
#                       MODULE AUTO INIT                        #
#################################################################

if "ConfigHandler" in __name__:
    # [!!!] Validate / update / create user config
    __inject_default_conf()
    if not cfgget('dbg'): console_write("[micrOS] debug print was turned off")
    # [!!!] Init selected pinmap ('builtin' is the default key, 'cstmpmap' user LP data)
    if cfgget('cstmpmap') != 'n/a':
        get_pin_on_platform_by_key('builtin', cfgget('cstmpmap'))
    # DEACTIVATE plead and dbg based on config settings (inject user conf)
    if cfgget('pled') and get_pin_on_platform_by_key('builtin') is not None:
        __PLED = Pin(get_pin_on_platform_by_key('builtin'), Pin.OUT)
    __DEBUG_PRINT = cfgget('dbg')

if __name__ == "__main__":
    __inject_default_conf()
Beispiel #23
0
def __SWITCH2_init():
    if __SWITCH_OBJ[1] is None:
        from machine import Pin
        from LogicalPins import get_pin_on_platform_by_key
        __SWITCH_OBJ[1] = Pin(get_pin_on_platform_by_key('pwm_1'), Pin.OUT)
    return __SWITCH_OBJ[1]