Đếm số người ra vào phòng và Bật Tắt thiết bị sử dụng Arduino

Nội dung bài viết hôm nay mình sẽ hướng dẫn cho các bạn một dự án đếm số người ra vào phòng và bật tắt thiết bị sử dụng Arduino. Đây là một dự án rất thú vị cho những người có sở thích và sinh viên để vui chơi cũng như học tập.
Hệ thống sẽ đếm số người hiển thị lên LCD khi cảm biến phát hiện người đi vào phòng và đèn sẽ bật lên.Khi người ra khỏi phòng đèn sẽ tắt.
Để hiểu hơn về cấu tạo và cách hoạt động của Cảm Biến Vật Cản Hồng Ngoại các bạn có thể tìm đọc bài viết về Arduino miễn phí dành cho người mới nhập môn.
- Xem ngay: Cảm biến hồng ngoại
- Xem ngay: Tổng quan LCD 16×2 và giao tiếp I2C LCD sử dụng Arduino
Sơ đồ đấu nối

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 |
Bread Board (Bo Test) | 1 | 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 |
Cảm biến vật cản hồng ngoại | 2 | Mua ngay |
LCD16X2 | 1 | Mua ngay |
Board I2C LCD16X2 | 1 | Mua ngay |
LED 5V/5MM | 1 | Mua ngay |
Nguồn DC 12V/2A | 1 | Mua ngay |
Code
#include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F, 16, 2); #define in 14 #define out 17 #define relay 3 int count=0; void IN() { count++; lcd.clear(); lcd.print("SO NGUOI:"); lcd.setCursor(0,1); lcd.print(count); delay(1000); } void OUT() { count--; lcd.clear(); lcd.print("SO NGUOI:"); lcd.setCursor(0,1); lcd.print(count); delay(1000); } void setup() { lcd.begin(); lcd.backlight(); Serial.begin(9600); lcd.setCursor(0,2); lcd.print(" HELLO "); 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(out)) IN(); if(!digitalRead(in)) OUT(); Serial.print(count); Serial.println(""); if(count<=0) { lcd.clear(); digitalWrite(relay, LOW); lcd.clear(); lcd.print("KO CO NGUOI:"); lcd.setCursor(0,1); lcd.print("Den Tat"); delay(200); } else digitalWrite(relay, HIGH); }
Thư viện
Lời kết
Tham gia cộng đồng Arduino KIT Để nhận được nhiều kiến thức bổ ích, các bạn Đăng ký để nhận thông báo khi có bài viết mới nhé. Tham gia Cộng đồng Arduino KIT để cùng nhau thảo luận và chia sẽ kiến thức về lập trình Arduino. Nếu các bạn thấy bài viết bổ ích nhớ Like và Share cho mọi người cùng học nhé. |
sao nó bị lỗi hiện -39 người ấy
Xin chào add code của add chia sẻ rất ngắn ngọn dể hiểu,rất hay.nhưng khi chạy thử thì bị tình trạng là nếu cả hai cảm biến đều bị vật cản che trong một khoảng tg khi cảm biến không bị che nữa thì giá trị biến count trả về là ngẫu nhiên.nên bị lỗi khi thì count ++,khi thì–;add có cách nào khắc phục code hết lỗi không cảm ơn đã đọc comment