目录
-
项目目的
利用树莓派采集某一特定环境的温湿度,并上报服务器。可实现计时上报、定时采样等功能。具体应用实例:只能温控系统、车内温度采样、还可以利用3G或4G技术实现人烟稀少区域的温度检测等。
-
实现要求
-
基于树莓派的温度获取,并且能够上包服务器;
-
如果上报失败或客户端与服务器断线,要求要把本次采样的数据存储的数据库;
-
能够实现定时或计时采样数据和发送数据;
-
支持断线重连,如果连接将数据库中保存的数据上报道服务器;
-
采样的数据需转换为tlv格式,并且支持CRC校验;
-
支持确认重传机制;
-
支持日志系统;
-
使用Git实现项目托管;
-
支持域名解析。
-
项目实现基本流程图
-
实现过程中遇到问题及其解决方案
- 函数传参太多,导致程序可读性下降。解决方法: 使用结构体封装。
- 数据库使用外键来维护数据库,外键的值难以确定。解决方法:使用内键来维护。
- main含数文件过于繁琐。 解决方法: 将文件拆分开,争取一个功能一个函数,一个模块一个C文件,还有与之一一对应的头文件。
- 实现日志系统时,传参数目不定。解决方法:使用可变参数宏来实现参数的传递。
-
代码地址
https://gitee.com/tjcshx/tlv_client