ArduinoLoRa 休眠极限 1.4uA

提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议
提示2:您可以免费复制,修改和商用本项目,请注明锐米原创
提示3:如果您有其他 LoRa 需求或建议,欢迎联系锐米 support@rimelink.com

把低功耗做到极致

超过 80% 的 LoRa 终端将由电池供电,这样一来,低功耗将是一个核心的技术挑战,一旦电能耗尽设备将“罢工”,在某些场合电能意味着 LoRa 终端的寿命。

ArduinoLoRa+ 是锐米推出的低成本快速开发 LoRa 终端方案,它能达到行业第一的低功耗(1.4uA),最大限度地延长电池续航能力。

下面,逐步解密 ArduinoLoRa+ 极限低功耗是如何实现的。

组件和材料

LoRa 扩展板LoRa 扩展板 x 1 采购链接
Arduino Pro MiniArduino Pro Mini x 1 采购链接
电池盒电池盒 x 1 采购链接
鳄鱼夹鳄鱼夹 x 2 采购链接

杜邦线杜邦线 x 4 采购链接

工具和软件

Arduino IDEArduino IDE 下载链接

下载烧录器下载烧录器 采购链接
数字万用表数字万用表 采购链接

技术细节

改制 Arduino Pro Mini

改制 Arduino Pro Mini
如上图所示,新购的 Arduino Pro Mini 需要卸掉 2 个器件:LDO(低压差稳压器)和电源指示灯处的 1k 电阻

烧录 Arduino 休眠代码

按下表连接 Arduino Pro Mini 和 下载烧录器

Arduino杜邦线下载烧录器
VCC3.3
GNDGND
RXD绿TXD
TXDRXD
DTRDTR

接线图
小窍门:如果不接 DTR 也可以上传程序,点击 Upload 后按下 Arduino 的复位键。

设置 Arduino IDE
设置 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 扩展板,并使用电池供电。
ArduinoProMiniLoRaBattery

LoRa 入网后自动休眠

Arduino Pro Mini 上电后闪烁 LED 共 5 次(表示正常工作),LoRa 模块入网后将自动休眠。将电流表串联在上述电路中,测量休眠电流为 1.4uA
低功耗可达 1.4uA

唤醒技术

很明显,一个永久休眠的 ArduinoLoRa 平台是没有意义的,它需要被唤醒以从事某些工作,这可以通过“定时器”和“外部中断”来完成。请参考: