在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用CW32單片機(jī)通過ESP8266連接OneNET物聯(lián)網(wǎng)平臺(tái)

jf_qE49KoVBr8 ? 來源:武漢芯源半導(dǎo)體 ? 2023-11-09 14:32 ? 次閱讀

一、簡(jiǎn)介



1.這期視頻向大家介紹如何使用CW32單片機(jī)通過ESP8266連接OneNET物聯(lián)網(wǎng)平臺(tái),發(fā)送溫濕度數(shù)據(jù)到平臺(tái),并接受平臺(tái)的云控制。

二、所需物料


2.本實(shí)驗(yàn)使用到了CW32-48F大學(xué)計(jì)劃開發(fā)板、DHT11溫濕度傳感器模塊、ESP8266WIFI模塊及Keil5開發(fā)環(huán)境。


3.接線:根據(jù)原理圖,把模塊連接到開發(fā)板上


(1)ESP8266WIFI模塊:


開發(fā)板上預(yù)留了該模塊接口,通過串口向ESP8266寫入指令。

8967bbb6-7ec9-11ee-939d-92fbcf53809c.png


(2)DHT11模塊:開發(fā)板上預(yù)留了該模塊接口

896b7580-7ec9-11ee-939d-92fbcf53809c.png


4.(1)MQTT協(xié)議介紹:


MQTT是一種輕量級(jí)的發(fā)布/訂閱消息傳輸協(xié)議,常用于物聯(lián)網(wǎng)領(lǐng)域。它的特點(diǎn)是簡(jiǎn)化和減少了網(wǎng)絡(luò)流量,可以高效地進(jìn)行數(shù)據(jù)傳輸。在本次應(yīng)用中,我們將使用MQTT協(xié)議進(jìn)行數(shù)據(jù)上傳。


(2)OneNET代碼介紹:


在使用OneNet平臺(tái)時(shí),我們需要使用TCP協(xié)議進(jìn)行連接。首先需要設(shè)置好TCP協(xié)議的相關(guān)參數(shù),然后通過POST方法將溫濕度數(shù)據(jù)上傳到OneNet平臺(tái)中。在上傳數(shù)據(jù)時(shí)需要使用OneNet平臺(tái)提供的API接口進(jìn)行數(shù)據(jù)傳輸。


注:#define PROID"XXX" //xxx產(chǎn)品ID


#define ACCESS_KEY "XXX" //xxx為acess_key訪問密鑰


#define DEVICE_NAME"XXX" //xxx為設(shè)備名稱


8978373e-7ec9-11ee-939d-92fbcf53809c.png


898fedd4-7ec9-11ee-939d-92fbcf53809c.png


三、核心代碼

main.c

int main(void)
{ 
 unsigned short timeCount = 0; //發(fā)送間隔變量 
 unsigned char *dataPtr = NULL;
 
 Hardware_Init();    //初始化外圍硬件
  while(DHT11_Init())  //檢測(cè)DHT11
  Delay_ms(200);
 ESP8266_Init();     //初始化ESP8266
 UsartPrintf(USART_DEBUG, "Connect MQTTs Server...
");
 while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT")) //ESP8266聯(lián)網(wǎng)
  Delay_ms(500);
 UsartPrintf(USART_DEBUG, "NET_OK
"); 
 while(OneNet_DevLink())   //接入OneNET
  Delay_ms(500);
 OneNET_Subscribe();   //訂閱消息傳輸,允許接受下發(fā)指令
 TFTShowString(0,0,"   OneNET   "); //界面
 TFTShowString(1,0," 智能物聯(lián)平臺(tái) ");
 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
",temperature,humidity);
   UsartPrintf(USART_DEBUG, "OneNet_SendData
");
   OneNet_SendData();    //數(shù)據(jù)上傳
   timeCount = 0;
   ESP8266_Clear();  //清除緩存
  } 
 
  dataPtr = ESP8266_GetIPD(0); //接收OneNET平臺(tái)返回的數(shù)據(jù)
  if(dataPtr != NULL)
   OneNet_RevPro(dataPtr); //確認(rèn)返回?cái)?shù)據(jù),執(zhí)行下發(fā)命令
 
  Delay_ms(10);
 }
}
Onenet.c:
#define PROID   "3OB4R7cKCw"    //產(chǎn)品ID(名稱)
#define ACCESS_KEY  "n7GptYNpf9U97zHTz2ltc1Pvy4GB+0MXsU1nKel9ixc=" //產(chǎn)品訪問密鑰
#define DEVICE_NAME  "111"   //設(shè)備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
", 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);           //復(fù)制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");          //回復(fù)命令
    }
   }
   case MQTT_PKT_PUBACK:              //發(fā)送Publish消息,平臺(tái)回復(fù)的Ack
     if(MQTT_UnPacketPublishAck(cmd) == 0)
    UsartPrintf(USART_DEBUG, "Tips: MQTT Publish Send OK
");
  break;
  case MQTT_PKT_SUBACK:                //發(fā)送Subscribe消息的Ack
 
   if(MQTT_UnPacketSubscribe(cmd) == 0)
    UsartPrintf(USART_DEBUG, "Tips: MQTT Subscribe OK
");
   else
    UsartPrintf(USART_DEBUG, "Tips: MQTT Subscribe Err
");
  break;
  default:
   result = -1;
  break;
 }
 
 ESP8266_Clear();         //清空緩存
 
 if(result == -1)
  return;
 
 dataPtr = strchr(req_payload, ':');     //搜索':'
 if(dataPtr != NULL)     //如果找到了
 {
  dataPtr++;
  while(*dataPtr >= '0' && *dataPtr <= '9') ? ?//判斷是否是下發(fā)的命令控制數(shù)據(jù)
 ? ?{
 ? ? ?numBuf[num++] = *dataPtr++;
 ? ?}
 ? ?numBuf[num] = 0;
 ? ?num = atoi((const char *)numBuf); ? ? ? ?//轉(zhuǎn)為數(shù)值形式
 ? ?if(strstr((char *)req_payload, "light")) ? ?//搜索"light",判斷":"后面的數(shù)值進(jìn)行控制
 ? ?{
 ? ? ?if(num == 1) ? ? ? ? ? ? ? ?//控制數(shù)據(jù)如果為1,代表開
 ? ? ?{
 ? ? ? ?UsartPrintf(USART_DEBUG, "接收到1
");
 ? ? ? ?//開燈
 ? ? ? ?PA07_SETLOW();
 ? ? ? ?TFTShowString(5,0,"light: ON ");
 ? ? ?}
 ? ? ?else if(num == 0) ? ? ? ? ? ? ?//控制數(shù)據(jù)如果為0,代表關(guān)
 ? ? ?{
 ? ? ? ?UsartPrintf(USART_DEBUG, "接收到0
");
 ? ? ? ?//關(guā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);
 ?}
}
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2553

    文章

    51453

    瀏覽量

    756921
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6044

    文章

    44624

    瀏覽量

    638944
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2914

    文章

    44967

    瀏覽量

    377426
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    218

    瀏覽量

    747

原文標(biāo)題:【CW32】基于CW32的物聯(lián)網(wǎng)應(yīng)用

文章出處:【微信號(hào):武漢芯源半導(dǎo)體,微信公眾號(hào):武漢芯源半導(dǎo)體】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    關(guān)于esp8266連接聯(lián)網(wǎng)問題

    esp8266怎么連接上互聯(lián)網(wǎng),以實(shí)現(xiàn)遠(yuǎn)程通過3G網(wǎng)控制esp8266來控制單片機(jī)工作。
    發(fā)表于 07-30 22:06

    基于ONENET平臺(tái)實(shí)現(xiàn)的遠(yuǎn)程溫控

    溫控設(shè)備開關(guān)APP描述綁定設(shè)備:輸入ONENET平臺(tái)上對(duì)應(yīng)的設(shè)備ID和KEY聯(lián)網(wǎng)配置:輸入WiFi名稱和密碼,配置ESP8266連接到路由器
    發(fā)表于 11-04 15:23

    STM32F4/F1+ESP8266連接OneNET的主要問題有哪些

    STM32F4/F1+ESP8266是怎樣與OneNET進(jìn)行連接的?STM32F4/F1+ESP8266連接
    發(fā)表于 10-25 08:15

    將OLED顯示屏與NodeMCU ESP8266連接的方法

    /thread-1183-1-1.html在本篇文章中,我們將OLED顯示屏與NodeMCU ESP8266連接。 NodeMCU是一個(gè)開源的聯(lián)網(wǎng)
    發(fā)表于 11-01 09:17

    怎樣去控制基于STM32單片機(jī)ESP8266連接服務(wù)器呢

    ESP8266 station模式的操作邏輯流程是怎樣的?怎樣去控制基于STM32單片機(jī)ESP8266連接服務(wù)器呢?
    發(fā)表于 11-08 07:26

    STM32+ESP8266+MQTT協(xié)議如何連接OneNet聯(lián)網(wǎng)平臺(tái)

    STM32+ESP8266+MQTT協(xié)議如何連接OneNet聯(lián)網(wǎng)平臺(tái)
    發(fā)表于 12-02 06:52

    使用esp8266實(shí)現(xiàn)STM32聯(lián)網(wǎng)(最簡(jiǎn)單USART方法)

    到電腦上的java程序 這一篇 esp8266與STM32連接,電腦通過STM32配置esp8266實(shí)現(xiàn)聯(lián)網(wǎng)發(fā)送數(shù)據(jù)具體流程如下圖 2=
    發(fā)表于 11-22 11:51 ?1.3w次閱讀

    51單片機(jī)通過ESP8266模塊與手機(jī)進(jìn)行通訊

    51單片機(jī)通過ESP8266模塊與手機(jī)進(jìn)行通訊WIFI 工作方式:1.AP模式 提供熱點(diǎn)2.Station模式 作為設(shè)備接入熱點(diǎn)3.同時(shí)支持配置通過USB轉(zhuǎn)TTL模塊把
    發(fā)表于 11-12 12:06 ?34次下載
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>通過</b><b class='flag-5'>ESP8266</b>模塊與手機(jī)進(jìn)行通訊

    51單片機(jī)通過WIFI模塊ESP8266控制四路繼電器

    目錄一、系統(tǒng)方案二、硬件設(shè)計(jì)三、單片機(jī)軟件設(shè)計(jì)四、Android APP軟件設(shè)計(jì)一、系統(tǒng)方案手機(jī)APP通過ESP8266 WIFI模塊與51單片機(jī)通信控制四路繼電器。下位
    發(fā)表于 11-23 16:51 ?43次下載
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>通過</b>WIFI模塊<b class='flag-5'>ESP8266</b>控制四路繼電器

    基于51單片機(jī)+DHT11溫濕度模塊+ESP8266模塊+上傳oneNET APP顯示+LCD1602顯示

    基于51單片機(jī)+ESP8266上傳oneNET平臺(tái) APP顯示基本介紹器件51單片機(jī)ESP8266
    發(fā)表于 11-23 16:51 ?70次下載
    基于51<b class='flag-5'>單片機(jī)</b>+DHT11溫濕度模塊+<b class='flag-5'>ESP8266</b>模塊+上傳<b class='flag-5'>oneNET</b> APP顯示+LCD1602顯示

    基于STM32單片機(jī)ESP8266聯(lián)網(wǎng)阿里云的遠(yuǎn)程控制LED系統(tǒng)

    模塊USB轉(zhuǎn)TTL模塊3.3V供電設(shè)備一、整體思路:①:首先STM32單片機(jī)通過ESP8266模塊連接路由器進(jìn)而和阿里云建立TCP連接②:在
    發(fā)表于 12-24 19:20 ?42次下載
    基于STM32<b class='flag-5'>單片機(jī)</b><b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>阿里云的遠(yuǎn)程控制LED系統(tǒng)

    ESP8266通過MQTT協(xié)議連接ONENET

    ESP8266通過MQTT協(xié)議連接ONENET一、設(shè)計(jì)目標(biāo)二、ONENET平臺(tái)搭建三、硬件準(zhǔn)備四
    發(fā)表于 01-12 19:58 ?53次下載
    <b class='flag-5'>ESP8266</b><b class='flag-5'>通過</b>MQTT協(xié)議<b class='flag-5'>連接</b><b class='flag-5'>ONENET</b>

    51單片機(jī)通過WIFI模塊ESP8266控制四路繼電器

    手機(jī)APP通過ESP8266 WIFI模塊與51單片機(jī)通信控制四路繼電器。下位機(jī)單片機(jī)ESP8266
    發(fā)表于 02-09 09:34 ?131次下載
    51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>通過</b>WIFI模塊<b class='flag-5'>ESP8266</b>控制四路繼電器

    使用WIFI模塊ESP8266連接單片機(jī)與上位機(jī)通信

    ATK-ESP8266 是 ALIENTEK 推出的一款高性能的 UART-WiFi(串口-無線)模塊,此處使用的是正點(diǎn)原子團(tuán)隊(duì)自主開發(fā)的ATK-ESP-01模塊。該模塊通過串口與 單片機(jī)
    發(fā)表于 05-09 10:50 ?15次下載
    使用WIFI模塊<b class='flag-5'>ESP8266</b><b class='flag-5'>連接單片機(jī)</b>與上位<b class='flag-5'>機(jī)</b>通信

    使用Firebase的ESP8266聯(lián)網(wǎng)平臺(tái)

    電子發(fā)燒友網(wǎng)站提供《使用Firebase的ESP8266聯(lián)網(wǎng)平臺(tái).zip》資料免費(fèi)下載
    發(fā)表于 07-03 09:54 ?0次下載
    使用Firebase的<b class='flag-5'>ESP8266</b><b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>平臺(tái)</b>
    主站蜘蛛池模板: 黄网站色在线视频免费观看 | 俺也去第四色 | 91中文字幕在线视频 | 国产成人精品日本亚洲专 | 免费在线看片网站 | 免费午夜视频 | 国产一二三区精品 | 亚洲一区二区综合 | 碰免费人人人视频 | 久久青草视频 | 中文字幕一精品亚洲无线一区 | 久久免费精品 | 天堂tv亚洲tv日本tv欧美人tv | 欧美性另类 | 岛国一级毛片 | 亚洲日韩图片专区第1页 | 天天干夜夜爱 | 狠狠干夜夜爽 | 天天躁夜夜躁狠狠躁2021 | 久久久久国产一级毛片高清板 | 操综合网 | 日日日干干干 | 666精品国产精品亚洲 | 亚洲日本一区二区三区 | 亚洲精品色一区色二区色三区 | 天天草夜夜 | 国产精品第页 | 人人人草| 亚洲bt天堂| 午夜在线视频免费观看 | 国产精品一级毛片不收费 | 黄色香蕉网 | 欧美三级免费网站 | 69美女poren 18| 萌白酱白丝护士服喷水铁牛tv | 天天爽夜夜爽一区二区三区 | 色多多在线观看视频 | 激情网婷婷 | h网站国产 | 国产播放啪视频免费视频 | www成年人视频 |