一、適用范圍
本文檔適合大彩PM 4G系列串口屏產(chǎn)品使用。
二、開發(fā)環(huán)境版本
1. VisualTFT軟件版本:V3.0.1.1133及以上的版本。
2. 串口屏硬件版本:M系列固件 >= V6.3.257.00。
版本查看:
1)查看屏幕背面版本號(hào)貼紙;
2) VisualTFT與屏幕聯(lián)機(jī)成功后,右下角顯示的版本號(hào)。
三、概述
阿里云IoT提供的一款針對生活領(lǐng)域的物聯(lián)網(wǎng)平臺(tái),以解決家電設(shè)備快速智能化的問題。平臺(tái)針對家電智能化的設(shè)備連接、移動(dòng)端控制、設(shè)備管理、數(shù)據(jù)統(tǒng)計(jì)等問題,提供了一整套配置化方案,大幅減低設(shè)備-云-APP的開發(fā)成本。了解阿里云平臺(tái)更多信息,詳細(xì)介紹請參考阿里云官網(wǎng)上《關(guān)于生活物聯(lián)網(wǎng)平臺(tái)》文檔。
本例程主要介紹,PW-4G系列如何用一機(jī)一密方式連接阿里云。以空調(diào)為例,對空調(diào)的溫度、開關(guān)機(jī)、模式、濾網(wǎng)時(shí)間等參數(shù)進(jìn)行數(shù)據(jù)交互。
四、參考資料
1. 《LUA 腳本API V1.4》可通過以下鏈接下載物聯(lián)型開發(fā)包獲取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
2.《LUA基礎(chǔ)學(xué)習(xí)》可通過以下鏈接下載物聯(lián)型開發(fā)包獲取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
3. LUA腳本初學(xué)者可以通過下面鏈接進(jìn)行學(xué)習(xí)。
http://www.runoob.com/lua/lua-arrays.html
五、教程實(shí)現(xiàn)
本章節(jié)主要串口屏-阿里云-APP數(shù)據(jù)交互的配置流程,將分為以下3個(gè)階段講述教程DEMO是如何實(shí)現(xiàn):
1. 準(zhǔn)備工程素材;
2. 阿里云平臺(tái)配置;
3. 配置串口屏工程;
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-1M系列7寸串口屏
其他尺寸的大彩串口屏均可借鑒此教程。
5.1.2軟件平臺(tái)
使用大彩自主研發(fā)的上位機(jī)軟件VisualTFT配置工程,登錄大彩官網(wǎng)下載。如圖5-2所示;

圖5-2下載軟件
5.2
阿里云平臺(tái)配置
阿里云生活物聯(lián)網(wǎng)平臺(tái)配置流程主要包括以下7個(gè)步驟:
1.注冊賬號(hào)
2.創(chuàng)建工程
3.創(chuàng)建產(chǎn)品
4.功能定義
5.設(shè)備調(diào)試
6.人機(jī)交互
7.批量投產(chǎn)
詳細(xì)到配置流程,可參考我司《WIFI-連接阿里云教程》相應(yīng)阿里云平臺(tái)配置章節(jié)說明,或可參考直接登錄阿里云官網(wǎng),文檔中心查閱更多內(nèi)容。
5.3配置串口屏工程
本文主要介紹以下2點(diǎn):
(1)畫面配置
(2)LUA編輯
5.3.1 準(zhǔn)備工程素材
在畫面ID0中,信號(hào)運(yùn)營商、APP QR Code、APP交互變量組成。
信號(hào)運(yùn)營商:圖標(biāo)件ID12表示信號(hào)等級(jí)、文本控件ID13表示運(yùn)營商
APP QR Code:二維碼控件,使用手機(jī)云智能APP(阿里云公辦APP)掃碼,由于是一型一密,用戶掃碼需要開發(fā)者分享授權(quán)。
APP 交互的變量:控件ID1~ID10用于顯示、設(shè)置開/關(guān)機(jī)、濾網(wǎng)時(shí)間、溫度、設(shè)備模式等。畫面配置如圖5-3所示:
注意:其他非關(guān)鍵控件不在一一介紹,下文不在累述

圖5-3畫面配置
5.3.2LUA編輯
本例程中,屏幕上電執(zhí)行初始化操作,如加載4G AT 指令的庫、初始化和4G模塊的交互的函數(shù)、初始化4G模塊、開啟定時(shí)器獲取運(yùn)營商和信號(hào)值。
4G模塊初始化完成后,提交阿里云認(rèn)證,并設(shè)置mqtt相關(guān)參數(shù)、服務(wù)IP和端口等等,屏幕發(fā)出請求會(huì)話通知。一切就緒后,屏幕和云端可以進(jìn)行數(shù)據(jù)交互。

1.初始化
調(diào)用系統(tǒng)函數(shù)on_init()執(zhí)行代碼如程序清單 1所示:
溫馨提示:因平臺(tái)限制,程序清單 1初始化 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數(shù)
1)dofile (filename)
加載文件:本例程中加載4G AT 指令的庫
- filename :文件名
設(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)答屏幕的請求
- timeou :應(yīng)道超時(shí)時(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ā)送請求的AT指令
- value :4G模塊->屏幕,返回的數(shù)據(jù)
相關(guān)AT指令:本例程中,初始化部分在on_air_resp_callback(key, value)回調(diào)函數(shù)中,需要判斷4G收發(fā)的相關(guān)AT指令,如下所示:
1)獲取運(yùn)營商:
屏幕發(fā)送:AT+COPS?
屏幕接收:OK
2)獲取信號(hào)值A(chǔ)T:
屏幕發(fā)送:AT+CSQ
屏幕接收:OK
3)網(wǎng)絡(luò)數(shù)據(jù)是否激活:
屏幕發(fā)送:AT+SAPBR=1,1
屏幕接收:OK
2.提交阿里云認(rèn)證
當(dāng)4G初始化完成后,提交阿里云認(rèn)證(三元組),代碼如程序清單 2所示:
溫馨提示:因平臺(tái)限制,程序清單 1初始化 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數(shù)
1)aliyun_get_iot_token()提交阿里云認(rèn)證(三元組)和設(shè)置二維碼。
2)air_http_post (url,content_type,post_data,callback)
HTTP POST操作,例程中次數(shù)用于提交阿里云認(rèn)證(三元組)。
- url:網(wǎng)頁URL
- content_type:自定義,參數(shù)值
- post_data:寫數(shù)據(jù)
- callback:4G數(shù)據(jù)回調(diào)函數(shù)
3)on_aliyun_get_iot_token_cb(key, value)Aliyun認(rèn)證回調(diào)函數(shù),當(dāng)云端反饋正常認(rèn)證后,調(diào)用系統(tǒng)4G AT 指令的庫
的mqtt_config()設(shè)置MTQQ參數(shù)、mqtt_tcp_start()設(shè)置服務(wù)器IP和端口。
- key:云端恢復(fù)的類型
- Value:云端恢復(fù)的數(shù)據(jù)
3.設(shè)置云端IP和端口
當(dāng)云端認(rèn)證成功和設(shè)置mqtt相關(guān)參數(shù)后,調(diào)用mqtt_config() 、mqtt_tcp_start() 設(shè)置云端IP和端口,調(diào)用mqtt_connect() 與服務(wù)器建立會(huì)話連接 ,代碼如程序清單 3所示:
溫馨提示:因平臺(tái)限制,程序清單3設(shè)置云端IP和端口 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數(shù)1)mqtt_config(clientid,username,password,will_qos,will_retain,will_topic,will_message)
設(shè)置 MQTT 相關(guān)參數(shù),本例程,只需要填寫客戶身份、登陸服務(wù)器的用戶名以及密碼,其中這三個(gè)參數(shù)是有阿里云認(rèn)證反饋回來的。
- status:客戶身份
- username:登錄服務(wù)器的用戶名
- password:登錄服務(wù)器的密碼
- will_qos:將要發(fā)送的信息的服務(wù)質(zhì)量
- will_retain:保留標(biāo)志
- will_topic:將要發(fā)送的消息的話題
- will_message:將要發(fā)送的消息內(nèi)容
2)mqtt_tcp_start(srvaddr,port,ssl)
設(shè)置服務(wù)器的IP、端口
- srvad:服務(wù)器 IP 地址或 DNS 地址
- port:服務(wù)器端口
- ssl:設(shè)置為 true 時(shí),使用SSL鏈接
3) mqtt_connect()
客戶端向服務(wù)器請求會(huì)話連接
- clean_session:會(huì)話狀態(tài)
- keepalive :保持時(shí)間
當(dāng)屏幕向云端發(fā)送設(shè)置服務(wù)器IP、端口請求的時(shí)候,云端回應(yīng)數(shù)據(jù),觸發(fā)回調(diào)函數(shù)on_air_resp_callback(key, value),應(yīng)答‘CONNECT OK’后,發(fā)起請求連接mqtt_connect(1,600)
4.發(fā)起連接請求
當(dāng)客戶端向服務(wù)器請求會(huì)話連接成功后,客戶端對服務(wù)器訂閱主題,代碼如程序清單 4所示:
溫馨提示:因平臺(tái)限制,程序清單 4發(fā)起連接請求 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數(shù)1)mqtt_sub(topic,qos)
本命令從客戶端到服務(wù)器,用于一個(gè)或多個(gè)訂閱主題,當(dāng)向服務(wù)器請求
- topic:應(yīng)用程序消息的主題
- qos:申請消息的服務(wù)質(zhì)量
5.接收云端信息
當(dāng)用戶手機(jī)APP設(shè)置數(shù)據(jù)的時(shí)候,云端自動(dòng)將數(shù)據(jù)下發(fā)給屏幕,代碼如程序清單 5所示:
溫馨提示:因平臺(tái)限制,程序清單 5接收云端數(shù)據(jù) 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數(shù)
1)cloud_on_property_set(payload)
接收云端的數(shù)據(jù)
- payload:Json格式的字符串
本例程中,假設(shè)用戶通過APP設(shè)置設(shè)備的模式,下發(fā)Json格式的字符串,數(shù)據(jù)原型如下所示:+MSUB:"/sys/a1D2E9vaSuZ/PlYPGnoYWeUJujy0li2a/thing/service/property/set",95 byte,{"method":"thing.service.property.set","id":"2032042748","params":{"mode":3},"version":"1.0.0"}通過Json庫函數(shù)cjson.decode(payload)解壓數(shù)據(jù),則data['params']['mode']為模式的值,在將值設(shè)置到對應(yīng)的滑動(dòng)選擇控件上:set_text(screen_ac_control,8,my_resp_mode[mode])
6.發(fā)送云端信息
當(dāng)用戶觸碰控件修改值時(shí)候,屏幕會(huì)自動(dòng)將數(shù)據(jù)打包成Json格式發(fā)給云端,代碼如程序清單 6所示。
溫馨提示:因平臺(tái)限制,程序清單 6發(fā)送數(shù)據(jù)到云端 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數(shù)
1)mqtt_pub(topic,qos,retain,message)
發(fā)送數(shù)據(jù)到云端,傳送應(yīng)用消息
- topic :應(yīng)用程序消息的主題
- qos:申請消息的服務(wù)質(zhì)量
- retain :保留標(biāo)志
- message:消息內(nèi)容
本例程中,假設(shè)用戶修改模式,則將數(shù)據(jù)Json格式上傳到云端,,數(shù)據(jù)原型如下所示:
AT+MPUB="/sys/a1D2E9vaSuZ/PlYPGnoYWeUJujy0li2a/thing/event/property/post",0,0,"{22version22:221.022,22params22:{22mode22:0,22targetTemperature22:27},22id22:226122,22method22:22thing.event.property.post22}"通過Json庫函數(shù)jsonStr = cjson.encode(payload)打包成Json格式的數(shù)據(jù),則jsonStr為上傳的數(shù)據(jù)。
5.4
下載工程
工程編譯成功后在輸出窗口會(huì)提示編譯成功,如圖5-4所示。編譯成功后點(diǎn)擊菜單欄中【工具】→【量產(chǎn)向?qū)А浚鐖D5-5所示;

圖5-4編譯成功

圖5-5量產(chǎn)向?qū)?/span>
在菜單欄中,文件→打開工程目錄,在‘dciot_build’目錄的‘private’文件夾拷貝到SD卡中,如圖5-6和圖5-7所示;把SD卡接上串口屏后重新上電,等到提示燒錄工程成功后,拔掉SD卡重新上電即可。

圖5-6量產(chǎn)向?qū)?/span>

圖5-7拷貝到SD卡
-
4G
+關(guān)注
關(guān)注
15文章
5558瀏覽量
120420 -
阿里云
+關(guān)注
關(guān)注
3文章
998瀏覽量
43713 -
串口屏
+關(guān)注
關(guān)注
8文章
573瀏覽量
37968 -
MQTT
+關(guān)注
關(guān)注
5文章
661瀏覽量
23318
發(fā)布評論請先 登錄
相關(guān)推薦
《DNESP32S3使用指南-IDF版_V1.6》第五十五章 基于MQTT協(xié)議連接阿里云服務(wù)器
用txb0102給華為4g模塊串口通訊,輸入波形失真嚴(yán)重的原因?
白嫖篇:4G 模組 MQTT 通信功能!

esp8266連接阿里云平臺(tái)時(shí)mqtt連接超時(shí)
4G模塊聯(lián)網(wǎng)問題
PLC轉(zhuǎn)MQTT OPC UA網(wǎng)關(guān)實(shí)現(xiàn)工業(yè)設(shè)備與阿里云平臺(tái)的互聯(lián)互通

通過鋇錸PLC轉(zhuǎn)MQTT網(wǎng)關(guān)實(shí)現(xiàn)PLC數(shù)據(jù)上傳至阿里云平臺(tái)


帶DTU串口透傳功能的工業(yè)4G路由器:4G DTU模塊路由器串口RS232/485轉(zhuǎn)4G網(wǎng)絡(luò)數(shù)據(jù)雙向透傳
鋇錸Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)BL101支持一鍵對接阿里云平臺(tái)

鋇錸Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)BL100支持一鍵對接阿里云平臺(tái)

MODBUS轉(zhuǎn)MQTT網(wǎng)關(guān)集成32 位高性能微處理器,實(shí)現(xiàn)modbus轉(zhuǎn)mqtt

評論