国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

DIY個人智能家庭網關——python篇之門磁觸發后自動點亮WIFI燈帶

2019-11-06 09:07:19
字體:
來源:轉載
供稿:網友
#!/usr/bin/env python# -*- coding: utf-8 -*- import serial  import socketimport threadingfrom time import sleep  import jsonimport subPRocessUDP_BROCAST_HOST = '192.168.1.255'  # UDP廣播發送地址UDP_BROCAST_PORT = 1235   # UDP廣播發送端口RECV_PORT = 1234  # UDP接收端口UDP_ADDR = (UDP_BROCAST_HOST, UDP_BROCAST_PORT)# 打開串口  ser = serial.Serial('/dev/ttyUSB0', 9600, timeout=0.5)    # 門磁的地址碼door_sensor_addr = "0x5555"# WIFI燈帶的MAC地址作為設備的唯一IDwifi_light_id = "5c:cf:7f:d5:06:d3"# UDP 收發器        class UdpTransceiver(threading.Thread):    run = False        def __init__(self,addr,port):        threading.Thread.__init__(self)        self.socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)        #self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)        self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)             address = (addr, port)           self.socket.bind(address)           def set_recv_cb(self,cb):        self.recv_cb = cb            def close(self):        self.socket.close()        def run(self):        run = True        while self.run:            data,addr = self.socket.recvfrom(1024)            self.recv_cb(self,TransceiverType.udp, addr,data)         def send(self,addr,data):        self.socket.sendto(data,addr)                def stop(self):        self.run = False  def recv(serial):      while True:        data =serial.read(64)        if data == '':          continue      else:        break      sleep(0.02)     return data       if __name__ == "__main__":    # 創建UDP接口	udpTrans = UdpTransceiver(UDP_BROCAST_HOST, RECV_PORT)		while True:	  data =recv(ser)  	  if data != '':   	    print "receive %s"%data	    s = json.loads(data)  	    if s["addr"] == door_sensor_addr:        # 命令為:設置工作模式 params有3個參數,1表示漸亮模式,10和80表示10秒從滅漸變到80%的亮度	      cmd = {"cmd":"set_mode","id":wifi_light_id,"params":["1","10","80"]}	      # 轉換成json	      json_str = json.dumps(cmd)	      # 發送命令	      udpTrans.send(UDP_ADDR, json_str.encode())
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涿鹿县| 开封县| 兰州市| 樟树市| 顺平县| 宜君县| 淅川县| 扎兰屯市| 鄂伦春自治旗| 涞水县| 潢川县| 商南县| 三都| 和平区| 赤壁市| 若尔盖县| 灵山县| 新野县| 山阳县| 孝感市| 涟水县| 翁牛特旗| 青河县| 胶南市| 渝北区| 义马市| 道真| 镇安县| 屏山县| 都江堰市| 呼伦贝尔市| 郴州市| 图们市| 郁南县| 天门市| 苗栗县| 建德市| 滕州市| 盘山县| 礼泉县| 大名县|