智能按钮
继上一篇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)
页:
[1]