今天我們學習合宙低功耗4G模組Air780E篇:採集溫溼度感測器資料並實現網頁檢視,以下進入正文。
一、硬體裝備
1.1 硬體連線
使用跳線帽將IO_SEL連線3.3V,給引腳供3.3V的電。dht11模組的out引腳連線780E開發板的一個引腳,具體哪個可以自己更改,這個demo中使用的是7號引腳。具體實物圖如下:
二、編寫指令碼
2.1 實現流程圖
2.2 程式詳解
第一步:等待聯網
sys.waitUntil("IP_READY")
第二步:聯網成功後,建立socket
-- 申請一個socket_ctrl
--[[
@param1 適配的網路卡,nil為採用預設網路卡
@param2 訊息通知的taskName,此處先隨意填一個即可
]]
local netc = socket.create(nil,"MySocket")
第三步:配置network資訊
local host = "netlab.luatos.com" -- 伺服器ip或者域名, 都可以的
local is_udp = true -- 如果是UDP, 要改成true, false就是TCP
local is_tls = false -- 加密與否, 要看伺服器的實際情況
--[[配置network一些資訊
@param1 socket_ctrl
@param2 本地埠號,不寫會自動分配一個
@parma3 是否是UDP
@param4 是否是加密傳輸
]]
socket.config(netc, nil, is_udp, is_tls)
第四步:連線伺服器。
local port = 47966 -- 伺服器埠號
--[[
@param1 socket_ctrl
@param2 ip地址
@parma3 埠號
]]
local result = socket.connect(netc, host, port)
第五步:呼叫dht11介面讀取溫溼度的值。
--[[讀取dht11感測器的數值
@param1 dht11的out引腳連線780E開發板的引腳號
@param2 是否校驗讀取到的值,true為校驗
@return1 溼度值,單位為0.01%
@return2 溫度值 單位為0.01%
@return 成功返回true,失敗返回false
]]
local h,t,r = sensor.dht1x(dht11_pin, true)
第六步:將溫溼度資料上報。
--[[將溫溼度的資料上傳到web伺服器
@param1 socket.create()建立的socket_ctrl
@param2 要傳送的溫溼度資料
]]
local succ,full,result = socket.tx(netc,data)
三、燒錄程式碼到硬體
3.1 正確連線電、4G模組電路板
使用帶有資料通訊功能的資料線,不要使用僅有充電功能的資料線;
3.2 識別4G模組的boot引腳
在下載之前,要用模組的boot引腳觸發下載, 也就是說,要把4G模組的boot引腳拉到 1.8v,或者直接把boot引腳和VDD_EXT引腳相連。我們要在按下BOOT按鍵時讓模組開機,就可以進入下載模式了。
具體到 Air780E開發板,
3.2.1 當我們模組沒開機時,按著BOOT鍵然後長按PWR開機。
3.2.2 當我們模組開機時,按著BOOT鍵然後點按重啟鍵即可。
3.3 識別電腦的正確埠
判斷是否進入BOOT模式:模組上電,此時在電腦的裝置管理器中,檢視串列埠裝置, 會出現一個埠表示進入了boot下載模式,如下圖所示:
當裝置管理器出現了3個連續數字的com埠,並且每個數字都大於4,這時候, 硬體連線上就緒狀態,恭喜你,可以進行燒錄了!
3.4 新建專案
首先,確保你的 LuaTools 的版本,上大於 2.2.13 版本的。
在 LuaTools 的左上角上有版本顯示的,如圖所示:
LuaTools 版本沒問題的話, 就點選 LuaTOols 右上角的“專案管理測試”按鈕,如下圖所示:
這時會彈出專案管理和燒錄管理的對話方塊,如下圖:
新建一個專案
注意:這裡截圖使用的hello world專案的燒錄教程圖片,燒錄的時候要將指令碼換成本次demo的。
3.5 開始燒錄
選擇780E板子對應的底層core和剛改的main.lua指令碼檔案。下載到板子中。
點選下載後,我們需要進入boot模式才能正常下載,在(3)(4)小節已經介紹瞭如何進入boot模式。
四、驗證功能
1. 連線伺服器
2. 更改埠號
3. 效果展示
六、擴充套件
使用TCP連線伺服器傳輸資料。只需要在網頁端開啟TCP連線,然後在程式中將is_udp改為false。
你學會了嗎?