5.44 综合案例2.0-矩阵键盘信息输入上传-串口显示屏

该教程介绍了如何使用矩阵键盘输入信息并在串口显示屏上显示,同时详细阐述了如何配置云平台环境,包括添加设备、创建设备类型和物模型,以及通过MQTT上传数据到云端。在代码部分,展示了如何处理键盘输入并实现数据上传的功能。
摘要由CSDN通过智能技术生成

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







案例说明

矩阵键盘输入信息显示在串口显示屏上。按确定键可以将输入信息上传云端。

1、应用场景

1,产品型号入库,手动输入产品信息。
2,智能设备密码输入,远程开锁。
3,远程设备遥控器。
在这里插入图片描述

2、M320矩阵引脚说明

● 矩阵式结构的键盘显然比直接法要复杂一些,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。
● 开发板KEYIN1~KEYIN5是输入口,作为列线
● 开发板KEYOUT0~KEYOUT3是输出口作为行线
● 总共组成19个键的矩阵键盘(其中KEYIN5与KEYOUT3键值不存在),键值如下表所示。

在这里插入图片描述
在这里插入图片描述

  • 键盘引脚返回键值表
    在这里插入图片描述

3、接线说明

①确定矩阵键盘线序,案例使用的这款键盘线序比较乱。

注:需要根据返回的键值确定键盘引脚。

在这里插入图片描述

在这里插入图片描述

②案例连线图

  • 矩阵键盘的具体线序需要自己测试,根据返回的键值确定。
    在这里插入图片描述

搭建云平台环境

1.添加设备

登录things cloud云平台,创建一个项目。
在这里插入图片描述
创建新设备
在这里插入图片描述
填写设备名,点击创建
在这里插入图片描述在这里插入图片描述

记录以下信息用于MQTT连接。

#==========================================================
#填入MQTT信息
AccessToken = "**********"
ProjectKey = "**********"
mqttaddr = "**********"
clientId = "**********"  #自己定义     
serverport = '**********'
#==========================================================

在这里插入图片描述

2.创建设备类型

创建设备类型相当于阿里云产品创建。
在这里插入图片描述
填好信息后点击创建。
在这里插入图片描述
在设备类型中添加设备
在这里插入图片描述

3.功能定义(创建物模型)

添加属性
在这里插入图片描述

标识符需与代码中的一致,属性类型根据功能进行选择。

在这里插入图片描述

代码

源码链接

在这里插入图片描述

1.更改MQTT信息

#==========================================================
#填入MQTT信息
AccessToken = "**********"
ProjectKey = "**********"
mqttaddr = "**********"
clientId = "**********"  #自己定义     
serverport = **********
#==========================================================

在这里插入图片描述

main.py

# -*- coding: UTF-8 -*-
import utime as time
import yun_network
import yun_mqtt
from driver import KeyPad
import utime as time
from driver import UART

def UART_send(data):
    writeBuf0=bytearray(data)
    uart0.write(writeBuf0)

#usrFun参数为list数据类型,list[0]: 对应键值;list[1] :按键状态:按下为1,松开为2
def userfun(l_list):
    if l_list[1] == 1 :
        if l_list[0]!=0 :
            if l_list[0] ==23:
                key =str(1)
            if l_list[0] ==4:
                key =str(2)
            if l_list[0] ==22:
                key =str(3)
            if l_list[0] ==7:
                key =str(4)
            if l_list[0] ==11:
                key =str(5)
            if l_list[0] ==20:
                key =str(6)
            if l_list[0] ==10:
                key =str(7)
            if l_list[0] ==27:
                key =str(8)
            if l_list[0] ==19:
                key =str(9)
            if l_list[0] ==6:
                key ='s'
            return_data(key)

totle = ''
totle_data='0'
def return_data(data):
    global totle,totle_data,show_state
    if data!='s':
        totle +=data
        print(totle)
    else:
        totle_data = totle
        totle=''
        show_state = True


def main():
    global show_state,totle,totle_data
    keypad=KeyPad()  
    keypad.init()
    keypad.set_callback(userfun)
    ret = yun_network.connect_network()
    print("ret:",ret)
    if ret == True:
        yun_mqtt.mqtt_connect()
    else:
        print('network-connection failed')
    totle1=''
    while True:
        if totle1!=totle:
            UART_send("DIR(1);DC32(0,100,%s,15);\r\n"%('input: '+totle))
            totle1=totle
        if show_state:
            try :
                time.sleep_ms(30)
                UART_send("DIR(1);CLR(0);\r\n")
                print('send up')
                yun_mqtt.update('updata',totle_data)
                totle_data='0'
            except:
                print('false......')
            show_state = False
            
        time.sleep_ms(60)
    

if __name__ == '__main__':
    show_state = False
    uart0=UART()
    uart0.open("serial1")
    time.sleep_ms(1000)
    UART_send("CLR(0);DIR(1);\r\n")
    main()  




测试

  • 按键盘输入数字,显示屏上会显示相应的数字。
    在这里插入图片描述

串口工具打印log如下:

在这里插入图片描述

按下确定键数据上传至云端。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值