Hướng dẫn chế bộ đếm người ra vào bằng đèn Lazer sử dụng Arduino

Hướng dẫn chế bộ đếm người ra vào bằng đèn Lazer sử dụng Arduino

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 Shopee
Arduino Uno R3 1 Mua ngay
Cáp nạp 1 Mua ngay
Cảm biến ánh sáng 2 Mua ngay
Relay 5V/1 kênh 1 Mua ngay
Dây cắm (Đực – Cái) 1 Mua ngay
Dây cắm (Đực – Đực) 1 Mua ngay
LCD16X2 1 Mua ngay
Board I2C LCD16X2 1 Mua ngay
Diode laser 2 Mua ngay
Bread Board (Bo test) 1 Mua ngay
Nguồn 12V/2A DC 1 Mua ngay

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

Subscribe
Notify of
guest
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
KingMax

Cảm biến kia săp xếp như thế nào ah b. 1 cái vị trí người ra 1 cái vị trí người vào?
Có 2 vấn đề mình chưa thấy xử lý:
1: Trường hợp người đứng trong cảm biến quá thời gian delay thì số người sẽ bị tự động dc cộng thêm.
2: Trờng hợp người chạm cảm biến xong quay lại mạch vẫn nhận là thêm người.