Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
onenet
W600
MQTT
【12月原创】基于W600 RT-Thread的物联网智能指纹门锁
发布于 2020-12-27 14:26:44 浏览:1671
订阅该版
[tocm] # 一、W600-RT-Thread物联网智能指纹门锁 - **GITEE项目地址:
** - **硬件电路:
** - **APP:
** ## 1.项目简介 在学校宿舍使用的指纹门锁,起初用[STM32+FPC1020](https://gitee.com/hanxiaohu/FingerprintDL)实现了简单的指纹识别然后舵机拉动门锁开门,后来觉得这个项目不错,就对此进行了升级使用了RT-Thread连接OneNET并添加了远程开门和开门记录等功能,主控芯片由原来的STM32更换为了W600 的 [TW-03 WIFI模组](https://item.taobao.com/item.htm?id=576984059789),这是个带WIFI的MCU,指纹识别使用 [FPC1020A](https://detail.tmall.com/item.htm?id=612435938572),这里开门使用MG996R舵机拉开门锁。 - 使用 W600 嵌入式WiFi芯片 - 使用 [FPC1020A](https://detail.tmall.com/item.htm?id=612435938572) 电容式指纹识别模块 - 支持指纹识别开门 - 支持红外遥控开门 - 支持OneNET APP远程开门 - 支持oneshot web配网(按住WIFI按键复位进入) - 安卓APP查看开门状态和记录开门方式和自定义id - 安卓APP控制开门和查看历史记录 ## 2.硬件电路  电路设计使用了立创EDA,项目所有硬件资料在立创开源硬件平台上。 - **硬件项目地址:
** 模块|描述 ---|:--: [TW-03 WIFI模组](https://item.taobao.com/item.htm?id=576984059789)|W600主控芯片 [FPC1020A](https://detail.tmall.com/item.htm?id=612435938572)|电容式指纹识别模块 MG996R舵机|开门装置 霍尔传感器模块|监测门的状态 > 详细元件清单请看原理图,开门装置请根据实际情况替换,指纹模块的控制和指纹录入请参考FPC1020A SDK里面有详细资料和调试工具,在立创开源硬件平台附件里有FPC1020A SDK和离线版STM32指纹门锁项目全部资料。  > 图上的PCB为早期版本有点错误,开源链接里的PCB已修正可以直接用 ## 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 等。 ## 4.代码 项目环境搭建和编译在**项目编译指南**中介绍 ,这里只是简单介绍项目组成  文件名|描述 ---|:--: wifi_control.c|wifi连接和oneshot配网 door_control.c|门状态获取,开门操作,RGBLED指示灯 fpc1020_control.c|指纹模块串口驱动和指纹对比 infrared_control.c|NEC红外遥控扫描 onenet_control.c|所有OneNET有关的操作 wdt_control.c|硬件看门狗 main.c|main函数 > 按住WIFI键然后复位可以进入oneshot配网,设备热点名称door_wifi_config,连接ap后打开
> **代码逻辑很简单,具体怎么实现的就不一一介绍了** ## 5.OneNET 参考资料:[OneNET文档中心](https://open.iot.10086.cn/doc/multiprotocol) ### 5.1 创建项目 打开[OneNET控制台](https://open.iot.10086.cn/develop/global/product/#/console) 进入多协议接入  在MQTT(旧版)页面点击添加产品,设备接入协议确保是MQTT,其他随便填写  ### 5.2 获取连接参数 项目创建成功后需要获取三个参数 - 产品ID - Master-APIkey - 设备注册码   ### 5.3 配置RT-Thread 打开`rtconfig.h`文件将自己的这三个参数粘贴到对应位置  > 这里为了方便可直接修改`rtconfig.h`
> 如果需要继续开发本项目请使用env工具修改这三个参数,env工具使用方法参考 [Env 用户手册](https://www.rt-thread.org/document/site/programming-manual/env/env/) ### 5.4 数据流 设备上传了两个数据流 - 门开关状态 - 历史开门方式 进入设备详情查看  开关状态取决于检测开门状态的传感器,这里使用了一个霍尔传感器模块,将一块磁铁安装在门框上,关门时霍尔传感器靠近磁铁,并输出低电平,此时W600读取电平并上传到OneNET 历史开门记录由type和id组成,type类型定义在`applications\user_def.h`中 ```c enum {IR_MSG = 1, FP_MSG, REMOTE_MSG}; ``` > 红外类型是1,指纹是2,OneNET远程开门是3 、红外id是遥控器nec码,指纹id是模块内存储指纹id,远程id是用户下发的id。 ### 5.5 开门测试 这里可以手动测试远程开门功能  开门数据格式为: ```json {"opendoor":id} ``` > 如果 id != 0 则开门,并上报开门方式和id。 验证开门标识代码在`applications\onenet_control.c`中,可自行数据格式 ```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); ..... } ``` ## 6. APP 通过安卓APP接入OneNET下发指令控制开门和查看门的开关状态,历史开门记录。 >注:如果需要其他方式接入OneNET进行控制,请参考 [OneNET文档中心](https://open.iot.10086.cn/doc/multiprotocol) 进行开发 ### 6.1软件架构 本项目使用了OneNET RESTful SDK for Android ```gradle dependencies { implementation 'com.chinamobile.iot.onenet:onenet-sdk:2.2.1' } ``` ### 6.2获取连接参数 OneNET项目创建成功后需要获取二个参数 - Master-APIkey - 设备ID   ### 6.3配置客户端 APIKEY和DEVICE ID填写前面从OneNET控制台获取到的值。REMOTE ID定义为用来记录开锁的ID  --- ### 6.4使用示例 **主界面** 这里简单实现了显示门当前的状态和设备在线情况,点击开门按钮会通过OneNET下发指令实现开门  **开门记录** 开门记录里显示了最近20次开门指令的时间、方式和ID  **历史状态** 历史状态里显示了最近20次实际门的状态和发生状态变化的时间  ---- # 二、RT-Thread项目编译指南 ## 1.参考资料 - RT-Thread文档: [RT-Thread 文档中心](https://www.rt-thread.org/document/site) - W60x参考文档:[W600 文档中心](https://docs.w600.fun/?p=rt-thread/start.md) - W60x参考资料:[正点原子 W601 IoT开发板 ](http://www.openedv.com/docs/boards/iot/zdyz_w601.html) - W60x\_RT-Thread源码:[GitHub](https://github.com/RT-Thread/W601_IoT_Board) - 串口下载工具:[串口调试助手](https://download.w600.fun/tool/%E6%98%9F%E9%80%9A%E6%99%BA%E8%81%94%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95%E4%B8%8B%E8%BD%BD%E5%8A%A9%E6%89%8B.7z) ## 2.编译环境 ### 2.1编译环境搭建 - Keil MDK - 下载W60x\_RT-Thread SDK源码:[GitHub](https://github.com/RT-Thread/W601_IoT_Board) ### 2.2 工程目录介绍  docs文件夹下放着W600\_RTT相关的参考文档,建议先阅读 `UM3103-RT-Thread-W60X-SDK 快速上手.pdf `和 `UM3101-RT-Thread-W60X-SDK开发手册.pdf` ## 3.编译烧录 ### 3.1 编译 将仓库克隆放到工程目录examples文件夹内 进入项目文件夹,双击打开 `project.uvprojx`工程文件,打开工程后直接编译即可(注意,一定要先搭建好Keil环境)。  固件生成在当前示例所在目录的Bin文件夹下。  ### 3.2 烧录 打开星通智联下载调试软件选择`rtthread_layout_1M.FLS`烧录,型号可以不选,如果串口没有连接接复位,点击下载后需要手动复位W600。  >注意: >1. 本项目使用W600芯片,FLASH为1M版本,选择`rtthread_layout_1M.FLS`烧录 >2. 其它烧录问题请参考:[W600固件烧录指南](https://github.com/w600/docs/blob/master/zh/app/download.md)  --- # 三、项目开源地址 代码很简单就不一一介绍了,具体如何实现的请看代码: - **GITEE项目地址:
** - **硬件电路:
** - **APP:
**
1
条评论
默认排序
按发布时间排序
登录
注册新账号
关于作者
hanxiaohu
这家伙很懒,什么也没写!
文章
1
回答
0
被采纳
0
关注TA
发私信
相关文章
1
umqtt 软件包使用后,连接上emqx服务器,过一会儿就掉线了
2
使用正点原子的 潘多拉 开发板 的例程19_iot_mqtt
3
mqtt软件包,不支持直接关闭?
4
kawaii_mqtt 申请内存崩溃
5
_signal_entry() 函数中dbg_enter在哪里定义呢?
6
start to connect mqtt server 失败
7
MQTT 在“ read 0:1, break “后断开重连
8
paho_mqtt线程相关疑问
9
RT thread studio kawaii mqtt 无法连接EMQ
10
调试bc26 ,断言错误failed at rt_thread_timeout
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
DMA
USB
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
I2C_IIC
cubemx
UART
ESP8266
WIZnet_W5500
BSP
ota在线升级
PWM
flash
packages_软件包
freemodbus
潘多拉开发板_Pandora
ADC
GD32
定时器
编译报错
flashDB
keil_MDK
socket
中断
rt_mq_消息队列_msg_queue
Debug
ulog
SFUD
msh
C++_cpp
at_device
本月问答贡献
出出啊
1524
个答案
343
次被采纳
小小李sunny
1444
个答案
290
次被采纳
张世争
818
个答案
179
次被采纳
crystal266
555
个答案
162
次被采纳
whj467467222
1222
个答案
149
次被采纳
本月文章贡献
出出啊
1
篇文章
1
次点赞
小小李sunny
1
篇文章
1
次点赞
张世争
1
篇文章
1
次点赞
crystal266
2
篇文章
1
次点赞
whj467467222
2
篇文章
1
次点赞
回到
顶部
发布
问题
投诉
建议
回到
底部