低成本快速开发 LoRa 终端:从 1 到 10000

“生物是在遗传、变异、生存斗争中和自然选择中,由简单到复杂,由低等到高等,不断发展变化的” — 《物种起源》 达尔文

提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议
提示2:如果您有其他 LoRa 需求或建议,欢迎联系锐米 [email protected]

智联万物,让生活更美好,这是 LoRa 物联网的美好愿景。

现在,上百种传感器(执行器)即将接入 LoRa 物联网,这给产业界带来一个挑战—低成本快速开发 LoRa 终端

为应对该挑战,我们推出一种“革命性”解决方案—ArduinoLoRa+传感器(执行器)

本方介绍批量生产 LoRa 终端的方法,实现从 1 到 10000。如果您需要从 0 到 1 打造原型机,请参考:

低成本快速开发 LoRa 终端:从 0 到 1

硬件开源,让您按需设计 LoRa 终端尺寸

Makerbot 公司基于 Arduino 设计了 3D 打印机,很明显,它将 Arduino 必需的所有元件集成到一个自己设计的开发板上。

基于 Arduino 设计 3D 打印机

Makerbot 公司 Arduino 3D 打印机
低成本快速开发 LoRa 终端:从 1 到 10000_第1张图片
同样,一旦完成了 Arduino LoRa 终端的原型机。量产时,我们完全可以按需设计 PCB:提取必需的元器件(AVR单片机,LoRa 模块,传感器等),轻松制作理想尺寸的 PCB。虽然外形与 Arduino 开发板不同,但完全兼容。

制作与 Arduino 硬件兼容的 PCB 非常简单。事实上,Arduino 官方提供了电路图与 PCB 布局设计,供大家下载使用。

Arduino UNO 硬件开源资料
Arduino Pro Mini 硬件开源资料

仅¥3的AVR单片机, LoRa 终端批量低成本

根据行业经验,如果 LoRa 终端仅小批量生产(<100),最好的方案是选用合适的 Arduino 开发板(常见为 Arduino Pro Mini),因为定制 PCB 和焊接生产是一件“费时费力又容易出错”的工作。

当然,如果 LoRa 终端需要大批量生产(>1000),这才需要考虑定制 PCB—节省 Arduino 开发板上不需要的元器件。

所幸的是,如 1 介绍的,定制 Arduino 兼容的 PCB 唯一需要的是一个合适的 AVR 单片机,而它批量价仅 ¥3。

从 0 到 1
低成本快速开发 LoRa 终端:从 1 到 10000_第2张图片
从 1 到 100
低成本快速开发 LoRa 终端:从 1 到 10000_第3张图片
从 100 到 10000
低成本快速开发 LoRa 终端:从 1 到 10000_第4张图片

LoRa 终端休眠仅1.4uA,2节AA电池可工作数年

如果 LoRa 终端长时间使用电池供电时,例如在远程监控的场景下,此时电池或太阳能是唯一的选择,功耗就变得很重要了。

降低功耗是一把双刃剑—越趋向理想化,开发代价越大。从易到难的实现办法如下:

更换开发板且降低电压,难度 *

Arduino UNO 工作电流为 48mA,而 Arduino Pro Mini 工作电流为 8mA,UNO 开发板的 USB 接口芯片,点亮的 LED 和 3.3V
稳压器消耗了 40mA。
同样的 Arduino Pro Mini 电路板,当供电从 9V -> 5V -> 3.3V 切换时,工作电流相应从 42mA -> 22mA -> 8mA。

断开高功耗部件,难度 **

亮着的 LED 会消耗 2.1mA,光敏电阻会花费 3.3mA 电流,传感器/执行器需要更大的电流。除了仔细设计硬件外,软件要在这些部件“不需要工作”时断开电源。

Arduino空闲时休眠,难度 ***

以下 2 种办法都能将 Arduino 功耗降到 1mA 以下,它们都让 Arduino 进入休眠,只是唤醒的办法不同。

定时器

使用 Narcoleptic 库是一件容易的事,对于延时 1 秒,相比 delay(1000) 只需要修改为 Narcoleptic.delay(1000)

外部中断

设置休眠模式为 SLEEP_MODE_PWR_DOWN,类型为 LOW 的引脚中断可以唤醒 Arduino。

关闭一些模块,难度 ****

关闭不使用的 AVR 功能模块可以节省少量的电能,实验发现关掉 5V,16Mz 的 Arduino Pro Mini 的所有模块节约 1.5mA。

降低时钟频率,难度 *****

使用 Arduino 的 Prescaler 库可以降低时钟频率,频率与功耗的关系大致如下(1MHz是拐点):
16MHz=7.8mA,8MHz=5.4mA, 4MHz=4.0mA,2MHz=3.2MA, 1MHz=2.6mA
当然,降低频率将使 Arduino 运行更慢,这可能会成为一个问题,需要仔细考虑。

如下图所示(实物拍摄),ArduinoLoRa+ 的低功耗可达 1.4uA,这不仅是行业第一的超低功耗,而且达到了器件极限 ArduinoLoRa 休眠极限 1.4uA
低成本快速开发 LoRa 终端:从 1 到 10000_第5张图片
如下图所示,2 节 5 号碱性电池容量约 2890mAH,因为温湿度短时间变化不大,设每 10 分钟采集,电池可工作近 6 年。
终端电池寿命计算器
低成本快速开发 LoRa 终端:从 1 到 10000_第6张图片

灵活地烧录固件,降低 LoRa 终端制造成本

内置 Bootloader 是 Arduino 开发板最大的优势之一,它通过串口即可实现 MCU 为自己编程,这也是 Arduino 开发板从来不需要“编程器”的原因。

批量生产中仍然可以保留 Bootloader,这样,使用简单的 2 根连线(RxD 与 TxD )即可实现产品烧录固件。

许多供应商销售已经装好 Arduino Bootloader 的 AVR 单片机,如果价格合适,这是最便捷的方式。

当然,也可以自己动手为 AVR 单片机烧录 Bootloader(俗称“烧裸片”),只需要采购一个烧录器,选择对应 AVR 型号和电气属性(3.3V or 5V, 8MHz or 16MHz),点击:Tools -> Burn Bootloader

如果用户需要最大限度地使用 AVR 闪存空间(Bootloader 占用 256B~4kB,具体取决于 AVR 类型),或者不想使用标准的 Arduino 方式中的 RxD 与 TxD的 2 根连线上传程序(比如该接口被占用),那么可以直接使用 ICSP 接口加载已经编译好的程序。这需要使用编程器,如 USBasb 或 USBtinyISP。

借力Arduino IDE,轻松升级 LoRa 终端

得益于 Arduino IDE 的封装技术,通过隐藏大量的技术细节和简化开发流程。它让聪明的“玩家”总是使用简洁,高效的代码,设法让 Arduino 去做更有趣,更复杂的事情。

升级固件是 LoRa 终端生命周期中重要的一环,可能的原因有:修复bug,添加功能,升级协议,安全补丁,优化性能。

如“瑞士军刀”般灵活的 Arduino IDE 为升级固件提供便利。

  • 大部分情况下,LoRa 终端的 AVR 单片机保留了 Bootloader,升级固件只需要使用串口工具连接 PC,使用 Arduino IDE 上传即可。

  • 如上节所介绍,也有少数情况,LoRa 终端的 AVR 单片机没有 Bootloader,这得需要编程器升级固件。所幸的是 Arduino IDE 支持对 AVR 单片机编程,在 Tools -> Programmer 中选择对应的编程器,点击 Sketch -> Upload Using Programmer 即可启动。

  • Arduino IDE 甚至提供实用程序加载到一块 Arduino 开发板,使它变为一个编程器,实现给 AVR 单片机升级固件。当手头缺少编程器,此方法也可以解燃眉之急。

你可能感兴趣的:(LoRaDevice,LoRaWAN)