Thứ Tư, 9 tháng 3, 2016

Làm cảm biến nhiệt độ - độ ẩm DHT11 cùng arduino

giới thiệu chung về cảm biến DHT11

  • cảm biến nhiệt độ và độ ẩm được tích hợp trong một mạch duy nhất. Sử dụng cảm biến DHT11 có sẳn thư viện dành cho arduino.
  • mạch làm chắc chắn camt biến trả lời nhanh và chính xác là những ưu điểm của dòng cảm biến này.
  • Tín hiệu có thể truyền tối đa 20m.
  • Điện áp hoạt động: 3-3.5VDC
  • Ngưỡng nhiệt độ: 0-55 độ c
  • Ngưỡng độ ẩm:20-90%


Nội dung


  • Đọc dữ liệu cảm biến nhiệt độ và độ ẩm DHT11


Các thiết bị cần thiết



  • Cảm biến nhiệt độ độ ẩm DHT11
  • Arduino UNO R3
  • Dây cấm
  • Cảm biến DHT11
Cảm biến DHT11










Kết nối cảm biến DHT11 với arduino



DHT11Arduino UNO R3
GNDGND
Vcc5V
SignalD2

Lập trình


  1. // Gọi thư viện DHT11
  2. #include "DHT.h"

  3. const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino
  4. const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22

  5. DHT dht(DHTPIN, DHTTYPE);

  6. void setup() {
  7. Serial.begin(9600);
  8. dht.begin(); // Khởi động cảm biến
  9. }

  10. void loop() {
  11. float h = dht.readHumidity(); //Đọc độ ẩm
  12. float t = dht.readTemperature(); //Đọc nhiệt độ

  13. Serial.print("Nhiet do: ");
  14. Serial.println(t); //Xuất nhiệt độ
  15. Serial.print("Do am: ");
  16. Serial.println(h); //Xuất độ ẩm
  17. Serial.println(); //Xuống hàng
  18. delay(1000); //Đợi 1 giây
  19. }

Sau khi upload chương trình lên mạch Arduino, bạn hãy bấm Ctrl + Shift + M để mở cửa sổ Serial Monitor và xem kết quả.




CẢM BIẾN ÁNH SÁNG BH1750FVI

GIỚI THIỆU VỀ CẢM BIẾN ÁNH SÁNG BH1750FVI VÀ CÁCH LẬP TRÌNH

Giới thiệu

 hôm nay mình sẽ hướng dẩn các bạn  cách làm cảm biến đo cường độ ánh sáng BH1750FVI cùng arduino.
cảm biến đo cường độ ánh sáng BH1750FVI, là cảm biến ánh sáng có bộ chuyển đổi AD 16 bit tích hợp trong chip cà có thể suất ra trực tiếp dữ liệu theo dạng digital. cảm biến không cần bộ tính toán cường độ ánh sáng khác...
  • Cảm biến ánh sáng BH1750FVI

Các thiết bị càm chuẩn bị

  • 1 arduino uno
  • ! cảm biến bh1750fvi
  • dây nối
  • cổng com noi từ arduino uno nối vào máy tinh
Thông số kỹ thuật


  • điện áp làm việc: 3.3-5v
  • giao tiếp chuẩn I2C
  • Phạm vi đo rộng va độ phân giải cao (1~65.535 lx)
  • kết quả đo có thể thay đổi đo cường độ sáng (có thể phát hiện từ 0.11 lx, đến 100000 lx) (1~63.535 lx)
  • sự ảnh hưởng của tia hồng ngoại rất là nhỏ
  • kích thước (L x W) 3.2cm x 1.5cm

Lắp mạch


















Lập trình

/*


  1.   sample code for the BH1750 light sensor
  2.   Version 0.1
  3.   website:www.DFRobot.com
  4.   Connection:

  5.   VCC-5V
  6.   GND-GND
  7.   SCL-SCL(analog pin 5)
  8.   SDA-SDA(analog pin 4)
  9.   ADD-NC
  10.   */

  11. #include <Wire.h>

  12. int BH1750address = 0x23; //setting i2c address

  13. byte buff[2];
  14. void setup()
  15. {
  16.   Wire.begin();
  17.   Serial.begin(57600);//init Serail band rate
  18. }

  19. void loop()
  20. {
  21.   int i;
  22.   uint16_t val=0;
  23.   BH1750_Init (BH1750address);
  24.   delay(200);

  25.   if (2==BH1750_Read(BH1750address))
  26.   {
  27.     val=((buff[0]<<8)|buff[1])/1.2;
  28.     Serial.print(val,DEC);
  29.     Serial.println("[lx]");
  30.   }
  31.   delay(150);
  32. }
  33. int BH1750_Read(int address) //
  34. {
  35.   int i=0;
  36.   Wire.beginTransmission(address);
  37.   Wire.requestFrom(address, 2);
  38.   while(Wire.available()) //
  39.   {
  40.     buff[i] = Wire.read(); // receive one byte
  41.     i++;
  42.   }
  43.   Wire.endTransmission();
  44.   return i;
  45. }

  46. void BH1750_Init(int address)
  47. {
  48.   Wire.beginTransmission(address);
  49.   Wire.write(0x10);//11x reolution 120ms
  50.   Wire.endTransmission();
  51. }

video