【RT-Thread作品秀】4G定位器
作者:钟文华
概述
现在的小孩子,老人家容易不会用智能机,即使会用智能机,监护人也不知道其位置,于是我制作这个4G定位器,只要老人和小孩子出门带在身上,就能实时看到小孩或者老人的位置,就能实现监护作用
开发环境
硬件:STM32F103RCT6(MCU),EC20(4G),N303-3(GPS)
RT-Thread版本:RT-THREAD 4.0.2
开发工具及版本:RT-THREAD studio
RT-Thread使用情况概述
本系统内核使用了信号量,互次信号量,邮箱,消息队列。
使用的组件为AT客户端,SAL,Libc
软件包使用了lwgps,cjson,webclient,at_device
硬件框架
软件框架说明
软件模块说明
首先通过控制ec20电源引脚使模块开机,通过发送at指令等到回复来确定ec20启动完成,然后发送初始化代码初始化ec20,初始化完成后创建ec20网卡设备线程服务函数,打开n303电源,创建lwgps软件包处理线程,处理gps发送过来的位置信息,获取到位置信息之后,通过webclient创建http post 向ontnet上传位置信息
演示效果
比赛感悟
这次比赛让我受益匪浅,首先我使用的是, rt-th read nano版本。让自己更熟悉内核。
熟练掌握如何创建线程。软件定时器的使用。多线程如何用信号量来同步,对比了Freertos和rt thread的差距,国产的系统已经成长了一个很高的高度。最让我印象深刻的是,at组件的使用,非常非常的方便。但是我却觉得。那些组件就感觉让我们接触不到底层,自己不了解底层在干什么。当4g模块出现问题的时候,无法自己加入处理函数。非常的被动。组件的使用方法介绍比较少。其是我使用at组件的时候。切换接收结束符。怎么都不行。。后来我放弃了。用nano版本自己写。用sscanf接收到的数据处理,不过我也感谢rt thread我知道了。有sscanf这个好东西。让我觉得印象深刻,非常好用的是lwgps包,才能方便直接提取位置信息就行了。,还有http包,那些偏上层应用的不用关心底层,使用起来非常方便。当时用at组件,要关心模块的状态。就有点非常不方便了。,能针对我快的状态,及时做出自己的反应。