提示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 平臺是沒有意義的,它需要被喚醒以從事某些工作,這可以通過“定時器”和“外部中斷”來完成。請參考: