如何使用CW32单片机通过ESP8266连接OneNET物联网平台,发送温湿度数据到平台,并接受平台的云控制?
一、简介
1、本文向大家介绍如何使用CW32单片机通过ESP8266连接OneNET物联网平台,发送温湿度数据到平台,并接受平台的云控制。
二、所需物料
2、本实验使用到了CW32-48F大学计划开发板、DHT11温湿度传感器模块、ESP8266WIFI模块及Keil5开发环境。
3、接线:根据原理图,把模块连接到开发板上
(1)ESP8266WIFI模块:
开发板上预留了该模块接口,通过串口向ESP8266写入指令。
(2)DHT11模块:开发板上预留了该模块接口
4.(1)MQTT协议介绍:
MQTT是一种轻量级的发布/订阅消息传输协议,常用于物联网领域。它的特点是简化和减少了网络流量,可以高效地进行数据传输。在本次应用中,我们将使用MQTT协议进行数据上传。
(2)OneNET代码介绍:
在使用OneNet平台时,我们需要使用TCP协议进行连接。首先需要设置好TCP协议的相关参数,然后通过POST方法将温湿度数据上传到OneNet平台中。在上传数据时需要使用OneNet平台提供的API接口进行数据传输。
三、核心代码
main.c
int main(void)
{
unsigned short timeCount = 0; //发送间隔变量
unsigned char *dataPtr = NULL;
Hardware_Init(); //初始化外围硬件
while(DHT11_Init()) //检测DHT11
Delay_ms(200);
ESP8266_Init(); //初始化ESP8266
UsartPrintf(USART_DEBUG, "Connect MQTTs Server...\r\n");
while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT")) //ESP8266联网
Delay_ms(500);
UsartPrintf(USART_DEBUG, "NET_OK\r\n");
while(OneNet_DevLink()) //接入OneNET
Delay_ms(500);
OneNET_Subscribe(); //订阅消息传输,允许接受下发指令
TFTShowString(0,0," OneNET "); //界面
TFTShowString(1,0," 智能物联平台 ");
TFTShowString(3,0,"humidity: %");
TFTShowString(4,0,"temperature: C");
while(1)
{
if(++timeCount >= 50)
{
DHT11_Read_Data(&temperature,&humidity); //读取温湿度值
TFTShowNumber(3,10,humidity);
TFTShowNumber(4,12,temperature);
UsartPrintf(USART_DEBUG,"TEMP:%d HUMI:%d\r\n",temperature,humidity);
UsartPrintf(USART_DEBUG, "OneNet_SendData\r\n");
OneNet_SendData(); //数据上传
timeCount = 0;
ESP8266_Clear(); //清除缓存
}
dataPtr = ESP8266_GetIPD(0); //接收OneNET平台返回的数据
if(dataPtr != NULL)
OneNet_RevPro(dataPtr); //确认返回数据,执行下发命令
Delay_ms(10);
}
}
Onenet.c:
#define PROID "3OB4R7cKCw" //产品ID(名称)
#define ACCESS_KEY "n7GptYNpf9U97zHTz2ltc1Pvy4GB+0MXsU1nKel9ixc=" //产品访问密钥
#define DEVICE_NAME "111" //设备ID(名称)
void OneNet_RevPro(unsigned char *cmd)
{
char *req_payload = NULL;
char *cmdid_topic = NULL;
unsigned short topic_len = 0;
unsigned short req_len = 0;
unsigned char qos = 0;
static unsigned short pkt_id = 0;
unsigned char type = 0;
short result = 0;
char *dataPtr = NULL;
char numBuf[10];
int num = 0;
type = MQTT_UnPacketRecv(cmd);
switch(type)
{
case MQTT_PKT_PUBLISH: //接收的Publish消息
result = MQTT_UnPacketPublish(cmd, &cmdid_topic, &topic_len, &req_payload, &req_len, &qos, &pkt_id);
if(result == 0)
{
char *data_ptr = NULL;
UsartPrintf(USART_DEBUG, "topic: %s, topic_len: %d, payload: %s, payload_len: %d\r\n", cmdid_topic, topic_len, req_payload, req_len);
data_ptr = strstr(cmdid_topic, "request/"); //查找cmdid
if(data_ptr)
{
char topic_buf[80], cmdid[40];
data_ptr = strchr(data_ptr, '/');
data_ptr++;
memcpy(cmdid, data_ptr, 36); //复制cmdid
cmdid[36] = 0;
snprintf(topic_buf, sizeof(topic_buf), "$sys/%s/%s/cmd/response/%s",
PROID, DEVICE_NAME, cmdid);
OneNET_Publish(topic_buf, "ojbk"); //回复命令
}
}
case MQTT_PKT_PUBACK: //发送Publish消息,平台回复的Ack
if(MQTT_UnPacketPublishAck(cmd) == 0)
UsartPrintf(USART_DEBUG, "Tips: MQTT Publish Send OK\r\n");
break;
case MQTT_PKT_SUBACK: //发送Subscribe消息的Ack
if(MQTT_UnPacketSubscribe(cmd) == 0)
UsartPrintf(USART_DEBUG, "Tips: MQTT Subscribe OK\r\n");
else
UsartPrintf(USART_DEBUG, "Tips: MQTT Subscribe Err\r\n");
break;
default:
result = -1;
break;
}
ESP8266_Clear(); //清空缓存
if(result == -1)
return;
dataPtr = strchr(req_payload, ':'); //搜索':'
if(dataPtr != NULL) //如果找到了
{
dataPtr++;
while(*dataPtr >= '0' && *dataPtr <= '9') //判断是否是下发的命令控制数据
{
numBuf[num++] = *dataPtr++;
}
numBuf[num] = 0;
num = atoi((const char *)numBuf); //转为数值形式
if(strstr((char *)req_payload, "light")) //搜索"light",判断":"后面的数值进行控制
{
if(num == 1) //控制数据如果为1,代表开
{
UsartPrintf(USART_DEBUG, "接收到1\r\n");
//开灯
PA07_SETLOW();
TFTShowString(5,0,"light: ON ");
}
else if(num == 0) //控制数据如果为0,代表关
{
UsartPrintf(USART_DEBUG, "接收到0\r\n");
//关灯
PA07_SETHIGH();
TFTShowString(5,0,"light: OFF");
}
}
}
if(type == MQTT_PKT_CMD || type == MQTT_PKT_PUBLISH)
{
MQTT_FreeBuffer(cmdid_topic);
MQTT_FreeBuffer(req_payload);
}
}
- |
- +1 赞 0
- 收藏
- 评论 0
本文由咪猫转载自武汉芯源 微信公众号,原文标题为:【CW32】基于CW32的物联网应用,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
【经验】芯源CW32系列单片机低功耗模式介绍及UART深度休眠模式示例
CW32单片机低功耗模式介绍及UART深度休眠模式示例。
设计经验 发布时间 : 2023-05-31
武汉芯源CW32系列单片机数字电压电流表产品硬件设计指南
本文基于武汉芯源CW32系列单片机,介绍数字电压电流表产品硬件设计指南,希望对各位工程师有所帮助。
设计经验 发布时间 : 2024-06-20
基于CW32的智能家居系统
该系统采用CW32F030单片机作为核心控制器,通过各种传感器实时监测室内环境参数,并根据预设的阈值进行相应控制。例如,当室内光照不足时,系统会自动打开灯光,确保室内光线充足。室内温湿度数据和空气质量通过屏幕显示,并实时上传到云平台,以实现远程监控。
设计经验 发布时间 : 2024-02-07
天工测控(Skylab)GNSS模块/WiFi模块/蓝牙模块/组合模块/UWB模块选型指南
描述- 深圳市天工测控技术有限公司(SKYLAB)成立于2006年,是一家专业从事定位与无线连接技术,集研发、生产和销售为一体的高新技术企业。深耕专业领域,已拥有100多项知识产权,包括发明专利、实用新型专利、软件著作权等,产品涉及卫星定位,室内定位,Wi-Fi,BLE,GPRS,UWB,NB-IoT等核心模块及方案,为数字孪生提供位置信息和感知信息与5G移动通信技术相融合,实现边缘计算和云计算应用。
型号- SKM2101,WG209,SKG122C,SKM88,SKW92B,SKM89,SKW92A,SKM2102,SKG17DT,SKM2105FR,SKM86,SKM2505,SKM2105FR-25M5,SKM2105,SKM2105FR-25M8,SKG12D,SKG122S,SKG12F,SKW496C,SKM2308DR,SKG12A,SKG092C,SKG12B,SKG122Y,SKB389AA,SKW497,SKM80,SKM81,SKM82,SKG09BL,SKW3000,SKM2102CR-40M3T,SKG093Q,SKG122GR,SKG093N,SKB501,SKG1223,SKG121S,SKU621,SKG121T,SKM61C,SKG12BL,SKM2505NR,SKU620,SKG16BL,SKG12DT,WG822,SKG123NRD,SKM2305NDR-40M3T,SKU609,WG821,SKG12UR,5KW99,SKM2305NDR,SKU610,SKU611,SKM2102SR,SKG09DT,SKM2105QR,SKM2505NR-40MXT,SKM2102CR-40M5T,SKM2102CR,SKG123L,SKG122ER,SKG123N,SKG17D,LCS6260,SKG123Q,SKW101,SKW100,SKW103,SKG123NR,SKM2101MR-25M8,SKM2305NDR-40M5T,SKG121SA,WG243,SKM2308,SKG09,SKM2302,SKM2305,SKG123NT,SKM-6DM,SKW78,LCS2028,SKM2302DR,SKM2102ER,SKB380,SKB381,SKM2102CR-40MXT,SKG8212,SKM65C,WG233,SKW77,WG231,SKM2102CR-40M7T,WG238,WG237,WG236,WG235,WG241,WG240,SKM2102SR-40MXT,SKM2105QR-40FXT,SKM81F,SKM2101MR-25M5,SKG123ND,SKM65,SKM2305NDR-40MXT,WG229,SKM61,SKM2105DR,SKW17AE,SKB376,WG222,SKB379,SKB378,WG226,WG225,SKB369AA,SKM80D,SKG172T,SKM2105NR-40M5,SKM2101MR,SKM2105NR-40M7,SKZ301,SKM2105NR-40M3,SKM80F,SKG16,SKG17,SKM55,WG219,SKM2305NDR-40M8T,SKB360,WG217,SKW93A,SKGO9DT,SKG12,SKB362,SKM51,SKB361,SKM52,SKM53,SKG09D,SKG09F,SK7302,SKG09A,SKB369,WG215,SKG09L,SKM51G,SKM51F,SKM2302DR-40MX,SKM51C,SKM2105NR-40MX,SKB360I,SKM2105NR
天工测控WiFi模块选型表
天工测控面向物联网市场中的智慧物流,智能交通,智慧安防,智慧能源,智能医疗,智慧建筑,智能制造,智能家居,智能零售,智慧农业,智慧楼宇等应用场景研发推出了性能强大,且支持二次开发的2.4GHz单频及2.4/5GHz双频UART串口WiFi模块,USB接口WiFi模块,AP/Router无线路由WiFi模块及远距离图传WiFi模块,高清视频传输WiFi模块
产品型号
|
品类
|
无线模块标准
|
芯片
|
尺寸(mm)
|
封装
|
频率范围(GHZ)
|
数据速率(Mbps)
|
发射功率(dBm)
|
传输距离(米)
|
通讯接口
|
供电电压(V)
|
天线接口
|
WG219
|
WiFi模块
|
IoT b/g/n
|
ESP8266
|
25.5*18*3.2
|
SMD
|
2.4-2.5
|
72.2
|
18
|
100
|
3,5,6,8
|
3.3V
|
1个IPEX/PCB
|
选型表 - 天工测控 立即选型
WiFi模块在工业自动化中的优势及具体应用
WiFi模块在工业自动化中凭借无线连接、高带宽、广泛覆盖、易集成扩展和成本效益等优势,广泛应用于工业设备远程监控与管理、智能工厂无线传感器网络、AGV 与移动机器人导航控制、生产线数据采集与传输以及工业物联网平台连接与通信等方面,有力推动工业自动化发展。本文天工测控来为大家介绍WiFi模块在工业自动化中的优势及具体应用,希望对各位工程师朋友有所帮助。
应用方案 发布时间 : 2024-11-01
WiFi Mesh让生活更智能——飞易通物联网通信模块BW246,轻松实现WiFi Mesh网络构建
FEASYCOM BW246模组是一款高性能的物联网通信模块,它集成了WiFi Mesh协议栈,为设备连接和通信提供了便捷的解决方案。BW246模组支持WiFi Mesh的各种功能,可以使用其 SoftAP接口建立多个下行连接,同时使用其 Station接口建立一个上行连接。
产品 发布时间 : 2024-05-14
飞易通WiFi模块FSC-WF152C,数据速率高达286.8Mbps,可满足行车记录仪数据传输要求
飞易通推出的一款用在行车记录仪的模块FSC-WF152C,该模块采用了高性能的SoC,是业界领先的2.4G Wi-Fi6的芯片。在支持WiFi6的所有指标的同时,功耗是行业中最低的。FSC-WF152C可用于通过UART/USB/GPIO/PCM进行控制和数据传输,并可快速应用于任何基于微控制器的设计。该模块极大的满足了行车记录仪数据传输要求,数据速率高达286.8Mbps。
应用方案 发布时间 : 2024-08-22
【技术】武汉芯源CW32单片机UART基本数据收发功能介绍
通用异步收发器是一种通用串行数据总线,常用于系统内各子模块间的数据交换。本文将以武汉芯源推出的CW32系列单片机的CW32L083为例,介绍UART基本数据收发功能。
技术探讨 发布时间 : 2023-04-25
解析CW32单片机的独立看门狗IWDT和窗口看门狗WWDT
看门狗在那些对安全性和稳定性要求较高的应用中特别重要,如工业控制、汽车电子、医疗设备和航空航天等领域。通过使用看门狗,可以大大减少系统因软件故障而导致的长时间不可用或错误操作的风险。本文介绍CW32单片机的两个看门狗:独立看门狗IWDT和窗口看门狗WWDT。
技术探讨 发布时间 : 2024-08-17
【选型】 高品质国产5G WiFi模块推荐
5G WiFi是指采用802.11ac协议,运行在5Ghz频段的WiFi。和时下热门的5G通信有别的是,前者的5G是指第五代通讯技术——5-Generation,而5G WiFi是5GHz无线电波频段。作为WiFi模块专业研发厂商,SKYLAB就经常接到有关5G WiFi模块的应用咨询。在这里SKYLAB小编简单为大家介绍几款SKYLAB 5G WiFi模块WG217,WG211。
器件选型 发布时间 : 2019-06-11
【产品】集成高性能32bit微处理器的海思Hi系列2.4GWiFi模块,提供最大72.2Mbit/s物理层速率
Hi系列模组(下称模块)是由深圳市安信可科技有限公司开发的Wi-Fi模块。可广泛应用于智能家居、智能安防、智慧城市等物联网相关智能终端产品。模块搭载Hi3861V100/Hi3861LV100核心处理器芯片。
产品 发布时间 : 2023-02-18
wifi模块选型参考注意点
物联网的快速发展,WiFi技术的成熟的情况下,越来越多的场景需要用到WiFi来无线传输数据,尤其是移动设备中,怎么在设备中选择合适的WiFi模块呢?下面我们来介绍下wifi模块选型参考。
技术探讨 发布时间 : 2024-06-27
【元件】小巧型嵌入式WiFi模块SKW100搭载双芯片,支持2.4/5GHz双频工作733Mbps数据速率,性能稳定可靠
SKW100是天工测控自主研发的一款WiFi模块产品,搭载双芯片QCA9531和QCA9887,性能稳定可靠,尺寸小巧更易集成(47.8*35.4*9.5mm)。同时具备高速率,支持2.4/5GHz双频工作733Mbps数据速率,集成了5端口10/100Mbps快速以太网交换机。
产品 发布时间 : 2024-05-30
【选型】用于物联网智能家居领域的WiFi/蓝牙/WiFi+蓝牙组合模块推荐
本文讲解基于WiFi模块、蓝牙模块、WiFi+蓝牙组合模块串口通信的物联网智能家居升级体验。SKYLAB智能家居产品中内置UART WiFi+UART蓝牙二合一组合模块(WG215/WG222),用户手机下载相关APP,通过手机蓝牙与智能家居产品中的BLE蓝牙模块建立连接,也可以通过路由器连接WiFi与智能家居产品中的WiFi模块建立连接,获得智能家居产品的控制权限。
器件选型 发布时间 : 2019-06-14
电子商城
现货市场
服务
可定制温度范围-230℃~1150℃、精度可达±0.1°C;支持NTC传感器、PTC传感器、数字式温度传感器、热电堆温度传感器的额定量程和输出/外形尺寸/工作温度范围等参数定制。
提交需求>
可定制无线位移传感器量程范围10~600mm,采用了无线传输方式,可远程自动实时检(监)测位移量值,准确度级别(级):0.2、0.5;内置模块:无线传输模块、供电模块;传输距离L(m):可视距离1000 (Zigbee、 LORA)。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论