一、適合范圍
二、適合范圍
1. VisualTFT軟件版本:V3.0.1.1112及以上的版本。
2. 串口屏硬件版本:M系列固件 >= V6.3.257.00。
三、概述
本例程中,通過獲取天氣、定位來介紹4G的HTTP GET的應用。
四、參考資料
《LUA 腳本API V1.4》可通過以下鏈接下載物聯型開發包獲取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
《LUA基礎學習》可通過以下鏈接下載物聯型開發包獲取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
LUA腳本初學者可以通過下面鏈接進行學習。
http://www.runoob.com/lua/lua-arrays.html
AT指令,可以通過下面子連接了解
http://www.openluat.com/Product/file/asr1802/Luat%204G模塊AT命令手冊V4.2.8.pdf
百度地圖API逆地址解析:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
付費:https://www.tianqiapi.com/index/doc?version=v61
免費:https://www.tianqiapi.com/index/doc?version=v6
五、教程實現
本文主要將以下2點進行說明:
1. 準備工程素材;
2. 配置串口屏工程;
5.1 準備工程素材
5.1.1準備工程素材
在實現例程前需要作以下3個準備:
1.硬件平臺;
2.軟件平臺;
3.UI素材;
該例程使用大彩M系列7寸串口屏DC80480M070_1111_0T為驗證開發平臺。如圖5-1所示;
圖5-1M系列7寸串口屏
其他尺寸的串口屏均可借鑒此教程。
5.1.2軟件平臺
使用大彩自主研發的上位機軟件VisualTFT配置工程,登錄http://www.gz-dc.com/下載。如圖5-2所示;
圖5-2下載軟件
5.2 配置串口屏工程
本文主要介紹以下2點:
(1)畫面配置
(2)LUA編輯
5.2.1畫面配置
在畫面ID0中,SIM卡信息顯示、地點、時間及天氣4部分組成。
SIM卡信息:圖標件ID1表示信號等級、文本控件ID2表示運營商、文本控件ID3用于顯示SIM卡ID。
地點:文本控件ID7于顯示所在的城市。
時間日期:文本控件ID5用于顯示時間,文本控件ID6用于顯示日期。
溫度天氣:文本控件ID8顯示溫度,文本控件ID9用于用于顯示天氣描述(多云、晴等),圖標控件ID10顯示多云等等的圖標。
畫面配置如圖5-3所示:
注意:其他非關鍵控件不在一一介紹,下文不在累述
圖5-3畫面配置
5.2..2LUA編輯
本例程中,屏幕上電執行初始化操作,如加載4G AT 指令的庫、初始化和4G模塊的交互的函數、初始化4G模塊、開啟定時器獲取運營商和信號值。
當4G模塊初始化完成后,獲取運營商/信號值以及獲取經緯度。當4G模塊返回對應經緯度后,根據經緯度得到所在城市,在根據城市獲取該城市的氣溫以及天氣狀態。流程如下所示。
1.初始化
調用系統函數on_init()執行代碼如程序清單 1所示:
溫馨提示:因平臺限制, 程序清單1初始化 請移步下載http://www.gz-dc.com/article/id/6645.html
核心API函數
1)dofile (filename)
加載文件:本例程中加載4G AT 指令的庫
- filename-文件名
設置串口3的波特率:串口3為屏幕和4G模塊通訊的串口
- speed–通訊的波特率
3)on_air_recv_data(packet)
串口接收4G模塊的返回數據的回調。
- packet:形參為表,字節數據。
4)air_set_callback (on_air_send_cb,on_air_resp_callback,on_air_log_cb)
設置4G庫函數的回調。形參類型為函數,參數依次為命令發送函數,命令回調函數、調試信息打印函數,可自定義函數名。
- on_air_send_cb:屏幕向4G模塊發送回調函數
- on_air_resp_callback:4G向屏幕返回數據回調函數
- on_air_log_cb:用戶調試信息回調函數調試
5)at_cops_csq()
自定義封裝函數,獲取運行商和信號值
6)air_cmd_add(sendstr,ackstr,timeout,retry,callback)
屏幕向4G模塊發送AT指令
- sendstr:屏幕向4G模塊發送AT指令
- ackstr:4G模塊應答屏幕的請求
- timeou:應答超時
- retry:超時重發次數,可選
- callback:應答回調函數,可選
注:如果沒有設置超時重發次數,則超時時直接發送隊列中的下一條指令。
7)on_air_resp_callback(key, value)
4G應答屏幕回調函數:屏幕發送AT指令,4G應答后均會回調該函數,本函數如air_set_callback(on_air_send_cb,on_air_resp_callback,on_air_log_cb)函數設置。
- key:屏幕->4G模塊,發送請求的AT指令
- value:4G模塊->屏幕,返回的數據
2.獲取經緯度
當4G初始化完成后,獲取經緯度,代碼如程序清單 2所示:
溫馨提示:因平臺限制,程序清單 2獲取經緯度 請移步下載http://www.gz-dc.com/article/id/6645.html
核心API函數
1)get_local_latitude_longitude()
獲取經緯度。屏幕向4G模塊發送獲取經緯度的AT指令’AT+CIPGSMLOC=1,1’,在on_air_resp_callback回調函數解析返回的數據。
3.獲取城市名
當獲取經緯度后,根據經緯度,獲取所在的城市,代碼如程序清單 3所示:
溫馨提示:因平臺限制,程序清單3獲取所在城市 請移步下載http://www.gz-dc.com/article/id/6645.html
核心API函數
1)baiduAPI_get_local ()
函數內部封裝4G AT指令集HTTP Get資源請求函數air_http_get(),本例程中根據百度提供的資源接口,拼接經緯度發送請求。若百度響應改請求,則觸發回到平baiduAPI_get_local_cb()函數。
4.獲取時間/天氣
當獲取經中文城市名稱后,獲取所在的該城市的溫度和天氣,代碼程序清單 4所示:
溫馨提示:因平臺限制, 程序清單 4獲取天氣 請移步下載http://www.gz-dc.com/article/id/6645.html
核心API函數
1)http_get_wea_and_tim e()
函數內部封裝4G AT指令集HTTP Get資源請求函數air_http_get(),本例程中根據濟南易客云網絡科技提供付費和免費的資源接口。其中免費的訪問獲取次數是200次/天,付費的是5000次/天。該服務器響應請求自動回調on_get_wea_cb處理響應的信息。同理,獲取同步云端時間調用http_get_time()即可。
5.3下載工程
在菜單欄中,文件→打開工程目錄,在‘dciot_build’目錄的‘private’文件夾拷貝到SD卡中,如圖5-4和圖5-5所示;把SD卡接上串口屏后重新上電,等到提示燒錄工程成功后,拔掉SD卡重新上電即可。
圖5-4下載文件
圖5-5拷貝到SD卡
-
4G
+關注
關注
15文章
5523瀏覽量
119183 -
定位
+關注
關注
5文章
1333瀏覽量
35409 -
串口屏
+關注
關注
8文章
535瀏覽量
37470 -
天氣預報
+關注
關注
0文章
8瀏覽量
7411
發布評論請先 登錄
相關推薦
評論