一 w600-rt-thread智能指纹门锁
●硬件电路:
●app项目:
1.1 项目简介
主控芯片使用w600的tw-03 wifi模组,指纹识别使用fpc1020a,这里开门使用mg996r舵机拉开门锁。w600运行rt-thread操作系统并连接onenet进行数据交互。
●使用w600嵌入式wifi芯片
●使用fpc1020a电容式指纹识别模块
●支持指纹识别开门
●支持nec红外遥控开门
●支持onenet远程开门
●支持oneshot web配网
●onenet查看开门状态和记录开门方式和自定义id
●网络自动检测保持连接状态
●安卓app控制开门和查看历史记录
1.2 硬件电路
电路设计使用了立创eda,项目所有硬件资料在立创开源硬件平台上。
●硬件项目地址:
表1
详细元件清单请看原理图,开门装置请根据实际情况替换,指纹模块的控制和指纹录入请参考fpc1020a sdk里面有详细资料和调试工具,在立创开源硬件平台附件里有fpc1020a sdk和离线版stm32指纹门锁项目全部资料。
1.3 w600简介
芯片资料:[w600文档中心](https://docs.w600.fun/)
w600是北京联盛德自主研发设计的一款嵌入式wifi芯片,该系列模块支持标准的802.11 b/g/n协议,内置完整的tcp/ip协议栈。
600_soc芯片集成cortex-m3内核,内置flash,集成射频收发前端rftransceiver,cmos pa功率放大器,基带处理器/媒体访问控制,支持sdio、spi、uart、gpio、i²c、pwm、i²s、7816等接口,支持多种加解密协议,如prng(pseudo random number generator)/sha1/md5/rc4/des/3des/aes/crc等。
1.4 代码
项目环境搭建和编译在项目编译指南中介绍,这里只是简单介绍项目组成。
图2
表2
按住wifi键然后复位可以进入oneshot配网,设备热点名称door_wifi_config,连接ap后打开http://192.168.169.1。
1.5 onenet
1.5.1 创建项目
打开[onenet控制台]进入多协议接入。
图3
在mqtt(旧版)页面点击添加产品,设备接入协议确保是mqtt,其他随便填写。
图4
1.5.2 获取连接参数
项目创建成功后需要获取三个参数:
●产品id
●master-apikey
●设备注册码
图5
图6
1.5.3 配置rt-thread
打开rtconfig.h文件将自己的这三个参数粘贴到对应位置。
图7
这里为了方便可直接修改rtconfig.h。
如果需要继续开发本项目请使用env工具修改这三个参数,env工具使用方法参考[env用户手册]。
1.5.4 数据流
设备上传了两个数据流:
●门开关状态
●历史开门方式
进入设备详情查看。
图8
开关状态取决于检测开门状态的传感器,这里使用了一个霍尔传感器模块,将一块磁铁安装在门框上,关门时霍尔传感器靠近磁铁,并输出低电平,此时w600读取电平并上传到onenet。
历史开门记录由type和id组成,type类型定义在applicationsuser_def.h中。
enum {ir_msg = 1, fp_msg, remote_msg};
红外类型是1,指纹是2,onenet远程开门是3、红外id是遥控器nec码,指纹id是模块内存储指纹id,远程id是用户下发的id。
1.5.5 开门测试
这里可以手动测试远程开门功能。
图9
开门数据格式为:
{opendoor:id}
如果id!=0则开门,并上报开门方式和id。
验证开门标识代码在applicationsonenet_control.c中,可自行数据格式。
static void onenet_cmd_rsp_cb(uint8_t *recv_data, size_t recv_size, uint8_t **resp_data, size_t *resp_size){ int open_id = 0; cjson *root = cjson_parse((char *)recv_data); cjson_item_get_number(root,opendoor,&open_id); if (open_id != 0) { rt_sem_release(&door_open_sem); .....}
1.6 app
●app项目:
通过安卓app接入onenet下发指令控制开门和查看门的开关状态,历史开门记录。
图10
注:如果需要其他方式接入onenet进行控制,请参考[onenet文档中心](https://open.iot.10086.cn/doc/multiprotocol)进行开发。
二 rt-thread项目编译指南
2.1 rt-thread简介
rt-thread是一个来自中国的开源物联网操作系统,它具备非常强的可伸缩能力:从一个可以运行在arm cortex-m0芯片上的极小内核,到中等的arm cortex-m3/4/7系统,甚至是运行于mips32、arm cortex-a系列处理器上。rt-thread项目的源代码托管在 [github repo] 上。
2.3 环境搭建
2.3.1 编译环境搭建
●keil mdk
●下载w60x_rt-thread sdk源码:github
2.3.2 工程目录介绍
w60x sdk的目录结构如11所示:
图11
docs文件夹下放着w600_rtt相关的参考文档,建议先阅读um3103-rt-thread-w60x-sdk快速上手.pdf和um3101-rt-thread-w60x-sdk开发手册.pdf。
2.4 编译烧录
2.4.1 编译
将仓库克隆放到工程目录examples文件夹内。
进入项目文件夹,双击打开project.uvprojx工程文件,打开工程后直接编译即可(注意,一定要先搭建好keil环境)。
图12
固件生成在当前示例所在目录的bin文件夹下。
图13
2.4.2 烧录
打开星通智联下载调试软件选择rtthread_layout_1m.fls烧录,型号可以不选,如果串口没有连接复位,点击下载后需要手动复位w600。
图14
注意:
1.本项目使用w600芯片,flash为1m版本,选择rtthread_layout_1m.fls烧录。
2.其它烧录问题请参考:[w600固件烧录指南]。
英伟达:今年将在人工智能产品市场中占据60%份额
vivoX20Plus屏幕指纹版评测 革命性屏幕指纹技术
深度分析ios10、ios10.2的常见问题以及如何解决
CMOS器件的电流电压输入和输出特性的分析
安捷伦网络分析仪N5247A 67G四个端口故障【维修案例】
怎样去设计一种基于RT-Thread的智能指纹门锁?
宏碁发布搭载9代酷睿处理器的ConceptD 3/5系列笔记本产品
AFE7900IABJ宽带宽多通道收发器 中文资料
MeeGo智能手机公司成功“逃离”诺基亚
从古看今的风向传感器的演变以及它的应用领域
麻省理工建立人工智能学院花费10亿美元
红外汽车引擎锁技术问答
华容道应用单极微功耗霍尔开关介绍
纬创因印度工厂拖欠工资道歉,苹果暂停下新订单
IGBT过流保护技术在工业电机驱动中的应用
利用中频压控振荡器实现车载免提通话
SCP固件执行步骤和模块间通信
纯电动汽车工作原理是什么 有哪些类型
搭载R7-4800H or酷睿CPU,2021选谁更靠谱?
三星它的崛起与称霸之路,也就是韩国的崛起与争霸之路