女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

基于CW32的物聯(lián)網(wǎng)應(yīng)用

CW32生態(tài)社區(qū) ? 來源:CW32生態(tài)社區(qū) ? 作者:CW32生態(tài)社區(qū) ? 2023-11-02 15:55 ? 次閱讀

一、簡介

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

二、所需物料

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

CW32-48F大學(xué)計(jì)劃板
圖片

DHT11溫濕度傳感器模塊
圖片

ESP8266WIFI模塊
圖片

ESP8266WIFI模塊引腳分布
圖片1.png

實(shí)物圖

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

(1)ESP8266WIFI模塊:

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

圖片

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

圖片

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

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

(2)OneNET代碼介紹:

在使用OneNet平臺時,我們需要使用TCP協(xié)議進(jìn)行連接。首先需要設(shè)置好TCP協(xié)議的相關(guān)參數(shù),然后通過POST方法將溫濕度數(shù)據(jù)上傳到OneNet平臺中。在上傳數(shù)據(jù)時需要使用OneNet平臺提供的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è)備名稱

圖片

圖片

三、核心代碼

main.c

int main(void)
{  
 unsigned short timeCount = 0;  //發(fā)送間隔變量  
 unsigned char *dataPtr = NULL;

 Hardware_Init();        //初始化外圍硬件
  while(DHT11_Init())    //檢測DHT11
   Delay_ms(200);
 ESP8266_Init();          //初始化ESP8266
 UsartPrintf(USART_DEBUG, "Connect MQTTs Server...rn");
 while(ESP8266_SendCmd(ESP8266_ONENET_INFO, "CONNECT")) //ESP8266聯(lián)網(wǎng)
   Delay_ms(500);
 UsartPrintf(USART_DEBUG, "NET_OKrn");  
 while(OneNet_DevLink())      //接入OneNET
   Delay_ms(500);
 OneNET_Subscribe();     //訂閱消息傳輸,允許接受下發(fā)指令
 TFTShowString(0,0,"     OneNET     ");  //界面
 TFTShowString(1,0,"  智能物聯(lián)平臺  ");
 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:%drn",temperature,humidity);
     UsartPrintf(USART_DEBUG, "OneNet_SendDatarn");
     OneNet_SendData();        //數(shù)據(jù)上傳
     timeCount = 0;
     ESP8266_Clear();    //清除緩存
   }  

   dataPtr = ESP8266_GetIPD(0); //接收OneNET平臺返回的數(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: %drn",  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消息,平臺回復(fù)的Ack
         if(MQTT_UnPacketPublishAck(cmd) == 0)
       UsartPrintf(USART_DEBUG, "Tips:  MQTT Publish Send OKrn");
   break;
   case MQTT_PKT_SUBACK:                                //發(fā)送Subscribe消息的Ack

     if(MQTT_UnPacketSubscribe(cmd) == 0)
       UsartPrintf(USART_DEBUG, "Tips:  MQTT Subscribe OKrn");
     else
       UsartPrintf(USART_DEBUG, "Tips:  MQTT Subscribe Errrn");
   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, "接收到1rn");
       //開燈
       PA07_SETLOW();
       TFTShowString(5,0,"light: ON ");
     }
     else if(num == 0)              //控制數(shù)據(jù)如果為0,代表關(guān)
     {
       UsartPrintf(USART_DEBUG, "接收到0rn");
       //關(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);
 }
}

附件:基于CW32的物聯(lián)網(wǎng)應(yīng)用源碼.zip
審核編輯:湯梓紅

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

    關(guān)注

    2927

    文章

    45847

    瀏覽量

    387676
  • OneNET
    +關(guān)注

    關(guān)注

    1

    文章

    51

    瀏覽量

    13227
  • CW32
    +關(guān)注

    關(guān)注

    1

    文章

    242

    瀏覽量

    1091
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    CW32移植Free-RTOS】CW32開發(fā)者扶持計(jì)劃

    CW32配置Free-RTOS全過程,CW32開發(fā)者扶持計(jì)劃
    的頭像 發(fā)表于 04-18 09:38 ?6549次閱讀
    【<b class='flag-5'>CW32</b>移植Free-RTOS】<b class='flag-5'>CW32</b>開發(fā)者扶持計(jì)劃

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

    這期視頻向大家介紹如何使用CW32單片機(jī)通過ESP8266連接OneNET聯(lián)網(wǎng)平臺,發(fā)送溫濕度數(shù)據(jù)到平臺,并接受平臺的云控制。
    的頭像 發(fā)表于 11-09 14:32 ?2349次閱讀

    CW32快速開發(fā)入門

    CW32快速開發(fā)入門
    的頭像 發(fā)表于 04-24 18:56 ?2604次閱讀
    <b class='flag-5'>CW32</b>快速開發(fā)入門

    CW32開發(fā)者扶持計(jì)劃#CW32 #芯片

    CW32
    CW32生態(tài)社區(qū)
    發(fā)布于 :2023年05月24日 16:56:14

    【產(chǎn)品介紹】CW32_IoT_EVA聯(lián)網(wǎng)開發(fā)評估套件介紹

    (Pin2Pin兼容),軟件及固件庫與進(jìn)口品牌風(fēng)格一致,可快速上手。CW32_IoT-EVA評估套件例程豐富,入手簡單:既有CW32的入門應(yīng)用例程、ADC、串口、定時器等各種外設(shè)應(yīng)用功能例程,也有豐富的
    發(fā)表于 09-22 16:19

    CW32飯盒派開發(fā)板試用體驗(yàn)】開箱測試

    CW32飯盒派開發(fā)板試用體驗(yàn)】+開箱測試 硬件資源介紹 CW32飯盒派是一款基于CW32F030C8T6的開發(fā)板。板載資源豐富:一電位器、蜂鳴器、3路用戶按鍵、3路指示燈、USART接口、電源接口
    發(fā)表于 05-13 00:20

    CW Programmer CW32系列芯片燒錄工具配套軟件

    CW Programmer CW32系列芯片的燒錄工具配套軟件
    發(fā)表于 09-15 07:44

    cw32和stm32的區(qū)別

    cw32和stm32的區(qū)別 CW32和STM32是兩種常見的單片機(jī),被廣泛應(yīng)用于各種電子設(shè)備中。在本文中,我們將深入探討CW32和STM32之間的區(qū)別和優(yōu)劣勢。 1. 硬件性能 硬件性能是衡量單片機(jī)
    的頭像 發(fā)表于 08-16 11:15 ?5230次閱讀

    cw32和gd32的區(qū)別

    cw32和gd32的區(qū)別 CW32和GD32是兩種不同的芯片系列,分別由WCH和GigaDevice公司推出,兩者有很多不同之處,下面我們來詳細(xì)介紹。 首先從CW32系列開始,CW32
    的頭像 發(fā)表于 08-16 11:15 ?2477次閱讀

    基于CW32的無刷水泵方案

    基于CW32的無刷水泵方案
    的頭像 發(fā)表于 11-03 17:28 ?1195次閱讀
    基于<b class='flag-5'>CW32</b>的無刷水泵方案

    基于CW32熱敏電阻采集溫度應(yīng)用

    基于CW32熱敏電阻采集溫度應(yīng)用
    的頭像 發(fā)表于 10-25 16:45 ?762次閱讀
    基于<b class='flag-5'>CW32</b>熱敏電阻采集溫度應(yīng)用

    CW32 PWM輸出功能介紹

    CW32 PWM輸出功能介紹
    的頭像 發(fā)表于 09-27 16:12 ?1282次閱讀
    <b class='flag-5'>CW32</b> PWM輸出功能介紹

    CW32實(shí)時時鐘(RTC)介紹

    CW32實(shí)時時鐘(RTC)介紹
    的頭像 發(fā)表于 10-24 15:36 ?1519次閱讀
    <b class='flag-5'>CW32</b>實(shí)時時鐘(RTC)介紹

    2023電賽A題國獎CW32 開源分享

    電賽A題開源分享,主控為CW32
    的頭像 發(fā)表于 11-02 10:16 ?3347次閱讀
    2023電賽A題國獎<b class='flag-5'>CW32</b> 開源分享

    基于CW32的RC522刷卡模塊的應(yīng)用

    基于CW32的RC522刷卡模塊的應(yīng)用
    的頭像 發(fā)表于 11-02 14:53 ?1572次閱讀
    基于<b class='flag-5'>CW32</b>的RC522刷卡模塊的應(yīng)用