SIM应用那些事儿,你做对了吗?
序言
八月,在时光流转间格外美好~朋友们在征名活动中书写诗意,合宙的小伙伴们也忙碌到飞起;新系列产品、新一期直播正在紧张筹备中,敬请期待!
本期将针对常用SIM功能那些事儿,以Air724UG开发板为例进行实操演示,Demo源码可通过LuaTools或LuatIDE获取。
前期主要准备工作
硬件准备
EVB_Air724UG_A13开发板(本文操作适用于合宙Cat.1系列的开发板),以及天线、SIM卡、USB线。
如上图所示:
在开发板SIM0卡座上插入一张能识别的SIM卡,USB线接到左侧USB口(注意:不要接到右边的串口USB上)。开关拨到ON位置,按开机键1s以上开机。
软件准备
Windows电脑搭建Luat开发环境,可参考下文:
https://doc.openluat.com/wiki/21?wiki_page_id=1923
API说明
https://doc.openluat.com/wiki/21?wiki_page_id=2292
SIM功能Demo实操演示
例程参考
本文演示SIM功能相关实例程序,在LuaTools/LuatIDE脚本库的demo\simId文件夹下。
最新版LuatIDE下载
https://marketplace.visualstudio.com/items?itemName=luater.luatide
DEMO修改示例
1)开启一个任务设置卡座id号
1.3基线固件可以在sim卡0和sim卡1自动识别,1.2基线不行。
--sim_id :sim卡的卡座id号
local sim_id=0
sys.taskInit(function()
--调用sim.lua中的设置sim卡id号函数
sim.setId(sim_id)
sys.wait(10000)
end)
2)获取SIM卡参数
开启一个循环定时器,调用sim.lua中函数,打印SIM卡参数即可。
sys.timerLoopStart(function ()
--获取sim卡iccid
ril.request("AT+ICCID")
log.info("sim_iccid:",sim.getIccid())
--获取sim卡imsi
log.info("sim_imsi:",sim.getImsi())
--获取sim卡status
log.info("sim_status:",sim.getStatus())
--获取sim卡id
log.info("sim_id:",sim.getId())
end,1000)
3)烧录脚本到开发板
在了解并修改demo后,将demo和对应的底包下载到开发板,下载的方式这里不详细说明,请参考环境搭建中的烧录章节:
https://doc.openluat.com/wiki/21?wiki_page_id=1923
4)打印日志信息
下载完成后重启,可以看到LuaTools工具中打印的信息:
SIM功能常见问题
为什么读不到SIM卡
由于原因较多,可按以下步骤排查:
-
看模块开机没?AT指令能不能用?SIM卡放到别的机器上是不是可用?
-
看模块与卡座之间连线有没有问题,去掉ESD器件和线路上的滤波电容,检查原理图和PCB与实物是否相符,尤其是SIM卡座规格书引脚编号和原理图、PCB是否一致。
-
开机瞬间用示波器测试下sim_vdd管脚波形,如果波形有1.8v-3.3v-0v 变化,一般是卡座到模块引脚之间问题,要识别到卡,才会有电压输出。
-
如果以上都排除了,重新烧录固件尝试。
为什么SIM卡供电脚没电压
-
SIM卡要识别到卡才会有电压输出;
-
在模块开机后10s到15s左右,SIM_VDD会拉高到1.8V左右,开始找卡:如未能与SIM卡通信成功,则短时关闭再拉高到3V左右去找卡;如果还未找到,就关闭SIM_VDD,整个过程6s左右。
专网卡如何访问白名单
使用定向IP的物联网卡,需要把域名或IP加入白名单才能使用,下面列出模块会访问的域名或IP服务器。