2.9-Air302(NB-IOT)-基礎外設-休眠低功耗實驗


<p><iframe name="ifd" src="https://mnifdv.cn/resource/cnblogs/Learn-NB-IOT-Air302-ForLua" frameborder="0" scrolling="auto" width="100%" height="1500"></iframe></p>

 

說明

這節只是測試一下實現低功耗的程序,如果用戶想做低功耗,請注意一下幾點

1.鋰電池直接接模組供電,不要加任何各種沒有必要的電路(也不要加任何指示燈)

留出來復位和BOOT按鍵;下載接口即可;

下圖是我采集NTC BC3950的電路 (加3401是為了控制傳感器供電)

 

 

2.購買NB卡的時候,記得給廠商說明需要做低功耗

默認購買的NB卡可能沒有設置成低功耗功能

讓客服在后台改一下就可以.

 

程序

-- LuaTools需要PROJECT和VERSION這兩個信息
PROJECT = "adcdemo"
VERSION = "1.0.0"

-- 一定要添加sys.lua !!!!
local sys = require "sys"


--PM異常喚醒檢測  休眠時間最低120S
--- pm_wakeup_time_check() 讀取上次設置hib時間,並且與本次時間作比較,異常喚醒將直接睡眠
-- @return 無
function pm_wakeup_time_check ()
    log.info("pm", pm.lastReson())
    if pm.lastReson() == 1 then
        local tdata = lpmem.read(512, 6) -- 0x5A 0xA5, 然后一個32bit的taskInit
        local _, mark, tsleep = pack.unpack(tdata, ">HI")
        if mark == 0x5AA5 then
            local tnow = os.time()
            log.info("pm", "sleep time", tsleep, tnow)
            --下面的130S根據休眠時間設置,最大可以設置休眠時間-10S。
            if tnow - tsleep < (130 - 10) then
                pm.request(pm.HIB) -- 建議休眠
                return -- 是提前喚醒, 繼續睡吧
            end
        end
    end
end


--- PM進入休眠
-- @param sec 進入hib深睡眠時間,單位:秒
-- @返回值: 無
-- @ pm_enter_hib_mode(sec)
function pm_enter_hib_mode(sec)
    --設置休眠喚醒時間,並開啟休眠
    lpmem.write(512, pack.pack(">HI", 0x5AA5, os.time())) -- 把當前時間寫入lpmem
    pm.dtimerStart(0, sec*1000)
    pm.request(pm.HIB) -- 建議休眠
    log.info("pm check",pm.check())
    sys.wait(300*1000)
end


--主程序入口
sys.taskInit(function()
    pm_wakeup_time_check()  -- 從lpmem讀取上一次的休眠進入時間  
    sys.wait(3000) --等待3S
    log.info("start into sleep mode")
    pm_enter_hib_mode(10*60) --休眠時間10分鍾
    --pm_enter_hib_mode(60*60) --休眠時間60分鍾
end)

-- 用戶代碼已結束---------------------------------------------
-- 結尾總是這一句
sys.run()
-- sys.run()之后后面不要加任何語句!!!!!

 

 

程序說明

pm_enter_hib_mode(10*60)
就是進入低功耗的程序,里面的是休眠時間 s
我當前只使用了這個,用戶自己去測試哈.
可以用個萬用表測試一下低功耗的電流
我這邊測試的剛進去低功耗的時候約 0.04ma  然后也會變成 7uA
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM