Example #1
0
    def __init__(self):
        self.auth = auth
        self.ssid = ssid
        self.pswd = pswd

        BLINKER_DEBUG.debugAll()

        Blinker.mode('BLINKER_WIFI')
        Blinker.begin(auth, ssid, pswd)

        self.button1 = BlinkerButton('btn-of9')
        self.button2 = BlinkerButton('btn-a1x')  #开窗帘
        self.button3 = BlinkerButton('btn-qni')  #关窗帘
        self.button4 = BlinkerButton('btn-5gx')  #1号继电器
        self.number1 = BlinkerNumber('num-abc')
        self.number2 = BlinkerNumber('num-kf5')  #发送温度
        self.number3 = BlinkerNumber('num-50b')  #发送湿度
        self.slider1 = BlinkerSlider("ran-jhb")
        self.slider2 = BlinkerSlider("ran-bqm")

        self.counter = 0
        self.pinValue = 0

        self.p2 = p2
        self.p5 = p5
        self.value5 = 0
        self.pwm = pwm
        self.pwm.freq(38000)
        self.pwm.duty(1)
        self.pwm2 = pwm2
        self.pwm2.freq(38000)
        self.pwm2.duty(1)
        self.p2.value(self.pinValue)
Example #2
0
# -*- coding: utf-8 -*-
from Blinker.Blinker import Blinker, BlinkerButton, BlinkerNumber, BlinkerMiot
from Blinker.BlinkerConfig import *
from Blinker.BlinkerDebug import *

auth = 'Your Device Secret Key'

BLINKER_DEBUG.debugAll()

Blinker.mode('BLINKER_WIFI')
Blinker.miType(
    'BLINKER_MIOT_LIGHT'
)  # BLINKER_MIOT_LIGHT 灯, BLINKER_MIOT_OUTLET 插座, BLINKER_MIOT_MULTI_OUTLET 多口插座, BLINKER_MIOT_SENSOR 传感器
Blinker.begin(auth)

button1 = BlinkerButton('btn-abc')
number1 = BlinkerNumber('num-abc')

counter = 0
wsState = 'on'
wsMode = BLINKER_CMD_COMMON


def miotPowerState(state):
    ''' '''

    BLINKER_LOG('need set power state: ', state)

    wsState = state and 'on' or 'off'
    BlinkerMiot.powerState(wsState)
    BlinkerMiot.print()
Example #3
0
class LED():
    def __init__(self):
        self.auth = auth
        self.ssid = ssid
        self.pswd = pswd

        BLINKER_DEBUG.debugAll()

        Blinker.mode('BLINKER_WIFI')
        Blinker.begin(auth, ssid, pswd)

        self.button1 = BlinkerButton('btn-of9')
        self.button2 = BlinkerButton('btn-a1x')  #开窗帘
        self.button3 = BlinkerButton('btn-qni')  #关窗帘
        self.button4 = BlinkerButton('btn-5gx')  #1号继电器
        self.number1 = BlinkerNumber('num-abc')
        self.number2 = BlinkerNumber('num-kf5')  #发送温度
        self.number3 = BlinkerNumber('num-50b')  #发送湿度
        self.slider1 = BlinkerSlider("ran-jhb")
        self.slider2 = BlinkerSlider("ran-bqm")

        self.counter = 0
        self.pinValue = 0

        self.p2 = p2
        self.p5 = p5
        self.value5 = 0
        self.pwm = pwm
        self.pwm.freq(38000)
        self.pwm.duty(1)
        self.pwm2 = pwm2
        self.pwm2.freq(38000)
        self.pwm2.duty(1)
        self.p2.value(self.pinValue)

    def slider1_callback(self, value):

        value = 1024 - value
        self.pwm.duty(value)
        BLINKER_LOG('Slider read: ', value)

    def slider2_callback(self, value):

        self.pwm2.duty(value)
        BLINKER_LOG('Slider read: ', value)

    def button1_callback(self, state):

        BLINKER_LOG('get button state: ', state)

        self.pinValue = 1 - self.pinValue
        if self.pinValue == 1:
            self.button1.text('开')
        else:
            self.button1.text('关')
        self.p2.value(self.pinValue)
        print(self.pinValue)

    def button2_callback(self, state):
        t = threading.Thread(target=Run, args=(720, ))
        t.start()

    def button3_callback(self, state):
        t = threading.Thread(target=Run, args=(-720, ))
        t.start()

#继电器

    def button4_callback(self, state):
        self.value5 = 1 - self.value5
        self.p5.value(self.value5)
        print(self.value5)

    def data_callback(self, data):

        BLINKER_LOG('Blinker readString: ', data)
        self.counter += 1
        self.number1.print(self.counter)

    def heartbeat_callback(self):
        t, h = get_temp_hum()
        self.number2.print(t)
        self.number3.print(h)

    def run(self):
        self.button1.attach(self.button1_callback)
        Blinker.attachData(self.data_callback)
        Blinker.attachHeartbeat(self.heartbeat_callback)
        self.button2.attach(self.button2_callback)
        self.button3.attach(self.button3_callback)
        self.button4.attach(self.button4_callback)
        self.slider1.attach(self.slider1_callback)
        self.slider2.attach(self.slider2_callback)

        while True:
            value = get_value()
            try:
                Blinker.run()
            except OSError:
                pass
auth = 'Secret Key' # 设备Secret Key
mac = 'xxxxxxxxxxx' # 电脑有线网卡的MAC地址
ip = 'a.b.c.d' #电脑的IP地址
BROADCAST = "a.b.c.d" # 广播网段,前三段和你电脑的内网ip一样,一般是192.168.1.255
user = ('username', 'password') # 远程关机需要使用的windows账户和密码
data = ''.join(['FFFFFFFFFFFF', mac * 20])  # 构造原始数据格式
send_data = b''
# 把原始数据转换为16进制字节数组,
for i in range(0, len(data), 2):
    send_data = b''.join([send_data, struct.pack('B', int(data[i: i + 2], 16))])

BLINKER_DEBUG.debugAll()
Blinker.mode('BLINKER_WIFI')
Blinker.miotType('BLINKER_MIOT_OUTLET')
Blinker.begin(auth)
button = BlinkerButton("btn-power") #注册按键
oState = 'on' # 树莓派记录电脑在线状态的变量

# 远程开机函数,将MAC地址转换得到的16进制字节数组send_data在局域网内广播
def wake_up():
    # 通过socket广播出去,为避免失败,间隔广播三次
    try:
        sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
        sock.sendto(send_data, (BROADCAST, 7))
        time.sleep(1)
        sock.sendto(send_data, (BROADCAST, 7))
        time.sleep(1)
        sock.sendto(send_data, (BROADCAST, 7))
        print("Done")
    except Exception as e: