CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
本文分享自华为云社区《基于CC2530_ZigBee+华为云IOT设计的冷链信息采集系统【玩转华为云】-云社区-华为云》,作者:DS小龙哥。
1、前言近年来,随着人们消费需求的不断提高,连锁超市、便利店、大卖场等商超不但提供了各种各样的新鲜食品,而且采用统一进货和冷链储藏的方式,从而不但使得商品质量有保证,而且购物环境良好,越来越成为人们购物的主要场所。超市作为冷链物流产品的末端,在分销以及零售过程中都对产品质量、运营成本和功耗等方面有着较高的要求,而冷链系统的压力参数作为保证这一品质的重要参数之一,实现智能压力检测和控制对于时刻掌握冷链的工作状态非常重要,可以保证运营的安全性和经济性。因此,如果能够设计一款针对冷链系统数据采集系统,就可以实现对冷链系统进行实时监控,达到经济性运营的目的,对提高企业经济效益具有非常重要的意义。
2、设计需求以CC2530单片机为核心器件,设计一个冷链环境信息采集系统,利用传感器技术对冷藏仓内的环境参数进行采集,上传到物联网云平台,然后通过手机端或移动端进行显示,便于分析,观察冷链环境信息。
硬件选型:(1)ESP8266-WIFI用于与上位机进行通信,实现数据传输
(2)CC2530单片机,本身是51内核,与普通的51单片机编程一样,它内部多了一个ZigBee模块,能实现ZigBee组网。
(3)DHT11温湿度传感器。这是一款有已校准数字信号输出的温湿度传感器。其精度湿度±5%RH,温度±2°C,量程湿度5~95%RH,温度-20~+60°C。
(4)蜂鸣器。当设置阀值超出标准时,可以发出警报提醒。


当前的设计中,用的物联网平台服务是华为云的设备接入服务(IoTDA),IoTDA提供海量设备连接上云、设备和云端双向消息通信、批量设备管理、远程控制和监控、OTA升级、设备联动规则等能力,并可将设备数据灵活流转到华为云其他服务。
使用物联网平台构建一个完整的物联网解决方案主要包括3部分:物联网平台、业务应用和设备。
物联网平台作为连接业务应用和设备的中间层,屏蔽了各种复杂的设备接口,实现设备的快速接入;同时提供强大的开放能力,支撑行业用户构建各种物联网解决方案。
设备可以通过固网、2G/3G/4G/5G、NB-IoT、Wifi等多种网络接入物联网平台,并使用LWM2M/CoAP、MQTT、HTTPS协议将业务数据上报到平台,平台也可以将控制命令下发给设备。
业务应用通过调用物联网平台提供的API,实现设备数据采集、命令下发、设备管理等业务场景。
接下来就详细把整个物联网平台的使用流程进行介绍。
4.2产品创建地址:
查看平台接入地址:
根据自己的产品信息填充:
根据产品的传感器属性创建服务器的属性字段:
4.3设备创建详细创建流程,看下面的截图:
保存设备信息,接下来的MQTT登录需要使用。
{"device_id":"62e732be3a884835598654f7_dev1","secret":"12345678"}4.4MQTT三元组信息生成在这里可以使用华为云提供的工具快速得到MQTT三元组进行登录。
工具的页面地址:
根据提示填入信息,然后生成三元组信息即可。这里填入的信息就是在创建设备的时候生成的信息。
ClientId62e732be3a884835598654f7_dev1_0_0_2022080102Username62e732be3a884835598654f7_dev1Password13483ebeadd786ea107527a3c92c5463a8f3c71377cd33276143ffe2fb85c1dc4.5MQTT主题订阅与发布格式
//订阅主题:平台下发消息给设备$oc/devices/62e732be3a884835598654f7_dev1/sys/messages/down//设备上报数据$oc/devices/62e732be3a884835598654f7_dev1/sys/properties/report//上报的属性消息(一次可以上报多个属性,在json里增加就行了){"services":[{"service_id":"server_id","properties":{"温度":23.4}},{"service_id":"server_id","properties":{"湿度":80.5}}]}4.6设备模拟登录测试4.7应用侧开发接口介绍在设备上云之后,为了能方便管理设备,方便用户设备入网,都需要开发一款手机APP或者微信小程序、桌面软件等,进行数据交互,设备管理。
华为云IOT提供了应用侧开发的API对接接口,这里就介绍一下使用应用侧开发的流程。这个API接口里常用的接口包括:产品创建、设备创建、设备属性获取、设备删除、查询设备等管理接口,可以通过API主动获取产品下面某个设备的属性,要求设备上报最新的数据过来。整个开发过程,都是基于HTTP协议的API接口进行交互,不依赖开发环境,不依赖开发语言。不管是桌面软件,还是手机APP、微信小程序、web网页等,核心代码基本都是一样,都是HTTP协议交互。下面的例子里,我是采用C++编写的,采用QT框架库完成整个开发,了解了整个思路,你就可以采用自己熟悉的语言完成相同的功能。
官方帮助文档:
5、CC2530程序设计5.1IAR环境搭建完整的安装整个配套环境,需要安装以下的软件,具体的版本型号也介绍了,直接百度搜索就能找到;最简单的办法是,淘宝搜索一下CC2530的开发板,店铺里一般都有配套的资料包下载,里面基本都包含了下面这些软件,直接白嫖就行:
安装集成开发环境:。
安装仿真器“SmartRF4EB”的驱动程序。
安装代码烧写工具:Setup_SmartRF_Programmer_1.10.2。
安装TI的Zigbee协议栈:。
安装过程截图请看另外的文档。
5.2硬件原理图5.3IAR程序工程图5.4代码include""uintlenU1=0;uchartempRXU1;ucharRecdataU1[MAXCHAR];//"AT+CIPSEND=0,10\r\n"//长度10//返回""之后就可以正常发送数据了//发送成功返回"SENDOK"//发送数据voidESP8266_SData(char*p,intlen){inti=0;charbuff[50];sprintf(buff,"AT+CIPSEND=0,%d\r\n",len);clearBuffU1();Uart1_S_String(buff);//发送指令DelayMs(1000);//等待for(i=0;ilen;i++){Uart1_S_Char(p[i]);}//等待发送完成DelayMs(1000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();}/*****************************************************************************名称:SetWifi()*功能:设置LED灯相应的IO口*入口参数:无*出口参数:无****************************************************************************/voidSetWifi(void){P0DIR|=0x40;//定义为输出IGT=0;//高电平复位DelayMs(500);IGT=1;//低电平工作}/*设置WIFI为AP模式+TCP服务器*/voidSetESP8266_AP_TCP_Server(){clearBuffU1();Uart1_S_String("AT\r\n");DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("ATE0\r\n");DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("AT+CWMODE=2\r\n");DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("AT+RST\r\n");DelayMs(2000);DelayMs(2000);DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("ATE0\r\n");DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("AT+CWSAP=\"wifi_cc2530\",\"12345678\",1,4\r\n");DelayMs(2000);DelayMs(2000);DelayMs(2000);DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("AT+CIPMUX=1\r\n");DelayMs(2000);DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("AT+CIPSERVER=1,8089\r\n");DelayMs(2000);DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);clearBuffU1();Uart1_S_String("AT+CIFSR\r\n");DelayMs(2000);DelayMs(2000);RecdataU1[lenU1]='\0';UR0SString(RecdataU1);}unsignedchardataRecv;unsignedcharFlag=0;/*===================UR1初始化函数====================*/voidInit_Uart1(){PERCFG=0x00;//位置1/口P0SEL|=0x30;//,用作串口(外部设备功能)U1CSR|=0x80;//设置为UART方式U1GCR|=11;//BAUD_EU1BAUD|=216;//BAUD_M波特率设为115200UTX1IF=0;//UART1TX中断标志初始置位0U1CSR|=0X40;//允许接收IEN0|=0x88;//开总中断,UART1接收中断}voidclearBuffU1(void){intj;for(j=0;jMAXCHAR;j++){RecdataU1[j]=0x00;}lenU1=0;}/*******************************************************************************串口1发送一个字节函数*******************************************************************************/voidUart1_S_Char(charData){U1CSR=~0x40;//禁止接收U1DBUF=Data;while(UTX1IF==0);UTX1IF=0;U1CSR|=0x40;//允许接收}/*******************************************************************************串口1发送字符串函数*******************************************************************************/voidUart1_S_String(char*Data){while(*Data!='\0'){Uart1_S_Char(*Data);Data++;}}/****************************************************************串口接收一个字符:一旦有数据从串口传至CC2530,则进入中断,将接收到的数据赋值给变量temp.****************************************************************/#pragmavector=URX1_VECTOR__interruptvoidUART1_ISR(void){if(lenU181){tempRXU1=U1DBUF;RecdataU1[lenU1]=tempRXU1;URX1IF=0;//清中断标志lenU1++;}}6、总结随着业务的发展,越来越多的企业选择结合物联网技术来实现自身效益增长。相比企业自建MQTT集群,使用华为云IoT服务低成本构建物联网解决方案,在能力、成本、运维、安全、生态等诸多方面具有突出优势。广泛支持IoT主流的接入协议及私有协议,满足各类设备和接入场景要求;与主流模组、芯片预集成,实现多网络、多协议接入,简化设备接入难度,实现小时级设备极简接入。
华为云博客_大数据博客_AI博客_云计算博客_开发者中心-华为云
推荐阅读
-
锤子科技将发智能音箱 语音功能成亮点
【手机中国新闻】不久前,有媒体曝光锤子科技在2018年将有多款产品发布,这其中除了手机以外,还有很多智能硬件产品。目前我们已经知道本次锤子科技春季发布会除了有新手机发布,还将有一款智能锁产品与广大消费者见面,而在今年下半年我们很有可能看见锤子科技的智能音箱产品。猎豹移动北京发布会现场在昨日晚间的猎豹...
-
新增1.5T动力 凯迪拉克新款CT4/CT5申报图曝光
[爱卡汽车国内新车原创]日前,工信部公布的第357批《道路机动车辆生产企业及产品公告》发布了凯迪拉克CT4和CT5新车型申报信息,两款车型均搭载了1.5T发动机。↑凯迪拉克车型申报图外观方面,凯迪拉克CT4、CT5新增车型的外观延续了在售车型的设计,最大的亮点是均搭载了发动机,发动机额定功率为155...
-
最新DALI调光方案解码模块,实用性强可适用于大牌产品被成功录入
【入选点评】随着社会的进步和信息技术的飞速发展,智能照明由于高效节能、管理简单、控制多样化、成本较低等市场优势,使其在智能家居行业占据了重要的地位。然而目前智能照明比较难解决的技术问题就是LED调光,那么当前最先进的调光方式是什么呢?在照明的数字控制信号中,DALI有着其他照明数字控制信号无可比拟的...
-
电流互感器是怎样分类的?是如何配置的?图文分析!
电流互感器的分类(1)按安装地点可分为户内式和户外式。20kV以下制成户内式;35kV及以上多制成户外式。(2)按安装方式可分为穿墙式、支持式和装入式。穿墙式装在墙壁或金属结构的孔中,可节约穿墙套管;支持式则安装在平面或支柱上;装入式是套在35kV及以上变压器或多油断路器油箱内的套管上,故也称为套管...