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

聚豐項(xiàng)目 > 基于NUCLEO-F401RE的zigbee智能網(wǎng)關(guān)

基于NUCLEO-F401RE的zigbee智能網(wǎng)關(guān)

ZigBee協(xié)議與互聯(lián)網(wǎng)中所使用的TCP/IP協(xié)議并不兼容,要想把ZigBee網(wǎng)絡(luò)接入到基于IP的互聯(lián)網(wǎng),就需要一個(gè)設(shè)備來(lái)完成兩個(gè)異構(gòu)網(wǎng)絡(luò)間數(shù)據(jù)的轉(zhuǎn)發(fā)。因此,提出了網(wǎng)關(guān)的概念,由網(wǎng)關(guān)來(lái)完成兩個(gè)異構(gòu)網(wǎng)絡(luò)之間數(shù)據(jù)的轉(zhuǎn)發(fā)。本文使用STM32 Nucleo F401RE評(píng)估板、EMW3080 Wi-Fi網(wǎng)絡(luò)模塊、CC2530 ZigBee模塊,設(shè)計(jì)了一種嵌入式網(wǎng)關(guān)的解決方案。網(wǎng)關(guān)工作在兩個(gè)異構(gòu)的網(wǎng)絡(luò)之間,連接著無(wú)線傳感網(wǎng)絡(luò)和互聯(lián)網(wǎng),其功能包括異構(gòu)網(wǎng)絡(luò)之間的數(shù)據(jù)轉(zhuǎn)發(fā)和對(duì)ZigBee網(wǎng)絡(luò)的管理。

大雨淅淅 大雨淅淅

分享
0 喜歡這個(gè)項(xiàng)目
團(tuán)隊(duì)介紹

大雨淅淅 大雨淅淅

團(tuán)隊(duì)成員

嚴(yán)敏 軟件工程師

張影影 隊(duì)長(zhǎng)

分享
項(xiàng)目簡(jiǎn)介
ZigBee協(xié)議與互聯(lián)網(wǎng)中所使用的TCP/IP協(xié)議并不兼容,要想把ZigBee網(wǎng)絡(luò)接入到基于IP的互聯(lián)網(wǎng),就需要一個(gè)設(shè)備來(lái)完成兩個(gè)異構(gòu)網(wǎng)絡(luò)間數(shù)據(jù)的轉(zhuǎn)發(fā)。因此,提出了網(wǎng)關(guān)的概念,由網(wǎng)關(guān)來(lái)完成兩個(gè)異構(gòu)網(wǎng)絡(luò)之間數(shù)據(jù)的轉(zhuǎn)發(fā)。本文使用STM32 Nucleo F401RE評(píng)估板、EMW3080 Wi-Fi網(wǎng)絡(luò)模塊、CC2530 ZigBee模塊,設(shè)計(jì)了一種嵌入式網(wǎng)關(guān)的解決方案。網(wǎng)關(guān)工作在兩個(gè)異構(gòu)的網(wǎng)絡(luò)之間,連接著無(wú)線傳感網(wǎng)絡(luò)和互聯(lián)網(wǎng),其功能包括異構(gòu)網(wǎng)絡(luò)之間的數(shù)據(jù)轉(zhuǎn)發(fā)和對(duì)ZigBee網(wǎng)絡(luò)的管理。
硬件說(shuō)明

硬件主要由STM32 Nucleo F401RE評(píng)估板、EMW3080 Wi-Fi網(wǎng)絡(luò)模塊、基于CC2530的ZigBee模塊構(gòu)成,并配有開關(guān)量輸入和輸出電路、RS232和RS485電路。MCU是STM32F401RET6芯片;慶科EMW3080wifi模塊用于數(shù)據(jù)遠(yuǎn)程交互,利用慶科云實(shí)現(xiàn)與手機(jī)進(jìn)行數(shù)據(jù)傳輸;ZigBee模塊包括協(xié)調(diào)器模塊和N個(gè)終端模塊,協(xié)調(diào)器模塊與MCU通過(guò)UART進(jìn)行通信,終端模塊與傳感器進(jìn)行連接

1、整體功能框圖

image002.png

2、 實(shí)物圖

image003.png

3、 接線圖

  串行通訊直接采用TTL方式,EMW3080模塊與STM32F401RE接線如下:

1STM32F401RE USART1_TXEMW3080 USART0_RX

2STM32F401REUSART1_RXEMW3080 USART0_TX

CC2530模塊與STM32F401RE接線如下:

1STM32F401REUSART6_TXEMW3080 USART0_RX

2STM32F401REUSART6_RXEMW3080 USART0_TX

4、核心板

image008.png

5、WiFi模塊

6、ZigBee模塊

7、溫濕傳感器DHT11

DHT12數(shù)字式溫濕度傳感器是一款含有己校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合型傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和半導(dǎo)體溫濕度傳感器,確保產(chǎn)品具有較高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。

image022.jpg


軟件說(shuō)明

1、STM32F401RET6主控部分軟件設(shè)計(jì)

(1)運(yùn)行平臺(tái):在線ARM mbed os

image016.png

(2)CubeMX初始化串口USART1USART6

image018.png

隨后選擇芯片,并完成I/O口的初始化操作:

image034.jpg

設(shè)置完成后點(diǎn)擊生成代碼按鈕,可以完成代碼的生成,并可以繼續(xù)在Keil中編輯。


(1)主要程序代碼

Serial wifi_uart(PA_9, PA_10);

Serial zigbee_uart(PC_6, PC_7);

Serial PC(USBTX, USBRX);

DigitalOut myled(LED1);

DigitalOut zigbee_uart_E(D7);    //zigbee_uart

 

char s[1024];

 

void callback()           //The zigbee_uart Receive interrupt handler function

{

    zigbee_uart.scanf("%s",s);

         wifi_uart.printf("AT+CIPSEND=2,5\r");

         wait(1);

    wifi_uart.printf("%s\r\n",s);

}

void init_wifi()

{

       wifi_uart.printf("AT+WJAP=TP_LINK,12345678\r");

       wait(1);

       wifi_uart.printf("AT+CIPSTART=2,udp_broadcast,172.16.55.255,8080,4001\r");

       wait(1);

}

int main(void)

{

       wifi_uart.baud(115200);

       zigbee_uart.baud(115200);

      

       init_wifi();

      

  while(1)

       {

          zigbee_uart.attach(&callback);

     zigbee_uart_E = 0;               //receive

     myled = !myled;

               wait(5);

  }

}

電腦連接wifi(“TP_LINK”),打開網(wǎng)絡(luò)調(diào)試助手,可以接收到WIFI模塊發(fā)出的zigbee模塊手機(jī)的溫濕信息,如下圖:

image035.jpg

2、zigeeCC2530)模塊部分軟件設(shè)計(jì)

(1)       程序編譯平臺(tái):IAR

(2)       主要程序代碼

void DHT11(void)   //溫濕傳感啟動(dòng)

{

    DATA_PIN=0;

    Delay_ms(19);  //>18MS

    DATA_PIN=1;

    P0DIR &= ~0x80; //重新配置IO口方向

    Delay_10us();

    Delay_10us();                       

    Delay_10us();

    Delay_10us(); 

    if(!DATA_PIN)

    {

        ucharFLAG=2;

        while((!DATA_PIN)&&ucharFLAG++);

        ucharFLAG=2;

        while((DATA_PIN)&&ucharFLAG++);

        COM();

        ucharRH_data_H_temp=ucharcomdata;

        COM();

        ucharRH_data_L_temp=ucharcomdata;

        COM();

        ucharT_data_H_temp=ucharcomdata;

        COM();

        ucharT_data_L_temp=ucharcomdata;

        COM();

        ucharcheckdata_temp=ucharcomdata;

        DATA_PIN=1;

        uchartemp=(ucharT_data_H_temp+ucharT_data_L_temp+ucharRH_data_H_temp+ucharRH_data_L_temp);

        if(uchartemp==ucharcheckdata_temp)

        {

            ucharRH_data_H=ucharRH_data_H_temp;

            ucharRH_data_L=ucharRH_data_L_temp;

            ucharT_data_H=ucharT_data_H_temp;

            ucharT_data_L=ucharT_data_L_temp;

            ucharcheckdata=ucharcheckdata_temp;

        }

        wendu_shi=ucharT_data_H/10;

        wendu_ge=ucharT_data_H%10;

       

        shidu_shi=ucharRH_data_H/10;

        shidu_ge=ucharRH_data_H%10;       

    }

    else //沒(méi)用成功讀取,返回0

    {

        wendu_shi=0;

        wendu_ge=0;

       

        shidu_shi=0;

        shidu_ge=0; 

    }

   

    P0DIR |= 0x80; //IO口需要重新配置

}

 

//獲取溫濕度發(fā)送

void SampleApp_Send_P2P_Message( void )

{

  byte i, temp[3], humidity[3], strTemp[7];

 

  DHT11();             //獲取溫濕度

 

  //將溫濕度的轉(zhuǎn)換成字符串,LCD顯示 

  temp[0] = wendu_shi+0x30;

  temp[1] = wendu_ge+0x30;

  temp[2] = '\0';

  humidity[0] = shidu_shi+0x30;

  humidity[1] = shidu_ge+0x30;

  humidity[2] = '\0';

  //將數(shù)據(jù)整合后方便發(fā)給協(xié)調(diào)器顯示

  osal_memcpy(strTemp, temp, 2);

  osal_memcpy(&strTemp[2], humidity, 3);

 

  //獲得的溫濕度通過(guò)串口輸出到電腦顯示

  HalUARTWrite(0, " Temperature:", 12);

  HalUARTWrite(0, strTemp, 2);

HalUARTWrite(0, " Humidity:", 9);

HalUARTWrite(0, &strTemp[2], 2);

  HalUARTWrite(0, "\n",1);

 

  if ( AF_DataRequest( &SampleApp_P2P_DstAddr, &SampleApp_epDesc,

                       SAMPLEAPP_P2P_CLUSTERID,

                       6,

                       strTemp,

                       &SampleApp_TransID,

                       AF_DISCV_ROUTE,

                       AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )

  {

  }

  else

  {

    // Error occurred in request to send.

  }

}

 

//數(shù)據(jù)接收

void SampleApp_MessageMSGCB( afIncomingMSGPacket_t *pkt )

{

  uint16 flashTime;

 

  switch ( pkt->clusterId )

  {

    case SAMPLEAPP_P2P_CLUSTERID:

      HalUARTWrite(0, "T&H:", 4);       //提示接收到數(shù)據(jù)

      HalUARTWrite(0, pkt->cmd.Data, pkt->cmd.DataLength); //輸出接收到的數(shù)據(jù)

      HalUARTWrite(0, "\n", 1);         // 回車換行

      break;   

    case SAMPLEAPP_PERIODIC_CLUSTERID:

      break;

 

    case SAMPLEAPP_FLASH_CLUSTERID:

      flashTime = BUILD_UINT16(pkt->cmd.Data[1], pkt->cmd.Data[2] );

      HalLedBlink( HAL_LED_4, 4, 50, (flashTime / 4) );

      break;

  }

}

Zigbee串口輸出如下圖:

image036.jpg

演示效果

image037.jpg

附件

(9.26 MB)下載

評(píng)論區(qū)(1 )
  • wkp1992101: 看起來(lái)不錯(cuò),智能網(wǎng)關(guān)

    回復(fù)

主站蜘蛛池模板: 色88888久久久久久影院 | 女生扒开尿口让男生舔 | 午夜一级毛片免费视频 | 国产精品大片天天看片 | 欧美视频精品在线 | 欧美日穴| 日本成人黄色网址 | 国内精品 第一页 | a中文字幕1区| 国产三级黄色录像 | 奇米影视久久 | 综合色亚洲 | 人人爱天天做夜夜爽毛片 | 岬奈奈美在线 国产一区 | 美女牲交视频一级毛片 | 亚洲成在人 | 亚洲国产色图 | 永久免费的拍拍拍网站 | 黑森林福利视频导航 | 国产男人午夜视频在线观看 | 久久久五月 | 在线观看黄色一级片 | 天天曰天天干 | 狠狠色噜噜狠狠狠狠奇米777 | 久久亚洲国产成人影院 | 天天看天天摸色天天综合网 | 国产美女主播在线观看 | 欧美日韩不卡码一区二区三区 | 男女性生动态免费视频 | 午夜一级黄色片 | 欧美性一区 | 天堂网bt| 天天干天天射天天爽 | 国产成人综合久久 | 国产精品莉莉欧美自在线线 | 婷婷激情五月综合 | 午夜免费 | 天天色综合天天 | 免费四虎永久在线精品 | 久操精品在线观看 | 在线观看黄网 |