2015年4月24日 星期五

Nrf24l01 Sensor node (氣象站 3.1)

 這是繼氣象站3.0的後續版本,基本上因為前一版真的是頗悲劇的
前一版的主要問題在於耗電量與體積問題,還有Layout的各種錯誤

這次的版本基本上就是

  1. 核心 Arduino Atmega328
  2. 氣壓計 BMP085
  3. 溫溼度計 HDC1000 
  4. 無線模組 Nrf24l01

 可以看到上方的Nrf24l01模組與底下的BMP085和右邊的HDC1000以及被遮住的Atmega328
 這次重點就擺在耗電量了,上次做的那一版可能是LDO的耗電量吧,啥待機耗電量大成這樣(60uA),這次是CR2032直接接上系統電壓,所以基本上不會需要任何穩壓,降低耗電量,
同時把讀取的時序調整過了,我簡單說明一下:
通常Sensor在測量的時候都會需要點時間,但是Arduino的Library常常會將這點時間用delay帶過
這就造成Arduino長時間的閒置,徒增耗電量的概念,所以我把開始測量和讀取測量值分開,中間用待機,這樣就可以省掉滿多閒置時間的

文字說明似乎不夠,用圖來解釋好了.
這是測試方法,由於最高耗電量不到數百mA的等級,用一個10歐姆的電阻串在中間,然後拿個示波器量就好(待機耗電量依然需要用電表來測)
這是目前的耗電量曲線,可以看到剛開始有兩次高峰,分別是HDC1000和BMP085的溫度啟動測量,第二個就是把測量的值讀進來,然後啟動BMP085的氣壓和HDC1000的濕度測量,最後將資料計算完之後,啟動RF,把資料發射出去

如果沒有特別設定的話,從第一個高峰到最後一個通通都會耗電.
這是RF發射的詳細波形,可以看到基本上設定要發射之後Arduino就睡眠了,等到最後面在啟動看有沒有傳成功.
耗電量的計算,基本上就是算面積,小心估計出各個耗電的時間和耗電量之後(V=IR,所以示波器上面的電壓除以10(我用的電阻值)就是電流),加總起來算平均

我的計算出來大概.....我忘了,等等翻一下計算過程去哪裡.....= ___ =
只記得大概靠CR2032撐個一年
有發射器當然就要有個接收站,但是我手邊的Raspberry Pi 一代借出去了,所以拿我的Wifi Arduino來傳,這就下一篇來解釋了.

沒有留言:

張貼留言