Với khả năng tự động điều khiển hoạt động của đèn dựa trên sự chuyển động hoặc ánh sáng môi trường, hệ thống đèn tự động không chỉ giúp giảm thiểu thời gian và công sức trong việc bật tắ
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP
KHOA ĐIỆN TỬ VÀ KĨ THUẬT MÁY TÍNH
BÁO CÁO MÔN: THỰC HÀNH LẬP TRÌNH
DI ĐỘNG
ĐỀ TÀI: HỆ THỐNG QUẢN LÝ VÀ ĐIỀU KHIỂN LED THÔNG MINH THEO THỜI
GIAN
Danh sách sinh viên thực hiện:
1 Nguyễn Anh Tuấn – 2117480047
2 Vũ Văn Cường - 21174800055
3 Phạm Thanh Tú – 21174800019
4 Trịnh Hoàng Đạt - 21174800039
Danh sách giảng viên hướng dẫn:
1 Vũ Trung Dũng - Giảng viên
Hà Nội, Tháng 11/2024
Trang 21.1 Mục tiêu nghiên cứu
1.2 Đối tượng nghiên cứu
1.3 Nội dung nghiên cứu
1.4 Ý nghĩa khoa học và thực tiễn
CHƯƠNG 3: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Tài liệu tham khảo
Trang 4LỜI NÓI ĐẦU
Trong thế giới hiện đại, việc tiết kiệm năng lượng và tối ưu hóa các tiện ích trong cuộc sống hàng ngày ngày càng trở nên quan trọng Đèn bật tắt tự động là một trong những sáng tạo công nghệ giúp giảm thiểu lãng phí điện năng, mang lại sự tiện lợi và an toàn cho người sử dụng Với khả năng tự động điều khiển hoạt động của đèn dựa trên sự chuyển động hoặc ánh sáng môi trường, hệ thống đèn tự động không chỉ giúp giảm thiểu thời gian và công sức trong việc bật tắt đèn thủ công, mà còn góp phần bảo vệ môi trường
và tiết kiệm chi phí điện năng.
Các hệ thống này thường được trang bị cảm biến chuyển động hoặc cảm biến ánh sáng, cho phép đèn chỉ hoạt động khi cần thiết, và tự động tắt khi không có người hoặc ánh sáng xung quanh đủ sáng Sự ứng dụng của đèn bật tắt tự động ngày càng trở nên phổ biến trong các không gian như văn phòng, nhà ở, hành lang, nhà vệ sinh, hay thậm chí là các khu vực công cộng, mang đến một giải pháp chiếu sáng thông minh, hiệu quả và thân thiện với người sử dụng.
Đèn bật tắt tự động không chỉ là một tiện ích hiện đại mà còn là một xu hướng trong việc xây dựng các hệ thống chiếu sáng thông minh, mang đến những lợi ích rõ ràng về mặt tiết kiệm năng lượng, bảo vệ tài nguyên và giảm thiểu tác động tiêu cực đến môi trường.
CHƯƠNG 1 GIỚI THIỆU VỀ ĐỀ TÀI
Trang 51 Lý do chọn đề tài
Tiết kiệm năng lượng và bảo vệ môi trường: Trong bối cảnh biến đổi khí hậu và
sự gia tăng nhu cầu sử dụng năng lượng, việc tiết kiệm điện năng là một yêu cầu cấp thiết Hệ thống đèn bật tắt tự động giúp tối ưu hóa việc sử dụng điện, giảm thiểu lãng phí năng lượng, đặc biệt trong các không gian công cộng và khu vực có tần suất sử dụng không đều Điều này không chỉ giúp tiết kiệm chi phí điện năng cho người sử dụng mà còn đóng góp vào việc bảo vệ môi trường, giảm lượng khí thải CO2.
Tăng cường tiện ích và sự thuận tiện trong sinh hoạt: Đèn bật tắt tự động giúp
người dùng không phải lo lắng về việc quên tắt đèn khi rời khỏi phòng, đặc biệt là trong các không gian như hành lang, nhà vệ sinh, hoặc các khu vực công cộng Sự
tự động này mang lại sự thuận tiện, giúp tiết kiệm thời gian và tạo ra môi trường sống thông minh hơn.
Đáp ứng nhu cầu thị trường và xu hướng công nghệ: Trong xu hướng phát
triển của các hệ thống chiếu sáng thông minh và nhà ở thông minh (smart home), việc ứng dụng công nghệ vào quản lý chiếu sáng là một bước tiến quan trọng Đèn bật tắt tự động không chỉ là một giải pháp tiện ích mà còn thể hiện sự đổi mới trong việc ứng dụng công nghệ vào cuộc sống hàng ngày.
Tính an toàn cao: Đèn bật tắt tự động còn góp phần tăng cường an toàn cho
người sử dụng, đặc biệt là trong các không gian công cộng hay khu vực có nhiều người qua lại Hệ thống cảm biến giúp đèn tự bật sáng khi có chuyển động, tránh tình trạng không đủ ánh sáng khi đi lại vào ban đêm Đồng thời, đèn tự tắt khi không có người, giúp giảm nguy cơ tai nạn do ánh sáng yếu hoặc đèn quên tắt.
Khả năng ứng dụng rộng rãi: Đèn bật tắt tự động có thể ứng dụng ở nhiều không
gian khác nhau, từ các tòa nhà văn phòng, khu vực công cộng đến nhà ở cá nhân
Hệ thống này không chỉ phù hợp với các gia đình, mà còn là giải pháp hiệu quả cho các công ty, trường học, bệnh viện và các khu vực thương mại Đây là một giải pháp chiếu sáng linh hoạt và dễ dàng tích hợp vào mọi không gian.
Với những lý do trên, việc nghiên cứu và phát triển hệ thống đèn bật tắt tự động không chỉ mang lại những lợi ích về tiết kiệm năng lượng và tiện ích mà còn đáp ứng nhu cầu sống hiện đại và thông minh của xã hội Do đó, đây là một đề tài nghiên cứu có tính ứng dụng cao và ý nghĩa thiết thực trong cuộc sống hàng ngày.
1.1 Mục tiêu nghiên cứu
Trang 6Phát triển hệ thống đèn tự động dựa trên các cảm biến chuyển động và ánh sáng để tối
ưu hóa việc chiếu sáng trong các không gian sử dụng, tiết kiệm năng lượng và giảm lãng phí điện.
Đánh giá hiệu quả tiết kiệm năng lượng của hệ thống đèn bật tắt tự động so với các hệ
thống chiếu sáng truyền thống.
Cải hiện sự tiện lợi và an toàn cho người sử dụng, đặc biệt trong các không gian công
cộng và nhà ở.
Nghiên cứu khả năng ứng dụng và mở rộng của hệ thống đèn tự động trong các môi
trường khác nhau như văn phòng, nhà ở, bệnh viện, trường học và các công trình công cộng.
Từ đó, nghiên cứu mong muốn đưa ra giải pháp chiếu sáng thông minh, tiết kiệm và hiệu quả cho người sử dụng.
1.2 Đối tượng nghiên cứu
Hệ thống chiếu sáng tự động: Các loại đèn sử dụng cảm biến chuyển động, cảm biến
ánh sáng, hoặc các công nghệ thông minh khác để tự động bật và tắt theo yêu cầu của môi trường xung quanh.
Các cảm biến và công nghệ điều khiển: Các cảm biến chuyển động (PIR), cảm biến
ánh sáng, bộ điều khiển tự động và các hệ thống vi xử lý, giúp kích hoạt hoặc ngừng hoạt động của đèn.
Hiệu quả tiết kiệm năng lượng: Đo lường và đánh giá mức độ tiết kiệm năng lượng
của hệ thống đèn bật tắt tự động so với các phương pháp chiếu sáng truyền thống (chiếu sáng thủ công).
Ứng dụng thực tế: Các không gian sử dụng đèn bật tắt tự động, bao gồm nhà ở, văn
phòng, bệnh viện, trường học và các khu vực công cộng, để đánh giá tính khả thi và hiệu quả trong từng môi trường cụ thể.
Nghiên cứu sẽ tập trung vào việc thiết kế, thử nghiệm và đánh giá hệ thống đèn tự động, cùng với các yếu tố liên quan đến công nghệ, hiệu quả tiết kiệm năng lượng và ứng dụng trong thực tế.
1.3 Nội dung nghiên cứu
Khảo sát và phân tích các loại đèn tự động hiện có
Trang 7Nghiên cứu các loại đèn tự động phổ biến trên thị trường, bao gồm đèn sử dụng cảm biến chuyển động (PIR), cảm biến ánh sáng, và công nghệ điều khiển tự động khác.
Phân tích ưu, nhược điểm của các hệ thống đèn tự động hiện có, so sánh với các giải pháp chiếu sáng truyền thống.
Đánh giá các yếu tố tác động đến hiệu quả hoạt động của hệ thống đèn tự động như khoảng cách cảm biến, góc quét, thời gian phản hồi, độ nhạy của cảm biến, và các yếu tố môi trường.
Thiết kế và xây dựng mô hình đèn bật tắt tự động
Lựa chọn và thiết kế hệ thống cảm biến thích hợp (cảm biến chuyển động, cảm biến ánh sáng) để điều khiển đèn tự động bật/tắt.
Tìm hiểu và ứng dụng các công nghệ điều khiển như vi xử lý (microcontroller), Arduino, hoặc các module thông minh để kết nối cảm biến với hệ thống đèn.
Lắp ráp và kiểm tra hệ thống mô hình chiếu sáng tự động trong các điều kiện khác nhau.
Đánh giá hiệu quả tiết kiệm năng lượng
Đo lường và so sánh mức tiêu thụ điện năng của hệ thống đèn tự động với các
hệ thống chiếu sáng truyền thống (đèn bật/tắt thủ công).
Phân tích mức độ tiết kiệm điện năng trong các tình huống thực tế như văn phòng, phòng ngủ, hành lang, nhà vệ sinh, hoặc khu vực công cộng.
Đánh giá thời gian hoạt động của đèn, tần suất bật/tắt và ảnh hưởng đến chi phí
sử dụng điện.
Nghiên cứu các yếu tố tác động đến hiệu quả hoạt động
Phân tích tác động của các yếu tố môi trường như ánh sáng xung quanh, độ ẩm, nhiệt độ, và vật cản trong không gian đến hiệu quả của các cảm biến.
Đánh giá khả năng nhận diện chuyển động và ánh sáng của các cảm biến trong các tình huống thực tế, như khi có người đi qua hoặc trong không gian có ánh sáng thay đổi liên tục.
Trang 8 Đánh giá các yếu tố chi phí và khả năng triển khai
Phân tích chi phí đầu tư ban đầu và chi phí vận hành của hệ thống đèn tự động
so với các giải pháp chiếu sáng truyền thống.
Đánh giá khả năng triển khai và áp dụng rộng rãi hệ thống đèn tự động trong các khu dân cư, tòa nhà văn phòng và các công trình công cộng.
Thông qua các nội dung nghiên cứu trên, đề tài sẽ cung cấp cái nhìn toàn diện về tính khả thi, hiệu quả và tiềm năng ứng dụng của hệ thống đèn bật tắt tự động, góp phần vào việc cải thiện chất lượng sống và tiết kiệm năng lượng trong các không gian sử dụng.
1.4 Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học và thực tiễn
Trang 9Tiết kiệm năng lượng, giảm chi phí điện năng trong các không gian sống và làm việc.
Tăng sự tiện lợi và an toàn cho người sử dụng, đặc biệt trong các không gian công cộng.
Hỗ trợ phát triển các hệ thống chiếu sáng thông minh, nâng cao chất lượng cuộc sống và bảo vệ môi trường.
1.5 Ý tưởng
ESP8266 là một mô-đun Wi-Fi mạnh mẽ và tiết kiệm chi phí, rất phù hợp để phát triển các hệ thống chiếu sáng thông minh Một số ý tưởng ứng dụng ESP8266 trong hệ thống đèn bật tắt tự động bao gồm:
Điều khiển đèn qua Wi-Fi: ESP8266 giúp kết nối hệ thống đèn với mạng Wi-Fi,
cho phép người dùng bật/tắt đèn từ xa thông qua ứng dụng di động hoặc giao diện web.
Tự động bật/tắt đèn theo cảm biến chuyển động: ESP8266 có thể kết nối với
cảm biến chuyển động PIR, tự động bật đèn khi phát hiện chuyển động và tắt khi không có chuyển động trong một khoảng thời gian.
Điều khiển đèn theo ánh sáng xung quanh: Kết hợp ESP8266 với cảm biến ánh
sáng để tự động bật đèn khi ánh sáng môi trường yếu (ban đêm) và tắt khi ánh sáng đủ (ban ngày).
Ứng dụng trong hệ thống nhà thông minh: ESP8266 có thể tích hợp vào các
nền tảng nhà thông minh như Blynk hoặc Home Assistant, cho phép điều khiển đèn từ xa và thiết lập lịch trình bật/tắt.
Kết nối với hệ thống giám sát: ESP8266 có thể kết nối với camera IP, tự động
bật đèn khi phát hiện người trong phạm vi giám sát, giúp tăng cường an ninh.
Tích hợp với trợ lý ảo: ESP8266 có thể kết nối với Google Assistant hoặc Alexa,
cho phép điều khiển đèn bằng giọng nói, mang lại trải nghiệm tiện ích.
Tự động điều chỉnh độ sáng: Kết hợp ESP8266 với bộ điều khiển độ sáng để
điều chỉnh mức độ sáng của đèn theo nhu cầu sử dụng và tiết kiệm năng lượng.
Với các ý tưởng này, ESP8266 giúp xây dựng hệ thống đèn bật tắt tự động tiết kiệm năng lượng, dễ dàng điều khiển và tích hợp với các công nghệ nhà thông minh, mang lại tiện ích và hiệu quả cao trong việc chiếu sáng thông minh.
Trang 10Chương 2: THIẾT KẾ HỆ THỐNG QUẢN LÝ VÀ ĐIỀU KHIỂN LED
THÔNG MINH THEO THỜI GIAN 2.1 Các linh kiện chính
2.1.1 ESP8266
Hình 2.1 Hình ảnh ESP8266
Cổng nạp giao tiếp: Micro || Type-C
Tương thích các chuẩn wifi : 802.11 b/g/n
Hỗ trợ: Wi-Fi Direct (P2P), soft-AP
Tích hợp TCP/IP protocol stack
Tích hợp TR switch, balun, LNA, power amplifier and matching network
Tích hợp bộ nhân tần số, ổn áp, DCXO and power management units
+25.dBm output power in 802.11b mode
Power down leakage current of <10uA
Trang 11 Integrated low power 32-bit CPU could be used as application processor
SDIO 1.1/2.0, SPI, UART
STBC, 1×1 MIMO, 2×1 MIMO
A-MPDU & A-MSDU aggregation & 0.4ms guard interval
Wake up and transmit packets in < 2ms
Dòng tiêu thụ ở Standby Mode < 1.0mW (DTIM3)
2.1.2 LED
Hình 2.2 Hình ảnh LED
Size: 5mm
Color: Red
Head Shape: Round
Lens Appearance: Diffused
2.1.3 Cảm Biến Âm Thanh
Trang 12Hình 2.3 Hình ảnh cảm biến âm thanh
Sử dụng trong các hệ thống bảo mật tại những tòa nhà, chung cư.
Cảm biến âm thanh sử dụng gắn trong mạch nghe lén.
Áp dụng cho những ngôi nhà thông minh (smart home).
Sử dụng gắn trên các dòng điện thoại smartphone.
Dùng thiết bị cảm biến trong bộ khuếch đại âm thanh.
Cảm biến âm thanh dùng trong những bộ nhận dạng âm thanh xung quanh.
Dùng cảm biến âm thanh để nhận dạng các mức âm thanh khác nhau.
2.1.4 Cảm Biến Ánh Sáng
Hình 2.4 Hình ảnh cảm biến ánh sáng
Điều khiển thiết bị bật tắt theo ánh sáng
Điều khiển đèn chiếu sáng tự động
Trang 13 Hệ thống cảnh báo chống trộm sử dụng kết hợp với module lazer
Thiết lập kết nối và điều khiển qua ứng dụng Android Studio
Ứng dụng Android Studio trên điện thoại kết nối với local host server qua mạng nội bộ (LAN) hoặc Wi-Fi.
Trang 14Người dùng có thể sử dụng ứng dụng để gửi lệnh điều khiển bật/tắt LED, thiết lập lịch hẹn giờ và giám sát trạng thái hiện tại của LED.
Xử lý lệnh từ local host Server
Local host server (có thể là máy tính hoặc thiết bị Raspberry Pi) đóng vai trò trung gian giữa ứng dụng Android và vi điều khiển (ESP8266 hoặc ESP32).
Server sẽ nhận các lệnh từ ứng dụng Android (như bật/tắt LED hoặc thiết lập hẹn giờ) và lưu trữ lịch hẹn giờ trong bộ nhớ của máy chủ.
Nếu có lệnh điều khiển ngay lập tức (bật/tắt LED), server sẽ gửi lệnh này tới vi điều khiển để thực hiện.
Gửi lệnh tới vi điều khiển
Vi điều khiển ESP8266 hoặc ESP32 sẽ kết nối với server qua mạng LAN, nhận lệnh điều khiển từ server và thực hiện các lệnh này.
Vi điều khiển sẽ bật hoặc tắt LED dựa trên các lệnh nhận được, sau đó gửi trạng thái của LED trở lại server để cập nhật thông tin trên ứng dụng Android.
Chức năng hẹn giờ tự động
Local host server lưu lịch hẹn giờ và tự động kiểm tra thời gian hiện tại.
Khi đến thời điểm đã cài đặt, server gửi lệnh điều khiển đến vi điều khiển để bật hoặc tắt LED theo đúng thời gian định trước.
Tính năng này cho phép LED hoạt động tự động mà không cần sự can thiệp của người dùng.
Cập nhật dữ liệu và giám sát trên ứng dụng Android
Server liên tục cập nhật trạng thái và lịch sử hoạt động của LED và truyền thông tin này đến ứng dụng Android.
Ứng dụng Android sẽ hiển thị trạng thái hiện tại của LED và cho phép người dùng theo dõi hoặc thay đổi lịch trình nếu cần.
Trang 15public class MainActivity extends AppCompatActivity {
EditText editTextNumber, editTextNumber1;
TextView textView, textView1;
ImageButton imgbtn1, imgbtn2;
Button btnonlall, btnoffall, START, btnbd1, btnbd2, STOP, xls,saveButton, delete;
Boolean flag = true;
Boolean flag1 = true;
private CountDownTimer countDownTimer1;
private CountDownTimer countDownTimer2;
private boolean isTimerRunning1 = false;
private boolean isTimerRunning2 = false;
private ArrayList<String> historyList1 = new ArrayList<>();// private ArrayList<String> historyList2 = new ArrayList<>(); String today="";
Trang 16private boolean currentStatus1 = false; // Trạng thái hiện tại của đèn
// Nếu quyền bị từ chối, thông báo cho người dùng
Toast.makeText(this, "Bạn cần cấp quyền lưu trữ để lưu lịch sử", Toast.LENGTH_SHORT).show();
Trang 17sharedPreferences = getSharedPreferences("LightHistory",
MODE_PRIVATE);
loadHistory();
currentStatus1 = sharedPreferences.getBoolean("light1_status", false);
currentStatus2 = sharedPreferences.getBoolean("light2_status", false);
Trang 18btnbd2.setOnClickListener(view -> { check_today();
} else {
check_today();
updateLightStatus1(false); update_state_light_1(false); flag = true;
} else {
check_today();
updateLightStatus2(false); update_state_light_2(false); flag1 = true;
}
});
btnonlall.setOnClickListener(view -> { check_today();
Trang 19historyList2.clear();
saveHistory();
Toast.makeText(getApplicationContext(), "Đã xóa lịch sử!", Toast.LENGTH_SHORT).show();
});
START.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String text = editTextNumber.getText().toString();
String text1 = editTextNumber1.getText().toString();
if (!text.isEmpty() && !text1.isEmpty()) {
try {
String[] timeParts = text.split(":");
if (timeParts.length != 3) throw new Exception(); int hours = Integer.parseInt(timeParts[0]);
int minutes = Integer.parseInt(timeParts[1]); int seconds = Integer.parseInt(timeParts[2]);
if (hours < 0 || minutes < 0 || seconds < 0 || hours >= 24 || minutes >= 60 || seconds >= 60) {
throw new Exception();
public void onTick(long millis) {
int totalSecondsLeft = (int) (millis / 1000);
int hoursLeft = totalSecondsLeft / 3600; int minutesLeft = (totalSecondsLeft % 3600) / 60;
int secondsLeft = totalSecondsLeft % 60; textView.setText(String.format("Đèn 1 tắt sau: %02d:%02d:%02d", hoursLeft, minutesLeft, secondsLeft));
imgbtn1.setImageResource(R.drawable.onl); }
@Override
public void onFinish() {
textView.setText("Hoàn tất");
imgbtn1.setImageResource(R.drawable.off); update_state_light_1(false);
update_state_light_2(false);
new Handler().postDelayed(new Runnable() { @Override
Trang 20public void run() {
String[] timeParts1 = text1.split(":");
if (timeParts1.length != 3) throw new Exception(); int hours1 = Integer.parseInt(timeParts1[0]); int minutes1 = Integer.parseInt(timeParts1[1]); int seconds1 = Integer.parseInt(timeParts1[2]);
if (hours1 < 0 || minutes1 < 0 || seconds1 < 0 || hours1 >= 24 || minutes1 >= 60 || seconds1 >= 60) {
throw new Exception();
public void onTick(long millis1) {
int totalSecondsLeft1 = (int) (millis1 / 1000);
int hoursLeft1 = totalSecondsLeft1 / 3600; int minutesLeft1 = (totalSecondsLeft1 % 3600) / 60;
int secondsLeft1 = totalSecondsLeft1 % 60; textView1.setText(String.format("Đèn 2 tắtsau: %02d:%02d:%02d", hoursLeft1, minutesLeft1, secondsLeft1));
imgbtn2.setImageResource(R.drawable.onl); }
@Override
public void onFinish() {
textView1.setText("Hoàn tất");
imgbtn2.setImageResource(R.drawable.off); new Handler().postDelayed(new Runnable() { @Override
public void run() {
Trang 21isTimerRunning2 = true;
} catch (Exception e) {
Toast.makeText(MainActivity.this, "Vui lòng nhập đúng định dạng hh:mm:ss Ví dụ: 23:59:59 (Giờ<24 : phút<60 : giây<60)", Toast.LENGTH_SHORT).show();
String fileName = "history_" + currentDate + ".txt";
// Đường dẫn tới thư mục lưu trữ (sử dụng getExternalFilesDir cho Android 11 trở lên)
File directory = new File(getExternalFilesDir(null),
"LightHistory");
if (!directory.exists()) {
directory.mkdirs(); // Tạo thư mục nếu chưa tồn tại
}
Trang 22// Tạo file với tên chứa ngày tháng
File file = new File(directory, fileName);
try (FileOutputStream fos = new FileOutputStream(file, true)) { // Ghi lịch sử bật/tắt của đèn vào file
for (String record : historyList1) {
while ((line = reader.readLine()) != null) {
historyList1.add(line); // Thêm từng dòng vào
historyList1
}
Toast.makeText(getApplicationContext(), "Đã tải lịch sử!",Toast.LENGTH_SHORT).show();