2016/01/26

AOSONG AM2320 使用心得

AOSONG是一間中國製造溫濕度Sensor的廠商,有很多產品被maker 拿來做為溫度感測用,
其中像是DHT11, DHT22都蠻常見到arduino的使用者拿來當analog input 的範例。

在淘寶的零售價,DHT11大概5元,DHT22(AM2302)因為感測範圍比DHT11廣,所以大概要20元人民幣。至於我使用的這顆AM2320,價格介於兩者之間,大約10元左右。

DHT11 DHT22 AM2320
濕度範圍 20~90% 0~100%0~100%
溫度範圍 0~50-40~125 -40~80




image
圖片來自原廠datasheet
http://www.aosong.com/cn/products/details.asp?id=152

後來東拼西湊,湊出一段可用的code如下
比較奇怪的地方是要先送一次I2C write之後,才能再下一次I2C write去取值,今天花了好長一段時間在這邊,如果沒先做一次無資料的I2C write,那後面取到的值可能都是暫存的值或是0...因為這顆感測器會進入省電模式,當Sensor進入省電模式時,必須要連續下兩次I2C write,才能在第二次取到值。

原廠設計中是有提供checksum機制來驗證所獨到的值是否正確。但我只是為了快速測試sensor,所以就沒把這段checksum計算跟比對加進去。


#include<Wire.h>
void setup() {
  Wire.begin();
  Serial.begin(9600);
}
uint8_t addr = 0xb8 >> 1;
uint8_t data_buffer[8];
uint8_t data_count = 0x08;
uint8_t stop_bit = 0x01;
float temp = 0.0;
float humi = 0.0;
void loop() {
  Wire.beginTransmission(addr);
  Wire.endTransmission(stop_bit);
  delay(1);
  Wire.beginTransmission(addr);
  Wire.write(0x03);
  Wire.write(0x00);
  Wire.write(0x04);
  Wire.endTransmission(stop_bit);
  delay(2);
  Wire.requestFrom(addr, data_count,stop_bit);
  for (int i = 0; i < 8; i++)
  {
    while(!Wire.available());
    data_buffer[i] = Wire.read();
  } 
  humi = (data_buffer[2] * 256 + data_buffer[3]) / 10.0;
  Serial.print(humi);
  Serial.print(' '); 
  temp = data_buffer[5] / 10.0;
  Serial.print(temp);
  Serial.print(' '); 
  Serial.println("");
   
  delay(2000);
}


優點: I2C通訊取值,僅需做簡單的換算。
缺點:
1. I2C非慣用方式
2. 準確性僅供參考
3. AM2320屬於DIP件,雖然配合一般排針設計為2.54mm間距,但實際上接腳太細,和杜邦端子或是一般麵包板連接時會顯得非常的鬆垮,端子頭無法咬著接腳。若是直接焊在電路板上則無此困擾。

關於DHT11, DHT22可以參考外國Maker分享的文章
http://howtomechatronics.com/tutorials/arduino/dht11-dht22-sensors-temperature-and-humidity-tutorial-using-arduino/

2016/01/09

可充式CR2電池 (不適用 Pentax MZ-3)

因為Pentax MZ-3沒有休眠模式,如果忘記關掉電源開關,電池會不知不覺地流失電量,等到發現時已經來不及了,相機無法進行自動對焦及測光,更別說拍照了…
這就是前輩們說的,如果買相機還是機械式的好,沒電頂多不能測光,但快門還是按得下去

先前實驗性的買了一組Kamera的CR2可充電鋰電池,但因為常用的Panasomic CR2一直還有電,所以就沒替換這組可充電的
今天一拿出來,才發現…Size不合啊!

跟Panasonic的CR2比起來,正極那端的突起似乎高了一點…裝入MZ-3後無法蓋上電池蓋,只好請出我很久沒用的FG電池手把了= =a  手邊沒有游標卡尺,下周再去借來量看看差了多少

P1100657

Kamera 這組採用USB 5V充電,利用MicroUSB B-Type 作為充電介面,所以可以跟手機共用。充電指示燈有綠色根紅色,充飽後會自動轉為綠色

單顆電壓標示3V,空負載時用三用電表量到的電壓是3.45V,下面那兩顆無法讓MZ-3啟動的CR2則是2.9V

P1100659

換上電池手把Pentax FG,用上四顆Panasonic Eneloop 白色版,量到的電壓是5.21V,還比沒電的兩顆CR2串起來的5.8V低…為什麼可以驅動MZ-3? 網路上找到的原廠說明書只說用兩顆3V的CR2電池,沒說容忍範圍可以多大

結論: 想買Kamera CR2可充放電池給Pentax 底片機的朋友,請三思,這款可能塞的進Instax拍立得,但塞不進MZ-3/MZ-5這一類的底片機