Phương pháp để đếm người ra vào bằng đèn Lazer sử dụng Arduino

19 Tháng 02 2020 | Đăng bởi: Cao Thanh Hùng

 

Bạn đã từng quên tắt đèn khi không có ai ở trong phòng, điều này gây ra phiền toái khi hóa đơn tiền điện ngày một tăng. Vậy giải pháp là ở đâu?

Trong chuyên đề tự học Arduino, Arduino KIT giới thiệu với  các bạn một dự án sẽ giúp bạn giải quyết vấn đề này, khi không có ai trong phòng tự động, nó cũng có thể được sử dụng cho đèn của phòng tắm, nhà vệ sinh, nhà bếp...

Để hiểu hơn về cấu tạo và cách hoạt động của tất cả Cảm biến có trong dự án .Các bạn có thể tìm đọc bài viết về Khóa học Arduino miễn phí dành cho người mới nhập môn.

Sơ đồ đấu nối

bat-tat-den-sung-dung-den-laze-va-cam-bien-anh-sang

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
Arduino Uno R3 1
Cảm biến ánh sáng 2
Relay 1
Dây cắm 15
LCD16X2 1
Board I2C LCD16X2 1
Diode laser 2

Code

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3F, 16, 2);
#define in 11
#define out 12
#define relay 13
int count=0;
void IN()
{
    count++;
    lcd.clear();
    lcd.print("Person In Room:");
    lcd.setCursor(0,1);
    lcd.print(count);
    delay(1000);
}
void OUT()
{
  count--;
    lcd.clear();
    lcd.print("Person In Room:");
    lcd.setCursor(0,1);
    lcd.print(count);
    delay(1000);
}
void setup()
{
  lcd.begin();
  lcd.print("Visitor Counter");
  delay(2000);
  pinMode(in, INPUT);
  pinMode(out, INPUT);
  pinMode(relay, OUTPUT);
  lcd.clear();
  lcd.print("Person In Room:");
  lcd.setCursor(0,1);
  lcd.print(count);
}
void loop()
{ 
 
  if(digitalRead(in))
  IN();
  if(digitalRead(out))
  OUT();
 
  if(count<=0)
  {
    lcd.clear();
    digitalWrite(relay, LOW);
    lcd.clear();
    lcd.print("Nobody In Room");
    lcd.setCursor(0,1);
    lcd.print("Light Is Off");
    delay(200);
  }
 
  else
    digitalWrite(relay, HIGH);
 
}

Thư viện

  • Các bạn có thể tải code tìm địa chỉ bus ở đây. Tải ngay.

  • Thư viện LiquidCrystal_I2C.h: Tải ngay.

Bài viết liên quan

Viết bình luận: