继上一篇wifi签到徽章后
又开始了智能按钮的制作
想法是:走到一个智能设备面前,按钮配对,接着就可以开始互动啦。
之前已经完成了互动端的制作,也测试成功了,但可惜目前互动端联网出现了问题,
只能演示智能按钮的功能状态了。
【智能按钮使用教程】
1.长按进入智能按钮模块
2.短按发送信号1;长按发送信号2
【智能互动终端工作原理】
1.按钮A被按下进入互动模式
2.接收到信号1或2,做出不同的互动反应
测试视频链接:
https://www.bilibili.com/video/BV14x4y167GT/?spm_id_from=333.999.0.0
测试截图:
主要按钮程序代码如下:
- if level == 1:
- time.sleep(0.5)
- level = pin.value()
- if level == 1: #进入答题环节
- led.value(1)
- time.sleep(1)
- while i < 2:
- level = pin.value()
- if level == 1:
- time.sleep(0.5) #判断选“A”/“B”
- level = pin.value()
- if level == 1:
- mqtt.publish(str("testtopic/4"), str("2.00").encode('utf-8'))
- break
- if not level == 1:
- mqtt.publish(str("testtopic/4"), str("1.00").encode('utf-8'))
- break
复制代码
完整代码如下:
- #程序准备部分(导入各种库文件及定义)
- import time
- import machine
- from umqtt.simple import MQTTClient #导入 mqtt 库文件
- from machine import Pin #导入 指示灯 库文件
- #程序准备部分(导入各种库文件及定义)
- import time
- import machine
- from umqtt.simple import MQTTClient #导入 mqtt 库文件
- from machine import Pin #导入 指示灯 库文件
-
-
- led = Pin(15,Pin.OUT) #定义指示灯引脚
- pin = Pin(4,Pin.IN) #定义按钮引脚
- level = pin.value()
-
- #联网部分
- def do_connect():
- import network
- wlan = network.WLAN(network.STA_IF)
- wlan.active(True)
- if not wlan.isconnected():
- print('connecting to network...') #报告联网状态
- wlan.connect('Wifi名称', 'WiFi密码') #此处填写无线热点的信息
- while not wlan.isconnected():
- pass
- print('network config:', wlan.ifconfig()) #打印联网信息
- do_connect()
-
- import network
-
- #连接mqtt服务器部分
-
- mqtt = MQTTClient("4495363070978111", "链接地址", 1883, "用户名", "密码") #设置mqtt服务器参数
-
- try:
- mqtt.connect() #开始连接mqtt服务器
- print('MQTT Connected Successful')
- except:
- print('MQTT Connection Failed') #报告连接状态
-
- #开始工作部分
- i = 1
- while i < 2:
- level = pin.value()
-
- if level == 1:
- time.sleep(0.5)
- level = pin.value()
- if level == 1: #进入答题环节
- led.value(1)
- time.sleep(1)
- while i < 2:
- level = pin.value()
- if level == 1:
- time.sleep(0.5) #判断选“A”/“B”
- level = pin.value()
- if level == 1:
- mqtt.publish(str("testtopic/4"), str("2.00").encode('utf-8'))
- break
- if not level == 1:
- mqtt.publish(str("testtopic/4"), str("1.00").encode('utf-8'))
- break
- if not wlan.isconnected():
- print('connecting to network...') #报告联网状态
- wlan.connect('Wifi名称', 'WiFi密码') #此处填写无线热点的信息
- while not wlan.isconnected():
- pass
- mqtt.publish(str("testtopic/1"), str("学生A入校").encode('utf-8')) #发送入校信息
- time.sleep(0.5)
- led.value(1)
- time.sleep(0.5)
- led.value(0) #指示灯闪烁报告完成入校流程
- else:
- led.value(0)
-
-
-
-
-
-
-
复制代码
|