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