Ciso声明:本篇文章基于使用腾讯云物联网平台连接自定义esp8266物联网设备(腾讯连连控制开关实现) - CSDN App改编
功能描述:
使用腾讯连连小程序进行控制,
Alarm(警铃):开的时候,亮红灯;关的时候关闭。
RGB LED(三色灯):有4个属性值,Red,Green,Blue,OFF,分别对应红灯,绿灯,蓝灯,关闭。
Fan(风扇):有3个属性值,OFF,Low,High,分别对应关闭、一档、二档。
MCU(单片机):控制这三个设备
?MCU(单片机编程):
from realudp import * from time import * from gpio import * from options import Options from time import * import math from physical import * from gpio import * from environment import Environment from ioeclient import IoEClient IP = "127.0.0.1" PORT = 1834 switchStatus="0" colorStr="0" colorID =3 bright =1023 fengShanControl="0" #from pyjs import * def onLedRGB(rgb): if rgb==0: #digitalWrite(1,HIGH) #digitalWrite(2,LOW) #digitalWrite(3,LOW) analogWrite(1,bright) analogWrite(2,0) analogWrite(3,0) if rgb==1: #digitalWrite(1,LOW) #digitalWrite(2,HIGH) #digitalWrite(3,LOW) analogWrite(1,0) analogWrite(2,bright) analogWrite(3,0) if rgb==2: #digitalWrite(1,LOW) #digitalWrite(2,LOW) #digitalWrite(3,HIGH) analogWrite(1,0) analogWrite(2,0) analogWrite(3,bright) if rgb==3: digitalWrite(1,LOW) digitalWrite(2,LOW) digitalWrite(3,LOW) def onUDPReceive(ip, port, data): global colorStr global switchStatus global colorID global bright global fengShanControl print("received from " + ip + ":" + str(port) + ":" + data); data2 = data.split('{')[2].split('}')[0] print("data2: ?"+data2) for i in range(0,len(data2)): if( data2[i] == 's' and data2[i+1] == 'w'): switchStatus = data2[i+8] print("switchStatus = "+switchStatus) if( data2[i] == 'c' and data2[i+1] == 'o'): colorStr = data2[i+7] print("colorStr = "+colorStr) if( data2[i] == 'f' and data2[i+1] == 'e'): fengShanControl = data2[i+10] print("fengShanControl = "+fengShanControl) if "0" in colorStr: colorID = 0 onLedRGB(colorID) if "1" in colorStr: colorID = 1 onLedRGB(colorID) if "2" in colorStr: colorID = 2 onLedRGB(colorID) if "3" in colorStr: colorID = 3 onLedRGB(colorID) if "0" in switchStatus: digitalWrite(4,LOW) #client.send("Alarm Closed!") if "1" in switchStatus: digitalWrite(4,HIGH) #client.send("Alarm Opened!") if "0" in fengShanControl: customWrite(0,"0") if "1" in fengShanControl: customWrite(0,"1") if "2" in fengShanControl: customWrite(0,"2") def main(): socket = RealUDPSocket() socket.onReceive(onUDPReceive) print(socket.begin(1834)) pinMode(1,OUT) pinMode(2,OUT) pinMode(3,OUT) pinMode(4,OUT) count = 0 while True: # count += 1 # socket.send(IP, PORT, "hello " + str(count)) sleep(1) if __name__ == "__main__": main() |
参考链接里的博客
扫描腾讯云的二维码即可