最近,老板接到一个大订单,让我开发一款智能照明灯的项目。
为了让产品更具特色,要求添加4G联网功能,并且能够根据环境光的颜色和亮度自动调整照明设备的色温和亮度,使光线更加舒适自然。
老板特别交代项目紧急,要我尽快完成开发。我心里有些担大梁的期待,又有些赶时间的无奈。身为打工人,只能硬着头皮去网上寻找解决方案。
一、说干就干
我先寻找了一些市面上常用的开发板,但发现这些板子都不支持4G功能,必须额外加装一个4G模组——一算成本,发现这方案太贵了,根本赚不到钱。
一筹莫展之际,我忽然想到干脆直接找带4G功能的模组。在某宝搜索了一下4G模组,发现竟然有不少选择。
正当我纠结于不同模组之间如何选择时,低功耗4G模组吸引了我的注意:
什么?4G模块还能低功耗?
这商家是不是在骗人?
带着揭穿“骗局”的心态,我点开了这个名为合宙超低功耗的产品页面。
二、相见恨晚
进了淘宝店才发现,主打低功耗的4G模组不仅功能丰富、性能强大,最关键是资料齐全,对开发者很友好。
我首先研究了一下Air780EP开发板。它采用了移芯718P芯片,双核CPU,主频高达306MHz,还有一堆接口,功能齐全得让我都有点不敢相信。
当即决定买一块来测试开发。
——话说明明是来揭穿“骗局”的,怎么有点相见恨晚了呢?
Air780EP这个板子支持AT和LuatOS开发。这次我打算直接使用LuatOS在模组上进行开发,因为官方资料说用LuatOS可以快速上手,大大减少开发周期。
在正式开发之前,我先去看了一下官方社区。
合宙DoC社区:
https://doc.openluat.com/
好家伙!这技术文档写的又多又全,并且做的分类一目了然,想要什么资料一下子就找到了,简直比我自己的笔记看着都舒服。
有了这么详细的资料支持,我一下子信心倍增。
首先搭建开发环境。从官网下载了LuaTools下载调试工具,这是一个合宙自己做的下载和调试程序的工具,简直不要太好用,界面简单但功能齐全,操作起来非常顺手。
接着,下载了适用于Air780EP的固件。虽然有多个版本,但我毫不犹豫地选择了最新版,毕竟新版往往有优化和修复。
LuaTools工具下载:
https://wiki.luatos.com/pages/tools.htmlLuatOS固件下载:
https://gitee.com/openLuat/LuatOS/releases
准备工作都搞定后,我开始写代码。
首先新建了一个main.lua文件,写入必要的框架代码。然后,导入了TCS3472扩展库,毕竟我们的重点就是这个模块。
接下来是与TCS3472模块的交互。
这个项目大致分为三步:
1. 初始化i2c总线;
2. 读取模块数据;
3. 对数据进行处理。
如果是传统的MCU开发,就第一步都要写一堆的代码去实现。
而在LuatOS中,这一步只需要一步即可实现:
Lua
-- 设置i2c的id和速度
i2c.setup(i2cid,i2c_speed)
而TCS3472只需要两步就可以实现。
第一步初始化TCS3472,第二步直接读取数据就可以了:
Lua
--初始化tcs3472,传入i2c_id
tcs3472.init(i2cid)
--读取tcs3472数据
rgb_date = tcs3472.get_rgb()
你没看错,两步代码就完了这个模块的所有操作,然后我又加了个while循环读取数据,再打印测试。
全部代码最终是这个样子:
Lua
local tcs3472 = require "tcs3472"
i2cid = 1
i2c_speed = i2c.FAST
sys.taskInit(function()
i2c.setup(i2cid,i2c_speed)
tcs3472.init(i2cid)
--初始化,传入i2c_id
while 1 do
local rgb_date = tcs3472.get_rgb()
--读取rgb数据
log.info("rgb_date.R:",rgb_date.R)
--打印r数据
log.info("rgb_date.G:",rgb_date.G)
--打印g数据
log.info("rgb_date.B:",rgb_date.B)
--打印b数据
log.info("rgb_date.C:",rgb_date.C)
--打印c数据
local lux_date = tcs3472.get_lux(rgb_date)
--获取lux数据
log.info("lux_date:",lux_date)
--打印lux数据
sys.wait(1000)
end
end)
接下来,就可以拿着得到的rgb值去调试灯光了。
我决定再测试一下这个合宙Air780EP开发板的低功耗功能,但是4G模块哪可能会有真正低功耗?虽然不抱期待,但既然有这个功能,那就试一下吧。
合宙4G超低功耗解决方案:
www.airpsm.cn
结果令我大吃一惊:
在最低功耗模式下,这块开发板竟然可以达到仅约3微安的耗电量。而且,它还提供了三种不同的功耗模式供选择。
最终,我选择了功耗模式2。在该模式下,待机时的功耗仅为500微安左右,并且定时器和唤醒引脚都可以正常唤醒设备。
这一发现将大幅延长电池在待机状态下的使用寿命。
——项目赚钱的机会大增!
三、效果展示
我用LuaTools将代码下载到Air780EP开发板上,程序下载后正常运行。整个过程,比我预想的要顺利得多!
1. 下载固件和脚本
2. 在Luatools工具中查看效果
看到这些成果,我终于松了口气,这次的开发任务顺利完成了。
从质疑到相见恨晚,这就是我的Air780EP初体验。
通过这次用Air780EP开发TCS3472模块的经历,我对这块开发板有了更深的印象。虽然一开始有些担心会不会遇到麻烦,但最终的结果让我非常满意。
看来,Air780EP确实是一个不错的选择,尤其适合那些对开发周期要求紧迫和对功耗要求严格的项目。如果下次老板再有类似需求,我想我会毫不犹豫地再次选择它。
详细资料获取请点击: www.openluat.com