Do đó, hệ thống cần cảm biến được người hoặc vật di chuyển qua cửa.Sau đó, hệ thống điều khiên các motor để mở hoặc đóng cho vật thể đi qua.Đồng thời, hiển thị các thông số môi trường n
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN
Hải Phòng, tháng 08 năm 2024
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 5
CHƯƠNG I: MÔ TẢ BÀI TOÁN 6
1.1 Xác định yêu cầu cần đạt của hệ thống 6
1.2 Các chức năng của hệ thống 6
1.3 Các module của hệ thống 7
CHƯƠNG II: Xây dựng mô hình hệ thống 7
2.1 System Module 7
2.2 Kịch bản hoạt động 8
CHƯƠNG III: CƠ SỞ LÝ THUYẾT VÀ THÀNH PHẦN 9
3.1 VI ĐIỀU KHIỂN ARDUINO 9
9
3.2 CẢM BIẾN NHIỆT ĐỘ ĐỘ ẨM DHT11 12
12
3.3 MODULE L298N 13
Trang 3133.4 ESP8266 15
15ESP8266 không chỉ đơn thuần là một vi xử lý thông thường, mà còn là một vi
xử lý tích hợp mạnh mẽ đặc biệt được thiết kế với mục tiêu giải quyết các thách thức về kết nối và truyền thông trong lĩnh vực Internet of Things (IoT)
Trang 4Được ra đời như một tương lai cho việc kết nối, ESP8266 mang trong mình sức mạnh để biến các thiết bị thông thường thành những phần tử thông minh,
có khả năng tương tác và kết nối với Internet một cách đơn giản và hiệu quả
15
Với khả năng tích hợp chức năng Wi-Fi, ESP8266 trở thành cầu nối thông tin quan trọng giữa thế giới vật lý và không gian kỹ thuật số Nó giúp cho các thiết bị, từ những đèn đơn giản đến các hệ thống phức tạp, có khả năng kết nối và giao tiếp trực tiếp với mạng Internet 15
CHƯƠNG IV : LẬP TRÌNH VÀ KẾT LUẬN 16
4.1 Code : 16
4.2 Kết luận : 16
Trang 5LỜI NÓI ĐẦU
Trong cuộc cách mạng 4.0, khoa học và công nghệ đang liên tục phát triển với tốc độ nhanh chóng, tạo ra những thay đổi vượt bậc trong lao động
và vận hành sản xuất Trong số đó, Internet of Things là một lĩnh vực công nghệ đang phát triển mạnh mẽ trong thời đại số hiện nay Nó được ứng dụng vào gần như mọi ngành nghề khác nhau trong cuộc sống như thiết bị di động,
xe hơi, thiết bị y tế, thiết bị gia dụng, vv… Internet of Things được sử dụng trong cuộc sống hàng ngày của chúng ta và đóng vai trò quan trọng trong việccải thiện hiệu suất, tiện ích và tiết kiệm năng lượng
Với sự phát triển mạnh mẽ của ngành Internet of Things và tự động hóa trong sản xuất, nhu cầu sự tiện lợi ngày càng trở nên quan trọng Hệ thống cửa tự động sẽ đóng vai trò thiết yếu trong việc đáp ứng nhu cầu này Nó Xácđịnh mức độ hiệu quả của cửa tự động trong việc cải thiện tiện nghi và an ninh cho người sử dụng Đồng thời, cho phép người dùng có thể điều khiển
hệ thống ở mọi nơi mọi lúc và lưu trữ các thông số ,trạng thái
Hệ thống cửa tự động sử dụng công nghệ Internet of Things được kỳ vọng sẽ mang lại nhiều lợi ích thiết thực, góp phần nâng cao đời sống và tự tiện lợi trong cuộc sống cũng như doanh nghiệp
Trang 6CHƯƠNG I: MÔ TẢ BÀI TOÁN
1.1 Xác định yêu cầu cần đạt của hệ thống
Hệ thống cửa tự động là một hệ thống được thiết kế để giải quyết cácvấn đề như di chuyển cũng như nhận diện người, đồ vật để đảm bảo an toàncũng như sự tiện lợi
Do đó, hệ thống cần cảm biến được người hoặc vật di chuyển qua cửa.Sau đó, hệ thống điều khiên các motor để mở hoặc đóng cho vật thể đi qua.Đồng thời, hiển thị các thông số môi trường ( nhiệt độ, độ ẩm ) và có cơ chếthực hiện các thao tác thủ công
Ngoài ra, hệ thống cửa tự động cần cho phép người dùng có thể điềukhiển hệ thống ở mọi lúc mọi nơi thông qua hệ thống internet theo thời gianthực Tuy nhiên, khi thực hiện sẽ có các sai sót hệ thống cần sử dụng các thiết
bị phức tạp hơn với nhiều tính năng hơn để đảm bảo độ chính xác và hiệusuất
A Hệ Thống Nhúng
Tự động đóng/mở cửa: hệ thống sử dụng cảm biến để nhận diện vật thể
di chuyển qua cửa từ đó đóng/mở để đưa vật thể ra vào
Thông báo thông số môi trường: hệ thống sẽ cảm nhật các nhiệt độ, độ
ẩm môi trường để hiện lên trên giao diện
Điều khiển hệ thống: người dùng có thể điều khiển hệ thống thông quainternet
Lưu trữ: ghi lại các thông số theo thời gian
B INTERNET OF THINGS
Arduino có thể kết nối với ESP8266 từ đó trao đổi qua lại dữ liệu chonhau ( Arduino gửi thông số môi trường được nhận từ các sensor choESP – ESP gửi lệnh điều khiển từ Server cho Arduino để thực hiện )
Trang 7 ESP8266 kết nối wifi
ESP8266 gửi dữ liệu nhận từ Arduino lên server và nhận lệnh từ servergửi ngược lại
Module cảm biến : sẽ cảm nhận được chuyển đông, nhiệt độ và độẩm… rồi chuyền dữ liệu về khối điều khiển
Module màn hình hiển thị: Hiển thị các thông số ở trong cơ sở dữ liệutrên giao diện
CHƯƠNG II: Xây dựng mô hình hệ thống
2.1 System Module
Trang 82.2 Kịch bản hoạt động
Hiển thị nhiệt độ, độ ẩm :
Sau khi được cấp nguồn điện, các cảm biến sẽ kiểm tra môi trường xung quanh bằng cảm biến nhiệt độ, độ ẩm và gửi dữ liệu về Arduino Các dữ liệu trạng thái của các module sẽ được đóng gói và gửi từ arduino sang esp qua giao thức UART Esp sau khi nhận được dữ liệu sẽ xử
lý dữ liệu và tiếp tục gửi lên server thông qua internet
Esp gửi lên Firebase( chức năng tương tự server) Sau khi dữ liê ‘u gửi lên Sever thành công sẽ tiến hành lưu dữ liê ‘u vào database cũng như hiển thị
dữ liê ‘u lên giao diê ‘n Web
Đóng/mở cửa :
Khi có vật thể đi đến cửa, cảm biến chuyển động sẽ thông báo về Arduino Arduino sẽ điều khiển motor để di chuyển 2 cánh cổng sang 2 bên Nếu vật cản vẫn còn đứng trong phạm vi cảm biến thì cửa sẽ không đóng Ngược lại, nếu rời khỏi phạm vi thì cửa sẽ tự động đóng lại Đồng thời, sẽ có
2 nút đóng mở thủ công để người dùng có thể đóng , mở bằng tay khi có sự
cố xảy ra
Sử dụng trang web :
Trang web sẽ có 2 nút cho 2 chế độ lad Auto và Manual :
Trang 9 Chế độ auto: Hiển thị thông số môi trường lên trên để người dùng cóthể xem
Chế độ manual: Xuất hiện 2 nút đóng mở để người dùng đóng mở cửathông qua việc ấn nút và hệ thống sẽ hoạt động theo
CHƯƠNG III: CƠ SỞ LÝ THUYẾT VÀ THÀNH PHẦN 3.1 VI ĐIỀU KHIỂN ARDUINO
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các dự
án điện tử Thành phần của Arduino bao gồm mạch điều khiển và phần mềm hoặc IDE (Môi trường phát triển tích hợp) chạy trên máy tính của bạn Nền tảng Arduino trở nên khá phổ biến đối với những người mới bắt đầu Không giống như các bảng mạch điện tử được lập trình trước đó Arduino không cần một mạch chủ riêng để tải mã nguồn vào mạch điều khiển mà người dùng chỉ cần sử dụng dây cáp USB
a Nguồn (USB / Barrel Jack)
Mỗi mạch Arduino đều có cổng kết nối với nguồn điện Cụ thể trên đây
mà mạch Arduino UNO có thể được lấy nguồn từ dây cáp USB từ máy tính của bạn, hoặc một số nguồn DC khác có Jack DC
Trang 10Chân kết nối USB cũng là chân để bạn có thể tải code lên bo mạch Arduino Lưu ý: Tuyệt đối không được sử dụng nguồn lớn hơn 20V vì với nguồn điện áp này sẽ có thể phá hủy mạch Arduino của bạn Điện áp đượccác nhà sản xuất đề nghị cho hầu hết các bo mạch Arduino là từ 6 – 12V.
b Các chân (5V, 3.3V, GND, Digital, Analog, PWM, ISF)
Các chân trên là nguồn ra mà bạn có thể kết nối dây đầu ra với các tải hoặcmột số mạch kết nối bên ngoài Với các loại Arduino sẽ có thể một số loại chân khác nhau Ở mỗi chân đều được in các nhãn và ký tự để người sử dụng có thể phân biệt được
GND (3) : Viết tắt của ‘Ground’ là mass Có một số chân GND trênArduino, bất kỳ các chân GND trong số đó có thể được sử dụng đểnối mass mạch của bạn
5V (4) & 3.3V (5) : Chân 5V cung cấp năng lượng 5 volt và chân3,3V cung cấp 3,3 volt Hầu hết các thành phần đơn giản được sửdụng với Arduino đều hoạt động bình thường ở mức 5 hoặc 3,3 volt
Analog (6) : Các chân được dán nhãn ‘Analog In’ (A0 đến A5 trênUNO) là các chân Analog In Các chân này có thể đọc tín hiệu từcác cảm biến tương tự (như cảm biến nhiệt độ ) và chuyển đổi nóthành một giá trị Digital mà chúng ta có thể đọc được
Digital (7): Các chân Digital được dán nhãn từ 0 – 13 trên ArduinoUNO, các chân này có thể được sử dụng cho cả đầu vào digital nếunhư là các nút nhấn và đầu ra digital nếu như cấp nguồn cho LED
PWM (8): Bạn có thể nhìn thấy những dấu (~) nằm ở bên cạnh cácchân 3, 5, 6, 9, 10 và 11 trên mạch Các chân này đều có chức nănghoạt động như các chân Digital thông thường, nhưng cũng có thể sửdụng để điều chế độ rộng xung PWM Bạn có thể hình dung cácchân này có thể được sử dụng mô phỏng đầu ra tín hiệu Analog
ISF (9): Được viết tắt của cụm từ Analog Reference, hầu hết chânnày thường không được sử dụng Đôi khi nó được sử dụng để có thểđặt điện áp tham chiếu trong khoảng từ 0 – 5V làm giới hạn cho cácchân đầu vào Analog
c Nút Reset (Reset Button)
Nút reset (10) có nhiệm vụ khởi động lại bất kỳ đoạn code nào được tải trên Arduino Điều này rất hữu ích nếu code của bạn không có vòng lặp nhưng bạn lại muốn kiểm tra chương trình đó nhiều lần
Trang 11d Đèn LED báo nguồn (Power LED Indicator)
Đèn báo được nắp ngay bên phải của chữ UNO, đó là một đèn LED nhỏ được dán nhãn ON (11)
Đèn báo này có nhiệm vụ báo khi có nguồn cấp vào Arduino Trong một
số trường hợp đèn không sáng thì chắc chắn có vấn đề xảy ra Bạn có thể kiểm tra lại dây cáp USB, nguồn cấp và cả mạch nữa
e LED TX và RX (TX RX LEDs)
TX là LED hiển thị tín hiệu truyền đi và RX là hiển thị tín hiệu nhận về Những tín hiệu này xuất hiện khá nhiều trong các thiết bị điện tử để có thể chỉ ra những chân thực hiện nhiệm vụ truyền tải nối tiếp Trong trường hợp này, có 2 vị trí trên Arduino UNO là TX và RX (12)
Các LED này có nhiệm vụ thông báo cho người dùng bất cứ khi nào Arduino được nhận hoặc truyền dữ liệu đi Ví dụ như tải một chương trìnhlên thì đèn sẽ hiển thị
f IC chủ (Main IC)
IC chủ là vị trí số 13 Đây được coi là bộ não của Arduino IC thường được sử dụng là dòng IC ATmega của công ty ATMEL sản xuất Việc nhận biết được IC chủ cũng là điều rất quan trọng, vì bạn cần biết mạch của bạn đang sử dụng IC nào để bạn có thể nạp chương trình thích hợp từ phần mềm Arduino
Thông tin về tên của IC thường được tìm thấy ở phía mặt trên Nếu bạn muốn tìm hiểu sâu hơn về thông tin của IC bạn có thể đọc thêm tài liệu từ nhà sản xuất
g Bộ điều chỉnh điện áp (Voltage Regulator)
Bộ điều chỉnh điện áp (14), không được sử dụng nhiều Nhiệm vụ của nó
là điều chỉnh điện áp, kiểm soát nguồn điện áp đưa vào mạch Arduino Bạn hãy coi rằng nó giống như một người canh gác, nó sẽ làm biến mất những điện áp phụ có thể gây tổn hại cho các linh kiện trong mạch Nhưng bạn cũng cần phải hết sức chú ý là bộ điều chỉnh điện áp này cũng
có giới hạn của nó Vì vậy, tuyệt đối không nên kết nối mạch Arduino với nguồn điện DC lớn hơn 20V
Trang 123.2 CẢM BIẾN NHIỆT ĐỘ ĐỘ ẨM DHT11
DHT11 là một cảm biến kỹ thuật số chi phí thấp để cảm nhận nhiệt độ và
độ ẩm Cảm biến này có thể dễ dàng giao tiếp với bất kỳ bộ điều khiển vi mô nào như Arduino, Raspberry Pi, v.v để đo độ ẩm và nhiệt độ ngay lập tức
a Cấu tạo cảm biến nhiệt độ độ ẩm DHT11
Cảm biến DHT11 bao gồm một phần tử cảm biến độ ẩm điện dung và mộtđiện trở nhiệt để cảm nhận nhiệt độ Tụ điện cảm biến độ ẩm có hai điện cực với chất nền giữ ẩm làm chất điện môi giữa chúng Thay đổi giá trị điện dung xảy ra với sự thay đổi của các mức độ ẩm IC đo, xử lý các giá trị điện trở đã thay đổi này và chuyển chúng thành dạng kỹ thuật số
Để đo nhiệt độ, cảm biến này sử dụng một nhiệt điện trở có hệ số nhiệt độ âm, làm giảm giá trị điện trở của nó khi nhiệt độ tăng Để có đượcgiá trị điện trở lớn hơn ngay cả đối với sự thay đổi nhỏ nhất của nhiệt độ, cảm biến này thường được làm bằng gốm bán dẫn hoặc polymer
Trang 13tính toán nào So với cảm biến đời mới hơn là DHT22 thì DHT11 cho khoảng đo và độ chính xác kém hơn rất nhiều.
c Thông số kỹ thuật DHT11
Điện áp hoạt động: 3V - 5V DC
Dòng điện tiêu thụ: 2.5mA
Phạm vi cảm biến độ ẩm: 20% - 90% RH, sai số ±5%RH
Phạm vi cảm biến nhiệt độ: 0°C ~ 50°C, sai số ±2°C
Tần số lấy mẫu tối đa: 1Hz (1 giây 1 lần)
Điện áp đầu vào từ 5 – 30V
Dòng điện tối đa cho mỗi động cơ là 2A
Điện áp của tín hiệu điều khiển: 5 – 7V
Dòng của yêu cầu của tín hiệu điều khiển 0 – 36 mA
b Sơ đồ chân module L298
Chân 12V Power cấp nguồn cho mạch L298 và là nguồn động lựccho động cơ
Chân 5V Power có thể dùng cấp nguồn cho Arduino, khi có Jumper5V Enable
Chân GND là chân cấp MASS cho mạch, khi sử dụng khi vi điềukhiển thì cần nối GND mạch với GND của vi điều khiển
Chân Enable là chân cho phép ngỏ ra động cơ hoạt động hoặc dừng.Mặc định mạch có Jumper A Enable va B Enable như hình là chophép chạy Chân IN1, IN2 điều khiển chiều và tốc độ động cơ 1thông qua ngỏ ra output A
Trang 14 Chân IN3, IN4 điều khiển chiều và tốc độ động cơ 2 thông qua ngỏ
ra output B
Chân output A, output B chân ngỏ ra động cơ 1, 2
3.4 ESP8266
ESP8266 là một module Wi-Fi với khả năng kết nối Internet và được
tích hợp sẵn trên một số board nhúng như NodeMCU, Wemos, và ESP-01 ESP8266 có thể hoạt động như một điểm truy cập (access point), một client kết nối đến một điểm truy cập khác, hoặc cả hai đều được Nó được sử dụng rộng rãi trong các ứng dụng IoT (Internet of Things) như cảm biến thông minh, hệ thống kiểm soát thiết bị, hoặc các ứng dụng điều khiển từ xa Module này có giá thành rẻ và rất dễ sử dụng, cùng với đó là khả năng tương thích với nhiều loại vi điều khiển khác nhau
Trang 15Thông số kỹ thuật của NodeMCU
Microcontroller: ESP8266EX
Điện áp hoạt động: 3.3V DC
Số chân I/O: 17 chân GPIO
Kết nối mạng: WiFi 802.11 b/g/n
Giao diện mạng: TCP/IP
Đồng hồ thời gian thực (RTC): không tích hợp
Trang 16}
// Kiểm tra trạng thái công tắc giới hạn
// if (digitalRead(SWITCH_OPEN) == HIGH) {
Trang 17// stopMotor();
// Serial.println("Door is fully open");
// }
// if (digitalRead(SWITCH_CLOSE) == HIGH) { // stopMotor();
// Serial.println("Door is fully closed"); // }
Trang 19webSocket.setReconnectInterval(5000); // Thời gian chờ trước khi kết nối lại nếu mất kết nối
Trang 20} else if (command == "closed") {
// Serial.println("Received command: CLOSE"); // Gửi lệnh đóng cửa tới Arduino
Trang 21 Tìm hiểu các vấn đề liên quan
Nắm bắt được các linh kiện có trong hệ thống, cách thức hoạtđộng của các linh kiện
Kết nối thành công cửa tự động với các phần mềm khác nhau(XAMPP, Visual Studio,….)