版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、单选题1.MQTT协议中主要的消息通信模型是:A.点对点B.广播C.发布/订阅D.多播【参考答案】:C2.MQTT协议构建于以下哪种协议之上?A.HTTPB.TCP/IPC.UDPD.CoAP【参考答案】:B3.MQTT协议中,负责中转和分发消息的核心组件是:A.客户端B.中继器C.网关D.代理服务器(Broker)【参考答案】:D4.MQTT中的主题(Topic)主要作用是:A.控制连接B.限制客户端C.分类和路由消息D.提供时间同步【参考答案】:C5.MQTT消息服务质量等级QoS=2表示:A.只传一次B.至少一次C.最多一次D.恰好一次【参考答案】:D6.客户端想断开与MQTT服务器的连接,应发送的报文是:A.STOPB.QUITC.DISCONNECTD.SHUTDOWN【参考答案】:C7.在MicroPython中使用MQTT协议发布消息的函数是:A.client.write()B.client.push()C.client.send()D.client.publish()【参考答案】:D8.MQTT协议中,订阅主题的控制报文是:A.CONNECTB.SUBSCRIBEC.PUBACKD.MSGSET【参考答案】:B9.通配符“+”在主题订阅中表示:A.精确匹配B.多个层级C.单个层级D.所有主题【参考答案】:C10.MQTT服务器推荐默认端口号为:A.21B.1883C.8080D.8888【参考答案】:B二、填空题(请在空格处填写正确内容)1.MQTT客户端首次连接服务器必须发送的报文类型是______。【参考答案】:CONNECT2.在MQTT中,______用于唯一标识一条消息的主题分类。【参考答案】:Topic3.MQTT协议中提供了三个QoS等级,分别是______。【参考答案】:0、1、24.通配符“#”表示匹配当前层级及______所有主题。【参考答案】:下层5.当客户端收到服务器消息时,将触发的函数通常被称为______函数。【参考答案】:回调6.MQTTX与通信猫软件都可以作为MQTT协议的______工具。【参考答案】:调试7.umqtt.simple库中用于设置消息回调的函数是______。【参考答案】:set_callback8.使用通信猫订阅主题成功后,客户端将接收来自服务器______的消息。【参考答案】:推送三、编程题1、通过mqtt订阅"/hzcu/msg"消息,将接收的消息信息在TFT屏幕上进行显示。importwifiimporttimeimportmachine,ubinasciifromumqtt.simpleimportMQTTClientfrommachineimportPin,SPI,Timerimportst7789pyasst7789fromromfontsimportvga1_16x32asfont#英文字体,放到romfonts文件夹下#SPI硬件定义sck_pin_number=12mosi_pin_number=11miso_pin_number=13rst_pin_number=8cs_pin_number=10dc_pin_number=9back_pin_number=21#定义SPI对象spi=SPI(1,baudrate=80000000,sck=Pin(sck_pin_number),mosi=Pin(mosi_pin_number),miso=Pin(miso_pin_number))tft=st7789.ST7789(spi,240,240,reset=Pin(rst_pin_number),cs=Pin(cs_pin_number),dc=Pin(dc_pin_number),backlight=Pin(back_pin_number),rotation=1)WIFI_NAME='WIFI名称'PASS_WORD='WIFI密码'TOPIC=b"/hzcu/msg"mqtt_server=''mqtt_port=18830CLIENT_ID=ubinascii.hexlify(machine.unique_id())#设备ID、唯一编号print(CLIENT_ID)#MQTT回调函数,用于接收服务器发送来的消息defMQTT_callback(topic,msg):print('topic:{}'.format(topic))print('msg:{}'.format(msg))s=msg.decode('utf-8')#byte转换成stringprint(s)tft.fill(st7789.BLACK)#清除屏幕tft.text(font,s,0,40,st7789.RED,st7789.BLACK)#定时检测消息defMQTT_Rev(tim):client.publish("/hzcu/keep","1")#保持与服务器的连接client.check_msg()ifwifi.WIFI_Connect(WIFI_NAME,PASS_WORD):client=MQTTClient(CLIENT_ID,mqtt_server,mqtt_port)client.set_callback(MQTT_callback)#设置回调函数client.connect()#连接到服务器client.subscribe(TOPIC)#订阅主题#开启定时器0,周期1s,调用MQTT_Rev函数tim=Timer(0)tim.init(period=1000,mode=Timer.PERIODIC,callback=MQTT_Rev)t.publish("/hzcu/keep","1")#保持与服务器的连接client.check_msg()#开启定时器0,周期1s,调用MQTT_Rev函数tim=Timer(0)tim.init(period=1000,mode=Timer.PERIODIC,callback=MQTT_Rev)2、通过mqtt订阅"/hzcu/led"消息,当发送“on”的时候,点亮LED,当发送“off”时候,熄灭LED。LED接在GPIO2引脚上。importwifiimporttimeimportmachine,ubinasciifromumqtt.simpleimpoimportwifiimporttimeimportmachine,ubinasciifromumqtt.simpleimportMQTTClientfrommachineimportPin,TimerWIFI_NAME='WIFI名称'PASS_WORD='WIFI密码'TOPIC=b"/hzcu/led"mqtt_server=''mqtt_port=18830CLIENT_ID=ubinascii.hexlify(machine.unique_id())#设备ID、唯一编号print(CLIENT_ID)led=Pin(2,Pin.OUT,Pin.PULL_UP)led.on()#MQTT回调函数,用于接收服务器发送来的消息defMQTT_callback(topic,msg):print('topic:{}'.format(topic))print('msg:{}'.format(msg))s=msg.decode('utf-8')#byte转换成stringprint(s)ifs=="on":led.off()elifs=="off":led.on()#定时检测消息defMQTT_Rev(tim):client.publish("/hzcu/keep","1")#保持与服务器的连接client.check_msg()ifwifi.WIFI_Connect(WIFI_NAME,PASS_WORD):client=MQTTClient(CLIENT_ID,mqtt_server,mqtt_port)client.set_callback(MQTT_callback)#设置回调函数client.connect()#连接到服务器client.subscribe(TOPIC)#订阅主题#开启定时器0,周期1s,调用MQTT_Rev函数tim=Timer(0)tim.init(period=1000,mode=Timer.PERIODIC,callback=MQTT_Rev)3、通过mqtt订阅"/hzcu/pwm"消息,根据消息发送的内容(0-1023之间的数值),对LED(接在GPIO3引脚上)进行PWM调光控制。importwifiimporttimeimportmachine,ubinasciifromumqtt.simpleimportMQTTClientfrommachineimportPin,PWM,TimerWIFI_NAME='5A610-2.4G'PASS_WORD='5A610hzcu'TOPIC=b"/hzcu/pwm"mqtt_server=''mqtt_port=18830CLIENT_ID=ubinascii.hexlify(machine.unique_id())#设备ID、唯一编号pwm2=PWM(Pin(03),freq=1000)pwm2.duty(1023)#MQTT回调函数,用于接收服务器发送来的消息defMQTT_callback(topic,msg):print('topic:{}'.format(topic))print('msg:{}'.format(msg))s=msg.decode('utf-8')#byte转换成stringpwmduty=int(s);ifpwmduty>1023:pwmduty=1023elifpwmduty<0:pwmduty=0print(pwmduty)pwm2.duty(pwmduty)#定时检测消息defMQTT_Rev(tim):client.publish("/hzcu/keep","1")client.check_msg()ifwifi.WIFI_Connect(WIFI_NAME,PASS_WORD):client=MQTTClient
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年买地过桥合同(1篇)
- 新乡医学院护理教育学
- 昏迷促醒护理核心要点解析
- 年产100万付金属镜架项目可行性研究报告模板立项申批备案
- 留学回国人员办理国外学历学位认证的官网操作流程留服中心复核所需时长
- 消化道出血的护理与急救措施
- 泌尿外科护理质量管理
- 皮肤疾病护理中的沟通技巧
- 管道安全检测与风险评估
- 2026 塑型进阶螺旋藻课件
- 新版电力重大事故隐患判定标准及治理监督管理规定解读
- 2026年北京市门头沟区街道办人员招聘笔试备考试题及答案解析
- 2026年学校防范非法宗教势力渗透工作机制
- 2026年成都市金牛区街道办人员招聘考试参考试题及答案解析
- 2026年四川省成都市网格员招聘笔试模拟试题及答案解析
- 建设项目提级论证方案
- 教科版六年级科学下册期中综合素养测试卷
- 2026年邢台市高层次人才引进495人笔试参考试题及答案解析
- 小学 四年级 语文 听力题 及听力材料
- 浙江省消防技术规范难点问题操作技术指南(2025 版)
- 高速公路平安百年品质工程标准化建设指南(专业篇 上篇)
评论
0/150
提交评论