体重秤上云-8,硬件功能完整实现

发布时间:2018年12月28日 阅读:389 次

八 硬件功能完整实现



前面几篇文章已经讲述了所有的涉及到的硬件部分,包括GPRS模组,数码管显示,电池电压检测,锂电池充电保护,称重传感器测量体重,称重传感器校准,人体感应电路。

这篇文章就来个大杂烩。通过单片机有序地调用上述各个资源,完成体重秤上云的目标。不仅要显示重量,还要把电池电压和体重数据上报到阿里云,这步工作完成后再设置一下云端的配置,达到数据处理的目标。



代码调试是有技巧的,零妖今天就向你透露价值一个亿的经验:调代码要先根据功能划分成模块来调试,最后再一个一个模块组合起来。

你看整个体重秤的写作顺序,其实就是零妖一个一个模块调试的过程。

现在所有的模块都已经调试通了,那么就剩下组合了,组合的过程要心细胆大,不能好几个模块一下子组合上去再测试,这样做不容易定位问题。总之,慢慢来,不能操之过急。

体重秤的代码调试思路是这样的:首先插上5V电源而不是电池,调试体重读取模块保证程序正常运行时候可以显示体重,调试数据上报的报文通过串口输出到电脑上,调试GPRS,初始化,报文通过串口输出到电脑上,调试定时器模块实现定时关机,调试定时器模块实现体重数据稳定后上报,调试人体感应模块实现感应上电和感应唤醒,接上GPRS模块调试初始化报文和数据上报报文,联调整体代码实现感应开机并且重量稳定后能够上报数据,插上锂电池模块观察电压上报结果。



零妖总共花费了2天时间来调试整体的代码。这是个细心的活,值得花费这么多时间。给你说一下调试过程中的几个注意事项。

GPRS模组初始化的时候,每条AT指令之间要注意延时,因为不同地区附着网络的时间不一样,要留一个充足的时间,GPRS模组有一个VDDIO的引脚输出,单片机可以检测这个引脚来判断模块目前有没有上电。

调用单片机的一个内部定时器,用来30秒定时,如果没有人站上去就关闭数码管,关闭GPRS模组。

人体检测的硬件电路输出是高电平有效,可以通过单片机IO口的下降沿中断来检测有没有人,注意在主函数里也要检测一下当前是不是高电平,因为当人站上去不动的时候,是没有下降沿的。

单片机进入低功耗模式可以由任意IO口下降沿唤醒的,所以可以直接用人体检测电路那个IO口。

要注意单片机唤醒后要初始化一遍系统,这个低功耗机制不同系列的单片机差异较大,如果你要移植到自己的系统中,一定要参考自己的单片机手册。



软件上的代码调试好之后,就可以整理一下接线了。零妖做的这个可以称之为工程样机,用各种模块先拼接起来验证一下功能。大致捋一下接线后稍微漂亮了一点。

数据上报到阿里云的物联网平台,由于创建的设备是符合ALink协议的所以可以在后台非常直观地看到上报的数据。




云下工程师该做的工作至此结束。如果还要做什么的话,就是综合考虑低功耗,考虑生产成本,考虑各个模块的电路集成到一个板子上等问题。

云上工程师就可以开始对接数据了。如果是一个团队在做这件事情那么这几天时间云上工程师应该也把这些应用给做好了。

零妖是要一个人完成整体工作,那么今天开始做云上的配置。实现和手机钉钉的对接,和数据库的对接,和大屏数据展示。

微信公众号偶尔更新

Tag:体重秤上云 阿里云 IOT
相关文章