当前位置: 首页 > news >正文

模组操作宝典:4种关机重启技巧,让你的设备运行无忧

今天我说的是关于关机重启技巧。

给4G模组VBAT断电关机,模组关机前未能及时退出当前基站,会有什么影响呢?

基站会误以为设备还在线,下次开机仍会拿着上次驻网信息去连基站。基站一看,上次链接还在——认为你是非法设备,拒绝链接!

常见的4种关机重启情况:

1、- 功耗原因关机重启 -

用户反馈:
自己对功耗特别看重,需要极低的功耗,所以关机。在需要启动的时候,再给模块上电。

FAE解答:
在大多数人的认知里,只要关机肯定是比待机更省电的,实则不然。

比如大多数人家里的电视盒子:
当你按下遥控器的关机按键,其实只是切断了输出,你认为的关机状态,和电视盒子的开机状态,实际功耗区别并不是很大。

对4G模组来说,主要的耗电大头在于——刚开机驻网那一下,以及发送数据时候。

下图为使用Air9000P功耗分析仪测试Air780E,从开机开始的一小时,每隔一分钟往服务器发送一条消息的全段截图,可以明显看出耗电的大头。

图片

所以,如果你的应用不会出现频繁发数据(低于一小时一次)给服务器,那么是可以通过关机来降低功耗的。

但是这种降低功耗的手段,还不是最优解。如果你一天发送数据多于4次,那么还有一种更好的方法来降低功耗——那就是用低功耗解决方案。

详见4G超低功耗解决方案:

www.airpsm.cn

2、- 网络原因关机重启 -

用户反馈:
我们的设备处于网络状态不太好的地方,在遇到网络不好的时候,我就重启自己设备,重新让模块驻网。

FAE解答:
模块驻网逻辑与掉线重连逻辑,是模块内部SDK自行处理的,掉网会给上层发送断网消息,用户只需要订阅对应消息即可。

重新驻网的逻辑其实模组内部也是有的,大多数情况下,不需要应用层做断网处理。如果用户对消息的及时性和准确性有要求,可以将模块与服务器的心跳间隔设置短一点。

AT版本:
设置心跳内容和心跳间隔的指令为:
AT^HEARTBEAT和AT^HEARTCONFIG

具体参数可以查看AT手册:
https://doc.openluat.com/article/4985

LuatOS版本:
可以查看socket.config接口,MQTT可以查看mqttc:keepalive接口。

具体接口描述参见:
https://wiki.luatos.com/api/index.html

3、- 续费原因关机重启 -

用户反馈:
有时候会因为自己续费不及时,导致SIM卡到期未续费,被停机,所以自己代码中做了处理,连不上网XX秒就断电再上电。

FAE解答:
其实可以先尝试进出一次飞行模式,没必要断电。

如果你很频繁的断电再上电,电源部分PCB设计如果有不完善的地方,很有可能出现超过VBAT最大电压的脉冲,进而可能导致模块损坏。

而且,模块内部SDK其实针对SIM卡未及时续费这种情况也做了一些处理。即使你什么都不做,到期两三天内续费成功,模块也会在10-30分钟内注册上网络,不用担心模块连不上网的问题。

4、- 服务器原因关机重启 -

用户反馈:
我们连的是用户服务器,客户服务器不稳定,时而能连时而不能连,所以在服务器连不上后,我们会断电重启模块,尝试看看能不能连上。

FAE解答:
模块驻网(连接4G基站)没什么问题,只是链接服务器失败,可以做一些重连处理,而不是频繁的去断电在上电。

如果以一个很频繁的速度(一分钟10次这种速度)去驻网,很有可能被基站认为是非法用户,导致基站内部防护策略生效,让模块再也连不上基站。

在这里可以推荐一种重连策略:

如果驻网正常,只是链接服务器异常,可以按照2^(n-1)S 的时间间隔去重连服务器。

例如:1S 2S 4S 16S 32S 64S…

当然,需要一个最大上限时间,例如10分钟。没有最大上限的话,可能导致服务器已经好了,而模块重连间隔时间过长,导致数据不能及时送达。

如果超出最大上限时间,服务器依旧连不上,再进出飞行模块几次(进出飞行模式的速度也不应过快,过快也有可能被基站认为是非法用户)。

如果依旧注册不上网络,再考虑给模块断电,然后重启模块。

综上所示,其实大多数情况,没必要给模块进行关机措施。

频繁的开关机,还有可能导致模块功耗异常或者注册基站都注册不上等问题。

如果需要进行关机:
建议还是关机前先进飞行模式,主动和当前基站进行一个注销的操作。

http://www.lryc.cn/news/470889.html

相关文章:

  • 利用API接口实现旺店通和金蝶系统的无缝数据对接
  • 热题100(hash)
  • Ubuntu下Mysql修改默认存储路径
  • LVGL移植教程(超详细)——基于GD32F303X系列MCU
  • 《计算机原理与系统结构》学习系列——处理器(中)
  • 深入解析 OceanBase 数据库中的局部索引和全局索引
  • 2024防晒衣市场社媒营销洞察报告
  • 【Ubuntu20.04 Visual Studio Code安装】【VSCODE】
  • 贪心算法day(1)
  • 窗口函数sql使用总结
  • python单因素分析
  • 「C/C++」C++ STL容器库 之 std::list 双向链表容器
  • 应用程序框架进阶<HarmonyOS第一课>
  • 【C++】vector<string>-动态数组存储多个string
  • 66Analytics 汉化版,网站统计分析源码,汉化前台后台
  • 蓝桥杯单片机STC15F2K60S2第十四届省赛代码详细讲解(附完整代码)
  • [免费]SpringBoot+Vue智慧校园(校园管理)系统[论文+源码+SQL脚本]
  • 景区导航地图怎么实现?基于LBS与3D GIS的智慧景区导航导览系统技术路线
  • RedisIO多路复用
  • C++的相关习题(2)
  • C++《vector的模拟实现》
  • 无人机避障——路径规划篇(一) JPS跳点搜索算法A*算法对比
  • OpenCV ORB角点检测匹配和偏移计算
  • 图文详解ChatGPT-o1完成论文写作的全流程
  • 在线体验Sketch中文版,免费下载即刻上手!
  • Redis——缓存
  • RHCSA笔记三
  • 【python】sorted() list.sort()
  • 训练集alpaca、sharegpt格式
  • Hive的数据存储格式