[技术干货] 华为IoT杭州黑客松作品分享:华为IoT开发训练营-杭州站-IoT咖啡机

华为IoT开发训练营-杭州站-IoT咖啡机

一、背景和介绍

1、公司/团队介绍

广州准捷电子科技有限公司是一家专注于物联网解决方案的公司。成功推出了FAN-CLUDEFAN-DTUNB-IoT智能空调、NB-IoT智能电表、NB-IoT资产定位防串货系统、无人机图传等一些列产品解决方案。在智能电网,无人售货,智能家电,智能公共设施,消防安全等领域拥有丰富的ODM定制开发经验。

 

2、项目介绍

这次我们带来的项目是一个家用的NB咖啡机。它实际上就是通过NB-IoT技术使得传统的哑终端胶囊咖啡机能够联网,能实时上报和下发数据。当然,有人会说让家用咖啡机连上运营商网络的意义在哪里?用WIFI岂不是更好?我们做这个东西对行业到底有什么意义?能对咖啡机市场造成什么样的影响?

这个咖啡机用NB的意义主

1.1 当然是使我们的用户更加方便的使用。NB网络的一大优势就在于使用门槛低。相较于其他IoT网络。NB对于用户来说使用门槛是最低的,只要在NB基站的覆盖范围内就能联网,买来插上电就能联网。其他的还需要用户对设备进行各种各样的设置,甚至需要专门搭建网关。

1.2 大数据。在征得用户的同意下,咖啡机运营商可以通过我们的咖啡机对于地域用户的消费习惯进行大数据分析和计算。这样,咖啡机运营商可以在咖啡备货方面根据地域数据来降低备货成本。也可以接和AI和云计算让用户体验到比你更懂你的咖啡机。

 

项目设计亮点:

2.1 使用单芯开发,只有模组没有MCU,降低成本和功耗。

2.2 使用华为IOT平台免心跳,降低了设备百分之九十九以上的心跳流量。

2.3 两套通信协议,让咖啡机厂商实现无网络感知使用NB

2.4 横向扩展能力强,相似应用场景可以快速移植

项目设计亮点中2.12.22.4没有什么特别值得一提的,但是对于2.3这里我有必要特别解释一下,让咖啡机厂商实现网络无感知使用NB到底是怎么一回事。

在这个项目中,我们的咖啡机对于NB通信模块的通信方式实际上是使用的近乎于自然语言的字符串。

就像Machine_run,或者是“Machine_close”、“Makeing_CoffeeMaking_Coffesecess之类的语句。但是我们NB模块发给北向云平台的确实通过编解码插件转译好的,完美符合服务器接收标准的Json格式数据。

这就是我们借助单芯开发的优势,让客户在不知道NB,不懂网络,却可以直接让他的设备摇身一变从哑终端变成物联网设备。

二、项目内容

1、硬件方案

这次的硬件是用的我们自家生产的LiteOne开发板。

在单芯项目的搭建中它可是我们用来打闪电战的一把好手,它有最简洁实用的设计,可以通过接插外围电路搭建出各种应用场景的Demo

我们曾今用我们现有的案例资源,三天在客户公司完成demo搭建,18天成功交付第一批测试软硬件。

     image.png

 

简介

开发板资料:

链接:https://pan.baidu.com/s/1qHXJOScWRh9t4AyCw3o31A  

提取码:gk23 

本次项目的硬件只是单纯的串口控制,接线方式是将设备主串口直接接通到咖啡机控制串口上实现设备控制。

image.png

设备对接实物图

2、软件方案

软件结构由三大部分组成

image.png

咖啡机和我们NB通讯部分是用的厂商定制的近乎于自然语言的简单通讯协议。

我们将会在我们的通信模块中将其转成JSON并进行特殊格式压缩。然后转发到北向应用的时候,十条自然语言组成的通讯协议变成了四五个Json结构体系,北向应用解码就变得时分方便,同时设备端的通讯协议扩展也变得十分灵活。


三、关键源代码解析

1、程序文件介绍

程序在移远BC28官方SDK的基础上开发,有点软件在官方的API的基础上做了一些封装,这个项目核心代码就是对于咖啡机输入字符串的处理和Json格式的转码。

image.png

2、程序主函数说明

程序主函数中没有太多东西,只有我们的主程序逻辑和一个看门狗复位,我们将接收到的咖啡机字符对应到相应的事件,并且在主循环中对相应的事件进行对应的Json编码。

image.png

3、关键代码说明

此项目的关键代码主要就是对于Json格式的封装以及Json格式的压缩,Json格式的封装我们目前只是通过接收到的信息将其对应配置到对应的数据结构中。这样虽然好横向添加更多命令,但是这样一上发的数据量就会变得非常大。所以我们这边需要用到CWPack这个包将其进行压缩,并且在应用侧进行解析

image.png

其核心API就是cw_pack_系列API,这个API有很多分支,对应json常用到的几大数据格式。

当然,更加详细的资料我们可以在  https://msgpack.org/  上找到详细的包和对应案例

image.png

四、产品功能展示

应用界面

image.png

image.png

image.png

image.png

控制设备关闭


image.png

image.png

控制设备开启