基于移远(EC800M)的无线数据采集端

2023-03-31 22:21:37 浏览数 (1)

背景介绍

近年来涌现出很多AIoT产品,能够实现温湿度采集以及生理参数(心率脉搏血氧)的获取等功能,广泛应用于工业监测、智慧生活以及医疗电子等领域。移远通信模组作为智能硬件与物联网平台沟通的桥梁,能够将嵌入式设备采集的数据上传到云平台,最终利用人工智能算法提取数据背后的价值。过去一段时间里,企业一般采用传感器 mcu DTU模组的方式,将设备接入物联网平台。随着技术的发展,模组的性能逐渐提升,能够直接驱动传感器工作,大大降低了设备的硬件成本,具体框架如图1所示:

图1 设备上云的技术路线图1 设备上云的技术路线

近来,我们基于EC800M构建了一套数据采集设备,实现了污染物浓度检测、压力数据采集以及地理位置信息上报两部分功能,后续通过4G网络,将数据上传到物联网平台。能够实现燃油汽车尾气监测,户外可监测设备等领域,具体如图2所示:

图2 通信模组的应用场景图2 通信模组的应用场景

程序框架

EC800M模组能够使用QuecPython进行二次开发,整体难度比较低。设备具有2个串口通道,能够支持HTTP、TCP、UDP、MQTT、阿里云、腾讯云以及私有云平台等;模块能够进行OTA远程升级,支持MQTT重连以及数据离线存储,大大增加了产品的容错能力,并且模组内置有IIC,SPI等协议的库文件;另外,模块支持低功耗模式,使用户做出的产品更容易满足市场需求。(附:python属于解释型语言,整体运行速度较慢,不建议应用于对实时性具有极高要求的场景)。

固件下载

我们通过串口工具,QPYcom和QFlash下载固件,具体所用的命令为:

代码语言:javascript复制
ATI #显示产品标识信息 #采用串口工具连接Quectel USB AT port
AT QDOWNLOAD=1 #进入下载模式,出现Quectel Download Port
点击stat,完成下载 #打开Qflash,通过Quectel Download Port,波特率等于9600;
最后打开“usb串行设备”端口,运行程序固件

低功耗

所用的程序代码如下所示:

代码语言:javascript复制
import pm
import utime

# 创建wakelock锁
lpm_fd = pm.create_wakelock("test_lock", len("test_lock"))
# 设置自动休眠模式
pm.autosleep(1)

# 模拟测试,实际开发请根据业务场景选择使用
while 1:
    utime.sleep(20)  # 休眠
    res = pm.wakelock_lock(lpm_fd)
    print("ql_lpm_idlelock_lock, g_c1_axi_fd = %d" %lpm_fd)
    print("unlock  sleep")
    print (a)
    utime.sleep(20)
    res = pm.wakelock_unlock(lpm_fd)
    print(res)
    print("ql_lpm_idlelock_unlock, g_c1_axi_fd = %d" % lpm_fd)
    num = pm.get_wakelock_num()  # 获取已创建锁的数量
    print(num)

0 人点赞