“生物是在遺傳、變異、生存鬥爭中和自然選擇中,由簡單到複雜,由低等到高等,不斷髮展變化的” — 《物種起源》 達爾文
提示1:銳米所有 LoRa 產品嚴格遵循國標標準的 LoRaWAN 協議。
提示2:如果您有其他 LoRa 需求或建議,歡迎聯繫銳米 [email protected]
智聯萬物,讓生活更美好,這是 LoRa 物聯網的美好願景。
現在,上百種傳感器(執行器)即將接入 LoRa 物聯網,這給產業界帶來一個挑戰—低成本快速開發 LoRa 終端。
爲應對該挑戰,我們推出一種“革命性”解決方案—ArduinoLoRa+傳感器(執行器)
本方介紹批量生產 LoRa 終端的方法,實現從 1 到 10000。如果您需要從 0 到 1 打造原型機,請參考:
硬件開源,讓您按需設計 LoRa 終端尺寸
Makerbot 公司基於 Arduino 設計了 3D 打印機,很明顯,它將 Arduino 必需的所有元件集成到一個自己設計的開發板上。
Makerbot 公司 Arduino 3D 打印機
同樣,一旦完成了 Arduino LoRa 終端的原型機。量產時,我們完全可以按需設計 PCB:提取必需的元器件(AVR單片機,LoRa 模塊,傳感器等),輕鬆製作理想尺寸的 PCB。雖然外形與 Arduino 開發板不同,但完全兼容。
製作與 Arduino 硬件兼容的 PCB 非常簡單。事實上,Arduino 官方提供了電路圖與 PCB 佈局設計,供大家下載使用。
僅¥3的AVR單片機, LoRa 終端批量低成本
根據行業經驗,如果 LoRa 終端僅小批量生產(<100),最好的方案是選用合適的 Arduino 開發板(常見爲 Arduino Pro Mini),因爲定製 PCB 和焊接生產是一件“費時費力又容易出錯”的工作。
當然,如果 LoRa 終端需要大批量生產(>1000),這才需要考慮定製 PCB—節省 Arduino 開發板上不需要的元器件。
所幸的是,如 1 介紹的,定製 Arduino 兼容的 PCB 唯一需要的是一個合適的 AVR 單片機,而它批量價僅 ¥3。
從 0 到 1
從 1 到 100
從 100 到 10000
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
如下圖所示,2 節 5 號鹼性電池容量約 2890mAH,因爲溫溼度短時間變化不大,設每 10 分鐘採集,電池可工作近 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 單片機升級固件。當手頭缺少編程器,此方法也可以解燃眉之急。