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

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

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

基于NiobeU4開發(fā)板的簡易桌面天氣預報設計&實現(xiàn)

電子發(fā)燒友開源社區(qū) ? 2022-10-09 18:09 ? 次閱讀

一、桌面天氣預報器架構

1.手撕HTTP request

桌面天氣預報器考慮的比較簡單,雖然LWIP能支持,但是HTTP協(xié)議棧尚未實現(xiàn),之前考慮直接在OpenHarmony手寫一個HTTP GET request,然后NiobeU4開發(fā)板解析幾個天氣的關鍵詞,實現(xiàn)顯示即可,至于HTTPS與HTTP的選擇,當然是越簡單越好了,找了個HTTP的天氣網(wǎng)站(http://www.yytianqi.com/),注冊個賬號,使用API即可,這個API的格式類似這樣:

http://api.yytianqi.com/接口名稱?city=城市ID&key=用戶key

初步設計就是在NiobeU4開發(fā)板端側構造HTTP GET request消息并發(fā)出,然后解析其response,再在LCD側顯示,基本框架如下:

219b4d30-47b7-11ed-a3b6-dac502259ad0.png

#define SERVER_IP "123.57.54.168"
#define SERVER_PORT 8080


    sock = socket(AF_INET, SOCK_STREAM, 0);
    if (sock < 0) {
      printf("Socket error
");
      osDelay(OD_DELAY_100);
      continue;
    }
    memset_s(&(client_addr), sizeof(client_addr), 0, sizeof(client_addr));
    client_addr.sin_family = AF_INET;
    client_addr.sin_port = htons(SERVER_PORT);
    client_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
    if (connect(sock, (struct sockaddr *)&client_addr, sizeof(struct sockaddr)) == -1) {
      closesocket(sock);
      osDelay(OD_DELAY_1000);
      continue;
    }
  //send HTTP GET msg
  char cmd[256];
 bzero(cmd, 256);
  strcpy(cmd,"GET /observe?city=CH210401&key=XXXXXXXXXXXXXXXX HTTP/1.1
");
 strcat(cmd,"Host: 123.57.54.168

");
 
 write(sock, cmd, strlen(cmd));

(左右移動查看全部內(nèi)容)

這個HTTP GET發(fā)出去后,服務端認不出,找了個工具模擬了下,發(fā)現(xiàn)還是相同的問題,貌似服務器端對 的解析不是換行,搗鼓了很久還是不行,于是放棄。

21bba936-47b7-11ed-a3b6-dac502259ad0.jpg

2.曲線救國

既然直接手撕HTTP GET request有問題,那還是換條路吧。

設想是有個server來做網(wǎng)關,用于搭建NiobeU4開發(fā)板與天氣網(wǎng)站之間的橋梁,負責獲取天氣信息,并通過TCP鏈接轉(zhuǎn)發(fā)到NiobeU4開發(fā)板端側,具體如下:

21e1218e-47b7-11ed-a3b6-dac502259ad0.png

二、實現(xiàn)&展示

方案確定下來后具體實現(xiàn)就很簡單了,網(wǎng)關處起個任務到www.yytianqi.com獲取天氣信息,然后發(fā)給NiobeU4開發(fā)板,NiobeU4開發(fā)板端側收到信息后做天氣信息字符串匹配,根據(jù)天氣內(nèi)容在LCD上顯示相關信息。

21f801e2-47b7-11ed-a3b6-dac502259ad0.png

直接拷貝至系統(tǒng),reset板子。

Gateway側HTTP GET得到的信息如下:

{"code":1,"msg":"Sucess","counts":29,"data":{"cityId":"CH210401","cityName":"u5b81u6ce2","lastUpdate":"2022-10-07 2337","tq":"u9634","numtq":"02","qw":"15","numfl":"0","fl":"u5faeu98ce","fx":"u897fu5357u98ce","numfx":"5","sd":"92"}}

(左右移動查看全部內(nèi)容)

NiobeU4開發(fā)板端的顯示如下,多云天氣:

228ca1bc-47b7-11ed-a3b6-dac502259ad0.jpg

三、附加電池

剛好手頭有塊3.7V的鋰電池,問了技術直接接上了,注意正負極即可,這塊電池年份有點久了,基本上續(xù)航在3-5h。細心的可以看到視頻中的電源燈是沒有亮的。

22b8152c-47b7-11ed-a3b6-dac502259ad0.jpg

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

    關注

    34

    文章

    4363

    瀏覽量

    166185
  • HTTP
    +關注

    關注

    0

    文章

    478

    瀏覽量

    30758
  • 開發(fā)板
    +關注

    關注

    25

    文章

    4771

    瀏覽量

    96160
  • LwIP
    +關注

    關注

    2

    文章

    84

    瀏覽量

    26932
  • OpenHarmony
    +關注

    關注

    25

    文章

    3548

    瀏覽量

    15735
  • NiobeU4
    +關注

    關注

    3

    文章

    31

    瀏覽量

    488

原文標題:基于NiobeU4開發(fā)板的簡易桌面天氣預報設計&實現(xiàn)

文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發(fā)燒友開源社區(qū)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】開鴻智谷NiobeU4恢復出廠太空飛人

    board niobeu4)---&amp;gt;(x)select board niobeu4 ---&amp;gt;[*] use openvalley
    發(fā)表于 09-29 18:37

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】 開發(fā)環(huán)境搭建并初步測試程序;

    感謝 發(fā)燒友學院以及拓維信息 為我和孩子提供此產(chǎn)品## 開鴻智谷NiobeU4開發(fā)板。感謝研發(fā)人員依然小燁哥和?大佬們的支持指導。處理器簡介ESP32 -U4WDH樂鑫單核Wi-Fi &amp
    發(fā)表于 09-30 11:06

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】1.Windows物理機上構建Linux開發(fā)環(huán)境

    Delete-&amp;gt;任務管理器-&amp;gt;性能-&amp;gt;內(nèi)存鳴謝:開鴻智谷NiobeU4開發(fā)板具有豐富的示例程序可
    發(fā)表于 10-01 23:39

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】2.NiobeU4編程基礎--gpio與uart聯(lián)合使用示例

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】2.NiobeU4編程基礎--gpio與uart聯(lián)合使用示例1.概要:本文主要總結了編程前的一些先決條件,如下圖所示:主要包括如何編譯,燒錄,調(diào)試,以及
    發(fā)表于 10-05 19:51

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】簡易桌面天氣預報器的設計&amp;實現(xiàn)

    做網(wǎng)關,用于搭建NiobeU4開發(fā)板天氣網(wǎng)站之間的橋梁,負責獲取天氣信息,并通過TCP鏈接轉(zhuǎn)發(fā)到NiobeU4
    發(fā)表于 10-07 23:35

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】Demo例程加載

    接上文| 【開鴻智谷NiobeU4開發(fā)板免費試用體驗】 開發(fā)環(huán)境搭建并初步測試程序; |根據(jù)開鴻智谷研發(fā)人員依然小燁哥和群內(nèi)容:示例代碼存放在工程//vendor/openvalley
    發(fā)表于 10-10 19:36

    【Banana PI Leaf S3開發(fā)板試用體驗】基于Banana PI Leaf S3的天氣預報系統(tǒng)

    本次主要利用Banana PI Leaf S3開發(fā)板 和 SSD1306的OLED屏幕,實現(xiàn)一個簡易天氣預報系統(tǒng)。一、系統(tǒng)架構直接在Banana PI Leaf S3
    發(fā)表于 10-17 20:06

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】Demo例程加載

    本文來源電子發(fā)燒友社區(qū),作者:盧松濤, 帖子地址: https://bbs.elecfans.com/jishu_2309555_1_1.html 接上文|? 【開鴻智谷NiobeU4開發(fā)板免費試用
    的頭像 發(fā)表于 10-14 11:14 ?1127次閱讀
    【開鴻智谷<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)板</b>免費試用體驗】Demo例程加載

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】簡易桌面天氣預報器的設計&amp;amp;amp;實現(xiàn)

    HTTP request 桌面天氣預報器考慮的比較簡單,雖然LWIP能支持,但是HTTP協(xié)議棧尚未實現(xiàn),之前考慮直接在OpenHarmony手寫一個HTTP GET request,然后Nio
    的頭像 發(fā)表于 10-14 11:17 ?954次閱讀
    【開鴻智谷<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)板</b>免費試用體驗】<b class='flag-5'>簡易</b><b class='flag-5'>桌面</b><b class='flag-5'>天氣預報</b>器的設計&<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>amp</b>;<b class='flag-5'>實現(xiàn)</b>

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】2.NiobeU4編程基礎--gpio與uart聯(lián)合使用示例

    本文來源電子發(fā)燒友社區(qū),作者:chenzd, 帖子地址: https://bbs.elecfans.com/jishu_2308768_1_1.html 【開鴻智谷NiobeU4開發(fā)板免費試用
    的頭像 發(fā)表于 10-14 11:24 ?883次閱讀
    【開鴻智谷<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)板</b>免費試用體驗】2.<b class='flag-5'>NiobeU4</b>編程基礎--gpio與uart聯(lián)合使用示例

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】1.Windows物理機上構建Linux開發(fā)環(huán)境

    本文來源電子發(fā)燒友社區(qū),作者:chenzd, 帖子地址: https://bbs.elecfans.com/jishu_2308700_1_1.html 【開鴻智谷NiobeU4開發(fā)板免費試用
    的頭像 發(fā)表于 10-14 14:47 ?793次閱讀
    【開鴻智谷<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)板</b>免費試用體驗】1.Windows物理機上構建Linux<b class='flag-5'>開發(fā)</b>環(huán)境

    【開鴻智谷NiobeU4開發(fā)板免費試用體驗】基于Ubuntu22.04的NiobeU4開發(fā)環(huán)境搭建

    是基于ESP32U4WDH推出的物聯(lián)網(wǎng)設備開發(fā)套件,集成2.4GHz Wifi和藍牙雙模,具有超高的射頻性能、穩(wěn)定性、通用性和可靠性,以及超低的功耗,適用于各種應用場景;NiobeU4開發(fā)
    的頭像 發(fā)表于 10-17 10:42 ?1455次閱讀
    【開鴻智谷<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)板</b>免費試用體驗】基于Ubuntu22.04的<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)</b>環(huán)境搭建

    基于ESP32芯片,搭載OpenHarmony操作系統(tǒng),NiobeU4開發(fā)板應用實例

    性能、穩(wěn)定性、通用性和可靠性,以及超低的功耗,適用于各種應用場景。 1.開箱體驗編譯環(huán)境搭建及燒錄 感謝開鴻智谷和電子發(fā)燒友寄來的中秋禮物,下面給大家做個NiobeU4開發(fā)板開箱體驗,祝大家中秋快樂! 此次收到的NiobeU4
    的頭像 發(fā)表于 05-11 20:16 ?2548次閱讀
    基于ESP32芯片,搭載OpenHarmony操作系統(tǒng),<b class='flag-5'>NiobeU4</b><b class='flag-5'>開發(fā)板</b>應用實例

    NiobeU4開發(fā)板數(shù)據(jù)手冊

    NiobeU4開發(fā)板數(shù)據(jù)手冊
    發(fā)表于 07-18 11:15 ?19次下載

    NiobeU4開發(fā)板原理圖

    NiobeU4開發(fā)板原理圖_RevV3.0
    發(fā)表于 07-18 11:15 ?17次下載