提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议。
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创。
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 [email protected]
把低功耗做到极致
超过 80% 的 LoRa 终端将由电池供电,这样一来,低功耗将是一个核心的技术挑战,一旦电能耗尽设备将“罢工”,在某些场合电能意味着 LoRa 终端的寿命。
ArduinoLoRa+ 是锐米推出的低成本快速开发 LoRa 终端方案,它能达到行业第一的低功耗(1.4uA),最大限度地延长电池续航能力。
下面,逐步解密 ArduinoLoRa+ 极限低功耗是如何实现的。
组件和材料
LoRa 扩展板 x 1 采购链接
Arduino Pro Mini x 1 采购链接
电池盒 x 1 采购链接
鳄鱼夹 x 2 采购链接
杜邦线 x 4 采购链接
工具和软件
Arduino IDE 下载链接
技术细节
改制 Arduino Pro Mini
如上图所示,新购的 Arduino Pro Mini 需要卸掉 2 个器件:LDO(低压差稳压器)和电源指示灯处的 1k 电阻。
烧录 Arduino 休眠代码
按下表连接 Arduino Pro Mini 和 下载烧录器
Arduino | 杜邦线 | 下载烧录器 |
---|---|---|
VCC | 红 | 3.3 |
GND | 黑 | GND |
RXD | 绿 | TXD |
TXD | 黄 | RXD |
DTR | 棕 | DTR |
设置 Arduino IDE
编译和烧录下述休眠代码
#include <avr/sleep.h>
void setup ()
{
pinMode(LED_BUILTIN, OUTPUT);
int count;
for (count = 0; count < 5; ++count)
{
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200); // wait for 200ms
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(200); // wait for 200ms
}
// disable ADC
ADCSRA = 0;
set_sleep_mode (SLEEP_MODE_PWR_DOWN);
noInterrupts (); // timed sequence follows
sleep_enable();
// turn off brown-out enable in software
MCUCR = bit (BODS) | bit (BODSE);
MCUCR = bit (BODS);
interrupts (); // guarantees next instruction executed
sleep_cpu (); // sleep within 3 clock cycles of above
} // end of setup
void loop () { }
连接 Arduino Pro Mini 和 LoRa
如下图所示,使用杜邦线连接 Arduino Pro Mini 和 LoRa 扩展板,并使用电池供电。
LoRa 入网后自动休眠
Arduino Pro Mini 上电后闪烁 LED 共 5 次(表示正常工作),LoRa 模块入网后将自动休眠。将电流表串联在上述电路中,测量休眠电流为 1.4uA
唤醒技术
很明显,一个永久休眠的 ArduinoLoRa 平台是没有意义的,它需要被唤醒以从事某些工作,这可以通过“定时器”和“外部中断”来完成。请参考:ArduinoLoRa 休眠定时器唤醒