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

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

3天内不再提示

开发者故事 | 如何用这款开发神器,快速DIY黑科技智能水杯

涂鸦开发者 2022-07-22 10:47 次阅读

近年来,IoT行业迎来了一个快速发展的窗口期。随之可见的是,越来越多的智能产品进入到了我们的日常生活中,包括随着健康饮水热度的攀升而进入消费者视线的智能水杯。

本项目下的智能化水杯解决方案主要针对办公室白领和独居老人两类群体,主要具备以下功能:

支持自定义提醒功能;

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

支持屏显水容量和水温;

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

支持用户人群分类;

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

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

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

正是基于这种标准化开发能力,我们在涂鸦 IoT 开发平台上看到大量的行业标品,几乎覆盖了我们日常所能见到的所有智能品类,这无疑给开发者们带来了极大的便利。


涂鸦 IoT 开发平台上丰富的开发文档,从设备端SDK、移动端SDK,再到云端SDK的支持,对于看重二次开发的开发者是非常不错的福音。这也正是我本次选用涂鸦 IoT 开发平台开发这款智能水杯的主要考量。


智能水杯开发实操教程

整个产品开发分为硬件软件两大部分。(文末可获取开发资料和硬件物料)


在硬件部分,由于涂鸦只提供标准化的模组,并不提供具体的MCU选型以及对应传感器相关的选型,这就需要我们在智能单品开发过程中,根据自己的实际情况,自行完成选型。

01

硬件设计

硬件选型遵循的原则应该是:


1、尽可能选用成熟的硬件方案;


2、选用的硬件型号应略高于你的功能需求,即留有冗余空间;


3、尽可能考虑使用易开发的组件。


主控模块

主控模块我选用的是开发者最容易上手的增强型 STC12C5A60S2,它是单时钟/机器周期( 1T )的单片机,是高速/低功耗/超强抗干扰的新一代 8051 单片机,指令代码完全兼容传统8051,但速度快8-12倍。


对比传统的51单片机,它具有非常显著的威廉希尔官方网站 优势:

83487a5e-0396-11ed-9ade-dac502259ad0.png

蓝牙通讯模块

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


836fa0f2-0396-11ed-9ade-dac502259ad0.png

8398dc4c-0396-11ed-9ade-dac502259ad0.png

OLED显示模块

考虑到成本和接口设计等因素,我采用的是由 SSD1306 芯片驱动的9.6寸OLED,用以显示水杯的基础数据,包括当前水杯温度、蓝牙连接状态、定时喝水提醒、倒计时、电池电量、本地计时、杯中水量、已喝水量、目标水量等等。

OLED 具备自发光、无需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用威廉希尔官方网站 。


83c1d52a-0396-11ed-9ade-dac502259ad0.png

按键模块

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


83eda0c4-0396-11ed-9ade-dac502259ad0.png

温度传感器模块

这里我选用的是 DS18B20数字温度传感器,用于测量水温。

DS18B20输出的是数字信号,具有体积小、硬件开销低、抗干扰能力强、精度高等特点。此外它接线方便,封装后可应用于多种场合。


84179be0-0396-11ed-9ade-dac502259ad0.png

RTC时钟模块

RTC时钟作为一个本地计时的模块而存在,我选用的是非常经典的DS1302。它是美国DALLAS公司推出的一种高性能、低功耗、带RAM实时时钟电路,可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。


采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。


842944b2-0396-11ed-9ade-dac502259ad0.png

压力传感器模块

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

这里我选用的是 HX711,它是一款专为高精度电子秤而设计的24位A/D转换器芯片,与同类型其它芯片相比,该芯片集成了包括稳压电源、片内时钟振荡器等其它同类型芯片所需要的外围电路,具有集成度高、响应速度快、抗干扰性强等优点。

降低了电子秤的整机成本,提高了整机性能和可靠性。该芯片与后端MCU 芯片的接口和编程非常简单,所有控制信号由管脚驱动,无需对接芯片内部的寄存器编程。


84516dc0-0396-11ed-9ade-dac502259ad0.png

02

软件设计

MCU主控


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

在这个项目,我主要使用它的以下几个部分:定时器、双串口(一个串口日志调试、另一个串口与蓝牙通讯)、ADC、标准的GPIO、E2PROM等。


至于其他几个外设传感器,均采用GPIO做通讯协议的interwetten与威廉的赔率体系

蓝牙通讯

蓝牙通讯这部分的软件代码其实分为两部分:蓝牙模组的固件代码和MCU侧对接蓝牙模组的软件代码。

由于我是在涂鸦 IoT 开发平台上直接创建产品,模组直接选用涂鸦提供的标准蓝牙模组,所以蓝牙模组的固件代码,我是不用开发的,而需要开发的仅仅是通过简单的串口协议跟蓝牙模块就能够对接起来。


类似下边这张图的左半部分所展示的这样(涂鸦叫 “MCU低代码开发”):


848d4ed0-0396-11ed-9ade-dac502259ad0.png

涂鸦MCU侧的SDK移植

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

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

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


84a8b0b2-0396-11ed-9ade-dac502259ad0.png

基础外设按键触发

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


OLED 显示

OLED 采用的是 I2C 串行数据协议,考虑到 GPIO 的分布,本项目采用的是 GPIO 软件模拟 I2C 洗衣的方式。

通过对不同寄存器的读写封装,可以实现对 OLED 区域的显示;同时配合字模制作软件,可以生成中文字模以及自定义各式各样的图形和符号,极大地方便了显示的多样性。


84caa302-0396-11ed-9ade-dac502259ad0.png

温度传感器测温


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


84fbb078-0396-11ed-9ade-dac502259ad0.png

压力传感器测水容量

压力传感器用于检测水的容量,这是一个间接的测量方法,先通过压力(重力)传感器测得不同水容量下的重量,得出不同容量下的重量分布表;


在真正的测量中,将取得的重量数据对照水容量表格,大致可以得出对应的水容量,从而做水量的数据展示。


85276ef2-0396-11ed-9ade-dac502259ad0.png

RTC本地时钟

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


855b578a-0396-11ed-9ade-dac502259ad0.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 电压和锂电池的降压特性,初步得出当前的电量百分比,随后送到屏幕展示。


基础的应用逻辑

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

1、设备复位和配网


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


2、饮水提醒


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

3、饮水动作的检测


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

4、本地数据定时上报

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


5、蓝牙连接状态显示

总共有3种状态:


0状态对应的是设备未绑定,此时蓝牙图标每秒钟闪烁一次;

1状态对应已绑定但未连接手机,此时蓝牙图标3秒钟闪烁一次;

2状态表示正常已绑定已连接状态,此时蓝牙图标常态化显示。

本产品的相关代码已开源,感兴趣的童鞋,可以 [复制下方链接]获取:https://gitee.com/recan-li/smart-cup


03

功能调试

模拟调试

涂鸦模组调试助手是一个集成了云模组通讯协议的串口调试工具,常用于 MCU 低代码开发方案的开发调试。


模组调试助手集成了包括 Wi-Fi、蓝牙、ZigbeeNB-IoT 等云模组常用串口协议,既可以模拟模组验证 MCU 代码逻辑,也可以模拟 MCU 调试配网功能。

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


8586930a-0396-11ed-9ade-dac502259ad0.png


设备调试

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


85ae9dc8-0396-11ed-9ade-dac502259ad0.png


联网调试

这里主要验证智能水杯解决方案的联网功能,包括智能生活App的配网、基础数据的上下行对接、智能场景联动等核心功能调试。


860355d4-0396-11ed-9ade-dac502259ad0.png

(App上相关饮水参数显示)


产品功能拓展

由于时间投入的关系,本次开发主要集中在开发核心的功能特性上,包括基本数据的采集、数据的下发及对云端数据的响应等等。

回到最开始我规划的几个特色功能,比如联网分析饮水数据、智能语音播报、设备共享、多人提醒互动等特色功能,将会在后续的产品开发中继续保持功能迭代,感兴趣的童鞋可以保持关注。

说在最后:

看似一款简单的智能单品,从最早的产品孵化到产品原型的设计,再到 IoT 开发平台、硬件模块的选型,然后进行软件开发、功能调试,一系列的过程需要不断地思考、验证和打磨,直到最终落地。

这段开发经历于我而言,最大的收获并不是说把几个智能化的核心功能给实现了,而是通过整个过程对IoT领域有了更深刻的认知。

PS:本文来源于CSDN威廉希尔官方网站 博客,作者--架构师李肯。

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

    关注

    187

    文章

    4211

    浏览量

    196811
收藏 人收藏

    评论

    相关推荐

    NVIDIA发布小巧高性价比的Jetson Orin Nano Super开发者套件

    NVIDIA近期推出了一款全新的生成式AI超级计算机——Jetson Orin Nano Super开发者套件。这款开发者套件以其小巧的尺寸和高性价比吸引了广泛关注。 Jetson Orin
    的头像 发表于 12-19 11:28 364次阅读

    AI行业大咖云集 2024边缘智能开发者生态大会圆满落幕

    12月5日,2024边缘智能开发者生态大会暨2024高通边缘智能创新应用大赛颁奖典礼隆重举行。全球众多边缘智能行业专家、开发者齐聚四川成都,探讨生态聚力合作,并共同见证了2024高通边
    的头像 发表于 12-09 14:48 237次阅读
    AI行业大咖云集 2024边缘<b class='flag-5'>智能开发者</b>生态大会圆满落幕

    云端AI开发者工具怎么用

    云端AI开发者工具通常包括代码编辑器、模型训练平台、自动化测试工具、代码管理工具等。这些工具不仅降低了AI开发的门槛,还极大地提高了开发效率和模型性能。下面,AI部落小编为您介绍云端AI开发者
    的头像 发表于 12-05 13:31 130次阅读

    KaihongOS 4.1.2开发者预览版正式上线,诚邀开发者免费试用!

    深开鸿在2024开放原子开源生态大会上正式宣布KaihongOS4.1.2开发者预览版全面上线,并向全球开发者开放免费下载。作为KaihongOS不断创新与发展的重要里程碑,此次预览版为开发者提供了
    的头像 发表于 09-28 08:07 342次阅读
    KaihongOS 4.1.2<b class='flag-5'>开发者</b>预览版正式上线,诚邀<b class='flag-5'>开发者</b>免费试用!

    KaihongOS 4.1.2开发者预览版正式上线,诚邀开发者免费试用!

    今日,深开鸿在2024开放原子开源生态大会上正式宣布KaihongOS 4.1.2开发者预览版全面上线,并向全球开发者开放免费下载。作为KaihongOS不断创新与发展的重要里程碑,此次预览版为
    的头像 发表于 09-26 15:59 459次阅读

    2024 TUYA全球开发者大会(欧洲)盛大启幕,涂鸦携手开发者共筑绿色低碳未来

    2024年9月9日,TUYA全球开发者大会在德国柏林会展中心隆重举办。作为TUYA开发者大会的欧洲首站,此次活动精彩纷呈,创新AI产品、解决方案层出不穷。涂鸦智能携手海内外行业翘楚,为开发者
    的头像 发表于 09-12 08:05 398次阅读
    2024 TUYA全球<b class='flag-5'>开发者</b>大会(欧洲)盛大启幕,涂鸦携手<b class='flag-5'>开发者</b>共筑绿色低碳未来

    MediaTek 天玑开发者大会MDDC 2024启幕

    5 月 7 日 9:30;MediaTek 天玑开发者大会 2024正式开幕,(MediaTek Dimensity Developer Conference,简称 MDDC) 在此次的  MDDC
    的头像 发表于 05-07 10:25 682次阅读

    机智云开发者中心:让移动APP应用开发智能

    智能化和高效。   新版本开发者中心的介绍 机智云物联网新版本开发者中心是一款专为开发者设计的一体化开发工具,旨在提供更
    的头像 发表于 03-26 16:45 343次阅读
    机智云<b class='flag-5'>开发者</b>中心:让移动APP应用<b class='flag-5'>开发</b>更<b class='flag-5'>智能</b>化

    曙光智能计算开发者讲坛于2024全球开发者先锋大会期间在上海成功举办

    3月24日,曙光智能计算开发者讲坛于2024全球开发者先锋大会期间在上海成功举办。
    的头像 发表于 03-26 09:42 619次阅读

    【转载】英特尔开发套件“哪吒”快速部署YoloV8 on Java | 开发者实战

    部署到生产系统中。通过简化的开发工作流程,OpenVINO可赋能开发者在现实世界中部署高性能应用程序和算法。 今天我们将基于哪吒开发者套件平台来快速部署OpenVI
    的头像 发表于 03-23 08:05 564次阅读
    【转载】英特尔<b class='flag-5'>开发</b>套件“哪吒”<b class='flag-5'>快速</b>部署YoloV8 on Java | <b class='flag-5'>开发者</b>实战

    东胜物联携多款智能网关亮相瑞芯微RK开发者大会

    东胜物联三款基于瑞芯微芯片的智能网关产品在RK开发者大会的智能家居区域进行展出。
    的头像 发表于 03-15 10:17 933次阅读
    东胜物联携多款<b class='flag-5'>智能</b>网关亮相瑞芯微RK<b class='flag-5'>开发者</b>大会

    Android 15的首个开发者预览版现已发布

    Android 15 的首个开发者预览版现已发布,以便各位开发者能与我们通力协作,打造更优秀的 Android 平台。
    的头像 发表于 03-12 14:16 920次阅读
    Android 15的首个<b class='flag-5'>开发者</b>预览版现已发布

    鸿蒙开发者预览版如何?

    、原生智能、原生互联,6大极致原生体验。 我初步阅读了鸿蒙的源码后,基本上可以确定是全自研底座,已经看不到Android的身影了。作为开发者,如果想往鸿蒙方向发展,就需要系统性学起。鸿蒙的知识体系如下
    发表于 02-17 21:54

    华为宣布HarmonyOS NEXT鸿蒙星河版开发者预览面向开发者开放申请

    华为宣布HarmonyOS NEXT鸿蒙星河版开发者预览面向开发者开放申请,这意味着鸿蒙生态进入第二阶段,将加速千行百业的应用鸿蒙化。
    的头像 发表于 01-29 16:42 1418次阅读
    华为宣布HarmonyOS NEXT鸿蒙星河版<b class='flag-5'>开发者</b>预览面向<b class='flag-5'>开发者</b>开放申请

    HarmonyOS SDK,助力开发者打造焕然一新的鸿蒙原生应用

    场景推出场景化控件,帮助开发者快速地打造更纯净、更智能、更精致、更易用的鸿蒙原生应用。 提供六大领域,能力丰富完备 HarmonyOS SDK 拥有近 30000 个 API,覆盖了鸿蒙原生应用
    发表于 01-19 10:31