如何使用CW32单片机通过ESP8266连接OneNET物联网平台,发送温湿度数据到平台,并接受平台的云控制?

2023-12-06 武汉芯源 微信公众号
单片机,WIFI模块,温湿度传感器模块,大学计划开发板 单片机,WIFI模块,温湿度传感器模块,大学计划开发板 单片机,WIFI模块,温湿度传感器模块,大学计划开发板 单片机,WIFI模块,温湿度传感器模块,大学计划开发板

一、简介

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);
  }
}
授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由咪猫转载自武汉芯源 微信公众号,原文标题为:【CW32】基于CW32的物联网应用,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】芯源CW32系列单片机低功耗模式介绍及UART深度休眠模式示例

CW32单片机低功耗模式介绍及UART深度休眠模式示例。

设计经验    发布时间 : 2023-05-31

【经验】解析无线传输模块WiFi模块使用方法

数字化经济时代的物联网数字化转型中被提到最多的是无线传输模块,WiFi模块成为物联网工程师的首选无线模块。本篇物联网无线传输模组厂家SKYLAB就来给大家简单介绍一下无线传输模块,WiFi模块怎么使用,并从WiFi模块厂家的角度为工程师们答疑解惑。

设计经验    发布时间 : 2023-04-14

武汉芯源CW32系列单片机数字电压电流表产品硬件设计指南

本文基于武汉芯源CW32系列单片机,介绍数字电压电流表产品硬件设计指南,希望对各位工程师有所帮助。

设计经验    发布时间 : 2024-06-20

天工测控(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

选型指南  -  天工测控  - 2023_V8  - 2023/4/14 PDF 中文 下载

天工测控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模块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

WiFi Mesh让生活更智能——飞易通物联网通信模块BW246,轻松实现WiFi Mesh网络构建

FEASYCOM BW246模组是一款高性能的物联网通信模块,它集成了WiFi Mesh协议栈,为设备连接和通信提供了便捷的解决方案。BW246模组支持WiFi Mesh的各种功能,可以使用其 SoftAP接口建立多个下行连接,同时使用其 Station接口建立一个上行连接。

产品    发布时间 : 2024-05-14

【选型】用于物联网智能家居领域的WiFi/蓝牙/WiFi+蓝牙组合模块推荐

本文讲解基于WiFi模块、蓝牙模块、WiFi+蓝牙组合模块串口通信的物联网智能家居升级体验。SKYLAB智能家居产品中内置UART WiFi+UART蓝牙二合一组合模块(WG215/WG222),用户手机下载相关APP,通过手机蓝牙与智能家居产品中的BLE蓝牙模块建立连接,也可以通过路由器连接WiFi与智能家居产品中的WiFi模块建立连接,获得智能家居产品的控制权限。

器件选型    发布时间 : 2019-06-14

wifi模块选型参考注意点

物联网的快速发展,WiFi技术的成熟的情况下,越来越多的场景需要用到WiFi来无线传输数据,尤其是移动设备中,怎么在设备中选择合适的WiFi模块呢?下面我们来介绍下wifi模块选型参考。

技术探讨    发布时间 : 2024-06-27

WiFi模块SKW103为物联网、工业控制、智能家居等领域提供高效稳定可靠的无线网络连接和数据传输服务

wifi模块SKW103可以有效的帮助设备完成信息采集以及数据上传,满足物联网低功耗、低成本的自动化和传感器解决方案WiFi模块需求。

产品    发布时间 : 2024-06-20

【产品】天工测控推出双频wifi模块路由器方案、wifi5模块无线AP路由方案,应用于智能硬件和物联网设备领域

双频wifi模块支持2.4GHz和5GHz两种WiFi频段通讯,是非常实用的嵌入式WiFi通讯模块。基于双频wifi模块的双频路由器方案主要应用在智能硬件和物联网设备领域,为这些设备提供了更加高效和稳定的无线连接方式。

产品    发布时间 : 2023-08-22

【技术】4G模块和WiFi模块的区别及其功能和应用场景

在物联网行业中,4G模块和WiFi模块经常会被使用,虽然都作用于物联网无线传输,但是二者的工作原理和场景还是有很大区别。本篇SKYLAB小编就来带大家详细了解下4G模块和WiFi模块的功能和应用场景。有关4G模块和WiFi模块的定义。

技术探讨    发布时间 : 2023-09-19

【元件】小巧型嵌入式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

展开更多

电子商城

查看更多

只看有货

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥2.1667

现货: 291,270

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.2667

现货: 78,187

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 56,994

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货: 37,726

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.1667

现货: 36,712

品牌:RENESAS

品类:MCU

价格:¥15.6605

现货: 28,031

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.1667

现货: 26,123

品牌:RENESAS

品类:MCU

价格:¥24.3900

现货: 23,736

品牌:RENESAS

品类:microcontroller

价格:¥32.9564

现货: 20,089

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:MCU

价格:¥15.6605

现货:140,156

品牌:ST

品类:单片机(MCU)

价格:¥14.2871

现货:114,259

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥51.3000

现货:30,368

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥92.7000

现货:30,000

品牌:nextchip

品类:MCU IC

价格:¥8.2393

现货:29,351

品牌:RF-LINK

品类:WiFi模块

价格:¥25.5000

现货:16,272

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥10.1700

现货:10,000

品牌:小华半导体

品类:单片机

价格:¥3.5904

现货:4,810

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

度传感器定制

可定制温度范围-230℃~1150℃、精度可达±0.1°C;支持NTC传感器、PTC传感器、数字式温度传感器、热电堆温度传感器的额定量程和输出/外形尺寸/工作温度范围等参数定制。

提交需求>

无线位移传感器量程定制

可定制无线位移传感器量程范围10~600mm,采用了无线传输方式,可远程自动实时检(监)测位移量值,准确度级别(级):0.2、0.5;内置模块:无线传输模块、供电模块;传输距离L(m):可视距离1000 (Zigbee、 LORA)。

最小起订量: 1pcs 提交需求>

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面