基于微信平台的体重健康管理系统设计-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4174|回复: 1

基于微信平台的体重健康管理系统设计

[复制链接]
发表于 2017-12-25 14:20 | 显示全部楼层 |阅读模式

随着电子测重技术的成熟,电子秤已经逐渐取代老式测重设备。其因操作简单、测重准确、体积小、测量速度快、读数方便,广泛应用于商业贸易、医院、学校、企业等部门。随着制造工艺的提高,电子秤更是越做越轻巧便携,加之人们对美的追求,越来越关注自己体型的变化,因此如今几乎家家备有电子体重秤。同时随着物联网时代的到来以及微信技术的发展,物联网技术必然会用到越来越多的微信平台资源。本文即为大家介绍一款基于微信平台的体重健康管理系统,本系统不仅能测重,更能让用户了解自己体重阶段性的变化。同时利用微信平台,让本系统拥有较好的人机交互的体验感觉,使系统更人性化、智能化。

1.系统整体结构设计

本系统以52单片机为核心,硬件部分选择由电阻应变片构成差动全桥电路,A/D转换部分选用HX711芯片。除了基本的测重功能外,本系统提出了一种基于微信平台、WiFi、机智云平台对数据进行保存和分析的功能。本系统实现了将用户测得的体重信息进行保存及分析,将结果通过微信平台反馈给用户,同时用户也可以通过微信控制电子称重实体。

图1  系统整体结构框图

2.称重传感器的设计2.1、电阻式应变片传感器

体重健康管理系统最为基础的功能则是体重的测量,因此称重传感器是本系统最重要的部分之一,其性能直接决定了电子测重的精确度及稳定性等重要性能。故本系统选择采用差动全桥电路作为测量电路,该电路由4片电阻应变片构成。如2图所示,是完全相同的4个应变片,当电桥开路时,不平衡电桥输出的电压为:

又因为R1=R2=R3=R4,且在受力时ΔR1=ΔR2=ΔR3=ΔR4,则:101RU=ER∆,U0与ΔR1/R1成线性关系,则差动半桥电路无线性误差。电压灵敏度SV=E,且具有温度补偿。

图2 差动全桥电路


2.2、A/D转换模块

电子称重需要将应变片的物理形变产生的电压模拟信号转换成数字信号,则需要A/D转换模块,加上电子秤重对精度的较高要求,所以最终选用HX711芯片。HX711是一款24位高精度的A/D转换芯片,与其它A/D转换芯片相比,其不仅具有响应速度快、抗干扰性能强等优势;除此之外该芯片还具有较高的集成度,因为其内部已经集成有稳压电源和片内时钟振荡器等外围电路。符合芯片越做越精,越做越小的趋势。

图3  HX711模块原理图

该芯片有两路通道可供差分输入选择,分别为通道A和通道B。通道A的差分输入信号大小可为±20mV或±40mV,通道B的可编程增益为固定的32增益,用于系统参数检测。该芯片集成有稳压电源和内部时钟振荡器,所以系统板上无需外接模拟电源,也无需外部提供振荡信号。因此该芯片集成度高,操作简单。此外其特有的上电自动复位功能,简化了开机过程,加快了开机速度。

3.微信平台的设计3.1、微信功能设计框图

本设计的微信部分通过WiFi模块将设备MCU收集的一系列数据上传至云服务器,这里利用的是机智云平台,数据通过机智云处理转发到微信公众号上,同样控制命令的数据可以从微信通过机智云下行传送到设备MCU,从而实现对电子秤设备的控制,可以看出机智云平台在此部分的设计中起到了承上启下的作用。

图 4  微信功能设计框图


3.2、设备与微信硬件绑定过程

首先申请一个微信公众号,获得对应的公众号原始ID。接着进行设备MCU开发和固件烧录,在WiFi模块写入AirKiss时,需要将机智云的produck_key写入设备MCU,同时需要配置公众号的原始ID。在这里,借助了已经烧录到WiFi模块的微信宠物屋开源框架进行第二次烧写,关键代码如图5所示。

图5  WiFi写入Airkiss关键代码

接着微信客户端通过扫描二维码的方式添加设备,设备二维码生成方式中,选择产品添加方式为每种型号唯一的二维码,此方式在微信绑定设备时,既可以通过扫描二维码直接绑定,也可以选择近场发现绑定。

接着进行设备的授权,在WiFi固件中写入公众号原始ID,同时将所有设备的MAC地址登记到微信服务器上,接着即可以向微信接口发送请求设备授权关键代码如图6所示。

图6  设备授权关键代码

3.3、微信与设备数据交互的实现

对于设备数据点的监控,借助平台已经封装好的SDK即java-SDK和js-SDK,这两个SDK各自封装了机智云的OpenAPI以及WebSocket,所以大大简化了API的操作,接管了token和用户管理,只需要调用相关函数,即可实现设备与微信在软件平台的绑定和解绑。下面给出绑定用户的Java_SDK中的关键代码:

DeviceInfodeviceInfo=OpenApi.bindDevice(

wechatOpenId,

gizwitsAppId,

gizwitsProductKey,

gizwitsProductSecret,

mac,

deviceAlias,

deviceRemark)

对于设备的控制同样需要调用js-SDK,首先初始化GizwitsWS对象,然后使用GizwitsWS.init()获取绑定列表,接着选择一个设备,创建websocket连接控制设备。对于控制代码的编写,如果是commType=custom,则输入p0;如果commType=attrs_v4,则输入datapoints。下面给出远程控制电子秤上RBG灯的代码样例:

varcommand=‘{“LED_R”:0,“LED_G”:0,“LED_B”:0}’;

gizwits.write(did,JSON.parse(command));

以上是电子秤微信部分设计的关键步骤,在此开发过程中,机智云平台起到了关键的作用。

4.结语

越是随处可见的东西,越是需要实用与智能,本系统在测重模块的设计上实现了降低成本,提高精确度。除此之外外加的微信平台,实现了人机交互的功能,让电子秤不在仅仅可以称重,更成为了健康生活的小助手,因此该设备具有广阔的应用前景。

发表于 2018-1-9 14:52 | 显示全部楼层
微信那里怎么弄?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:29 , Processed in 0.075404 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表