在线观看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)不再提示

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

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

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

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

一、天氣數(shù)據(jù)獲取
首先說(shuō)說(shuō)怎么獲取天氣數(shù)據(jù)。現(xiàn)在可以從很多平臺(tái)獲取到天氣數(shù)據(jù),我使用的平臺(tái)是心知天氣,如何只是獲取實(shí)時(shí)天氣情況和最近幾天天氣情況是免費(fèi)的,只要注冊(cè)賬號(hào)就可以使用。地址為:https://www.seniverse.com/。心知天氣里面不僅支持天氣數(shù)據(jù)獲取,還支持其他數(shù)據(jù)獲取。這里我們需要獲取天氣實(shí)況和逐日天氣情況。每個(gè)API有一個(gè)請(qǐng)求示例地址,逐日天氣請(qǐng)求示例地址如下,每個(gè)參數(shù)都會(huì)有相關(guān)說(shuō)明。
213542d4cqq9z0511mcq92.jpg
在瀏覽器地址欄輸入請(qǐng)求示例地址后,可以查看返回?cái)?shù)據(jù)內(nèi)容情況。
213610apvffl1vt26u6vka.jpg
有了這個(gè)數(shù)據(jù)獲取接口,接下來(lái)以下步驟來(lái)獲取數(shù)據(jù)。
  • 連接心知天氣服務(wù)器心知天氣服務(wù)器地址為116.62.81.138。端口號(hào)為80,連接方式為TCP
  • 發(fā)送Get請(qǐng)求成功連接到心知天氣服務(wù)器后,需要發(fā)送Get請(qǐng)求才能獲取到數(shù)據(jù)。我要獲取最近三天的天氣預(yù)報(bào)情況,請(qǐng)求地址為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”注意:最后為兩個(gè)回車換行。之后會(huì)返回天氣數(shù)據(jù)包,但是該數(shù)據(jù)包是Json格式的數(shù)據(jù),需要解析才能得到我們真正需要的數(shù)據(jù)。下面是我使用調(diào)試助手獲取到的數(shù)據(jù)情況。

213934ognro1mzzmugg628.jpg

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

從網(wǎng)絡(luò)上直接獲取到的天氣數(shù)據(jù)是Json格式的,需要進(jìn)行解析才能得到所需天氣數(shù)據(jù)。解析Json格式數(shù)據(jù)我借助第三方軟件包c(diǎn)Json,通過(guò)cJson解析出數(shù)據(jù)。其實(shí)在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ù)有兩個(gè):實(shí)時(shí)天氣情況和未來(lái)三天天氣數(shù)據(jù)情況,所以需要解析實(shí)時(shí)天氣Json數(shù)據(jù)和未來(lái)三天天氣Json數(shù)據(jù)。

解析實(shí)時(shí)天氣,主要是為了獲取現(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) //檢測(cè)JSON數(shù)據(jù)包是否存在語(yǔ)法上的錯(cuò)誤,返回NULL表示數(shù)據(jù)包無(wú)效
  7. {
  8. printf("Error before: [%s]n",cJSON_GetErrorPtr()); //打印數(shù)據(jù)包語(yǔ)法錯(cuò)誤的位置
  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ù)組中對(duì)象個(gè)數(shù)
  16. //printf("cJSON_GetArraySize: size=%dn",size);
  17. if((object = cJSON_GetArrayItem(arrayItem,0)) != NULL)//獲取父對(duì)象內(nèi)容
  18. {
  19. /* 匹配子對(duì)象1 */
  20. if((subobject = cJSON_GetObjectItem(object,"location")) != NULL)
  21. {
  22. ?
  23. }
  24. /* 匹配子對(duì)象2 */
  25. if((subobject = cJSON_GetObjectItem(object,"now")) != NULL)
  26. {
  27. printf("---------------------------------now-------------------------------n");
  28. //匹配子對(duì)象2成員"text"
  29. if((item = cJSON_GetObjectItem(subobject,"text")) != NULL)
  30. {
  31. printf("%s : %sn",item->string,item->valuestring);
  32. }
  33. //匹配子對(duì)象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. //匹配子對(duì)象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. /* 匹配子對(duì)象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()分配出來(lái)的內(nèi)存空間
  56. return 0;
  57. }
復(fù)制代碼

解析未來(lái)三天天氣情況數(shù)據(jù),主要為了獲取今天、明天、后天的最高、最低溫度、天氣情況代碼、濕度情況。當(dāng)然也可以解析獲取更改天氣情況數(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. }
復(fù)制代碼
3、 獲取天氣數(shù)據(jù)

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

  • 1、連接網(wǎng)絡(luò)
  • 2、 連接到服務(wù)器
  • 3、發(fā)送近三天天氣情況請(qǐng)求
  • 4、接收數(shù)據(jù)
  • 5、解析近三天天氣Json數(shù)據(jù)
  • 6、關(guān)閉與服務(wù)器連接
  • 7、從新連接到服務(wù)器
  • 8、發(fā)送實(shí)時(shí)天氣情況請(qǐng)求
  • 9、接收數(shù)據(jù)
  • 10、解析實(shí)時(shí)天氣Json數(shù)據(jù)
  • 11、關(guān)閉與服務(wù)器連接
  • 12、斷開(kāi)與網(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. // 準(zhǔn)備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);// 端口號(hào),從主機(jī)字節(jié)序轉(zhuǎn)為網(wǎng)絡(luò)字節(jié)序
  41. if (inet_pton(AF_INET, WEATHERIPADDR, &serverAddr.sin_addr) <= 0) {??// 將主機(jī)IP地址從“點(diǎn)分十進(jìn)制”字符串 轉(zhuǎn)化為 標(biāo)準(zhǔn)格式(32位整數(shù))
  42. printf("inet_pton failed!rn");
  43. goto do_cleanup;
  44. }
  45. // 嘗試和目標(biāo)主機(jī)建立連接,連接成功會(huì)返回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. // 建立連接成功之后,這個(gè)TCP socket描述符 —— sockfd 就具有了 “連接狀態(tài)”,發(fā)送、接收 對(duì)端都是 connect 參數(shù)指定的目標(biāo)主機(jī)和端口
  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) {??// 將主機(jī)IP地址從“點(diǎn)分十進(jìn)制”字符串 轉(zhuǎn)化為 標(biāo)準(zhǔn)格式(32位整數(shù))
  79. printf("inet_pton failed!rn");
  80. goto do_cleanup;
  81. }
  82. // 嘗試和目標(biāo)主機(jī)建立連接,連接成功會(huì)返回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. }
復(fù)制代碼
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. }
復(fù)制代碼

按下oled顯示板的右邊按鈕,會(huì)進(jìn)入獲取天氣情況功能。現(xiàn)在我這里只是通過(guò)串口打印出來(lái)的數(shù)據(jù),觀察數(shù)據(jù)獲取和解析情況,還沒(méi)有把解析后的天氣數(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. ]
復(fù)制代碼

三、結(jié)果演示

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

214220iyvnrgrc8jq8y303.jpg

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

213858izk35ikaklkzupe3.jpg


四、總結(jié)

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

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

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

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

    關(guān)注

    14

    文章

    2202

    瀏覽量

    126215
  • HarmonyOS
    +關(guān)注

    關(guān)注

    79

    文章

    2005

    瀏覽量

    31826
  • HiSpark
    +關(guān)注

    關(guān)注

    1

    文章

    156

    瀏覽量

    7226
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Wi-Fi 8要來(lái)了!未來(lái)Wi-Fi技術(shù)演進(jìn)方向揭秘

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

    基于 Wi-Fi 的定位服務(wù)

    以下捕獲使用 location_wifi_get 函數(shù)請(qǐng)求 Wi-Fi 定位服務(wù)。該事件的總功耗為 125.85mC,日志顯示精確度為 30.0m。 Got location: method
    發(fā)表于 04-17 15:16

    nRF Cloud Wi-Fi 定位服務(wù)

    中實(shí)現(xiàn)高性能和超低功耗。對(duì)于 Wi-Fi 定位請(qǐng)求,nRF Cloud 可借助 Wi-Fi 數(shù)據(jù)庫(kù)計(jì)算設(shè)備位置,該數(shù)據(jù)庫(kù)包含不同 Wi-Fi
    發(fā)表于 04-17 15:07

    Wi-Fi 定位服務(wù)

    ,可讓支持 Wi-Fi 的設(shè)備利用附近 Wi-Fi 網(wǎng)絡(luò)數(shù)據(jù)確定自己的大致位置。它的工作原理是檢索附近網(wǎng)絡(luò)的 SSID、BSSID 和信號(hào)
    發(fā)表于 04-17 15:01

    2.4GHz+5GHz雙頻低功耗 Wi-Fi 6協(xié)同IC -nRF7002

    開(kāi)發(fā)人員能夠充分發(fā)揮Wi-Fi 6的潛力,包括更高的數(shù)據(jù)傳輸速率、更大的容量和更高的能效,以及Nordic一流的LTE-M/NB-IoT和BluetoothLE解決方案,從而簡(jiǎn)化開(kāi)發(fā)過(guò)程并加快產(chǎn)品上市
    發(fā)表于 02-26 14:54

    華為海思正式進(jìn)入Wi-Fi FEM賽道?

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

    摩爾斯微電子發(fā)布Wi-Fi HaLow評(píng)估套件,加速物聯(lián)網(wǎng)開(kāi)發(fā)

    。 MM6108-EKH05評(píng)估套件充分發(fā)揮了Wi-Fi HaLow技術(shù)的強(qiáng)大功能,支持從智能家居到工業(yè)自動(dòng)化的廣泛應(yīng)用。其數(shù)據(jù)傳輸速率高達(dá)32.5 Mbps,并能在1 GHz以下頻率范圍內(nèi)進(jìn)行可編程操作,是物聯(lián)網(wǎng)
    的頭像 發(fā)表于 12-11 13:40 ?539次閱讀

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

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

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

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

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

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

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

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

    如何記住ESP8266中的Wi-Fi憑據(jù)?

    AT CWSTARTSMART=1 并在執(zhí)行電源重啟后,則不會(huì)記住 Wi-Fi 憑據(jù)。這是實(shí)際用戶手冊(cè)中正確的 AT 命令。也嘗試使用 AT CWJAP_DEF 存儲(chǔ)數(shù)據(jù),但再次沒(méi)有成功。 我應(yīng)該怎么做才能記住 Wi-Fi
    發(fā)表于 07-15 07:07

    DA16600 超低功耗 Wi-Fi + 藍(lán)牙低功耗模塊開(kāi)發(fā)套件數(shù)據(jù)手冊(cè)

    電子發(fā)燒友網(wǎng)站提供《DA16600 超低功耗 Wi-Fi + 藍(lán)牙低功耗模塊開(kāi)發(fā)套件數(shù)據(jù)手冊(cè).rar》資料免費(fèi)下載
    發(fā)表于 05-31 17:51 ?4次下載
    DA16600 超低功耗 <b class='flag-5'>Wi-Fi</b> + 藍(lán)牙低功耗模塊開(kāi)發(fā)<b class='flag-5'>套件數(shù)據(jù)</b>手冊(cè)

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

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

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

    電子發(fā)燒友網(wǎng)站提供《DA16200 超低功耗 Wi-Fi 模塊開(kāi)發(fā)套件數(shù)據(jù)手冊(cè).rar》資料免費(fèi)下載
    發(fā)表于 05-30 17:13 ?0次下載
    DA16200 超低功耗 <b class='flag-5'>Wi-Fi</b> 模塊開(kāi)發(fā)<b class='flag-5'>套件數(shù)據(jù)</b>手冊(cè)
    主站蜘蛛池模板: 天天操操操操 | 亚洲xxx视频 | 轻点太大了好深好爽h文 | 我被黑人巨大开嫩苞在线观看 | 国内激情自拍 | 天天摸天天做天天爽天天弄 | 午夜老司机福利 | 亚洲国产成人久久精品图片 | 中国一级特黄高清免费的大片 | 日本一区二区三区在线观看视频 | 亚洲第一区第二区 | 天天碰免费视频 | 天天操天天操天天操天天操 | 人人舔| 狼人射综合 | 日本拍拍| 免费簧片视频 | 国产黄在线观看 | 婷婷综合色 | 久久久久久久网站 | 欧美亚洲第一区 | 免费观看黄色网页 | 免费人成在线观看网站 | 久久99操| 四虎影院台湾辣妹 | 无遮挡很爽很污很黄很色的网站 | 黑人边吃奶边扎下面激情视频 | 欧美城天堂网 | 女人张腿让男桶免费视频网站 | 97成人在线视频 | 久久久鲁| 亚洲国产七七久久桃花 | 亚洲 欧美 另类 综合 日韩 | 三级黄色在线 | 免费看黄色一级毛片 | 亚洲欧美在线观看 | 天天视频免费入口 | 国产精品9999 | 亚洲精品视频免费 | 香蕉视频网站在线播放 | 性色在线视频 |