跳至主要內容

实验板与实验板之间的互联

大约 3 分钟约 757 字

实验板与实验板之间的互联

  利用信息科技实验板的板载WIFI功能及物联数据中台,可以使两块实验板 之间进行物联控制,下面将以2块实验板为例:利用1号实验板板载“A键” 作为一个开关,去控制2号实验板左右两侧的“RGB”LED灯进行输出控制。

按下1号板 A键 2 号板 RGB灯

  首先在物联数据中台中创建一个项目,并获取项目的ID及用户ID,以便在 编写客户端程序时使用。

  在项目中创建好相应的主题,运行项目即可

编写客户端程序

# -*- coding: utf_8 -*-
from npython import *           # 导入npython模块
#在下面开始写你自己的代码

#连接WIFI
SSID="NYT_510_2.4G"
PWD="88837306"
wifi.connect(SSID,PWD)
flag=0
#连接MQTT服务器
server="121.5.75.157"
port=1883
userId="1009"
projectId="w5GM0BEexQc0NAnSNPt0YYRX1Ehyoj5E"
mqtt.config(server,port,projectId=projectId,userId=userId,keepalive=1000)
mqtt.connect()

while True:
   if button.get_a()==1:
       time.sleep_ms(50)
       if button.get_a()==1:
           flag=0 if flag==1 else 1
           mqtt.publish("switch",str(flag))
           print(str(flag)+'\n')
   oled.print(1,1,"开关状态:"+str(flag),1)

该处需与物联数据中台项目中的设置保持一致

运行程序之后,可通过OLED显示屏查看按键开关实时状态,同时物联数据中台中也可以查看主题数据。

编写2号板客户端程序

# -*- coding: utf_8 -*-
from npython import *           # 导入npython模块
#在下面开始写你自己的代码

#连接WIFI
SSID="NYT_510_2.4G"
PWD="88837306"
ip=wifi.connect(SSID,PWD)
oled.print(1,1,"ip:"+str(ip),1)
#连接MQTT服务器
server="121.5.75.157"
port=1883
userId="1009"
projectId="w5GM0BEexQc0NAnSNPt0YYRX1Ehyoj5E"
mqtt.config(server,port,projectId=projectId,userId=userId,keepalive=1000)
mqtt.connect()

#回调函数
topicname='switch'                                                         #回调函数主题名
def event(topic,msg):
	data=str(msg.decode('utf-8'))
	data=eval(data) #转成字典
	#屏幕显示返回消息内容
	oled.print(1,2,"灯的控制状态:"+str(data['msg']),1)
	if topic ==(projectId+'/'+topicname).encode('utf-8'):
		if data['msg']=='1':			
				rgb.write_left(255,0,0) #左测显示红灯
				rgb.write_right(255,0,0) #右测显示红灯				
		if data['msg']=='0':
				rgb.write_left(0,0,0) 
				rgb.write_right(0,0,0) 
while True:
	mqtt.subscribe('switch',event)#订阅主题

该处需与物联数据中台项目中的设置保持一致

按下1号板 A键 2 号板 RGB灯
按下1号板 A键 2 号板 RGB灯

运行程序之后,即可通过1 号板按键A控制2号板的RGB灯,按1次A键, RGB灯亮,再按1次A键,RGB灯灭。

上次编辑于: