眾所周知alarm鬧鐘是電子產品中常用來作為設備軟件定時開關機的一項基本功能,本文介紹如何用Air724開發板,進行鬧鐘功能演示。
一、演示功能概述
本教程教你如何用Air724開發板,進行鬧鐘的功能演示。
二、準備硬件環境
2.1 開發板準備
使用 EVB_Air724 開發板,如下圖所示:
此開發板的詳細使用說明參考:
https://docs.openluat.com/air724ug/product/
Air724UG 產品手冊中的《EVB_Air724UG_AXX 開發板使用說明》,寫這篇文章時最新版本的使用說明為:《EVB_Air724UG_A14 開發板使用說明》;開發板使用過程中遇到任何問題,可以直接參考這份使用說明文檔。
api文檔:
https://doc.openluat.com/wiki/21?wiki_page_id=2068
2.2 數據通信線
USB 數據線一根(micro USB)。
2.3 PC 電腦
WIN7以及以上版本的WINDOWS系統。
2.4 SIM 卡
中國大陸環境下,可以上網的 SIM 卡。一般來說,使用移動,電信,聯通的物聯網卡或者手機卡都行。
2.5 組裝硬件環境
USB 數據線插入 USB 口,另一端與電腦相連,撥碼開關全部撥到 ON,串口切換開關選擇 UART1,USB 供電的 4V 對應開關撥至 ON 檔,SIM 卡放到 SIM 卡槽中鎖緊,如下圖所示。
三、準備軟件環境
3.1 下載調試工具
使用說明參考:
Luatools 下載和詳細使用:
https://docs.openluat.com/Luatools/
3.2 源碼及固件
3.2.1 底層 core 下載
下載底層固件,并解壓
鏈接:
https://docs.openluat.com/air724ug/luatos/firmware/
如下圖所示,紅框的是我們要使用到的。
3.2.2 本教程使用的 demo 見附件:
https://gitee.com/openLuat/LuatOS-Air724UG/tree/master/script_LuaTask/demo/alarm
3.3 下載固件和腳本到開發板中
打開 Luatools,開發板上電開機,如開機成功 Luatools 會打印如下信息。
點擊項目管理測試選項。
進入管理界面,如下圖所示。
點擊選擇文件,選擇底層固件,我的文件放在 D:luatOSAir724 路徑中
點擊增加腳本或資源文件,選擇 之前下載的程序源碼,如下圖所示。
點擊下載底層和腳本,下載完成如下圖所示。
四、代碼示例介紹
4.1 API 說明
--注冊鬧鐘模塊
rtos.init_module(rtos.MOD_ALARM)
--注冊鬧鐘消息的處理函數(如果是開機鬧鐘,鬧鐘事件到來時會調用 alarmsg)
rtos.on(rtos.MSG_ALARM,alarMsg)
模塊進行 lua 開發的 lua 虛擬機架設在 RTOS 操作系統之上,所以在設置完系統時間,鬧鐘開關機時間之后,需要將鬧鐘消息進行注冊,才能對操作系統進行開關機啟動操作
--設定鬧鈴
rtos.set_alarm(1,onTimet.year,onTimet.month,onTimet.day,onTimet.hour,onTimet.min,onTimet.sec)
set_alarm 接口參數中的第一個參數 1 表示開啟鬧鐘,0 表示關閉鬧鐘
鬧鐘關機之后,模塊將進入超低功耗模式,此時停止解析應用層的代碼,大部分協議棧也將停止,所以鬧鐘開機需軟件主動重啟一次
4.2 testAlarm.lua 代碼
首先通過 misc.setClock()接口函數手動設置當前系統時間,該函數可傳入 table 類型的變量,依次包含年、月、日、時、分、秒等 6 個參數,設置后,系統時間即更新生效;通過 rtos.set_alarm()接口函數設置鬧鐘關機后再次開機的時間間隔,在這里修改為 60,即模塊關機 60S 后再次開機:
4.3 main.lua 代碼
本代碼為主程序腳本,系統啟動后首先會對 4G 網絡進行配置,等待網絡連接成功,然后加載測試模塊。
五、開機調試
5.1 開發板開機
連接好硬件并下載固件后,啟動 Luatools 軟件,系統運行信息將顯示在界面中。紅框中為開發板連接到 PC 機后正常打印的信息,如下圖所示。
5.2 功能調試
5.2.1 設置鬧鐘
通過misc.setClock()接口函數手動設置當前系統時間,然后通過rtos.set_alarm()接口函數設置鬧鐘關機后再次開機的時間間隔,在這里修改為60,即模塊關機開始60S后再次開機`。
5.2.2 鬧鐘時間到打印輸出
六、常見問題
6.1 為什么燒錄完 demo 之后,用戶反映不能進行鬧鐘關機?
答:demo 中已經將鬧鐘關機的函數屏蔽掉,需要用戶釋放時才能進行鬧鐘關機。
6.2 為什么燒錄完 demo 之后,用開發板測試時發現代碼中設定的時間跟我們看到的網絡時間不一樣,甚至比當前的時間早,但是還是會安裝設定的時間間隔開機?
答:demo 中設定的時間為手動設置,并沒有與網絡時間同步,模塊是以手動設定的時間為基礎計時運行。
分享完畢。
審核編輯 黃宇
-
4G
+關注
關注
15文章
5520瀏覽量
119052 -
物聯網
+關注
關注
2909文章
44634瀏覽量
373316 -
模組
+關注
關注
6文章
1492瀏覽量
30384
發布評論請先 登錄
相關推薦
評論