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

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

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

【HarmonyOS HiSpark Wi-Fi IoT 套件試用連載】七、獲取網(wǎng)絡(luò)天氣數(shù)據(jù)

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-02 14:49 ? 次閱讀

本文來源電子發(fā)燒友社區(qū),作者:李元江, 帖子地址:https://bbs.elecfans.com/jishu_2025428_1_1.html

元旦好冷,哪也不想去,那就趁著有空,寫寫帖子吧。今天的帖子我寫的是關(guān)于如何從網(wǎng)絡(luò)獲取天氣數(shù)據(jù),以及如何解析出我們需要的天氣數(shù)據(jù)。

一、天氣數(shù)據(jù)獲取
首先說說怎么獲取天氣數(shù)據(jù)。現(xiàn)在可以從很多平臺獲取到天氣數(shù)據(jù),我使用的平臺是心知天氣,如何只是獲取實時天氣情況和最近幾天天氣情況是免費的,只要注冊賬號就可以使用。地址為:https://www.seniverse.com/。心知天氣里面不僅支持天氣數(shù)據(jù)獲取,還支持其他數(shù)據(jù)獲取。這里我們需要獲取天氣實況和逐日天氣情況。每個API有一個請求示例地址,逐日天氣請求示例地址如下,每個參數(shù)都會有相關(guān)說明。
213542d4cqq9z0511mcq92.jpg
在瀏覽器地址欄輸入請求示例地址后,可以查看返回數(shù)據(jù)內(nèi)容情況。
213610apvffl1vt26u6vka.jpg
有了這個數(shù)據(jù)獲取接口,接下來以下步驟來獲取數(shù)據(jù)。
  • 連接心知天氣服務(wù)器心知天氣服務(wù)器地址為116.62.81.138。端口號為80,連接方式為TCP
  • 發(fā)送Get請求成功連接到心知天氣服務(wù)器后,需要發(fā)送Get請求才能獲取到數(shù)據(jù)。我要獲取最近三天的天氣預報情況,請求地址為https://api.seniverse.com/v3/weather/daily.json?key=SgJs9V9ghopE5WSBe&location=shenzhen&language=zh-Hans&unit=c&start=0&days=3則我們需要發(fā)送的數(shù)據(jù)為“Get https://api.seniverse.com/v3/weather/daily.json?key=SgJs9V9ghopE5WSBe&location=shenzhen&language=zh-Hans&unit=c&start=0&days=3rnrn”注意:最后為兩個回車換行。之后會返回天氣數(shù)據(jù)包,但是該數(shù)據(jù)包是Json格式的數(shù)據(jù),需要解析才能得到我們真正需要的數(shù)據(jù)。下面是我使用調(diào)試助手獲取到的數(shù)據(jù)情況。

213934ognro1mzzmugg628.jpg

二、軟件設(shè)計
1、添加cJson功能

從網(wǎng)絡(luò)上直接獲取到的天氣數(shù)據(jù)是Json格式的,需要進行解析才能得到所需天氣數(shù)據(jù)。解析Json格式數(shù)據(jù)我借助第三方軟件包cJson,通過cJson解析出數(shù)據(jù)。其實在wifiiot的例程源代碼中,已經(jīng)添加有cJson了。

213736xc9hmxw9n5is5iss.jpg

但是要使用cJson功能,還需要下面操作。在OLED下的BUILD.gn文件中include_dirs加入 "http://third_party/cJSON",

213757i99pvk9ogwoz4tvp.jpg

2、Json數(shù)據(jù)解析

在OLED下面新建從cjsonparse.c和cjsonparse.h文件,主要是關(guān)于Json數(shù)據(jù)解析的函數(shù)。這里我們獲取得天氣數(shù)據(jù)有兩個:實時天氣情況和未來三天天氣數(shù)據(jù)情況,所以需要解析實時天氣Json數(shù)據(jù)和未來三天天氣Json數(shù)據(jù)。

解析實時天氣,主要是為了獲取現(xiàn)在的溫度和天氣情況代碼。

  1. int cJSON_NowWeatherParse(char *JSON,weather *Weather)
  2. {
  3. cJSON *json,*arrayItem,*object,*subobject,*item;
  4. ?
  5. json = cJSON_Parse(JSON); //解析JSON數(shù)據(jù)包
  6. if(json == NULL) //檢測JSON數(shù)據(jù)包是否存在語法上的錯誤,返回NULL表示數(shù)據(jù)包無效
  7. {
  8. printf("Error before: [%s]n",cJSON_GetErrorPtr()); //打印數(shù)據(jù)包語法錯誤的位置
  9. return 1;
  10. }
  11. else
  12. {
  13. if((arrayItem = cJSON_GetObjectItem(json,"results")) != NULL) //匹配字符串"results",獲取數(shù)組內(nèi)容
  14. {
  15. cJSON_GetArraySize(arrayItem); //獲取數(shù)組中對象個數(shù)
  16. //printf("cJSON_GetArraySize: size=%dn",size);
  17. if((object = cJSON_GetArrayItem(arrayItem,0)) != NULL)//獲取父對象內(nèi)容
  18. {
  19. /* 匹配子對象1 */
  20. if((subobject = cJSON_GetObjectItem(object,"location")) != NULL)
  21. {
  22. ?
  23. }
  24. /* 匹配子對象2 */
  25. if((subobject = cJSON_GetObjectItem(object,"now")) != NULL)
  26. {
  27. printf("---------------------------------now-------------------------------n");
  28. //匹配子對象2成員"text"
  29. if((item = cJSON_GetObjectItem(subobject,"text")) != NULL)
  30. {
  31. printf("%s : %sn",item->string,item->valuestring);
  32. }
  33. //匹配子對象2成員"code"
  34. if((item = cJSON_GetObjectItem(subobject,"code")) != NULL)
  35. {
  36. printf("%s : %sn",item->string,item->valuestring);
  37. Weather->nowcode = str2int(item->valuestring);
  38. }
  39. //匹配子對象2成員"temperature"
  40. if((item = cJSON_GetObjectItem(subobject,"temperature")) != NULL)
  41. {
  42. printf("%s : %sn",item->string,item->valuestring);
  43. Weather->nowtemp = str2int(item->valuestring);
  44. }
  45. }
  46. /* 匹配子對象last_update */
  47. if((subobject = cJSON_GetObjectItem(object,"last_update")) != NULL)
  48. {
  49. printf("----------------------------last_update----------------------------n");
  50. printf("%s : %snn",subobject->string,subobject->valuestring);
  51. }
  52. }
  53. }
  54. }
  55. cJSON_Delete(json); //釋放cJSON_Parse()分配出來的內(nèi)存空間
  56. return 0;
  57. }
復制代碼

解析未來三天天氣情況數(shù)據(jù),主要為了獲取今天、明天、后天的最高、最低溫度、天氣情況代碼、濕度情況。當然也可以解析獲取更改天氣情況數(shù)據(jù),但是這里我只解析獲取那么多。

  1. //解析三天天氣
  2. int cJSON_TayWeatherParse(char *JSON,weather *weather)
  3. {
  4. cJSON *root;
  5. cJSON *pSub;
  6. cJSON *arrayItem;
  7. cJSON *pItem;
  8. cJSON *pSubItem;
  9. cJSON *pChildItem;
  10. cJSON *pLastItem;
  11. char *pr;
  12. root = cJSON_Parse((const char*)JSON);
  13. if(root != NULL)
  14. {
  15. pSub = cJSON_GetObjectItem(root,"results");
  16. if(pSub != NULL)
  17. {
  18. arrayItem = cJSON_GetArrayItem(pSub,0);
  19. pr = cJSON_Print(arrayItem);
  20. pItem = cJSON_Parse(pr);
  21. if(pItem != NULL)
  22. {
  23. pSubItem = cJSON_GetObjectItem(pItem,"daily");
  24. if(pSubItem != NULL)
  25. {
  26. int size = cJSON_GetArraySize(pSubItem);
  27. for(int i=0;i;i++)
  28. {
  29. if(i==3)break;
  30. arrayItem = cJSON_GetArrayItem(pSubItem,i);
  31. pr = cJSON_Print(arrayItem);
  32. pLastItem = cJSON_Parse(pr);
  33. if(pLastItem != NULL)
  34. {
  35. if((pChildItem =cJSON_GetObjectItem(pLastItem,"high")) != NULL)
  36. {
  37. printf("%s : %sn",pChildItem->string,pChildItem->valuestring);
  38. weather->high[i] = str2int(pChildItem->valuestring);
  39. }
  40. ?
  41. if((pChildItem =cJSON_GetObjectItem(pLastItem,"low")) != NULL)
  42. {
  43. printf("%s : %sn",pChildItem->string,pChildItem->valuestring);
  44. weather->low[i] = str2int(pChildItem->valuestring);
  45. }
  46. if((pChildItem =cJSON_GetObjectItem(pLastItem,"code_day"))!=NULL)
  47. {
  48. printf("%s : %sn",pChildItem->string,pChildItem->valuestring);
  49. weather->code[i] = str2int(pChildItem->valuestring);
  50. }
  51. if((pChildItem =cJSON_GetObjectItem(pLastItem,"humidity"))!=NULL)
  52. {
  53. printf("%s : %sn",pChildItem->string,pChildItem->valuestring);
  54. weather->humi[i] = str2int(pChildItem->valuestring);
  55. }
  56. }
  57. cJSON_Delete(pLastItem);
  58. }
  59. }
  60. }
  61. cJSON_Delete(pItem);
  62. }
  63. }
  64. cJSON_Delete(root);
  65. ?
  66. return 0;
  67. }
復制代碼
3、 獲取天氣數(shù)據(jù)

新建getweather.c文件,主要獲取天氣數(shù)據(jù)的功能函數(shù)。設(shè)置的代碼中主要經(jīng)過如下步驟獲取和解析天氣情況數(shù)據(jù)。

  • 1、連接網(wǎng)絡(luò)
  • 2、 連接到服務(wù)器
  • 3、發(fā)送近三天天氣情況請求
  • 4、接收數(shù)據(jù)
  • 5、解析近三天天氣Json數(shù)據(jù)
  • 6、關(guān)閉與服務(wù)器連接
  • 7、從新連接到服務(wù)器
  • 8、發(fā)送實時天氣情況請求
  • 9、接收數(shù)據(jù)
  • 10、解析實時天氣Json數(shù)據(jù)
  • 11、關(guān)閉與服務(wù)器連接
  • 12、斷開與網(wǎng)絡(luò)的連接
  1. #include
  2. #include
  3. #include
  4. #include
  5. ?
  6. #include "net_demo.h"
  7. #include "net_common.h"
  8. #include "net_params.h"
  9. #include "wifi_connecter.h"
  10. #include "ohos_init.h"
  11. #include "cmsis_os2.h"
  12. #include "cjsonparse.h"
  13. ?
  14. #define WEATHERIPADDR "116.62.81.138"
  15. #define WEATHERPORT 80
  16. ?
  17. static char requestday[] = "GET https://api.seniverse.com/v3/weather/daily.json?key=SgJs9V9ghopE5WSBe&location=shenzhen&language=zh-Hans&unit=c&start=0&days=3rnrn";
  18. static char requestnow[] = "GET https://api.seniverse.com/v3/weather/now.json?key=SgJs9V9ghopE5WSBe&location=shenzhen&language=zh-Hans&unit=crnrn";
  19. ?
  20. static char response[1000] = "";
  21. ?
  22. weather weatherValue;
  23. ?
  24. bool getWeather(void){
  25. bool sucflag = false;
  26. WifiDeviceConfig config = {0};
  27. ?
  28. // 準備AP的配置參數(shù)
  29. strcpy(config.ssid, PARAM_HOTSPOT_SSID);
  30. strcpy(config.preSharedKey, PARAM_HOTSPOT_PSK);
  31. config.securityType = PARAM_HOTSPOT_TYPE;
  32. osDelay(10);
  33. int netId = ConnectToHotspot(&config);
  34. ?
  35. /*獲取最近三天天氣情況*/
  36. int32_t retval = 0;
  37. int sockfd = socket(AF_INET, SOCK_STREAM, 0); // TCP socket
  38. struct sockaddr_in serverAddr = {0};
  39. serverAddr.sin_family = AF_INET;// AF_INET表示IPv4協(xié)議
  40. serverAddr.sin_port = htons(WEATHERPORT);// 端口號,從主機字節(jié)序轉(zhuǎn)為網(wǎng)絡(luò)字節(jié)序
  41. if (inet_pton(AF_INET, WEATHERIPADDR, &serverAddr.sin_addr) <= 0) {??// 將主機IP地址從“點分十進制”字符串 轉(zhuǎn)化為 標準格式(32位整數(shù))
  42. printf("inet_pton failed!rn");
  43. goto do_cleanup;
  44. }
  45. // 嘗試和目標主機建立連接,連接成功會返回0 ,失敗返回 -1
  46. if (connect(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0) {
  47. printf("connect failed!rn");
  48. goto do_cleanup;
  49. }
  50. printf("connect to server %s success!rn", WEATHERIPADDR);
  51. ?
  52. // 建立連接成功之后,這個TCP socket描述符 —— sockfd 就具有了 “連接狀態(tài)”,發(fā)送、接收 對端都是 connect 參數(shù)指定的目標主機和端口
  53. //retval = send(sockfd, requestnow, sizeof(requestnow), 0);
  54. retval = send(sockfd, requestday, sizeof(requestday), 0);
  55. if (retval < 0) {
  56. printf("send request failed!rn");
  57. goto do_cleanup;
  58. }
  59. printf("send request{%s} %ld to server done!rn", requestday, retval);
  60. retval = recv(sockfd, &response, sizeof(response), 0);
  61. if (retval <= 0) {
  62. printf("send response from server failed or done, %ld!rn", retval);
  63. goto do_cleanup;
  64. }
  65. response[retval] = '';
  66. int i = 0;
  67. /*打印接收到數(shù)據(jù)*/
  68. while(i)
  69. {
  70. printf("%c",response[i]);
  71. i++;
  72. }
  73. cJSON_TayWeatherParse(response,&weatherValue);
  74. close(sockfd);
  75. ?
  76. /*獲取現(xiàn)在的天氣情況*/
  77. sockfd = socket(AF_INET, SOCK_STREAM, 0); // TCP socket
  78. if (inet_pton(AF_INET, WEATHERIPADDR, &serverAddr.sin_addr) <= 0) {??// 將主機IP地址從“點分十進制”字符串 轉(zhuǎn)化為 標準格式(32位整數(shù))
  79. printf("inet_pton failed!rn");
  80. goto do_cleanup;
  81. }
  82. // 嘗試和目標主機建立連接,連接成功會返回0 ,失敗返回 -1
  83. if (connect(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0) {
  84. printf("connect failed!rn");
  85. goto do_cleanup;
  86. }
  87. ?
  88. retval = send(sockfd, requestnow, sizeof(requestnow), 0);
  89. if (retval < 0) {
  90. printf("send request failed!rn");
  91. goto do_cleanup;
  92. }
  93. printf("send request{%s} %ld to server done!rn", requestnow, retval);
  94. retval = recv(sockfd, &response, sizeof(response), 0);
  95. if (retval <= 0) {
  96. printf("send response from server failed or done, %ld!rn", retval);
  97. goto do_cleanup;
  98. }
  99. response[retval] = '';
  100. i = 0;
  101. /*打印接收到數(shù)據(jù)*/
  102. while(i)
  103. {
  104. printf("%c",response[i]);
  105. i++;
  106. }
  107. cJSON_NowWeatherParse(response,&weatherValue);
  108. sucflag=true;
  109. do_cleanup:
  110. close(sockfd);
  111. DisconnectWithHotspot(netId);
  112. if(sucflag)
  113. return true;
  114. else
  115. return false;
  116. }
復制代碼
4、加入任務(wù)中

把獲取天氣數(shù)據(jù)功能增加到任務(wù)中。在oled_demo.c中static void OledTask(void *arg)函數(shù)增加以下代碼。

  1. AdcRead(ANALOG_KEY_CHAN_NAME, &data, WIFI_IOT_ADC_EQU_MODEL_4, WIFI_IOT_ADC_CUR_BAIS_DEFAULT, 0);
  2. float voltage = ConvertToVoltage(data);
  3. ?
  4. if(voltage>0.45 && voltage<0.65)
  5. {
  6. OledShowString(16,7,"Sync time...",1);
  7. getNtpTime();
  8. OledFillScreen(0);
  9. }
  10. else if(voltage>0.9 && voltage<1)
  11. {
  12. ?
  13. OledShowString(0,7,"Get Weather...",1);
  14. if(getWeather())
  15. OledFillScreen(0);
  16. else
  17. {
  18. OledShowString(0,7,"Get fail...",1);
  19. }
  20. }
復制代碼

按下oled顯示板的右邊按鈕,會進入獲取天氣情況功能。現(xiàn)在我這里只是通過串口打印出來的數(shù)據(jù),觀察數(shù)據(jù)獲取和解析情況,還沒有把解析后的天氣數(shù)據(jù)顯示到oled上。

5、修改BUILD.gn

修改OLED文件夾下的BUILD.gn文件,sources中加入getweather.c和cjsonparse.c

  1. sources = [
  2. "oled_demo.c",
  3. "oled_ssd1306.c",
  4. "timeconv.c",
  5. "envrionment_demo.c",
  6. "aht20.c",
  7. "wifi_connecter.c",
  8. "getNTP.c",
  9. "getweather.c",
  10. "cjsonparse.c",
  11. ]
復制代碼

三、結(jié)果演示

按下OLED顯示板右邊按鍵,會進入天氣數(shù)據(jù)功能,之后顯示“Get Weather....”提示。天氣數(shù)據(jù)獲取失敗后,會顯示“Get fail...”提示。

214220iyvnrgrc8jq8y303.jpg

可以從串口打印輸出的信息,觀察到獲取的Json數(shù)據(jù)情況和解析后的數(shù)據(jù)情況。

213858izk35ikaklkzupe3.jpg


四、總結(jié)

網(wǎng)絡(luò)天氣數(shù)據(jù)的獲取主要經(jīng)過如下步驟

  • 連接網(wǎng)絡(luò)
  • 連接服務(wù)器
  • 請求數(shù)據(jù)
  • 解析Json數(shù)據(jù)

2021年第一篇帖子,先寫到這里。下一篇是關(guān)于通過TCP連接與手機APP進行數(shù)據(jù)交互的帖子。當然手機APP是我之前做好的。

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

    關(guān)注

    14

    文章

    2147

    瀏覽量

    124602
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    1978

    瀏覽量

    30269
  • HiSpark
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    6938
收藏 人收藏

    評論

    相關(guān)推薦

    Wi-Fi 8要來了!未來Wi-Fi技術(shù)演進方向揭秘

    電子發(fā)燒友網(wǎng)報道(文/梁浩斌)Wi-Fi 7芯片早在2022年就有產(chǎn)品推出,直到去年年底,Wi-Fi 7設(shè)備開始大量推出市場。但從普及率來看,根據(jù)奧維云網(wǎng)的數(shù)據(jù),截至2024年9月,線上家用路由器
    的頭像 發(fā)表于 11-24 03:14 ?1709次閱讀
    <b class='flag-5'>Wi-Fi</b> 8要來了!未來<b class='flag-5'>Wi-Fi</b>技術(shù)演進方向揭秘

    華為海思正式進入Wi-Fi FEM賽道?

    大家都知道了,2018年11 月離開銳迪科(RDA),前往福建晉江創(chuàng)立三伍微,專注于Wi-Fi射頻前端芯片,從路由器Wi-Fi FEM,到手機Wi-Fi FEM,再到IoT FEM全覆
    發(fā)表于 12-11 17:42

    Wi-Fi 4到Wi-Fi 7:網(wǎng)速飆升40倍的無線革命

    Wi-Fi 4首次引入MIMO和40 MHz頻寬,是基礎(chǔ)的高效無線網(wǎng)絡(luò)標準。 ? Wi-Fi 5 Wi-Fi 5擁有更高的數(shù)據(jù)速率,專注于
    的頭像 發(fā)表于 12-09 10:10 ?288次閱讀
    從<b class='flag-5'>Wi-Fi</b> 4到<b class='flag-5'>Wi-Fi</b> 7:網(wǎng)速飆升40倍的無線革命

    Wi-Fi 7與Wi-Fi 6E有什么區(qū)別

    也許很多人還在考慮是否要將使用的Wi-Fi設(shè)備升級到Wi-Fi 6或Wi-Fi 6E,而這些標準的繼任者卻已經(jīng)開始“登堂入室”了。Wi-Fi 7是新一代
    的頭像 發(fā)表于 11-07 11:38 ?857次閱讀

    IR900 Wi-Fi聯(lián)網(wǎng)的配置過程

    例如上圖,IR900 通過Wi-Fi接口連接公司辦公無線網(wǎng)絡(luò) inhand-office (SSID為無線網(wǎng)絡(luò)的名稱) 首先將Wi-Fi接口與WLAN接口解綁 登陸IR900后,進
    發(fā)表于 07-25 06:09

    AT 0.60.0.0看不到我的Wi-Fi網(wǎng)絡(luò),為什么?

    我對 AT 0.60.0.0 有一點問題。當我通過 AT CWLAP 顯示所有網(wǎng)絡(luò)時,我看不到我的路由器 AP 網(wǎng)絡(luò),但我可以連接到它。當我在智能手機中打開 Wi-Fi 熱點時,我可以看到我的熱點
    發(fā)表于 07-18 08:31

    DA16200 超低功耗 Wi-Fi 模塊開發(fā)套件 Pro數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《DA16200 超低功耗 Wi-Fi 模塊開發(fā)套件 Pro數(shù)據(jù)手冊.rar》資料免費下載
    發(fā)表于 05-30 17:53 ?1次下載
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模塊開發(fā)<b class='flag-5'>套件</b> Pro<b class='flag-5'>數(shù)據(jù)</b>手冊

    DA16200 超低功耗 Wi-Fi 模塊開發(fā)套件數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《DA16200 超低功耗 Wi-Fi 模塊開發(fā)套件數(shù)據(jù)手冊.rar》資料免費下載
    發(fā)表于 05-30 17:13 ?0次下載
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模塊開發(fā)<b class='flag-5'>套件數(shù)據(jù)</b>手冊

    驗證物聯(lián)網(wǎng)Wi-Fi HaLow用例的MM6108-EKH08開發(fā)套件來啦

    驗證物聯(lián)網(wǎng)Wi-Fi HaLow用例的MM6108-EKH08開發(fā)套件來啦 MM6108-EKH08開發(fā)套件專為驗證物聯(lián)網(wǎng)Wi-Fi HaLow用例而設(shè)計。該
    的頭像 發(fā)表于 04-11 12:01 ?1758次閱讀
    驗證物聯(lián)網(wǎng)<b class='flag-5'>Wi-Fi</b> HaLow用例的MM6108-EKH08開發(fā)<b class='flag-5'>套件</b>來啦

    Wi-Fi 7與Wi-Fi 6的相關(guān)知識科普

    科普:Wi-Fi 7 vs. Wi-Fi 6,青出于藍
    的頭像 發(fā)表于 03-12 10:59 ?771次閱讀
    <b class='flag-5'>Wi-Fi</b> 7與<b class='flag-5'>Wi-Fi</b> 6的相關(guān)知識科普

    Wi-Fi的誕生與發(fā)展

    和5GHz兩個頻段,承載著不斷增長的網(wǎng)絡(luò)需求。ABIResearch顯示,2022年Wi-Fi上傳流量激增80%,Wi-Fi數(shù)據(jù)流量已超過蜂窩流量,且成為流量增量貢
    的頭像 發(fā)表于 03-07 08:26 ?1279次閱讀
    <b class='flag-5'>Wi-Fi</b>的誕生與發(fā)展

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別

    Wi-Fi HaLow和傳統(tǒng)Wi-Fi的區(qū)別? Wi-Fi是一種無線網(wǎng)絡(luò)技術(shù),可以連接到互聯(lián)網(wǎng)或局域網(wǎng),為用戶提供無線上網(wǎng)的便利。隨著科技的發(fā)展和互聯(lián)網(wǎng)的普及,
    的頭像 發(fā)表于 02-02 15:28 ?1316次閱讀

    康普攜手Wi-Fi聯(lián)盟,RUCKUS Wi-Fi 7系列接入點成Wi-Fi

     康普高級副總裁兼網(wǎng)絡(luò)、智能蜂窩和安全解決方案總裁Bart Giordano對此表示: “我們非常榮幸能與Wi-Fi Alliance形成長期合作伙伴關(guān)系,將我們的RUCKUS Wi-Fi 7 接入點平臺作為
    的頭像 發(fā)表于 01-23 14:10 ?780次閱讀

    BT Wi-Fi模式是否可以通過ModustoolBox對套件進行編程來實現(xiàn)?

    想配置用于分析 CYW43439 的 CY8CPROTO-062S2-43439 原型開發(fā)套件。 瀏覽文檔我無法弄清楚如何在不同的 Wi-Fi 和藍牙模式(電源模式、連接模式等)下配置套件。 在
    發(fā)表于 01-22 06:19

    Wi-Fi聯(lián)盟已正式確認Wi-Fi 7標準,無線網(wǎng)絡(luò)新時代來臨!Wi-Fi 聯(lián)盟已開始對 Wi-Fi 7 設(shè)備

    無線網(wǎng)絡(luò)wi-fi
    北京中科同志科技股份有限公司
    發(fā)布于 :2024年01月10日 10:43:56