一、適用范圍
二、開發環境版本
1. VisualTFT軟件版本:V3.0.1.1133及以上的版本。
2. 串口屏硬件版本:M系列固件 >= V6.3.257.00。
版本查看:
1)查看屏幕背面版本號貼紙;
2) VisualTFT與屏幕聯機成功后,右下角顯示的版本號。
三、概述
阿里云IoT提供的一款針對生活領域的物聯網平臺,以解決家電設備快速智能化的問題。平臺針對家電智能化的設備連接、移動端控制、設備管理、數據統計等問題,提供了一整套配置化方案,大幅減低設備-云-APP的開發成本。了解阿里云平臺更多信息,詳細介紹請參考阿里云官網上《關于生活物聯網平臺》文檔。
本例程主要介紹,PW-4G系列如何用一機一密方式連接阿里云。以空調為例,對空調的溫度、開關機、模式、濾網時間等參數進行數據交互。
四、參考資料
1. 《LUA 腳本API V1.4》可通過以下鏈接下載物聯型開發包獲取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
2.《LUA基礎學習》可通過以下鏈接下載物聯型開發包獲取:
http:/www.gz-dc.com/index.php?s=/List/index/cid/19.html
3. LUA腳本初學者可以通過下面鏈接進行學習。
http://www.runoob.com/lua/lua-arrays.html
五、教程實現
本章節主要串口屏-阿里云-APP數據交互的配置流程,將分為以下3個階段講述教程DEMO是如何實現:
1. 準備工程素材;
2. 阿里云平臺配置;
3. 配置串口屏工程;
5.1.1 準備工程素材
在實現例程前需要作以下3個準備:
1. 硬件平臺;
2. 軟件平臺;
3. UI素材;
該例程使用大彩M系列7寸串口屏DC80480M070_1111_0T為驗證開發平臺。如圖5-1所示;
圖5-1M系列7寸串口屏
其他尺寸的大彩串口屏均可借鑒此教程。
5.1.2軟件平臺
使用大彩自主研發的上位機軟件VisualTFT配置工程,登錄大彩官網下載。如圖5-2所示;
圖5-2下載軟件
5.2
阿里云平臺配置
阿里云生活物聯網平臺配置流程主要包括以下7個步驟:
1.注冊賬號
2.創建工程
3.創建產品
4.功能定義
5.設備調試
6.人機交互
7.批量投產
詳細到配置流程,可參考我司《WIFI-連接阿里云教程》相應阿里云平臺配置章節說明,或可參考直接登錄阿里云官網,文檔中心查閱更多內容。
5.3配置串口屏工程
本文主要介紹以下2點:
(1)畫面配置
(2)LUA編輯
5.3.1 準備工程素材
在畫面ID0中,信號運營商、APP QR Code、APP交互變量組成。
信號運營商:圖標件ID12表示信號等級、文本控件ID13表示運營商
APP QR Code:二維碼控件,使用手機云智能APP(阿里云公辦APP)掃碼,由于是一型一密,用戶掃碼需要開發者分享授權。
APP 交互的變量:控件ID1~ID10用于顯示、設置開/關機、濾網時間、溫度、設備模式等。畫面配置如圖5-3所示:
注意:其他非關鍵控件不在一一介紹,下文不在累述
圖5-3畫面配置
5.3.2LUA編輯
本例程中,屏幕上電執行初始化操作,如加載4G AT 指令的庫、初始化和4G模塊的交互的函數、初始化4G模塊、開啟定時器獲取運營商和信號值。
4G模塊初始化完成后,提交阿里云認證,并設置mqtt相關參數、服務IP和端口等等,屏幕發出請求會話通知。一切就緒后,屏幕和云端可以進行數據交互。
1.初始化
調用系統函數on_init()執行代碼如程序清單 1所示:
溫馨提示:因平臺限制,程序清單 1初始化 請移步http://www.gz-dc.com/article/id/6733.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模塊->屏幕,返回的數據
相關AT指令:本例程中,初始化部分在on_air_resp_callback(key, value)回調函數中,需要判斷4G收發的相關AT指令,如下所示:
1)獲取運營商:
屏幕發送:AT+COPS?
屏幕接收:OK
2)獲取信號值AT:
屏幕發送:AT+CSQ
屏幕接收:OK
3)網絡數據是否激活:
屏幕發送:AT+SAPBR=1,1
屏幕接收:OK
2.提交阿里云認證
當4G初始化完成后,提交阿里云認證(三元組),代碼如程序清單 2所示:
溫馨提示:因平臺限制,程序清單 1初始化 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數
1)aliyun_get_iot_token()提交阿里云認證(三元組)和設置二維碼。
2)air_http_post (url,content_type,post_data,callback)
HTTP POST操作,例程中次數用于提交阿里云認證(三元組)。
- url:網頁URL
- content_type:自定義,參數值
- post_data:寫數據
- callback:4G數據回調函數
3)on_aliyun_get_iot_token_cb(key, value)Aliyun認證回調函數,當云端反饋正常認證后,調用系統4G AT 指令的庫
的mqtt_config()設置MTQQ參數、mqtt_tcp_start()設置服務器IP和端口。
- key:云端恢復的類型
- Value:云端恢復的數據
3.設置云端IP和端口
當云端認證成功和設置mqtt相關參數后,調用mqtt_config() 、mqtt_tcp_start() 設置云端IP和端口,調用mqtt_connect() 與服務器建立會話連接 ,代碼如程序清單 3所示:
溫馨提示:因平臺限制,程序清單3設置云端IP和端口 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數1)mqtt_config(clientid,username,password,will_qos,will_retain,will_topic,will_message)
設置 MQTT 相關參數,本例程,只需要填寫客戶身份、登陸服務器的用戶名以及密碼,其中這三個參數是有阿里云認證反饋回來的。
- status:客戶身份
- username:登錄服務器的用戶名
- password:登錄服務器的密碼
- will_qos:將要發送的信息的服務質量
- will_retain:保留標志
- will_topic:將要發送的消息的話題
- will_message:將要發送的消息內容
2)mqtt_tcp_start(srvaddr,port,ssl)
設置服務器的IP、端口
- srvad:服務器 IP 地址或 DNS 地址
- port:服務器端口
- ssl:設置為 true 時,使用SSL鏈接
3) mqtt_connect()
客戶端向服務器請求會話連接
- clean_session:會話狀態
- keepalive :保持時間
當屏幕向云端發送設置服務器IP、端口請求的時候,云端回應數據,觸發回調函數on_air_resp_callback(key, value),應答‘CONNECT OK’后,發起請求連接mqtt_connect(1,600)
4.發起連接請求
當客戶端向服務器請求會話連接成功后,客戶端對服務器訂閱主題,代碼如程序清單 4所示:
溫馨提示:因平臺限制,程序清單 4發起連接請求 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數1)mqtt_sub(topic,qos)
本命令從客戶端到服務器,用于一個或多個訂閱主題,當向服務器請求
- topic:應用程序消息的主題
- qos:申請消息的服務質量
5.接收云端信息
當用戶手機APP設置數據的時候,云端自動將數據下發給屏幕,代碼如程序清單 5所示:
溫馨提示:因平臺限制,程序清單 5接收云端數據 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數
1)cloud_on_property_set(payload)
接收云端的數據
- payload:Json格式的字符串
本例程中,假設用戶通過APP設置設備的模式,下發Json格式的字符串,數據原型如下所示:+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庫函數cjson.decode(payload)解壓數據,則data['params']['mode']為模式的值,在將值設置到對應的滑動選擇控件上:set_text(screen_ac_control,8,my_resp_mode[mode])
6.發送云端信息
當用戶觸碰控件修改值時候,屏幕會自動將數據打包成Json格式發給云端,代碼如程序清單 6所示。
溫馨提示:因平臺限制,程序清單 6發送數據到云端 請移步http://www.gz-dc.com/article/id/6733.html下載
核心API函數
1)mqtt_pub(topic,qos,retain,message)
發送數據到云端,傳送應用消息
- topic :應用程序消息的主題
- qos:申請消息的服務質量
- retain :保留標志
- message:消息內容
本例程中,假設用戶修改模式,則將數據Json格式上傳到云端,,數據原型如下所示:
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庫函數jsonStr = cjson.encode(payload)打包成Json格式的數據,則jsonStr為上傳的數據。
5.4
下載工程
工程編譯成功后在輸出窗口會提示編譯成功,如圖5-4所示。編譯成功后點擊菜單欄中【工具】→【量產向導】,如圖5-5所示;
圖5-4編譯成功
圖5-5量產向導
在菜單欄中,文件→打開工程目錄,在‘dciot_build’目錄的‘private’文件夾拷貝到SD卡中,如圖5-6和圖5-7所示;把SD卡接上串口屏后重新上電,等到提示燒錄工程成功后,拔掉SD卡重新上電即可。
圖5-6量產向導
圖5-7拷貝到SD卡
-
4G
+關注
關注
15文章
5454瀏覽量
118292 -
阿里云
+關注
關注
3文章
922瀏覽量
42779 -
串口屏
+關注
關注
8文章
518瀏覽量
37006 -
MQTT
+關注
關注
5文章
629瀏覽量
22285
發布評論請先 登錄
相關推薦
評論