0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

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

3天內不再提示

AWTK 開源串口屏開發(fā)(11) - 天氣預報

ZLG致遠電子 ? 2024-03-05 08:24 ? 次閱讀

AWTK 串口屏內置了 XML/JSON/INI 等各種數(shù)據(jù)文件的模型,并支持用 HTTP/HTTPS 從網絡獲取數(shù)據(jù)。不用編寫一行代碼,即可實現(xiàn)天氣預報、股票行情、航班查詢和快遞查詢等功能。天氣預報是一個很常用的功能,在很多設備上都有這個功能。實現(xiàn)天氣預報的功能,不能說很難但是也絕不簡單,首先需要從網上獲取數(shù)據(jù),再解析數(shù)據(jù),最后更新到界面上。

在 AWTK 串口屏中,內置了 XML/JSON/INI 等各種數(shù)據(jù)文件的模型,并支持用 HTTP/HTTPS 從網絡獲取數(shù)據(jù)。所以實現(xiàn)天氣預報非常簡單,不用編寫一行代碼即可實現(xiàn)天氣預報的功能。而且用同樣的方式,也可以實現(xiàn)其它功能,比如:股票行情、新聞、公交查詢、火車查詢、航班查詢、快遞查詢等等。

實現(xiàn)一個顯示天氣信息的應用程序。這個是免費的,無需注冊的 API,當然也有些限制,在實際工作中,你可以換成自己的接口。

它返回的數(shù)據(jù)是 JSON 格式的,如下所示:

{ "message": "success 感謝又拍云 (upyun.com) 提供 CDN 贊助", "status": 200, "date": "20240101", "time": "2024-01-01 0813", "cityInfo": { "city": "天津市", "citykey": "101030100", "parent": "天津", "updateTime": "08:01" }, "data": { "shidu": "86%", "pm25": 57.0, "pm10": 93.0, "quality": "良", "wendu": "-7", "ganmao": "極少數(shù)敏感人群應減少戶外活動", "forecast": [。 ], "yesterday": { "date": "31", "high": "高溫 1℃", "low": "低溫 -3℃", "ymd": "2023-12-31", "week": "星期日", "sunrise": "07:30", "sunset": "16:57", "aqi": 35, "fx": "北風", "fl": "2 級", "type": "晴", "notice": "愿你擁有比陽光明媚的心情" } }}

AWTK 串口屏中的json 模型,支持用下面的語法從網絡獲取數(shù)據(jù),它會自動解析 JSON 數(shù)據(jù),并生成一個模型,通過路徑可以引用模型中的數(shù)據(jù)。

json(url=http://t.weather.sojson.com/api/weather/city/101030100)

網上有很多天氣預報的接口,這里只是舉個例子,如果你有自己的接口,可以用自己的接口。


1. 功能

不用編寫代碼,實現(xiàn)天氣預報。

2. 創(chuàng)建項目

從模板創(chuàng)建項目,將 hmi/template_app 拷貝 hmi/weather 即可。

第一個項目最好不要放到其它目錄,因為放到其它目錄需要修改配置文件中的路徑,等熟悉之后再考慮放到其它目錄。路徑中也不要中文和空格,避免不必要的麻煩。


3. 制作界面

用 AWStudio 打開上面 weather 目錄下的 project.json 文件。里面有一個空的窗口,做出類似下面的界面。bcd165a6-da86-11ee-9118-92fbcf53809c.png

4. 添加綁定規(guī)則

4.1 城市

綁定屬性

綁定規(guī)則

說明

v-data:value

{cityInfo.city}

不同的 JSON API 需要使用不同的路徑,請根據(jù)具體的 JSON 數(shù)據(jù)填寫

4.2 溫度

綁定屬性綁定規(guī)則說明
v-data:value{data.wendu}

不同的JSONAPI需要使用不同的路徑,請根據(jù)具體的JSON數(shù)據(jù)填寫

4.3濕度

綁定屬性綁定規(guī)則說明
v-data:value{data.shidu}

不同的JSONAPI需要使用不同的路徑,請根據(jù)具體的JSON數(shù)據(jù)填寫

4.4PM2.5

綁定屬性綁定規(guī)則說明
v-data:value{data.pm25}

不同的JSONAPI需要使用不同的路徑,請根據(jù)具體的JSON數(shù)據(jù)填寫

4.5空氣質量

綁定屬性綁定規(guī)則說明
v-data:value{data.quality}

不同的JSONAPI需要使用不同的路徑,請根據(jù)具體的JSON數(shù)據(jù)填寫

4.6感冒指數(shù)

綁定屬性綁定規(guī)則說明
v-data:value{data.ganmao}

不同的JSONAPI需要使用不同的路徑,請根據(jù)具體的JSON數(shù)據(jù)填寫

4.7 刷新按鈕

  • 刷新按鈕的點擊事件綁定到 reload 命令。添加自定義的屬性 v-on:click,將值設置為{reload}。

綁定屬性

綁定規(guī)則

說明

v-on:click

{reload}

reload 命令是內置的命令,用于重新加載持久化的配置,命令要用英文大括號括起來。

4.8 窗口模型

指定窗口的模型為 json, url 為:

  • http://t.weather.sojson.com/api/weather/city/101030100

綁定屬性

綁定規(guī)則

說明

v-model

json(url=http://t.weather.sojson.com/api/weather/city/101030100)

不同的 JSON API 需要使用不同的 URL,可以換成自己的 URL


5. 初始化數(shù)據(jù)

6. 描述需要持久化的數(shù)據(jù)

7. 編譯運行

運行 bin 目錄下的 demo 程序:

bce92ff6-da86-11ee-9118-92fbcf53809c.png

點擊刷新按鈕,可以重新加載數(shù)據(jù),但是通常界面沒有變化,因為天氣數(shù)據(jù)沒有變化。


8. 注意

  • 本項目并沒有編寫界面相關的代碼,AWStudio 在 src/pages 目錄下生成了一些代碼框架,這些代碼并沒有用到,可以刪除也可以不用管它,但是不能加入編譯。
  • 完整示例請參考:demo_weather。

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

    關注

    3

    文章

    3627

    瀏覽量

    43548
  • 串口屏
    +關注

    關注

    8

    文章

    578

    瀏覽量

    38164
  • awtk
    +關注

    關注

    0

    文章

    50

    瀏覽量

    357
收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    labview天氣預報

    `用labview寫的天氣預報,信息比較多,懶得分析,你們各取所需吧!`
    發(fā)表于 07-28 14:49

    基于ESP32 WiFi連接天氣預報機的設計方案

    描述WeatherBot - 3D 打印天氣預報劇院 | ESP32 和 OpenWeatherMap如何 3D 打印/激光切割帶有 E-ink 顯示的 ESP32 WiFi 連接天氣預報劇院
    發(fā)表于 06-30 06:49

    Android智能手機天氣預報系統(tǒng)設計及實現(xiàn)

    Android智能手機天氣預報系統(tǒng)設計及實現(xiàn)
    發(fā)表于 01-14 11:22 ?23次下載

    基于天氣預報的自動灌溉系統(tǒng)

    電子發(fā)燒友網站提供《基于天氣預報的自動灌溉系統(tǒng).zip》資料免費下載
    發(fā)表于 10-31 14:47 ?2次下載
    基于<b class='flag-5'>天氣預報</b>的自動灌溉系統(tǒng)

    Zambreti天氣預報開源分享

    電子發(fā)燒友網站提供《Zambreti天氣預報開源分享.zip》資料免費下載
    發(fā)表于 11-01 14:30 ?0次下載
    Zambreti<b class='flag-5'>天氣預報</b>器<b class='flag-5'>開源</b>分享

    WhatsApp地圖和天氣預報聊天機器人開源

    電子發(fā)燒友網站提供《WhatsApp地圖和天氣預報聊天機器人開源.zip》資料免費下載
    發(fā)表于 12-12 09:32 ?0次下載
    WhatsApp地圖和<b class='flag-5'>天氣預報</b>聊天機器人<b class='flag-5'>開源</b>

    基于ESP8266-01的天氣預報

    電子發(fā)燒友網站提供《基于ESP8266-01的天氣預報.zip》資料免費下載
    發(fā)表于 01-31 14:36 ?5次下載
    基于ESP8266-01的<b class='flag-5'>天氣預報</b>

    Arduino天氣預報小矮人

    電子發(fā)燒友網站提供《Arduino天氣預報小矮人.zip》資料免費下載
    發(fā)表于 02-08 16:09 ?0次下載
    Arduino<b class='flag-5'>天氣預報</b>小矮人

    ESP8266獲取天氣預報信息,并使用CJSON解析天氣預報數(shù)據(jù)

    當前文章介紹如何使用ESP8266和STM32微控制器,搭配OLED顯示,制作一個能夠實時顯示天氣預報的智能設備。將使用心知天氣API來獲取天氣數(shù)據(jù),并使用MQTT協(xié)議將數(shù)據(jù)傳遞給S
    的頭像 發(fā)表于 04-27 13:45 ?2926次閱讀

    天氣預報顯示開源項目

    電子發(fā)燒友網站提供《天氣預報顯示開源項目.zip》資料免費下載
    發(fā)表于 06-14 10:47 ?0次下載
    <b class='flag-5'>天氣預報</b>顯示<b class='flag-5'>開源</b>項目

    自動播放器播放天氣預報

    電子發(fā)燒友網站提供《自動播放器播放天氣預報.zip》資料免費下載
    發(fā)表于 06-16 10:15 ?0次下載
    自動播放器播放<b class='flag-5'>天氣預報</b>

    DIY簡單的天氣預報裝置

    電子發(fā)燒友網站提供《DIY簡單的天氣預報裝置.zip》資料免費下載
    發(fā)表于 07-03 10:16 ?0次下載
    DIY簡單的<b class='flag-5'>天氣預報</b>裝置

    物聯(lián)網迷你天氣預報開源分享

    電子發(fā)燒友網站提供《物聯(lián)網迷你天氣預報開源分享.zip》資料免費下載
    發(fā)表于 07-12 11:14 ?0次下載
    物聯(lián)網迷你<b class='flag-5'>天氣預報</b><b class='flag-5'>開源</b>分享

    AWTK 開源智能串口方案

    AWTK開源智能串口方案發(fā)布,旨在解決傳統(tǒng)串口諸多痛點,為用戶提供更開放、更易用、更強大的
    的頭像 發(fā)表于 12-02 08:24 ?1336次閱讀
    <b class='flag-5'>AWTK</b> <b class='flag-5'>開源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案

    ?【AWTK開源智能串口方案】方案介紹和工作原理

    本篇文章介紹一下AWTK開源智能串口方案的基本原理和實際使用效果,包括主要特點、應用場景、工作原理以及簡單的Demo演示。引言:AWTK-
    的頭像 發(fā)表于 12-21 08:24 ?1415次閱讀
    ?【<b class='flag-5'>AWTK</b><b class='flag-5'>開源</b>智能<b class='flag-5'>串口</b><b class='flag-5'>屏</b>方案】方案介紹和工作原理

    電子發(fā)燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品