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