如何使用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 -  设计经验 代理服务 技术支持 批量订货

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

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

2024-06-20 -  设计经验 代理服务 技术支持 批量订货

【经验】CW32F030C8T6单片机如何通过看手册配置时钟树

本章简单展示了如何查找手册来配置寄存器,且再次强调库函数的本质就是操作寄存器。单片机都会有一个时钟树,时钟树的图可以在编程手册(不是数据表和内核手册)中找到。部分单片机想要工作在高工作频率下,需要设置flash等待时间并打开缓存和预取指令使能。

2023-10-02 -  设计经验 代理服务 技术支持 批量订货

【产品】集成高性能32bit微处理器的海思Hi系列2.4GWiFi模块,提供最大72.2Mbit/s物理层速率

Hi系列模组(下称模块)是由深圳市安信可科技有限公司开发的Wi-Fi模块。可广泛应用于智能家居、智能安防、智慧城市等物联网相关智能终端产品。模块搭载Hi3861V100/Hi3861LV100核心处理器芯片。

2023-02-18 -  产品 代理服务 技术支持 批量订货

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 -  应用方案 代理服务 技术支持 批量订货

【选型】 高品质国产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 -  器件选型 代理服务 技术支持 批量订货

【元件】小巧型嵌入式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 -  产品 代理服务 技术支持 批量订货

解析CW32单片机的独立看门狗IWDT和窗口看门狗WWDT

看门狗在那些对安全性和稳定性要求较高的应用中特别重要,如工业控制、汽车电子、医疗设备和航空航天等领域。通过使用看门狗,可以大大减少系统因软件故障而导致的长时间不可用或错误操作的风险。本文介绍CW32单片机的两个看门狗:独立看门狗IWDT和窗口看门狗WWDT。

2024-08-17 -  技术探讨 代理服务 技术支持 批量订货

【技术】武汉芯源CW32单片机UART基本数据收发功能介绍

通用异步收发器是一种通用串行数据总线,常用于系统内各子模块间的数据交换。本文将以武汉芯源推出的CW32系列单片机的CW32L083为例,介绍UART基本数据收发功能。

2023-04-25 -  技术探讨 代理服务 技术支持 批量订货

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

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

2023-09-19 -  技术探讨 代理服务 技术支持 批量订货

wifi模块选型参考注意点

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

2024-06-27 -  技术探讨 代理服务 技术支持 批量订货

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

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

2019-06-14 -  器件选型 代理服务 技术支持 批量订货

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

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

2024-06-20 -  产品 代理服务 技术支持 批量订货
展开更多

电子商城

查看更多

品牌:武汉芯源

品类:通用MCU

价格:¥8.4750

现货: 300,010

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥2.1667

现货: 291,270

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.2667

现货: 78,202

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.9143

现货: 61,558

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.1667

现货: 36,712

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.1667

现货: 26,123

品牌:SILICON LABS

品类:Mixed-Signal MCU

价格:¥12.1718

现货: 14,132

品牌:SILICON LABS

品类:32位MCU

价格:¥24.8076

现货: 10,000

品牌:SILICON LABS

品类:8b Wireless MCU

价格:¥7.2474

现货: 9,029

品牌:瑞纳捷

品类:低功耗通用MCU

价格:¥1.2667

现货: 6,020

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:microcontroller

价格:¥2.8532

现货:188,410

品牌:RENESAS

品类:MCU

价格:¥5.8041

现货:86,925

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥257.6400

现货:58,799

品牌:RENESAS

品类:microcontroller

价格:¥32.9564

现货:40,179

品牌:RENESAS

品类:MCU

价格:¥19.4999

现货:39,498

品牌:RENESAS

品类:MCU

价格:¥39.8484

现货:38,160

品牌:RENESAS

品类:MCU

价格:¥78.9058

现货:34,935

品牌:RENESAS

品类:MCU

价格:¥49.6804

现货:32,610

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

温度传感器定制

可定制温度范围-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

收藏
收藏当前页面