0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

蓝牙通讯的新型智能化水杯

涂鸦开发者 2022-03-29 10:56 次阅读

前言

近年来,IoT行业迎来了一个快速发展的窗口期,随之可见的是,越来越多的智能产品进入到了我们的日常生活中,包括随着健康饮水热度的攀升而进入消费者视线的智能化水杯。本项目下的智能化水杯主要针对办公室白领和独居老人两类群体,具备以下主要功能:

- 支持自定义提醒功能;

- 支持智能分析一段时间内的饮水数据;

- 支持屏显水容量和水温;

- 支持语音播报水容量和水温;

- 支持用户人群分类;

- 首创关怀模式,支持在子女和老人的账户共享,子女可通过App查看并提醒老人喝水。

一款产品的原型设计至关重要,而将产品搭在什么平台之上,更是值得考究的问题。

国内主流的IoT云平台各有千秋,涂鸦云平台的最大特色是采取标准模块化开发规则,这对于产品的开发者而言,不仅大大降低了开发门槛,还大幅降低研发成本和开发周期,快速实现产品智能化。

正是基于这种标准化开发能力,我们在涂鸦云开发平台上看到大量的行业标品,几乎覆盖了我们日常所能见到的所有智能品类,这无疑给开发者们带了极大的便利。涂鸦云开发平台上丰富的开发文档,从设备端SDK、移动端SDK,再到云端SDK的支持,对于看重二次开发的开发者是非常不错的福音。这也正是我本次选用涂鸦IoT云开发平台开发这款智能水杯的主要考量。

点击IoT商机孵化营,获取开发资料和相关硬件物料。

IoT商机孵化营:https://t.tuya.com/AY1D3R9mS6

1. 智能单品的创建

选定了涂鸦IoT云平台之后,就可以在涂鸦的IoT云平台可以快速地创建需要的智能单品:

pYYBAGJCZmWAB8DkAC3LR4yzNq0634.pngpoYBAGJCZnyAJKWaACkq3v9-6hg043.png

pYYBAGJCZqqAPXfsADBi3NhH6mI253.pngpYYBAGJCZt2AfO67ADQKG45A25Q109.pngpYYBAGJCZvqAJqqxACaWMjBX_ts142.pngpoYBAGJCZwyAaLUrAB2WBUXaN9k299.png

2. 产品开发

整个产品开发分为两大部分:硬件部分和软件部分。在硬件部分呢,涂鸦只提供标准化的模组(Wi-Fi模块或蓝牙模组等),并不提供具体的MCU选型以及对应传感器相关的选型,这些就需要智能单品开发根据自己的实际情况,自行完成选型。

2.1 硬件设计

有了基本的IoT云平台选型之后,下一步着重要进行的就是硬件部分的选型。

硬件选型遵循的原则应该是:尽可能选用成熟的硬件方案,选用的硬件型号应略高于满足你的功能需求,即留有冗余空间,尽可能考虑使用易开发的组件。

主控模块

主控模块选用的是开发者最容易上手的增强型 STC12C5A60S2,它是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。对比传统的51单片机,它有非常显著的技术优势:

poYBAGJCZ-CAM19fACMBUbacYs0641.png

pYYBAGJCaCiAJ2GvADVyroT7qaE951.png

蓝牙通讯模块

选用的是极具性价比的涂BT3L蓝牙模组,在基于蓝牙的智能单品上应用非常广泛,它的基本资料如下:

poYBAGJCaE6AHnemAC62sez-Wig044.png

pYYBAGJCaIGADkUBAC6gJX82Kog442.png

OLED显示模块

这里为了在产品中显示相关的基础数据,包括当前水杯温度、蓝牙连接状态、定时喝水提醒倒计时、电池电量、本地计时、杯中水量、已喝水量、目标水量等等。

考虑成本和接口设计等因素,采用的是由 SSD1306芯片驱动的9.6寸的OLED。

OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。同比之下LCD都需要背光,而OLED不需要,因为它是自发光的,这样的话同样的显示,OLED效果要来得好一些。

poYBAGJCaNiAP_UaAC2oO9sl0ro395.png

按键模块

按键这部分相对比较简单,直接采用的是点触式非自锁开关;主要是配合应用做一些简单的功能切换;比如短按的时候切换屏幕开和关,长按的时候复位蓝牙模组,进入配网流程等。

pYYBAGJCaP2ADTD8ACxstKA31-I271.png

温度传感器模块

温度传感器主要的用途是测量水杯的温度,以便于展示真实的水温度。这里我选用的是DS18B20数字温度传感器

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。[1] DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。

主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

pYYBAGJCaSqAXMBCAB0pdmv3k3Y802.png

RTC时钟模块

RTC时钟作为一个本地计时的模块而存在,选用的是非常经典的RTC模块:DS1302。

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

pYYBAGJCaWOADQF-AC3gkyjJ53E546.png

压力传感器模块

重力/压力传感器主要是用于测量水杯的整体重量,通过密度、体积、质量三者的数量关系,从而得出水容量的一种方法。

这里我选用的是HX711:它是一款专为高精度电子秤而设计的24位A/D转换器芯片与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。降低了电子秤的整机成本,提高了整机的性能和可靠性。该芯片与后端MCU芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对芯片内部的寄存器编程。

poYBAGJCaaWAKoH9ADCP6GwRjfc200.png

2.2 软件设计

代码整体框架

poYBAGJCadKAf_fbADdigmlGRUY238.png

MCU主控

主控部分的软件代码,采用的是STC12C5A60S2这块增强型的51单片机,它的软件开发完全兼容传统的51单片机,它的开发特定就是易上手,IO口丰富,外设也相对丰富,基本满足需要的功能需求。

在这个项目,主要使用它的以下几个部分:定时器、双串口(一个串口日志调试、另一个串口与蓝牙通讯)、ADC、标准的GPIO、E2PROM等。至于其他几个外设传感器,均采用的GPIO做通讯协议的模拟

poYBAGJCafyAYhGAACkgdBDO2wA228.png

蓝牙通讯

蓝牙通讯这部分的软件代码其实分为两部分:蓝牙模组的固件代码和MCU侧对接蓝牙模组的软件代码。由于是在涂鸦云平台上直接创建产品,模组直接选用的是涂鸦的标准蓝牙模组,所以蓝牙模组这部分的固件代码,是不用开发的,而需要开发的仅仅是通过简单的串口协议跟蓝牙模块就能够对接起来。类似下边这张图的左半部分所展示的这样:

poYBAGJCaiiAKva2ADfOJJG8SKo543.png

关于这种开发方式,是 “MCU低代码开发”,详尽的介绍可以参考:https://developer.tuya.com/cn/docs/iot/mcu-access-guide?id=K9hrbv1ub5owo。

涂鸦的MCU侧SDK移植

在涂鸦的IoT云平台上创建了对应的智能单品后,云平台会自动创建对应的MCU侧参考SDK,这个SDK中将对应产品的功能属性、物模型数据都固话在里面了,并且SDK内部已经很好地实现了MCU和蓝牙模组的对接,当收到蓝牙模组的数据传递时,自动进行处理。

在适配的过程中,只需要根据SDK包中的参考文档,将MCU侧几个核心的跟串口收发的接口适配好后,整一个与蓝牙模组的通讯功能就可以跑起来了。

这时,通过SDK包中的mcu_api.h的接口就可以实现对蓝牙模组的各种操作了。

pYYBAGJCatyALDAaABuNFxj4uF0418.png

- 更为详尽的移植步骤,可以参考:https://developer.tuya.com/cn/docs/iot/mcu-sdk-migration-guide?id=K9fs77cw2vy27。

基础外设

按键触发

为了简单处理,本项目中采用的简单的GPIO实现单点按键的功能;同时,为了实现单个按键短按和长按的对应不同的功能,在按键处理代码中,增加了按键状态机的处理模型,有效地区分按键短按和长按状态。

poYBAGJCa4WAHbalAC3gkwO0Nm4200.png

OLED显示

OLED采用的是I2C串行数据协议,考虑到GPIO的分布,本项目采用的是GPIO软件模拟I2C洗衣的方式,通过对不同寄存器的读写封装,可以实现对OLED区域的显示;同时配合字模制作软件,可以生成中文字模以及自定义的各式各样的图形和符号,极大地方便了显示的多样性。

pYYBAGJCa6yABXgjADLlJVQhgzE419.png

温度传感器测温

DS18B20温度传感器采用的是单数据线串行协议,切换单数据线的电平切换实现对温度信息的采集,经过合理的转换运算后,得到一个比较精确的水杯温度值,用于展示在显示屏上。

pYYBAGJCbD6AaDQRACSAdVaDP9k551.png

压力传感器测水容量

压力传感器用于检测水的容量,这是一个间接的测量方法,先通过压力(重力)传感器测得不同水容量下的重量,得出不能容量下的重量分布表;在真正的测量中,将取得的重量数据对照水容量表格,大致可以得出对应的水容量,从而做水量的数据展示。

poYBAGJCbHSAWM8_ACkJDd3VdKE318.png

RTC本地时钟

RTC时钟,采用的是自定义的串行数据协议,通过RST、IO、SCK三线的变化,可以准确地实现对RTC时钟的读和写;同时该模块是采用纽扣电池长供电的,所以可以长时间保持时钟的有效性。

pYYBAGJCbJaADA7yACijqUnGu8g762.png

电池电量检测

本产品由锂电池或干锰电池供电,借助MCU侧自带的ADC通道,可以很快地测出供电电压。由于STC12C5A60S2的ADC内部参考电压就是供电电压VCC,所以必须借助2路ADC通道,其中一路外接一个参考电压,然后根据等比关系计算出供电电压VCC。

比如外部参考电压是V1 = 1.0V,对应这路ADC测量的电压值为V11;而另一路ADC测量出来的电压值为V12。他们与VCC的等比关系是:VCC / V12 = V1 / V11

由此可计算出:VCC = V1 * V12 / V11

再结合VCC电压和锂电池的降压特性,初步得出当前的电量百分比,随后送到屏幕展示。

基础的应用逻辑

这里的基础应用逻辑有包括以下几点:

-设备复位和设备配网:当按键长按3秒以上时,则触发蓝牙设备的解绑,所有本地数据都讲复位到默认值,同时蓝牙设备再次发起广播,等到手机APP的自动发现,以及发起后续的设备配网操作。

-饮水提醒: 当手机APP端下发的饮水提醒时间已到,则整个OLED屏幕开始1秒钟开灭一次,直到检测到一次新的喝水动作。

-饮水动作的检测:当水杯水容量,前后的变化锐减20ml以上,则认为是一次有效的喝水动作,此时已喝水量会增加对应的喝水量,同时喝水次数会加1,且会上报一次全量数据。

-本地数据定时上报:本地的数据,每个5秒钟会触发上报,同时观察手机APP,即可看到数据的变化。

-蓝牙连接状态显示:蓝牙有3种状态,0状态对应的是设备未绑定,此时蓝牙图标每秒钟闪烁一次;1状态对应已绑定但未连接手机,此时蓝牙图标3秒钟闪烁一次;2状态表示正常已绑定已连接状态,测试蓝牙图标常态化一直显示。

代码开源

本产品的相关代码已开源,感兴趣可以联系我们。

2.3 功能调试

模拟调试

涂鸦模组调试助手是一个集成了云模组通讯协议的串口调试工具,常用于MCU低代码开发方案的开发调试。模组调试助手集成了包括Wi-Fi、蓝牙、ZigbeeNB-IoT等云模组常用串口协议,既可以模拟模组验证MCU代码逻辑,也可以模拟MCU调试配网功能。

这个助手很好地解决了产品设计前期的快速落地验证和原型规划,也极大地方便了在实际开发过程中遇到数据通讯问题时的调试手段,可以比较快地定位和解决问题。

poYBAGJCbSyAQ9z6ADaBJA4jyaI446.png

关于模组调试助手的详尽介绍,可以戳这里:https://developer.tuya.com/cn/docs/iot/network-module-overview?id=Ka4z12ojepber。

-设备调试

有了模拟调试的基础之后,就可以在开发过程中,进行真实设备的功能调试,这里采用的方式也是先从本地的基础数据入手,先把本地的基础数据调通,比如水温的探测、饮水量的检测、杯中水量的探测等等。

pYYBAGJCbWeACFzkACwd3I4p6nU233.png

联网调试

这里主要验证智能水杯的联网功能,包括与 智能生活APP的发现配对、连接,基础数据的上下行对接,智能场景联动等核心功能调试。

pYYBAGJCbYqALdALADVjXuhAiKw942.pngpYYBAGJCba2ARSPHACiu6TZVFZo222.png

产品核心功能的完整演示视频,感兴趣可以联系我们。

最后

看似一个简单的智能单品,但是,从最早的产品孵化再到产品原型的设计,再到IoT云平台、硬件模块的选型,然后进行软件开发、功能调试,这一系列的内容也是需要经过不断地思考和打磨,方可把这个智能化产品真的的落地。

这段开发经历来说,最大的收获并不是说把几个智能化的核心功能给实现了,反倒是这个智能单品的开发全流程能学习到了不少技术以外的内容,这些对于深入理解IoT领域提供了极大的帮助,也相信将来会有更多优秀的智能单品从这里诞生。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    621103
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16024

    浏览量

    343745
  • 蓝牙模块
    +关注

    关注

    30

    文章

    454

    浏览量

    55125
  • 涂鸦智能
    +关注

    关注

    6

    文章

    153

    浏览量

    19304
收藏 人收藏

    评论

    相关推荐

    智能温控水杯的设计

    电子发烧友网站提供《智能温控水杯的设计.zip》资料免费下载
    发表于 03-24 09:16 1次下载

    蓝牙智能锁中的应用

    。在智能锁领域无线通信主要有zigbee,WiFi、蓝牙3种,其中蓝牙以低功耗、低成本,高安全性能突出优点,成为智能门锁厂商热衷的无线方案通讯
    的头像 发表于 03-08 15:04 144次阅读

    空压机综合保护全功能智能化监测三台同发

    智能化空压机
    jf_68343993
    发布于 :2024年01月22日 17:31:29

    蓝牙网关是什么?具有哪些功能?

    数据传输和远程监控。因此,蓝牙网关可以广泛应用于智能家居、物联网、智能物流、智能农业等领域,为智能化、便捷
    发表于 01-19 15:05

    隧道智能化信息施工现场,隧道人员安全管理

    智能化信息
    恩田智能设备
    发布于 :2023年12月02日 12:14:27

    一种智能化ARINC429通讯卡设计与实现

    电子发烧友网站提供《一种智能化ARINC429通讯卡设计与实现.pdf》资料免费下载
    发表于 11-07 14:48 0次下载
    一种<b class='flag-5'>智能化</b>ARINC429<b class='flag-5'>通讯</b>卡设计与实现

    一节课开发智能化设备-2021.7.24-赵传达 - 第11节

    智能化智能设备
    充八万
    发布于 :2023年09月01日 21:25:14

    一节课开发智能化设备-2021.7.24-赵传达 - 第8节

    智能化智能设备
    充八万
    发布于 :2023年09月01日 21:22:43

    一节课开发智能化设备-2021.7.24-赵传达 - 第7节

    智能化智能设备
    充八万
    发布于 :2023年09月01日 21:21:53

    一节课开发智能化设备-2021.7.24-赵传达 - 第6节

    智能化智能设备
    充八万
    发布于 :2023年09月01日 21:21:02

    一节课开发智能化设备-2021.7.24-赵传达 - 第5节

    智能化智能设备
    充八万
    发布于 :2023年09月01日 21:20:12

    一节课开发智能化设备-2021.7.24-赵传达 - 第3节

    智能化智能设备
    充八万
    发布于 :2023年09月01日 21:18:31

    鸿蒙智联再出发,携手伙伴共赢空间智能化,创造无限可能

    ,使个人智能化向空间智能化迈进的趋势势不可挡。华为迎势而上,凭借其在通信连接领域30余年的积淀,以及华为终端交互产品十余年的打磨,于2021年正式推出华为全屋智能,突破连接、交互、生态三大壁垒,通过领先
    发表于 08-09 17:14

    智能化案例分享:刷卡自动售水机远程维护监测改造

    智能化远程维护
    北京东用科技有限公司
    发布于 :2023年08月08日 14:28:58

    E拆解:哈尔斯智能水杯,要怎么平衡智能模块和防水部分呢?

    E拆解:哈尔斯智能水杯,要怎么平衡智能模块和防水部分呢?
    的头像 发表于 06-28 12:20 576次阅读
    E拆解:哈尔斯<b class='flag-5'>智能</b><b class='flag-5'>水杯</b>,要怎么平衡<b class='flag-5'>智能</b>模块和防水部分呢?