构建一款资产追踪器
扫描二维码
随时随地手机看文章
在开发者群体中有很多资产追踪器的演示项目,其中很多都堪称不错的入门范例。然而,大多数仍处于早期原型阶段:比如带有跳线的面包板、裸露的印刷电路板,或者是概念验证设计,这些还远未准备好用于实际应用。
我想要打造与众不同的产品。我的目标是开发一款更贴近实际产品的资产追踪器——它不仅仅是一个能在试验台上运行的演示品,而是一个完整的硬件平台,涵盖了电源、通信、传感、机械集成以及现场部署等方面。
该项目基于粒子移动自组织模型(Particle MSOM),涵盖了全球导航卫星系统(GNSS)定位、CAN-FD、RS485、运动感应、电池充电以及多个电源轨等功能。它被设计成一个开源参考平台,供其他人员研究、修改并在此基础上进行扩展。
我不仅希望这个项目能证明资产追踪器能够正常运行,更希望它能展示出如何以更实用、更符合产品要求的方式来构建这样一个资产追踪器。
特点/特征
由于我的目标是设计一款实用的资产追踪器。所以首先要明确这款资产追踪器应该具备什么样的功能。下面我就列举了这款追踪器所具备的一些功能。
•2.5 米的定位精度
•最大直流输入电压为 65 伏。非常适合车辆使用。
•最大休眠电流为 30 微安,可通过直流电源或加速度计实现唤醒功能。
•用于车辆和工业应用的 CAN-FD 或 RS485 接口
•可由单个 18650 电池供电,使用寿命可达数月。
•可灵活配置的 LTE 和 GNSS 天线,以适应不同的应用场景。
•可轻松安装于各种环境中,配备 6 芯 M8 连接器和 SMA 射频连接器
•完全开源,包含固件、脚本、以 KICAD 格式呈现的硬件设计文件以及外壳的 3D 文件。
硬件图
该项目由 kicad 开发,包含以下四个部分。
MSoM,它是来自粒子的一种 SoM。
•PMIC(电源管理集成电路)。包含一个直流-直流调节器以及两个高效率的降压-升压转换器,用于将电池或输入电压的电能传输至 MSoM(主存储模块)及其他外围设备。
•CAN&RS485。包含一个 SPI 到 CAN FD 的转换器以及一个 RS485 芯片。任何时候只能使用其中的一种接口。
•Accel&GNSS。包含一款高端的 GNSS 模块 NEO-M8U 以及一款高效加速度计 LIS2DHTR。
详情:
在这一部分,我将更详细地描述这款资产追踪器的设计过程。
主要的输入电源是一个最大电压为 105 伏的直流稳压器。它能够持续提供高达 2.3 安培的电流。我选择这款高端稳压器的部分原因在于我的电动自行车的电池组电压为 48 伏,因此我需要一个更高的输入电压,以便资产追踪器能够接入这个电池组。另一个原因是我在之前的一个项目中还留有一些这种稳压器。
在该设计中,实现了一个简单的电池充电器,用于为电池充电。
一个“或”门被用于从电池或 5V 直流电源中选择系统电源输入。在设计中使用了两种降压-升压转换器。一种是为需要高达 2A 电流的调制器设计的,另一种是最大工作电流为 1A 的。这些高效转换器使得微安级休眠模式成为可能。
我还添加了一个电源开关,以便在睡眠模式下能够关闭部分外围设备以实现节能。此外还配备了一个电压分压电路,用于测量电池电压。
在这个项目中,我几乎耗尽了 MSOM 系统的所有界面资源。
•2 个 UART 接口,一个用于 RS485,另一个用于 GPS 模块。
•1 用于与 MCP251863(一款 CAN-FD 控制器)进行通信的 SPI 接口
•1 用于与加速度计通信的 I2C 总线
•一些通用的 GPIO 接口用于控制各种设备
•还有一个用于测量电池电压的模拟引脚
V_MODEM 在休眠模式下可以完全断电以实现节能。那些可用于从休眠模式唤醒的引脚被连接到 5V 电源良好信号、加速度计的中断引脚,以及来自 M8 连接器的外部 GPIO 引脚。
这款资产追踪器配备了高端的 GNSS 模块 NEO-M8U。通过 UART 与 MSOM 进行通信,并使用外部有源天线以实现最佳性能和安装灵活性。
这款全球定位系统模块甚至还能进行成本缩减版本的开发,因为帕特里森 M404 本身就已经具备全球定位系统功能。不过它无法同时支持蜂窝网络。
V_BCKP 的工作电压被设定为 3.3 伏,这样在设备突然启动时,它能够在短短 1.5 秒内实现锁定。
这里加速度计的主要作用是检测系统在退出休眠模式时的振动情况。触发水平也可以在粒子控制面板中进行修改。
在该设计中,加入了 CAN-FD 控制器和 RS485 转换器,其主要目的是通过唯一的接口(即 M8 接口)与外部设备进行连接。
但由于接口限制,设计中只能使用一个接口,并且该接口是由 DNP 在板载的相应铁氧体电感上选定的。
它还配备了一个模拟引脚和一个具有唤醒功能的数字引脚,以便在某些需要通过外部信号唤醒资产追踪器的情况下发挥作用。
固件
作为一名硬件工程师,我的软件开发能力仅适用于编写一些用于硬件验证的演示代码以及一些 Python 脚本。
总之,我确实不太擅长编写像这个资产追踪器这样的完整项目。所以我只是依靠一个代码库来完成整个项目。我所做的就是定义了引脚图和一个使用说明文件。然后反复按下闪存按钮,直到它能正常运行。
因为这个追踪器将用于我的电动自行车。所以我的需求是:当我骑车时,它会自动开始记录位置并将其发布到云端;而当骑行结束后,它会自动进入休眠模式。我无需以任何方式进行任何操作。
因此,以下是其功能的基本结构。
•当我开始骑行时,系统会通过加速度计发出的中断信号来唤醒。
•驱动程序初始化
•正在等待移动网络连接和全球定位系统定位。
•如果全球导航卫星系统在 10 分钟内无法实现定位锁定,那么系统就会进入休眠模式。
•每隔两分钟就将位置数据上传至云端
•如果在 10 分钟内未检测到振动,那么系统将进入休眠模式。
目前,所有这些参数都可以在粒子控制面板中进行设置。
安装
我给我的电动自行车安装了这个资产追踪器。看起来效果非常好。而且如果把它安装在塑料保护罩内,它还能起到防水的作用!
网页
作为一款资产追踪器,无论边缘设备如何收集位置数据,最终目标都是让用户能够在屏幕上看到那些追踪点。这意味着,如果一款资产追踪器无法实现这一功能,那么它就无法成为一款真正成熟的产品。
因此,我还让代码书生成了一个网页。目的是展示一个实际位置如何能转换成屏幕上的一个点。
而下面的图则显示它能够完美地记录我的骑行情况。
附件
如果硬件没有被装入外壳中,就不能将其称为已具备产品条件的项目。所以我也为它设计了一个外壳。
实际上,这个项目的诞生部分原因在于我学会了如何使用 Fusion360 来设计一些简单的物件。于是我就有了这个想法:设计一个带有保护外壳的资产追踪器。
已经印刷出了多个版本。而且外观也不怎么美观。但我还是喜欢它。
本文编译自hackster.io





