NHIỆM VỤ ĐỒ ÁN Đề tài Ứng dụng công nghệ Internet of Things trong Hệ thống cảm biến nhiệt độ và độ ẩm tập trung vào các nội dung chính sau: 1. Giới thiệu về công nghệ Internet of Things (IoT): - Kiến trúc của IoT: Mô hình lớp và cách thức các thiết bị kết nối với nhau. - Các công nghệ truyền thông trong IoT: Wi-Fi, và các giao thức truyền thông khác được sử dụng trong hệ thống cảm biến nhiệt độ và độ ẩm. 2. Tìm hiểu về cấu trúc chương trình C cho ESP32 và Arduino IDE: - Cấu trúc mã nguồn và cách tổ chức chương trình cho ESP32, bao gồm việc sử dụng thư viện và các hàm cần thiết. - Hướng dẫn lập trình với Arduino IDE để phát triển các ứng dụng cảm biến nhiệt độ, độ ẩm. 3. Tìm hiểu về quá trình xây dựng ứng dụng IoT cho hệ thốngcảm biến nhiệt độ, độ ẩm: - Các bước thiết kế và triển khai ứng dụng từ lập kế hoạch đến phát triển. - Sử dụng nền tảng web và IoT để quản lý và điều khiển các thiết bị, các trạm từ xa. 4. Tìm hiểu về các cảm biến và thiết bị điều khiển: ● Cảm biến nhiệt độ, độ ẩm DHT11 ● Module Wi-Fi ESP32 ● Giao thức truyền tin WebSocket ● Hệ thống điều khiển 5. Ứng dụng công nghệ IoT trong xây dựng giao diện giám sát trên nền Web: - Phát triển giao diện người dùng để giám sát trạng thái của từng trạm, nhiệt độ, dộ ẩm, thiết bị theo thời gian thực. - Tính năng cảnh báo khi có sự cố hoặc khi các chỉ số về nhiệt độ, độ ẩm vượt ngưỡng cho phép.
GIỚI THIỆU DỰ ÁN
Tình hình nghiên cứu thuộc lĩnh vực đề tài
Mỗi giai đoạn lịch sử đều gắn liền với các cuộc cách mạng khoa học và kỹ thuật Hiện nay, cuộc cách mạng Internet of Things đang mang đến những thay đổi quan trọng cho cuộc sống của con người, ảnh hưởng sâu sắc đến hiện tại và tương lai.
Với sự bùng nổ của Internet, smartphone và thiết bị cảm biến, Internet of Things (IoT) đang trở thành xu hướng toàn cầu IoT được hiểu là những thiết bị có khả năng kết nối Internet, mang đến sự tiện lợi cho cuộc sống Ví dụ, khi bạn trở về nhà, hệ thống tự động mở khóa cửa, đèn sáng lên, điều hòa điều chỉnh nhiệt độ và nhạc phát lên để chào đón bạn Những trải nghiệm này, từng chỉ có trong phim khoa học viễn tưởng, giờ đây đang dần trở thành hiện thực nhờ vào công nghệ IoT.
Nhiệt độ và độ ẩm là hai đại lượng vật lý quan trọng, ảnh hưởng lớn đến nhiều tính chất của vật chất Nhiệt độ không chỉ tác động đến áp suất mà còn làm thay đổi thể tích của chất khí, thể hiện sự liên kết chặt chẽ giữa các đại lượng này trong các hiện tượng vật lý.
Nhiệt độ và độ ẩm là hai yếu tố quan trọng ảnh hưởng đến chất lượng sản phẩm và sự sống trên trái đất Trong bối cảnh công nghiệp phát triển mạnh mẽ, nhu cầu lưu trữ hàng hóa trong kho ngày càng gia tăng, đòi hỏi việc kiểm soát nhiệt độ và độ ẩm một cách hiệu quả Điều này không chỉ cần thiết cho các sản phẩm công nghiệp mà còn cho nông sản, trong các phòng thí nghiệm bệnh viện, nhà kính trồng cây cảnh và khu vực sản xuất rau sạch Việc đảm bảo các điều kiện này sẽ quyết định đến chất lượng và độ an toàn của sản phẩm.
Theo báo cáo Ericsson Mobility Report 2024, số lượng thiết bị kết nối IoT trên toàn cầu đang gia tăng mạnh mẽ Dự báo cho thấy vào cuối năm, số lượng kết nối IoT di động sẽ đạt khoảng 4 tỷ.
Dự báo đến năm 2024, số lượng kết nối IoT sẽ tăng từ 3,4 tỷ vào cuối năm 2023 Sự phát triển nhanh chóng của các kết nối IoT diện rộng và ngắn hạn được ghi nhận, với tổng cộng 15,7 tỷ kết nối IoT dự kiến vào năm 2023 và có khả năng đạt 38,8 tỷ vào năm 2029 Đặc biệt, các công nghệ IoT diện rộng như NB-IoT và Cat-M đang mở rộng nhờ vào việc nâng cấp hạ tầng mạng hỗ trợ IoT toàn cầu.
IoT đang phát triển mạnh mẽ, với 50% doanh nghiệp đã triển khai các dự án liên quan Công nghệ này mở ra cơ hội doanh thu cho nhiều ngành nghề, và các giải pháp IoT đang được thương mại hóa nhanh chóng Các lĩnh vực tiên phong trong việc áp dụng IoT bao gồm dịch vụ tiện ích, giao thông, tòa nhà thông minh và bán lẻ.
Trên thế giới đã và đang nghiên cứu một số hệ thống, thiết bị đo nhiệt độ trong tất cả các lĩnh vực có thể kể đến như:
Atmel, nhà chế tạo chip vi điều khiển hàng đầu thế giới, vừa ra mắt dòng chip đo nhiệt độ AT30TS750 Chip này sử dụng giao thức truyền thông số và tích hợp bộ nhớ EEPROM, mang lại hiệu suất cao và tiện lợi cho các ứng dụng đo lường nhiệt độ.
Alfredo Milani Comparetti đã cho ra đời phần mềm Speedfan theo dõi điện áp, tốc độ quạt và nhiệt độ trong máy tính với màn hình phần cứng chip.
Tại Úc các nhà vật lý học thuộc Đại học Adelaide tuyên bố đã chế tạo thành công nhiệt kế chính xác nhất thế giới.
Cypress Microsystem đã phát triển công nghệ PSOC (Programmable System On Chip), cho phép tạo ra các thiết bị đo nhiệt độ hiệu quả và linh hoạt Công nghệ này mang lại nhiều lợi ích trong việc thiết kế và phát triển các giải pháp đo nhiệt độ hiện đại.
Trước việc IoT phát triển mạnh mẽ trên thế giới, Việt Nam cũng là một nước đón đầu xu thế mới.
Tại Việt Nam, IoT đã được ứng dụng từ lâu thông qua các hình thức tự động hóa như hệ thống điều khiển đèn giao thông và tưới tiêu tự động Tuy nhiên, chỉ đến năm 2015, khái niệm Internet of Things (IoT) mới được phổ biến hơn thông qua các hội thảo và hội nghị công nghệ do Cisco, Intel, Hội Tin học TP.HCM cùng một số công ty trong nước như MobiFone, DTT, và Sao Bắc Đẩu tổ chức.
Xu hướng phát triển Internet of Things (IoT) tại Việt Nam năm 2024 đang bùng nổ với tốc độ tăng trưởng mạnh mẽ nhờ sự hỗ trợ từ nhiều ngành công nghiệp và chính sách của chính phủ Dự báo thị trường IoT sẽ đạt giá trị 3,7 tỷ USD vào năm 2023 và tiếp tục tăng trưởng với tỷ lệ CAGR khoảng 16,2% đến năm 2029 Sự phát triển này được thúc đẩy bởi nhu cầu cao về số hóa trong các ngành công nghiệp và triển khai các dự án thành phố thông minh.
Để đáp ứng nhu cầu sản xuất trong các lĩnh vực kinh tế, nông nghiệp và công nghiệp, đã có nhiều báo cáo và tài liệu nghiên cứu về vai trò cũng như các giải pháp kiểm soát nhiệt độ.
Nghiên cứu của Phạm Minh Tuấn, Phạm Thượng Cát và Trần Đức Minh tại Viện Công nghệ Thông Tin, Viện Khoa học và Công nghệ Việt Nam tập trung vào việc thiết kế và chế tạo hệ thống đo giám sát nhiệt độ và độ ẩm cho các kho nông lâm sản trong môi trường khắc nghiệt Hệ thống này nhằm nâng cao hiệu quả bảo quản sản phẩm và đảm bảo chất lượng nông sản trong điều kiện lưu trữ khó khăn.
Nghiên cứu ảnh hưởng của nhiệt độ đến tính chất cơ lý của mặt đường bê tông nhựa của
TS Nguyễn Thống Nhất và ThS Trần Văn Thiện nghiên cứu nhằm phát triển mặt đường bê tông nhựa chất lượng cao với cường độ ổn định và tuổi thọ lâu dài Đồng thời, đề tài nghiên cứu khoa học cấp nhà nước của Nguyễn Đức Ngữ tại Trung tâm Khoa học công nghệ Khí tượng Thủy văn và Môi trường đã làm rõ cơ chế tác động của hiện tượng ENSO, đồng thời đánh giá khả năng dự báo các cực trị nhiệt độ và lượng mưa ở Việt Nam dựa trên thông tin và nhận thức về ENSO.
Tính cấp thiết của đề tài
Hiện nay, việc ứng dụng công nghệ Internet of Things (IoT) trong đời sống và xã hội trở nên cần thiết, giúp con người điều khiển mọi thứ xung quanh một cách nhanh chóng và hiệu quả Do đó, việc tìm hiểu về IoT là một quyết định đúng đắn.
Trong bối cảnh hiện nay, việc đo và cảnh báo nhiệt độ, độ ẩm trở nên vô cùng quan trọng trong các lĩnh vực kinh tế, quốc phòng, công nghiệp và nông nghiệp, vì chúng ảnh hưởng trực tiếp đến chất lượng sản phẩm Các hệ thống này không chỉ giúp cảnh báo quá nhiệt trong các quy trình như luyện kim và cán thép, mà còn hỗ trợ việc tưới tiêu thông qua việc đo nhiệt độ và độ ẩm của môi trường đất Do đó, nghiên cứu và thiết kế các hệ thống đo và cảnh báo với độ chính xác cao là cần thiết để đáp ứng nhu cầu thị trường Sự phát triển nhanh chóng của công nghệ và hệ thống thông tin đã nâng cao khả năng đo và cảnh báo an toàn về nhiệt độ, độ ẩm, giúp giảm thiểu hậu quả do chúng gây ra Các hệ thống này cũng cho phép con người chủ động hơn trong việc đảm bảo an toàn cho các dây chuyền sản xuất và kho bảo quản, đồng thời bảo vệ sức khỏe của chính mình Vì vậy, việc ứng dụng công nghệ Internet of Things trong hệ thống cảm biến nhiệt độ và độ ẩm là rất cấp thiết và quan trọng trong sự phát triển của thế giới hiện đại.
Phạm vi nghiên cứu của đề tài
Công nghệ Internet of Things (IoT) được ứng dụng trong hệ thống cảm biến nhiệt độ và độ ẩm, mang lại lợi ích thiết thực cho các ngôi nhà thông minh và nông nghiệp, đặc biệt là trong việc quản lý kho chứa lương thực Ngoài ra, IoT còn giúp đảm bảo độ chính xác trong sản xuất công nghiệp và hỗ trợ giám sát môi trường, thời tiết Việc theo dõi sự biến đổi của nhiệt độ và độ ẩm theo thời gian cho phép dự báo và áp dụng các biện pháp phù hợp cho các khu vực cần khảo sát thực nghiệm.
Mục tiêu của đề tài
Đề tài ứng dụng công nghệ Internet of Thing trong thu thập và đánh giá nhiệt độ độ ẩm môi trường có mục tiêu cần đạt được là:
- Nghiên cứu và tìm hiểu lý thuyết chung về công nghệ Internet of Things
Công nghệ Internet of Things (IoT) được ứng dụng để đo nhiệt độ và độ ẩm trong nhà, đặc biệt là trong các kho lưu trữ cần duy trì các mức nhiệt độ và độ ẩm phù hợp Việc sử dụng IoT giúp tối ưu hóa quy trình quản lý môi trường, đảm bảo chất lượng sản phẩm và nâng cao hiệu quả hoạt động.
Ứng dụng của đề tài
Hệ thống đo nhiệt độ và độ ẩm trong phòng và kho giúp giám sát điều kiện môi trường, đảm bảo sự thoải mái cho không gian sống và lưu trữ.
- Dữ liệu nhiệt độ và độ ẩm sẽ được hiển thị trên màn hình LCD và truyền tới web app.
Khi nhiệt độ vượt 30°C hoặc độ ẩm vượt 70%, hệ thống sẽ tự động kích hoạt quạt và thông báo bằng đèn LED cùng loa buzzer Người dùng có thể điều chỉnh ngưỡng nhiệt độ và độ ẩm theo nhu cầu cá nhân.
- Điều khiển từ xa: Từ web app, người dùng có thể điều khiển quạt, đèn LED và loa buzzer.
ÔN TẬP LÝ THUYẾT
Tổng quan về Internet of Things
1.1 Giới thiệu về mô hình Internet of Things (IoT)
IoT (Internet of Things) là một mạng lưới gồm các đối tượng có khả năng kết nối Internet và tác động qua lại giữa các dịch vụ web.
IoT không chỉ là sự giao tiếp giữa các thiết bị mà còn mang lại tiềm năng thay đổi toàn diện thế giới, ảnh hưởng đến cuộc sống hàng ngày và cách chúng ta trải nghiệm thực tại.
IoT, hay Internet of Things, là thuật ngữ chỉ các đối tượng có thể nhận biết và tồn tại trong một kiến trúc kết nối, được Kevin Ashton giới thiệu vào năm 1999 Ông là nhà khoa học sáng lập Trung tâm Auto-ID tại MIT, nơi thiết lập các quy chuẩn toàn cầu cho RFID và các loại cảm biến khác Thuật ngữ IoT đã được sử dụng rộng rãi trong nhiều ấn phẩm từ các hãng và nhà phân tích.
Vào tháng 6 năm 2009, Ashton đã nhấn mạnh rằng máy tính và Internet hiện tại phụ thuộc chủ yếu vào con người để truyền tải dữ liệu, với gần như toàn bộ 50 Petabyte dữ liệu trên Internet được tạo ra bởi con người thông qua các hoạt động như gõ chữ, chụp ảnh và quét mã vạch Mặc dù con người đóng vai trò quan trọng trong thế giới Internet, nhưng chúng ta lại gặp nhiều hạn chế như thời gian có hạn, khả năng tập trung thấp và độ chính xác không cao so với máy móc Điều này dẫn đến việc chúng ta không hiệu quả trong việc thu thập thông tin về thế giới xung quanh, tạo ra một vấn đề lớn trong việc xử lý dữ liệu.
Một quan điểm khác về IoT cho rằng nó bao gồm các đối tượng thông minh có khả năng điều khiển và tương tác với những thiết bị có thể đáp ứng từ xa Những thiết bị này có thể hoạt động độc lập để cung cấp dịch vụ và giải pháp mà không cần sự can thiệp của con người.
Hiện nay, Internet vạn vật (IoT) đang trải qua sự phát triển mạnh mẽ nhờ vào các yếu tố như IPv6, công nghệ 4G, chi phí thấp và tính sẵn có của công nghệ Trong những năm tới, số lượng thiết bị IoT trên thị trường sẽ ngày càng gia tăng Tuy nhiên, các thách thức lớn hiện nay bao gồm việc quản lý dữ liệu hiệu quả và chuyển đổi sang IPv6, khi mà địa chỉ IPv4 đã gần cạn kiệt và chỉ còn lại một số ít địa chỉ từ năm 2011.
1.1.2 Xu hướng và tính chất của IoT
Sự thông minh và tự động trong điều khiển không phải là yếu tố cốt lõi của IoT Các máy móc có khả năng nhận biết và phản ứng với môi trường xung quanh (ambient intelligence) cũng như tự điều khiển mà không cần kết nối mạng.
Tích hợp trí thông minh vào IoT giúp thiết bị, máy móc và phần mềm thu thập và phân tích dấu vết điện tử của con người trong quá trình tương tác với công nghệ thông minh Điều này cho phép phát hiện tri thức mới liên quan đến cuộc sống, môi trường, mối tương tác xã hội và hành vi con người.
1.1.2.2 Kiến trúc dựa trên sự kiện
Các thực thể và máy móc trong IoT sẽ phản hồi theo các sự kiện xảy ra trong thời gian thực Nhiều nhà nghiên cứu đã chỉ ra rằng mạng lưới cảm biến là một thành phần cơ bản của IoT.
1.1.2.3 Là một hệ thống phức tạp
Trong một thế giới mở, IoT sẽ trở nên phức tạp do sự kết nối đa dạng giữa các thiết bị, máy móc và dịch vụ, cùng với khả năng tích hợp các yếu tố mới.
1.1.2.5 Vấn đề không gian, thời gian
Trong IoT, vị trí địa lý chính xác của một vật là rất quan trọng, vì Internet hiện nay chủ yếu phục vụ việc quản lý thông tin do con người xử lý Thông tin về địa điểm, thời gian và không gian thường không được coi trọng, vì người xử lý có thể quyết định tính cần thiết của chúng Tuy nhiên, IoT có khả năng thu thập một lượng lớn dữ liệu, bao gồm cả dữ liệu thừa về địa điểm, dẫn đến việc xử lý thông tin trở nên không hiệu quả Hơn nữa, thách thức lớn hiện nay là xử lý khối lượng lớn dữ liệu trong thời gian ngắn để phục vụ hoạt động của các đối tượng.
Hiện nay, Internet vạn vật (IoT) đang trải qua giai đoạn phát triển mạnh mẽ nhờ vào nhiều yếu tố quan trọng Các yếu tố này bao gồm sự ra đời của IPv6, mạng 4G, giảm chi phí và tính sẵn có của công nghệ.
ARM đã nhanh chóng nhận ra rằng ổ đĩa sử dụng bộ vi điều khiển 32-bit là giải pháp lý tưởng cho những ai muốn tự động hóa quyết định Gary tin rằng khả năng của các bộ vi điều khiển này đang ngày càng tăng, cho phép người dùng thực hiện những điều trước đây được coi là bất khả thi.
Axel Pawlik, Giám đốc quản lý của RIPE NCC, nhấn mạnh tầm quan trọng của IPv6 cho tương lai của Internet vạn vật (IoT) Với IPv6, chúng ta sẽ có một lượng địa chỉ phong phú, cho phép gán địa chỉ cho từng thiết bị và chip Điều này không chỉ giúp các giải pháp trở nên dễ dàng và đơn giản hơn mà còn cho phép phục hồi đến từng địa chỉ cụ thể, mở ra một phạm vi phát triển vô cùng to lớn.
1.1.3 Những thách thức ảnh hưởng đến sự phát triển của mô hình IoT
1.1.3.1 Chưa có sự chuẩn hóa
Chuẩn hóa trong ngữ cảnh này được coi là ngôn ngữ giao tiếp chung cho các thiết bị Internet chỉ đơn thuần là mạng kết nối các thiết bị, nhưng nếu không có giao thức, các thiết bị sẽ không thể giao tiếp hiệu quả Giao thức, như HTTP cho web, SMTP cho email, và FTP cho trao đổi file, là những ngôn ngữ chuyên biệt giúp các thiết bị hiểu nhau Trong khi các máy chủ web và email có thể hoạt động hiệu quả với các giao thức hiện có, các thiết bị IoT lại phải giao tiếp với nhiều loại thiết bị khác nhau, và hiện tại vẫn chưa có sự đồng thuận về giao thức cho IoT để trao đổi dữ liệu.
Hiện nay, các thiết bị IoT chủ yếu kết nối đến một máy chủ trung tâm do nhà sản xuất hoặc nhà phát triển quản lý thay vì giao tiếp trực tiếp Mặc dù cách này cho phép thiết bị giao tiếp thông qua chức năng phiên dịch của máy chủ, nhưng nó tạo ra các subnetwork riêng biệt Vấn đề phát sinh là các thiết bị trong các subnetwork này không thể giao tiếp hiệu quả với nhau.
Kiến trúc tham chiếu của IoT
The architecture of the Internet of Things (IoT) fundamentally consists of four key components: Things, which represent the physical devices; Gateways, serving as connection points; Network and Cloud infrastructure; and the Services-creation and Solutions Layers that facilitate the development and delivery of services.
Hình 2 11: Cấu phần của IoT
2.2 Phân loại thiết bị IoT và phương thức kết nối Internet
Các thiết bị IoT nhỏ nhất thường sử dụng bộ điều khiển 8 bit nhúng và hệ thống trên chip SoC, thường không có hệ điều hành Mức cao hơn bao gồm các hệ thống dựa trên chip ARM và Athero với kiến trúc 32 bit rút gọn, thường được sử dụng trong các bộ router nhỏ cho gia đình và các biến thể khác Những hệ thống này thường chạy trên nền tảng nhúng Linux rút gọn hoặc hệ điều hành nhúng riêng, trong khi một số thiết bị như Arduino Zero hoặc Arduino Yun không sử dụng hệ điều hành.
Hệ thống IoT lớn nhất thường sử dụng nền tảng 32 hoặc 64 bit, như Raspberry Pi và BeagleBone, cho phép chạy hệ điều hành Linux hoặc Android Nhiều thiết bị trong hệ thống này là điện thoại di động hoặc dựa trên công nghệ di động, có khả năng hoạt động như gateway hoặc cầu nối cho các thiết bị nhỏ hơn.
Có một số giải pháp kết nối giữa thiết bị với Internet hoặc gateway:
Kết nối Ethernet hoặc Wi-Fi trực tiếp qua giao thức TCP hoặc UDP
Kết nối trường gần (NFC).
Zigbee hoặc các mạng vô tuyến khác 38
SRF và kết nối vô tuyến điểm-điểm
UART hoặc kênh nối tiếp (serial lines)
SPI hoặc kênh I2C (wired buses).
Hình 2 12: Hai mô hình kết nối của thiết bị IoT
2.3 Các yêu cầu của kiến trúc tham chiếu cho IoT
Kiến trúc tham chiếu cho IoT có thể được tóm tắt qua năm nhóm yêu cầu chính: đầu tiên là kết nối và giao tiếp, tiếp theo là quản lý thiết bị, sau đó là thu thập, phân tích và khởi động dữ liệu Thứ tư là tính khả mở (scalability) và cuối cùng là an toàn bảo mật.
2.4 Mô hình tham chiếu của IoT
Mô hình tham chiếu IoT bao gồm 5 lớp xếp chồng, mỗi lớp đảm nhận một chức năng riêng biệt và có thể được minh họa bằng các công nghệ cụ thể Trong mô hình này, có 2 lớp theo chiều dọc là quản lý thiết bị và quản lý định danh và truy cập.
Hình 2 13: Mô hình tham chiếu của IoT
Các thiết bị IoT cần có giao thức truyền thông để kết nối với Internet, có thể là trực tiếp qua Ethernet hoặc Wi-Fi thông qua các nền tảng như Arduino, Raspberry Pi, Intel Galileo, hoặc gián tiếp qua các công nghệ như ZigBee, Bluetooth, và Bluetooth công suất thấp thông qua điện thoại di động.
Mỗi thiết bị cần có một định danh, bao gồm các loại như định danh duy nhất (UUID) được ghi sẵn trong phần cứng, UUID truyền qua hệ thống vô tuyến phụ như Bluetooth hoặc địa chỉ Wi-Fi MAC, token OAuth2 Refresh/Bearer, và định danh lưu trữ trong bộ nhớ chỉ đọc như EEPROM.
Lớp truyền thông đóng vai trò quan trọng trong việc kết nối các thiết bị, với nhiều giao thức như HTTP/HTTPS, MQTT 3.1/3.1.1 và CoAP Trong số đó, HTTP là giao thức phổ biến và lâu đời nhất, được hỗ trợ bởi nhiều thư viện Do cấu trúc ký tự đơn giản, HTTP có thể được áp dụng cho các thiết bị nhỏ như bộ điều khiển 8 bit, trong khi các thiết bị 32 bit lớn hơn có thể tận dụng các thư viện HTTP client đầy đủ.
2.4.3 Lớp hợp nhất/Bus (Aggregation/ Bus) Đây là lớp quan trọng để hợp nhất và chuyển đổi các thông điệp (message broker hay middleware) truyền thông với 3 chức năng sau:
Hỗ trợ máy chủ HTTP và/hoặc chức năng chuyển đổi MQTT để giao tiếp với thiết bị.
Hợp nhất nội dung truyền từ các thiết bị khác nhau và định tuyến truyền thông tới một thiết bị cụ thể (có thể qua gateway).
Bắc cầu và chuyển đổi giữa 2 giao thức khác nhau, ví dụ chuyển đổi API dựa trên HTTP ở lớp trên vào thông điệp MQTT đến thiết bị.
Lớp hợp nhất/Bus thực hiện hai nhiệm vụ an toàn bảo mật quan trọng: máy chủ tài nguyên OAuth2, thẩm định Bearer token và quản lý truy cập dựa trên chính sách Trong mô hình này, lớp Bus yêu cầu lớp quản lý truy cập và định danh để thẩm định các yêu cầu truy cập Lớp quản lý truy cập và định danh đóng vai trò là điểm quyết định chính sách (PDP), quyết định việc cho phép hoặc từ chối truy cập tài nguyên dựa trên kết quả từ PDP.
2.4.4 Lớp xử lý sự kiện và phân tích (Event Processing and Analytics)
Lớp này tiếp nhận và xử lý các sự kiện từ lớp Bus, với yêu cầu chính là khả năng lưu trữ dữ liệu vào cơ sở dữ liệu Thông thường, mô hình truyền thống sẽ sử dụng ứng dụng phía máy chủ như JAX-RS, nhưng hiện nay có nhiều phương pháp khác linh hoạt hơn để thực hiện nhiệm vụ này.
2.4.5 Lớp truyền thông ngoài (External Communication)
Lớp giao diện quản lý thiết bị IoT bao gồm web/portal, dashboard và hệ thống quản lý API Để xây dựng web/portal, kiến trúc cần tích hợp các công nghệ web phía máy chủ như Java Servlets, JSP, PHP, Python và Ruby.
Web server dựa trên Java phổ biến nhất là Apache Tomcat.
Dashboard là một hệ thống tập trung vào việc tái sử dụng, giúp trình bày đồ thị mô tả dữ liệu từ các thiết bị và lớp xử lý sự kiện một cách hiệu quả.
Lớp quản lý API có ba chức năng chính: cung cấp một portal tập trung hỗ trợ lập trình viên, quản lý các phiên bản API được xuất bản và đóng vai trò là gateway quản lý truy cập vào các API Nó kiểm tra việc điều khiển truy cập cho các yêu cầu từ bên ngoài, điều tiết sử dụng dựa trên chính sách, định tuyến và cân bằng tải Cuối cùng, lớp này còn thực hiện chức năng gateway để đẩy dữ liệu vào lớp phân tích, giúp lưu trữ và xử lý thông tin, từ đó hiểu rõ cách thức sử dụng các API.
2.4.6 Lớp quản lý thiết bị (Device Management)
Trong lớp quản lý thiết bị, hệ thống DM (Device Manager) giao tiếp với các thiết bị qua nhiều giao thức khác nhau, cho phép điều khiển phần mềm của từng thiết bị hoặc nhóm thiết bị DM có khả năng khóa hoặc xóa dữ liệu khi cần thiết, đồng thời quản lý định danh và ánh xạ chủ nhân của các thiết bị Để đảm bảo an toàn, DM phối hợp với lớp quản lý định danh và truy cập, quản lý quyền truy cập vào thiết bị, bao gồm quyền của chủ nhân và quyền điều khiển của quản trị viên.
2.4.7 Lớp quản lý định danh và truy nhập (Identity and Access Management)
Giới thiệu về điện toán đám mây
Điện toán đám mây, hay còn gọi là điện toán máy chủ ảo, là một mô hình tính toán linh hoạt và co giãn, cung cấp các tài nguyên ảo hóa như một dịch vụ qua Internet Mô hình này cho phép các công việc công nghệ thông tin được cung cấp cho nhiều khách hàng bên ngoài, với chi phí dựa trên mức độ sử dụng dịch vụ của họ.
Ứng dụng điện toán đám mây là một mô hình điện toán mới, cung cấp tài nguyên hạ tầng như phần cứng, thiết bị lưu trữ và phần mềm hệ thống dưới dạng dịch vụ (X-as-a-Services), cho phép người dùng trả tiền theo mức độ sử dụng.
Mọi ứng dụng hoặc dịch vụ hoạt động trong môi trường điện toán đám mây đều có khả năng tự sửa chữa Khi một ứng dụng gặp sự cố, sẽ luôn có một bản dự phòng sẵn sàng để đảm bảo công việc không bị gián đoạn.
Điện toán đám mây cho phép mọi ứng dụng hỗ trợ tính năng đa người dùng, nghĩa là nhiều người có thể sử dụng cùng một ứng dụng trên nền tảng đám mây đồng thời.
3.2.3 Khả năng mở rộng tuyến tính
Dịch vụ điện toán đám mây cho phép mở rộng tuyến tính, nghĩa là hệ thống có thể chia nhỏ các luồng công việc và phục vụ chúng qua cơ sở hạ tầng hiệu quả Khả năng này đảm bảo rằng nếu một máy chủ có thể xử lý một khối lượng công việc nhất định, thì việc thêm nhiều máy chủ sẽ tương ứng tăng cường khả năng xử lý mà không làm giảm hiệu suất.
1000 giao dịch trong một giây, thì hai máy chủ có thể xử lý 2.000 giao dịch trong một giây.
Hệ thống Điện toán đám mây bao gồm các dịch vụ theo định hướng, được xây dựng từ những dịch vụ rời rạc khác nhau Nhiều dịch vụ này là sự kết hợp của các dịch vụ độc lập, cho phép tái sử dụng các dịch vụ đã có sẵn và đang được phát triển Việc sử dụng các dịch vụ đã được tạo ra trước đó giúp tạo ra những dịch vụ mới hiệu quả hơn.
3.2.5 Điều khiển SLA (Service level agreement)
Các dịch vụ điện toán đám mây hoạt động theo hướng SLA, cho phép hệ thống tự động điều chỉnh khi đạt đỉnh tải để đảm bảo tuân thủ các thỏa thuận dịch vụ Điều này bao gồm việc tạo ra thêm các thực thể ứng dụng trên nhiều máy chủ, giúp quản lý tải một cách hiệu quả hơn.
Các ứng dụng điện toán đám mây hoạt động độc lập với phần cứng bên dưới, tạo ra một môi trường ảo hóa hoàn toàn Môi trường này cho phép người dùng truy cập và sử dụng tài nguyên một cách linh hoạt và hiệu quả.
Dịch vụ điện toán đám mây nổi bật với tính linh hoạt, cho phép phục vụ nhiều loại công việc với khối lượng khác nhau, từ những ứng dụng nhỏ với tải nhẹ đến những ứng dụng thương mại có tải nặng.
Các công nghệ truyền thông trong IoT
Công nghệ Nhận dạng Tần số Radio (RFID) sử dụng sóng vô tuyến để nhận diện đối tượng Hệ thống RFID bao gồm hai thiết bị thu phát sóng điện từ với tần số tương thích, thường là 125Khz hoặc 900Mhz.
Một hệ thống RFID bao gồm hai thành phần chính: thiết bị đọc (reader) và thiết bị phát mã RFID, thường được gọi là tag, có gắn chip.
Nguyên lý hoạt động của thiết bị RFID reader dựa trên việc phát ra sóng điện từ ở một tần số nhất định Khi thiết bị RFID tag nằm trong vùng hoạt động, nó sẽ cảm nhận sóng điện từ và thu nhận năng lượng, từ đó gửi lại mã số cho thiết bị RFID reader Nhờ vào quá trình này, thiết bị RFID reader có khả năng nhận diện các tag đang trong vùng hoạt động.
Hình 2 15: Cơ chế hoạt động của thẻ RFID
Bluetooth là công nghệ không dây mở, cho phép truyền dữ liệu giữa các thiết bị điện tử di động và cố định trong khoảng cách ngắn Được ra mắt vào năm 1994, Bluetooth đã trở thành giải pháp thay thế không dây cho cáp RS-232.
Một số đặc điểm chính của BlueTooth:
Tốc độ truyền dữ liệu: 2.1 Mbps hoặc 1 Mbps (Bluetooth Low-Energy)
Khoảng cách ngắn (tối đa 100m trong điều kiện lý tưởng).
Tiêu thụ năng lượng thấp
Được ứng dụng rộng rãi trong nhiều thiết bị điện tử ngày nay.
An toàn và bảo mật cao.
Hình 2 16: Kiến Trúc Mạng BlueTooth Piconet
Hình 2 17: Kiến Trúc Mạng BlueTooth ScatterNet
Các thiết bị Bluetooth kết nối thông qua "Bluetooth Profiles", là tập hợp quy tắc và thủ tục giúp chúng giao tiếp hiệu quả cho các mục đích cụ thể.
ZigBee là Mạng khu vực cá nhân thuộc nhóm nhiệm vụ 4 nên nó dựa trên chuẩn IEEE 802.15.4 và được tạo ra bởi Zigbee Alliance.
ZigBee là một giao thức mở và toàn cầu, được thiết kế để tạo ra mạng không dây an toàn, đáng tin cậy với mức tiêu thụ điện năng thấp Đặc tả ZigBee hỗ trợ cấu trúc hình sao và hai loại cấu trúc liên kết ngang hàng là lưới và cây cụm Các thiết bị tương thích với ZigBee có thể hoạt động theo các cấu trúc điểm-điểm và điểm-đa điểm, mỗi loại hình đều mang lại những ưu điểm riêng và phù hợp với các ứng dụng khác nhau.
Hình 2 18: Mô hình mạng Zigbee
Các đặc điểm chính của ZigBee
Stochastic Addressing là phương pháp địa chỉ được thông báo và chỉ định ngẫu nhiên, giúp giảm thiểu xung đột địa chỉ Với cơ chế này, node cha không cần phải lưu trữ bảng địa chỉ, điều này làm tăng hiệu quả quản lý mạng ZigBee áp dụng địa chỉ 16 bit, phù hợp với nhu cầu truyền thông trong các ứng dụng IoT.
- Link Management: Mỗi node tự duy trì liên kết với các node lân cận Chất lượng kết nối được sử dụng để đo lường mất mát trong định tuyến.
- Frequency Agility: Khi gặp can nhiễu, node mạng có thể thay đổi kênh truyền.
- Asymmetric Link: Mỗi node có công suất truyền và độ nhạy khác nhau, do đó đường liên kết có thể bất đối xứng.
- Power Management: Gateway/Coordinator và router dùng nguồn cố định Trong khi thiết bị cuối sử dụng Pin.
Các điểm hạn chế của ZigBee:
Cấu trúc của Zigbee bao gồm hai tầng cơ bản là tầng vật lý và tầng MAC theo tiêu chuẩn 802.15.4, cùng với các tầng bổ sung như tầng mạng, tầng hỗ trợ ứng dụng, tầng đối tượng thiết bị và các đối tượng ứng dụng.
Wi-Fi, viết tắt từ Wireless Fidelity hay mạng 802.21, là hệ thống mạng không dây sử dụng sóng vô tuyến, tương tự như điện thoại di động, truyền hình và radio Hệ thống này đã được triển khai tại nhiều địa điểm như sân bay, quán cafe, thư viện và khách sạn, cho phép người dùng truy cập Internet mà không cần cáp nối Bên cạnh các điểm kết nối công cộng (hotspots), Wi-Fi cũng có thể được thiết lập tại nhà riêng.
Tên gọi 802.21 được đặt theo tiêu chuẩn của viện IEEE (Institute of Electrical and Electronics Engineers), nơi phát triển nhiều giao thức kỹ thuật khác nhau Viện này sử dụng một hệ thống số để phân loại các chuẩn, trong đó có 4 chuẩn WiFi phổ biến hiện nay là 802.11a, 802.11b, 802.11g và 802.11n.
Truyền thông qua mạng không dây là hình thức truyền thông vô tuyến hai chiều, trong đó thiết bị adapter không dây của máy tính chuyển đổi dữ liệu thành tín hiệu vô tuyến và phát đi qua ăng-ten Router không dây nhận và giải mã các tín hiệu này, sau đó gửi thông tin đến Internet qua kết nối Ethernet Quy trình này cũng diễn ra ngược lại, khi router nhận thông tin từ Internet, chuyển đổi thành tín hiệu vô tuyến và gửi đến adapter không dây của máy tính.
Sóng vô tuyến sử dụng cho WiFi tương tự như sóng vô tuyến cho thiết bị cầm tay và điện thoại di động, với khả năng chuyển và nhận sóng, cũng như chuyển đổi mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại Tuy nhiên, sóng WiFi có sự khác biệt đáng chú ý khi truyền và phát tín hiệu ở tần số 2.4 GHz hoặc 5 GHz, cao hơn so với tần số của điện thoại di động, thiết bị cầm tay và truyền hình, cho phép truyền tải nhiều dữ liệu hơn Sóng WiFi cũng tuân theo chuẩn 802.11.
Chuẩn 802.11b là phiên bản đầu tiên của công nghệ Wi-Fi, nổi bật với tốc độ chậm nhất và giá thành rẻ nhất Mặc dù đã từng phổ biến, nhưng hiện nay 802.11b ngày càng ít được ưa chuộng so với các chuẩn Wi-Fi mới hơn Chuẩn này hoạt động ở tần số 2.4 GHz, có khả năng xử lý dữ liệu lên đến 11 megabit/giây và sử dụng phương pháp mã hóa CCK (complementary code keying).
Chuẩn 802.11g hoạt động ở tần số 2.4 GHz và cung cấp tốc độ xử lý lên đến 54 megabit/giây, nhanh hơn so với chuẩn 802.11b Lý do cho sự gia tăng tốc độ này là nhờ vào việc sử dụng công nghệ mã hóa OFDM (mã phân chia tần số trực giao), mang lại hiệu quả cao hơn trong truyền tải dữ liệu.
Chuẩn 802.11a hoạt động ở tần số 5GHz và có khả năng đạt tốc độ tối đa 54 megabit/giây, sử dụng mã OFDM Mặc dù các chuẩn mới hơn như 802.11n cung cấp tốc độ nhanh hơn, nhưng 802.11n vẫn chưa phải là chuẩn cuối cùng trong công nghệ mạng không dây.
Chuẩn 802.11n cũng phát ở tần số 2.4 GHz, nhưng nhanh hơn so với chuẩn 802.11a, tốc độ xử lý đạt 300 megabit/giây.
Chuẩn 802.11ac phát ở tần số 5 GHz
Các Giao Thức Truyền Tin
Hình 2 20: Cấu trúc cơ bản của 1 ứng dụng web
HTTP là một giao thức yêu cầu – phản hồi hoạt động dựa trên cấu trúc Client – Server, trong đó Client và Server giao tiếp thông qua việc trao đổi các message độc lập, khác với việc truyền tải một luồng dữ liệu liên tục.
Các yêu cầu được gửi từ client, thường là trình duyệt web, được gọi là message, trong khi các phản hồi từ server được coi là sự trả lời cho những yêu cầu đó.
HTTP là giao thức ứng dụng chính của bộ giao thức TCP/IP, nền tảng cho Internet và nhiều mạng máy tính thương mại TCP/IP bao gồm các giao thức truyền thông chồng lên nhau, với TCP (Giao thức điều khiển truyền vận) và IP (Giao thức Internet) là hai giao thức quan trọng nhất.
HTTP là một giao thức không trạng thái, phổ biến và linh hoạt, có thể áp dụng cho nhiều mục đích khác nhau Nó cho phép sử dụng các phần mở rộng của phương thức yêu cầu, mã lỗi và tiêu đề, mang lại sự đa dạng trong việc truyền tải thông tin.
Hình 2 21: Sơ đồ hoạt động của HTTP
HTTP hoạt động theo mô hình Client - Server, trong đó máy tính của người dùng đóng vai trò là máy khách (Client) Sau khi thực hiện một thao tác, máy khách gửi yêu cầu đến máy chủ (Server) và chờ nhận phản hồi từ máy chủ.
Các thành phần chính của HTTP:
- HTTP -Requests: Là phương thức để chỉ ra hành động mong muốn được thực hiện trên tài nguyên đã xác định.
- Cấu trúc của một HTTP Request:
● Một Request-line = Phương thức + URI–Request + Phiên bản HTTP
● Có thể có hoặc không các trường header
● Một dòng trống để đánh dấu sự kết thúc của các trường Header.
● Tùy chọn một thông điệp
Hình 2 22: Một số HTTP Request thường dùng
- HTTP-Response: Cấu trúc của một HTTP response:
● Một Status-line = Phiên bản HTTP + Mã trạng thái + Trạng thái
● Có thể có hoặc không có các trường header
● Một dòng trống để đánh dấu sự kết thúc của các trường header
● Tùy chọn một thông điệp
Hình 2 23: Quy trình hoạt động của Websocket
WebSockets là một giao thức truyền thông tạo điều kiện cho việc truyền thông liên tục, hai chiều, thời gian thực giữa máy khách và máy chủ.
WebSockets khác với HTTP ở chỗ cho phép máy chủ gửi dữ liệu đến máy khách mà không cần yêu cầu từ phía máy khách, làm cho nó trở thành lựa chọn lý tưởng cho các ứng dụng thời gian thực như hệ thống trò chuyện, trò chơi nhiều người chơi và giao dịch tài chính Thời gian chờ không còn là vấn đề vì kết nối sẽ duy trì cho đến khi một trong hai bên chấm dứt Hình 16 mô tả cơ chế hoạt động của WebSocket.
● Thiết lập kết nối và nâng cấp lên giao thức WebSocket
● Gửi và nhận dữ liệu
- Triển khai dựa trên internet (AWS):
Hình 2 24: Sơ đồ kiến trúc WebSocket dựa trên internet
- Triển khai dựa trên mạng nội bộ (AWS):
Hình 2 25: Sơ đồ kiến trúc WebSocket dựa trên mạng nội bộ
MQTT là giao thức nhắn tin đăng ký/xuất bản nhẹ được thiết kế cho mục đích đo từ xa M2M (máy với máy) trong môi trường băng thông thấp.
MQTT ban đầu được thiết kế vào năm 1999 và đã được sử dụng trong nhiều năm và được thiết kế cho mạng TCP/IP
MQTT đang nhanh chóng trở thành một trong những giao thức chính cho việc triển khai IOT (internet vạn vật).
MQTT cung cấp một số lợi ích chính:
- Nhẹ và hiệu quả: MQTT giảm thiểu tài nguyên mà khách hàng và băng thông mạng yêu cầu.
Giao tiếp hai chiều qua MQTT cho phép các thiết bị và máy chủ tương tác hiệu quả, hỗ trợ chức năng xuất bản và đăng ký Ngoài ra, MQTT còn cung cấp khả năng truyền tải tin nhắn đến các nhóm thiết bị, nâng cao khả năng kết nối và quản lý mạng lưới thiết bị.
- Khả năng mở rộng: MQTT có thể mở rộng quy mô để hỗ trợ hàng triệu thiết bị hoặc
“mọi thứ” trong hệ sinh thái IoT hoặc IIoT.
- Mức chất lượng dịch vụ (QoS): MQTT chỉ định các mức QoS khác nhau để đảm bảo gửi tin nhắn đáng tin cậy.
- Phiên liên tục: MQTT hỗ trợ phiên liên tục giữa thiết bị và máy chủ, giảm thời gian kết nối lại qua các mạng không đáng tin cậy.
● Thành phần chính của MQTT là Client (Publisher/Subscriber), Server (Broker), Sessions (tạm dịch là Phiên làm việc), Subscriptions và Topics.
● MQTT Client (Publisher/Subscriber): Clients sẽ subscribe một hoặc nhiều topics để gửi và nhận thông điệp từ những topic tương ứng.
● MQTT Server (Broker): Broker nhận những thông tin subscribe (Subscriptions) từ client, nhận thông điệp, chuyển những thông điệp đến các Subscriber tương ứng dựa trên Subscriptions từ client.
Topic có thể được xem như một hàng đợi chứa các thông điệp, với khuôn mẫu dành riêng cho Subscriber hoặc Publisher Theo logic, các topic cho phép Client giao tiếp thông tin với các ngữ nghĩa đã được định nghĩa trước Chẳng hạn, một ví dụ điển hình là dữ liệu cảm biến nhiệt độ của một tòa nhà.
● Session: Một session được định nghĩa là kết nối từ client đến server Tất cả các giao tiếp giữa client và server đều là 1 phần của session.
Subscription là một kết nối từ client đến topic, khác với session Khi đã thực hiện subscribe một topic, client có khả năng nhận và gửi thông điệp liên quan đến topic đó.
Hình 2 26: Mô hình Publish/Subscribe của MQTT
Client được phân thành hai nhóm chính: Publisher và Subscriber Publisher có nhiệm vụ phát hành thông điệp lên một hoặc nhiều chủ đề cụ thể, trong khi Subscriber đăng ký nhận thông điệp từ một hoặc nhiều chủ đề đó.
- Các Clients không có địa chỉ và Clients không trực tiếp gửi message cho nhau.
- Message được truyền đi thông qua Broker
- Broker sẽ phân phối Message tới clients thông qua các topics
- Giữa các clients không có kết nối trực tiếp
- Client có thể vừa publish vừa subscribe
Cơ chế hoạt động của giao thức MQTT
Một phiên MQTT được chia thành bốn giai đoạn: kết nối, xác thực, giao tiếp và kết thúc.
Khách hàng bắt đầu quá trình bằng cách thiết lập kết nối TCP/IP tới broker, sử dụng cổng tiêu chuẩn hoặc cổng tùy chỉnh mà các nhà phát triển broker đã xác định.
Các cổng tiêu chuẩn cho giao tiếp không mã hóa là 1883, trong khi cổng cho giao tiếp được mã hóa là 8883, sử dụng Lớp cổng bảo mật (SSL) hoặc Bảo mật lớp truyền tải (TLS) Trong quá trình giao tiếp qua SSL/TLS, máy khách cần thực hiện việc kiểm chứng và xác thực máy chủ.
Sau khi hoàn tất, Client sẽ gửi bản tin đến broker nếu là Publisher, hoặc nhận bản tin từ broker nếu là Subscriber Quá trình kết nối này sẽ được duy trì cho đến khi kết thúc kết nối.
● Sau khi kết thúc để có thể truyền nhận MQTT, chúng ta lại tiếp tục quay lại các bước trên.
Hình 2 27: Cơ chế hoạt động của MQTT
Tồn tại ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of service)
- QoS0: broker/client sẽ gửi dữ liệu 1 lần Không cần xác nhận.
- QoS1: broker/client sẽ gửi dữ liệu với ít nhất 1 lần xác nhận.
- QoS2: broker/client đảm bảo khi dữ liệu được gửi phía nhận chỉ nhận được đúng 1 lần Quá trình này yêu cầu phải trải qua 4 bước bắt tay.
Một gói tin có thể được gửi ở bất kỳ mức QoS nào, và client cũng có thể subscribe ở bất kỳ QoS nào
Giao tiếp ngoại vi
6.1 Giao tiếp I2C Đặc điểm chính của I2C
● Số dây kết nối: I2C chỉ cần hai dây để truyền dữ liệu:
○ SDA (Serial Data Line): Đường truyền dữ liệu.
○ SCL (Serial Clock Line): Đường truyền tín hiệu đồng hồ.
● Địa chỉ thiết bị: Mỗi thiết bị trên bus I2C có một địa chỉ duy nhất, thường là 7-bit hoặc
● Chế độ truyền dữ liệu: I2C hỗ trợ nhiều chế độ truyền dữ liệu với tốc độ khác nhau:
Trong mạng I2C, tồn tại nhiều thiết bị Master và Slave Thiết bị Master có nhiệm vụ điều khiển tín hiệu đồng hồ và khởi động quá trình truyền dữ liệu, trong khi đó, thiết bị Slave sẽ phản hồi các yêu cầu từ Master.
● Khởi tạo truyền dữ liệu: Master tạo tín hiệu bắt đầu bằng cách kéo SDA từ mức cao xuống mức thấp trong khi SCL vẫn ở mức cao.
● Địa chỉ thiết bị: Master gửi địa chỉ của thiết bị Slave mà nó muốn giao tiếp.
● Bit đọc/ghi: Master gửi một bit để xác định xem nó muốn đọc từ hay ghi vào Slave.
● Truyền dữ liệu: Dữ liệu được truyền từng byte một, với mỗi byte được xác nhận bằng một bit ACK/NACK từ Slave.
Kết thúc truyền dữ liệu trong giao thức I2C được thực hiện khi Master tạo tín hiệu kết thúc bằng cách kéo tín hiệu SDA từ mức thấp lên mức cao trong khi SCL vẫn giữ ở mức cao Điều này giúp xác nhận rằng quá trình truyền dữ liệu đã hoàn tất Một trong những ưu điểm nổi bật của I2C là khả năng kết nối nhiều thiết bị với chỉ hai dây tín hiệu, giúp tiết kiệm không gian và giảm độ phức tạp trong việc thiết lập kết nối.
● Đơn giản và tiết kiệm dây: Chỉ cần hai dây để kết nối nhiều thiết bị.
● Địa chỉ hóa linh hoạt: Hỗ trợ nhiều thiết bị trên cùng một bus.
● Đồng bộ hóa: Dữ liệu được truyền đồng bộ với tín hiệu đồng hồ, giúp giảm thiểu lỗi truyền dữ liệu.
● Tốc độ truyền dữ liệu hạn chế: So với các giao thức khác như SPI, tốc độ truyền dữ liệu của I2C thấp hơn.
● Độ phức tạp trong thiết kế phần cứng: Cần sử dụng điện trở kéo lên cho các đường
PHÂN TÍCH YÊU CẦU BÀI TOÁN
Phân tích yêu cầu
1.1 Mô tả bằng ngôn ngữ tự nhiên
1.1.1 Giới thiệu mục đích hệ thống
Hệ thống quản lý cảm biến được thiết kế để giám sát và điều khiển từ xa các trạm cảm biến, cho phép người dùng theo dõi nhiệt độ, độ ẩm và các thông số môi trường khác Hệ thống này còn có khả năng điều khiển các thiết bị như quạt, đèn LED và còi báo động khi các thông số vượt quá ngưỡng cho phép, nhằm đảm bảo môi trường được kiểm soát một cách hiệu quả và kịp thời.
○ Đăng nhập: Cả người dùng cấp 1 và cấp 2 đều có thể đăng nhập vào hệ thống với tài khoản được cung cấp.
○ Đăng xuất: Người dùng có thể đăng xuất khỏi hệ thống sau khi hoàn thành công việc.
- Người dùng cấp 1 (Quản trị viên):
○ Có quyền truy cập toàn bộ hệ thống.
○ Quản lý người dùng (tạo, sửa, xóa người dùng cấp 2).
○ Quản lý trạm (tạo, sửa, xóa trạm).
○ Thiết lập và điều chỉnh các ngưỡng cảm biến.
○ Xem và điều khiển tất cả các trạm và cảm biến.
- Người dùng cấp 2 (Người vận hành trạm):
○ Chỉ được truy cập các trạm được phân công.
○ Xem thông tin và trạng thái của trạm và cảm biến
○ Điều khiển các thiết bị trong trạm của họ (quạt, đèn LED, còi báo động).
○ Không có quyền thay đổi cấu hình hệ thống hoặc quản lý người dùng khác.
1.1.3 Mô tả chi tiết hoạt động nghiệp vụ
Người dùng cấp 1 hoặc cấp 2 đăng nhập vào hệ thống quản lý cảm biến bằng thông tin đăng nhập của mình Hệ thống sẽ kiểm tra và xác thực thông tin để đảm bảo quyền truy cập hợp lệ.
Sau khi đăng nhập, người dùng cấp 1 có thể chọn trạm quản lý từ danh sách hiển thị Việc này cho phép họ theo dõi và điều khiển các cảm biến trong trạm đã chọn.
Người dùng cấp 2 chỉ có thể xem danh sách các trạm mà họ được phân công quản lý Mỗi trạm sẽ hiển thị các cảm biến liên quan, bao gồm tên, loại cảm biến, trạng thái hiện tại (OK hoặc lỗi), giá trị đo lường (nếu có) và thời gian đo lần cuối.
● Chọn cảm biến và điều khiển thiết bị: Người dùng có thể chọn từng cảm biến trong trạm để thực hiện các hành động:
Hệ thống cung cấp thông tin chi tiết về cảm biến, bao gồm các loại cảm biến như nhiệt độ, độ ẩm, quạt, LED và còi báo động Người dùng có thể xem giá trị đo lường hiện tại và trạng thái hoạt động của từng cảm biến.
Người dùng có thể điều khiển thiết bị như quạt và đèn LED thông qua cảm biến, cho phép bật/tắt thiết bị hoặc điều chỉnh tốc độ quạt một cách dễ dàng.
Hệ thống tự động kiểm tra trạng thái của từng cảm biến và thiết bị, hiển thị thông báo lỗi khi có sự cố Đối với cảm biến DHT (nhiệt độ và độ ẩm), hệ thống giám sát liên tục các giá trị đo và so sánh với ngưỡng đã đặt Khi vượt quá ngưỡng, hệ thống sẽ kích hoạt quạt, LED hoặc còi báo động để thông báo.
Người dùng cấp 2 có khả năng điều khiển thiết bị trong trạm của mình theo thời gian thực thông qua giao diện điều khiển Mọi thay đổi sẽ được thực hiện ngay lập tức, và trạng thái của các thiết bị sẽ được phản hồi và hiển thị trực tiếp trên giao diện người dùng.
Sau khi hoàn tất việc điều khiển hoặc kiểm tra cảm biến, người dùng có thể trở về giao diện chính để theo dõi tổng quan tất cả các trạm và cảm biến được phân công cho người dùng cấp 2, hoặc toàn bộ hệ thống dành cho người dùng cấp 1.
Sau khi thực hiện các thay đổi như bật/tắt quạt, đèn LED hoặc điều chỉnh tốc độ quạt, người dùng chỉ cần nhấn nút "Update" để cập nhật các thay đổi lên hệ thống Thông tin mới sẽ được lưu trữ vào cơ sở dữ liệu, và người dùng sẽ trở lại giao diện chính với các thay đổi đã được áp dụng.
1.1.4 Thông tin các đối tượng cần xử lý, quản lý
● Nhóm các thông tin liên quan đến con người:
- Thành viên: tên đăng nhập, mật khẩu (hashed), họ tên, địa chỉ, email, số điện thoại
● Có thể tạo và quản lý các trạm, tài khoản người dùng cấp 2, quản lý cảm biến của tất cả các trạm
- Người dùng cấp 2 (Người dùng trạm):
● Quản lý các trạm mà họ được chỉ định, bao gồm giám sát và điều khiển cảm biến của các trạm
● Nhóm các thông tin liên quan đến trạm và cảm biến:
- Tên trạm, vị trí, WebSocket URI, cổng kết nối, người dùng quản lý, các cảm biến trong trạm
- Thông số môi trường: nhiệt độ, độ ẩm, trạng thái LED, tốc độ quạt, trạng thái còi báo động
- Thời gian tạo, thời gian cập nhật
- Mã cảm biến, loại cảm biến (DHT, LED, Quạt, Buzzer), trạng thái cảm biến (OK, ERROR), thời gian kiểm tra gần nhất
- Mỗi cảm biến liên kết với một trạm
● Nhóm các thông tin liên quan đến hệ thống :
Bài viết đề cập đến việc điều chỉnh trạng thái hoặc tốc độ của các thiết bị như LED, quạt và còi báo động, cho phép người dùng cấp 1 và cấp 2 thực hiện các thay đổi theo nhu cầu sử dụng.
- Trạng thái thiết bị sẽ được lưu trữ và cập nhật tự động dựa trên thông số từ cảm biến
● Nhóm các thông tin liên quan đến vận hành hệ thống :
- Người dùng cấp 1 có thể thiết lập ngưỡng cảnh báo cho từng trạm và người dung cấp
2 có thể thiết lập ngưỡng cảnh báo cho trạm được phân công
- Khi nhiệt độ hoặc độ ẩm vượt quá ngưỡng đã thiết lập, hệ thống sẽ tự động điều chỉnh thiết bị (bật/tắt quạt, LED, còi báo động)
● Nhóm thông tin liên quan đến thống kê:
- Báo cáo tình trạng hoạt động của các trạm và cảm biến theo thời gian
- Lưu lại log trạng thái của các thiết bị điều khiển (bật/tắt) và thời gian hoạt động của chúng
- Thống kê số lượng cảnh báo đã phát sinh trong một khoảng thời gian nhất định
- Thống kê thời gian lỗi cảm biến và thời gian bảo trì
1.1.5 Quan hệ giữa các đối tượng:
● Một người dùng cấp 1 có thể quản lý nhiều trạm
● Một người dùng cấp 2 chỉ có thể quản lý các trạm mà họ được phân quyền
● Một trạm có nhiều hệ thống cảm biến
● Một trạm có thể được giám sát và điều khiển bởi một hoặc nhiều người dùng
● Một hệ thống cảm biến liên kết với một trạm duy nhất
Hệ thống cảm biến có khả năng kết nối với nhiều thiết bị điều khiển như LED, quạt và còi báo động Trạng thái hoạt động của các thiết bị này được tự động cập nhật dựa trên dữ liệu thu thập từ cảm biến, đảm bảo hiệu suất và tính chính xác trong việc điều khiển.
● Một thiết bị (LED, quạt, còi báo động) có thể được điều chỉnh bởi người dùng cấp 2, trong phạm vi quyền hạn của họ.
Hình 3 1: Mô hình tổng quát
Mô tả usercase tổng quát
Đăng nhập vào hệ thống được phép cho các thành viên cấp 1 và cấp 2 sử dụng tên đăng nhập và mật khẩu đã được cấp.
Quản lý trạm: UC này cho phép các thành viên cấp 1 thực hiện quản lý hiệu quả các trạm trong hệ thống, bao gồm các chức năng thêm, sửa, xóa và xem chi tiết thông tin về các trạm và cảm biến liên quan.
Quản lý một trạm: UC này cho phép các thành viên cấp 2 theo dõi và điều chỉnh cảm biến tại trạm được chỉ định, bao gồm việc giám sát trạng thái và điều khiển thiết bị.
Giải pháp thiết kế
Hệ thống bao gồm cảm biến DHT11 kết nối với ESP32, hiển thị dữ liệu trên màn hình LCD ESP32 điều khiển quạt, đèn LED và loa buzzer, đồng thời gửi cảnh báo qua email hoặc thông báo Ngoài ra, ESP32 còn tích hợp với ứng dụng web để hiển thị dữ liệu và cho phép điều khiển từ xa.
Khối cảm biến sử dụng cảm biến nhiệt độ và độ ẩm DHT11 để thu thập thông tin về nhiệt độ và độ ẩm của môi trường, sau đó truyền dữ liệu này về khối xử lý trung tâm.
- Khối xử lý trung tâm: Sử dụng module wifi ESP32 để xử lý dữ liệu từ khối cảm biến gửi về và gửi chúng lên server thông qua internet.
Khối hiển thị và cảnh báo cho phép người dùng truy cập dữ liệu từ khối xử lý trung tâm qua internet Tất cả thông tin được lưu trữ trên server, có thể truy cập từ bất kỳ máy tính hoặc thiết bị kết nối mạng nào Khi nhiệt độ hoặc độ ẩm vượt quá ngưỡng cảnh báo, server sẽ tự động gửi email thông báo đến người dùng.
- Khối nguồn: Sử dụng I2C điều chỉnh điện áp phù hợp để cung cấp năng lượng cho node cảm biến (khối cảm biến và khối xử lý trung tâm).
2.2 Nguyên lý hoạt động của hệ thống
● Cảm biến nhiệt độ và độ ẩm: Cảm biến DHT11 đo nhiệt độ và độ ẩm của môi trường xung quanh và gửi dữ liệu này đến ESP32.
ESP32 có khả năng xử lý dữ liệu từ cảm biến và hiển thị thông tin trên màn hình LCD Khi nhiệt độ hoặc độ ẩm vượt quá ngưỡng quy định, ESP32 sẽ tự động kích hoạt quạt, đèn LED và loa buzzer để cảnh báo.
Web App sử dụng Angular để tạo giao diện hiển thị dữ liệu nhiệt độ và độ ẩm từ ESP32 Ứng dụng cho phép gửi cảnh báo và người dùng có thể điều khiển quạt, đèn LED và loa buzzer từ xa Ngoài ra, người dùng còn có khả năng thiết lập ngưỡng nhiệt độ và độ ẩm thông qua web app.
PHÂN TÍCH THIẾT KẾ
Mô tả hệ thống
Hệ thống bao gồm cảm biến nhiệt độ và độ ẩm DHT11, bộ vi điều khiển ESP32 để xử lý dữ liệu, màn hình LCD hiển thị thông tin, quạt điều chỉnh nhiệt độ, đèn LED và loa buzzer để cảnh báo Dữ liệu sẽ được truyền đến ứng dụng web để hiển thị và điều khiển từ xa.
API và các hàm sẽ implement
2.1 API: a getTemperature(): Lấy dữ liệu nhiệt độ từ cảm biến DHT11. b getHumidity(): Lấy dữ liệu độ ẩm từ cảm biến DHT11. c sendAlert(message): Gửi cảnh báo qua email hoặc thông báo. d displayData(temp, humidity): Hiển thị dữ liệu lên màn hình LCD. e adjustThreshold(tempThreshold, humidityThreshold): Điều chỉnh ngưỡng nhiệt độ và độ ẩm. f activateFan(): Kích hoạt quạt khi nhiệt độ vượt ngưỡng. g activateLED(): Kích hoạt đèn LED khi nhiệt độ hoặc độ ẩm vượt ngưỡng. h activateBuzzer(): Kích hoạt loa buzzer khi nhiệt độ hoặc độ ẩm vượt ngưỡng. i sendDataToWebApp(temp, humidity): Truyền dữ liệu tới web app. j controlDevicesFromWebApp(command): Điều khiển quạt, đèn LED và loa buzzer từ web app. k setThresholdsFromWebApp(tempThreshold, humidityThreshold): Đặt ngưỡng nhiệt độ và độ ẩm từ web app.
2.2 Hàm: a readSensorData(): Đọc dữ liệu từ cảm biến DHT11. b processData(): Xử lý dữ liệu thu thập được. c checkThresholds(temp, humidity): Kiểm tra xem nhiệt độ và độ ẩm có vượt ngưỡng không. d activateDevices(): Kích hoạt quạt, đèn LED và loa buzzer khi cần thiết. e sendData(): Truyền dữ liệu tới web app. f receiveCommands(): Nhận lệnh điều khiển từ web app. g setThresholds(): Đặt ngưỡng nhiệt độ và độ ẩm từ web app.
Các thiết bị sử dụng
Module ESP32 được sử dụng cho khối xử lý trung tâm với chức năng giao tiếp qua sóng Wi-
ESP32 là một giải pháp tiện lợi, đơn giản và gọn nhẹ cho việc giao tiếp Chúng ta có thể sử dụng các lệnh AT hoặc lập trình trực tiếp thông qua các thư viện như ESP-IDF hoặc Arduino Dưới đây là các thông số kỹ thuật cơ bản của ESP32.
● Điện áp hoạt động (+Vcc): 3.3V
● Chuẩn Wi-Fi: 802.21 b/g/n; Wi-Fi Direct (P2P), soft-AP
● Tích hợp giao thức TCP/IP stack
● Công suất đầu ra: 20.5dBm ở chế độ 802.21b
● Bluetooth: BLE và Classic Bluetooth
Hình 4 1: Module Wi-Fi ESP32
ESP32 sở hữu 34 chân GPIO, cho phép mỗi chân hoạt động như đầu vào hoặc đầu ra chung, đồng thời có khả năng kết nối với các tín hiệu ngoại vi nội bộ.
- Các chức năng chính của các chân
● ADC (Analog-to-Digital Converter): 18 kênh ADC 12-bit.
● DAC (Digital-to-Analog Converter): 2 kênh DAC 8-bit.
● SPI (Serial Peripheral Interface): 3 giao diện SPI.
● I2C (Inter-Integrated Circuit): 2 giao diện I2C.
● UART (Universal Asynchronous Receiver/Transmitter): 3 giao diện UART.
● PWM (Pulse Width Modulation): 16 kênh PWM.
● I2S (Inter-IC Sound): 2 giao diện I2S.
● Cảm biến chạm: 10 chân GPIO có khả năng cảm biến chạm.
- Lưu ý khi sử dụng các chân GPIO
● Chân 0: Phải ở mức thấp để vào chế độ flash.
● Chân 2: Kết nối với đèn LED trên bo mạch, phải ở mức thấp hoặc nổi để vào chế độ flash.
● Chân 12: Boot sẽ thất bại nếu chân này ở mức cao.
● Chân 15: Phải ở mức thấp để vào chế độ flash
Chip ESP32 là một trong những chip Wi-Fi tích hợp hàng đầu trong ngành công nghiệp, nổi bật với kích thước nhỏ gọn và yêu cầu mạch điện bên ngoài tối thiểu Nó được trang bị vi điều khiển 32-bit Tensilica, chuẩn kỹ thuật số giao diện ngoại vi, chuyển mạch ăng-ten, RF balun, bộ khuếch đại lớn, và bộ lọc, cùng với các module quản lý điện năng, tất cả được tích hợp trong một gói nhỏ gọn.
Chip ESP32 được trang bị vi điều khiển Tensilica Xtensa LX6 32-bit, nổi bật với khả năng tiêu thụ điện năng thấp và tốc độ tối đa lên đến 240MHz Thiết kế của ESP32 hướng đến các thiết bị di động, thiết bị điện tử đeo trên người và ứng dụng Internet of Things (IoT), giúp tối ưu hóa mức tiêu thụ điện năng thông qua các công nghệ độc quyền Với ba chế độ hoạt động: chế độ hoạt động, chế độ ngủ và chế độ ngủ sâu, ESP32 cho phép thiết kế pin có thời gian sử dụng lâu hơn.
ESP32 có khả năng hoạt động trong môi trường công nghiệp với dải nhiệt độ từ -40°C đến 125°C Chip này được thiết kế với tính năng tích hợp cao và số lượng thành phần rời rạc tối thiểu, mang lại độ tin cậy cao, kích thước nhỏ gọn và hiệu suất mạnh mẽ.
Cảm biến DHT11 là một thiết bị phổ biến dùng để đo nhiệt độ và độ ẩm, thường được ứng dụng trong các dự án IoT, DIY và hệ thống giám sát môi trường Với khả năng tích hợp cả hai chức năng trong một module, DHT11 mang lại sự tiện lợi cho người dùng trong việc theo dõi các điều kiện môi trường.
- Thông số kỹ thuật cơ bản:
- Chức năng chân của DHT11:
● Chân 1 (VDD): Chân nối nguồn.
● Chân 2 (DATA): Chân dữ liệu vào ra.
● Chân 4 (GND): Chân nối mass (0V).
Cảm biến DHT11 kết hợp cảm biến độ ẩm điện dung và nhiệt điện trở (thermistor) để đo độ ẩm và nhiệt độ Cảm biến độ ẩm điện dung sử dụng hai điện cực và một chất nền giữ ẩm làm chất điện môi, giúp thay đổi giá trị điện dung khi độ ẩm biến đổi Nhiệt điện trở NTC có đặc điểm là điện trở giảm khi nhiệt độ tăng, cho phép đo lường chính xác nhiệt độ.
- Giao tiếp với DHT11: Để giao tiếp với DHT11, vi điều khiển thực hiện theo 2 bước chính:
Bước 1: Gửi tín hiệu muốn đo (Start) tới DHT11
1 Thiết lập chân DATA là output và kéo chân DATA xuống 0 trong khoảng thời gian > 18ms Khi đó, DHT11 sẽ hiểu là vi điều khiển muốn đo nhiệt độ và độ ẩm.
2 Đưa chân DATA lên 1 và sau đó thiết lập lại là chân đầu vào.
3 Sau khoảng 20-40às, DHT11 sẽ kộo chõn DATA xuống thấp Nếu sau >40às mà chõn DATA chưa được kéo xuống thấp, nghĩa là chưa giao tiếp được với DHT11.
4 Chõn DATA sẽ ở mức thấp 80às sau đú được DHT11 kộo lờn mức cao trong 80às Bằng việc giám sát chân DATA, vi điều khiển có thể biết được có giao tiếp được với DHT11 hay không Nếu tín hiệu đo được lên cao, quá trình giao tiếp của vi điều khiển với DHT11 hoàn thiện.
Bước 2: Đọc giá trị trên DHT11
Cảm biến sẽ gửi lại 5 byte dữ liệu đo được:
● Byte 1: Giá trị phần nguyên của độ ẩm.
● Byte 2: Giá trị phần thập phân của độ ẩm.
● Byte 3: Giá trị phần nguyên của nhiệt độ.
● Byte 4: Giá trị phần thập phân của nhiệt độ.
Nếu Byte 5 = Byte 1 + Byte 2 + Byte 3 + Byte 4 thì giá trị nhiệt độ và độ ẩm là chính xác, còn nếu không thì kết quả đo bị sai.
Cách tính nhiệt độ và độ ẩm:
● Công thức: (Byte cao * 256 + Byte thấp) / 10 Đọc dữ liệu:
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về vi điều khiển tương ứng với 5 byte giá trị nhiệt độ và độ ẩm.
● Bit 0: Sau khi tín hiệu được đưa về 0, đợi chân DATA của vi điều khiển được DHT11 kéo lên
1 Nếu chõn DATA trong khoảng 26-28às thỡ là 0.
● Bit 1: Nếu chõn DATA tồn tại trong khoảng 70às thỡ là 1.
Trong lập trình, sau khi bắt đầu dữ liệu, cần delay 50ms Nếu giá trị đo được là 0, thì bit đọc được là 0; nếu giá trị đo được là 1, thì bit đọc được là 1 Quy trình này tiếp tục cho các bit tiếp theo.
Hình 4 3: Kết nối DHT11 với ESP32
● VCC của DHT11 kết nối với chân 3.3V của ESP32.
● GND của DHT11 kết nối với chân GND của ESP32.
DHT11 kết nối với chân GPIO của ESP32, chẳng hạn như GPIO 21 Để đảm bảo tín hiệu ổn định, nên sử dụng một điện trở kéo lên 10kΩ giữa chân Data và VCC.
Thông tin về động cơ quạt mini
Động cơ quạt mini bao gồm hai phần chính: động cơ và cánh quạt, cho phép bạn chế tạo quạt máy mini phục vụ cho nhiều dự án sáng tạo Bạn có thể lập trình quạt để tự động bật hoặc tắt theo nhiệt độ hoặc khi phát hiện có người, mang lại sự tiện lợi và linh hoạt cho người sử dụng.
● Tín hiệu điều khiển: 2 pins
● Kích thước của mạch: 24mm x 48mm x 16mm
Hình 4 4: Động cơ quạt mini
Pinout của động cơ quạt mini
● Module động cơ quạt mini có 4 chân, và mỗi chân có chức năng như sau:
○ S2: Tín hiệu điều khiển quay nghịch
○ S1: Tín hiệu điều khiển quay thuận
● Quạt hoạt động dựa trên nguyên lý điện từ, khi dòng điện chạy qua cuộn dây, nó tạo ra từ trường làm quay cánh quạt.
Các chân của quạt mini
● GND (Ground): Chân nối đất, kết nối với GND của hệ thống.
● VCC (Voltage Common Collector): Chân cấp nguồn cho quạt, thường kết nối với nguồn 3.3V hoặc 5V.
● NC (Not Connected): Chân không kết nối, không sử dụng trong các ứng dụng thông thường.
● SIG (Signal): Chân tín hiệu, dùng để điều khiển quạt.
● OhStem Education, 2024 Động cơ quạt mini [online] Available at: https://ohstem.vn/product/dong-co-quat-mini/ [Accessed 27 September 2024].
● LED (Light Emitting Diode) là một loại diode bán dẫn phát sáng khi có dòng điện chạy qua.
○ Cathode (-): Chân này cần được kết nối với GND (0V).
○ Anode (+): Chân này được sử dụng để điều khiển trạng thái của LED.
● Cách điều khiển LED với ESP32: o Chân dương của LED: Nối với một chân GPIO của ESP32 qua một điện trở 220 ohm. o Chân âm của LED: Nối với GND.
Hình 4 6: Kết nối LED với ESP
Nguyên lý hoạt động của LED là khi chân Cathode được kết nối với GND và chân Anode với VCC, LED sẽ phát sáng Ngược lại, nếu cả hai chân Cathode và Anode đều kết nối với GND, LED sẽ tắt Đặc biệt, khi tín hiệu PWM (Điều chế độ rộng xung) được áp dụng vào chân Anode, độ sáng của LED sẽ thay đổi theo giá trị của tín hiệu PWM.
Hình 4 7: Nguyên lý hoạt động của LED
Thông tin về Piezo Buzzer
● Piezo Buzzer là một thiết bị phát âm thanh sử dụng hiệu ứng áp điện để tạo ra âm thanh.
○ Active Buzzer: Tạo ra âm thanh khi có điện áp được áp dụng Dễ sử dụng, chỉ cần nguồn điện.
Buzzer thụ động cần tín hiệu dao động bên ngoài để phát ra âm thanh Bằng cách thay đổi tần số đầu vào, nó có khả năng tạo ra nhiều âm thanh khác nhau.
○ Chân dương (+): Nhận tín hiệu điều khiển từ Arduino.
○ Chân âm (-): Kết nối với GND (0V).
● Active Buzzer: Khi kết nối VCC với chân dương, Piezo Buzzer sẽ tạo ra âm thanh liên tục.
Hình 4 9: Active Buzzer hoạt động
● Passive Buzzer: Khi tạo tín hiệu sóng vuông với tần số xác định trên chân dương, Piezo
Buzzer sẽ tạo ra các âm thanh với tần số tương ứng.
Hình 4 10: Passive Buzzer hoạt động
● Kết nối với ESP: o Chân dương (+): Nhận tín hiệu điều khiển từ Arduino. o Chân âm (-): Kết nối với GND (0V).
Hình 4 11: Kết nối ESP với Buzzer
LCD I2C là màn hình LCD sử dụng giao tiếp I2C, giúp đơn giản hóa việc kết nối với vi điều khiển Thiết bị này thường bao gồm một màn hình LCD thông thường, một module I2C và một biến trở, tạo điều kiện thuận lợi cho việc lập trình và sử dụng.
● Pinout của LCD I2C: o GND: Kết nối với GND (0V). o VCC: Cấp nguồn cho LCD, thường kết nối với 5V. o SDA: Tín hiệu dữ liệu I2C. o SCL: Tín hiệu đồng hồ I2C.
Thiết kế hệ thống
Hình 4.23: Sơ đồ hoạt động quản lý các trạm
- Quản lý trạm cảm biến
Hình 4 24: Sơ đồ hoạt động quản lý các trạm cảm biến
4.1.2 Mô tả sơ đồ hoạt động
4.1.2.1 Các thành phần của hệ thống
Node cảm biến/điều khiển (End Node) bao gồm cảm biến DHT11 và các thiết bị như LED, quạt, và buzzer, được điều khiển bởi module ESP32 Các End Node này có nhiệm vụ thu thập dữ liệu và thực hiện các hành động điều khiển dựa trên thông tin từ cảm biến.
○ Thu thập dữ liệu nhiệt độ và độ ẩm từ cảm biến DHT11.
○ Thực hiện các hành động điều khiển LED, quạt và buzzer dựa trên logic lập trình.
○ Gửi dữ liệu hoặc nhận lệnh điều khiển từ hệ thống backend qua Wi-Fi.
ESP32 không chỉ là một thiết bị xử lý mà còn hoạt động như một Gateway, tiếp nhận dữ liệu từ cảm biến DHT11 và gửi đến hệ thống backend Nó cũng nhận lệnh điều khiển từ backend để thực thi trên các thiết bị như LED, quạt và buzzer Đặc biệt, ESP32 đảm bảo việc truyền tải dữ liệu ổn định thông qua giao thức WebSocket hoặc HTTP.
● WebSocket Server: WebSocket được sử dụng để thiết lập kết nối thời gian thực giữa ESP32 và hệ thống backend (Java Spring).
○ ESP32 gửi dữ liệu nhiệt độ, độ ẩm và trạng thái thiết bị qua WebSocket.
○ Backend nhận dữ liệu, xử lý và phản hồi các lệnh điều khiển ngay lập tức.
○ WebSocket giúp giảm độ trễ so với HTTP thông thường, đảm bảo việc giám sát và điều khiển thiết bị diễn ra liên tục, mượt mà.
● Database (Cơ sở dữ liệu):
○ Lưu trữ dữ liệu về nhiệt độ, độ ẩm và trạng thái thiết bị như LED, quạt, buzzer.
○ Cung cấp thông tin lịch sử cho người dùng truy vấn thông qua website.
○ Đảm bảo tính toàn vẹn và truy cập nhanh chóng để hỗ trợ việc giám sát và điều khiển.
● Website: Giao diện điều khiển và giám sát từ xa được xây dựng bằng Java Spring, cung cấp:
○ Hiển thị dữ liệu nhiệt độ và độ ẩm theo thời gian thực bằng cách kết nối với WebSocket.
○ Cho phép người dùng điều khiển LED, quạt và buzzer từ xa.
○ Giao diện trực quan với biểu đồ và các trạng thái thiết bị rõ ràng.
○ Website cũng hỗ trợ các lệnh bật/tắt hoặc điều chỉnh thông qua HTTP khi cần.
● Thu thập và mã hóa dữ liệu từ các End Node:
Mỗi End Node được trang bị cảm biến DHT11 cùng với các thiết bị điều khiển như LED, quạt và buzzer ESP32 tại các End Node thu thập dữ liệu về nhiệt độ và độ ẩm từ cảm biến DHT11, đồng thời theo dõi trạng thái của các thiết bị Dữ liệu thu thập được sẽ được truyền đến Backend thông qua giao thức WebSocket.
Backend sử dụng Java Spring để nhận dữ liệu mã hóa từ ESP32 qua WebSocket Sau khi giải mã, dữ liệu được xử lý và lưu trữ tạm thời hoặc đưa vào cơ sở dữ liệu Đồng thời, backend cũng chuẩn bị dữ liệu để phản hồi yêu cầu từ Frontend qua WebSocket, đảm bảo cập nhật liên tục và thời gian thực.
● Truyền tải dữ liệu qua WebSocket:
Backend sử dụng WebSocket để truyền tải dữ liệu thời gian thực đến Frontend, bao gồm thông tin về nhiệt độ, độ ẩm và trạng thái của các thiết bị như LED, quạt và buzzer Công nghệ WebSocket đảm bảo rằng mọi thay đổi tại End Node được đồng bộ hóa ngay lập tức trên giao diện người dùng.
● Hiển thị dữ liệu tại Frontend:
Frontend nhận dữ liệu từ Backend thông qua WebSocket và hiển thị thông tin như:
○ Nhiệt độ và độ ẩm đo được từ cảm biến DHT11.
○ Trạng thái hiện tại của các thiết bị điều khiển (LED, quạt, buzzer).
○ Lịch sử dữ liệu và trạng thái được lưu trữ.
Người dùng có thể theo dõi trực quan qua biểu đồ hoặc bảng và nhận thông báo khi các giá trị vượt ngưỡng định trước.
● Điều khiển thiết bị từ Frontend:
Người dùng có thể điều chỉnh các thông số và kiểm soát thiết bị như LED, quạt và buzzer thông qua giao diện Frontend Các lệnh điều khiển sẽ được gửi đi một cách hiệu quả.
● Truyền lệnh điều khiển từ Backend tới ESP32:
Backend xử lý yêu cầu từ người dùng và gửi lệnh tới ESP32 qua WebSocket hoặc giao thức HTTP ESP32 thực hiện các tác vụ như bật/tắt LED, điều chỉnh quạt và kích hoạt buzzer.
● Lưu trữ và hiển thị dữ liệu:
○ Cơ sở dữ liệu lưu trữ các thông tin nhiệt độ, độ ẩm, trạng thái thiết bị và lịch sử các lệnh điều khiển.
○ Website truy vấn cơ sở dữ liệu thông qua Backend để cung cấp thông tin lịch sử và báo cáo trực quan cho người dùng.
4.2 Thiết kế cơ sở dữ liệu
4.2.1 Phân tích các đối tượng trong hệ thống
Cơ sở dữ liệu được phát triển nhằm quản lý và giám sát hoạt động của hệ thống IoT, đặc biệt chú trọng vào các cảm biến và thiết bị điều khiển nhiệt độ, độ ẩm, cùng với các trạm trong hệ thống.
Dữ liệu thu thập từ cảm biến DHT11 bao gồm thông tin về nhiệt độ và độ ẩm, cùng với trạng thái hoạt động của các thiết bị như quạt, LED và buzzer Hệ thống còn lưu trữ thông tin người dùng và quyền hạn truy cập, được tổ chức thành các bảng chính để quản lý hiệu quả.
● Sensors Table: Lưu trữ thông tin của từng cảm biến và trạng thái thiết bị điều khiển.
● Stations Table: Quản lý các trạm và thông tin liên kết đến các cảm biến.
● Users Table: Lưu trữ thông tin người dùng và quyền truy cập.
Lưu trữ thông tin của từng cảm biến và trạng thái thiết bị điều khiển đi kèm (LED, quạt, buzzer).
○ id: Kiểu dữ liệu bigint Mã định danh duy nhất của từng cảm biến.
○ name: Kiểu dữ liệu varchar(255) Tên của cảm biến (ví dụ: Sensor_1, Sensor_2).
○ station_id: Kiểu dữ liệu int Liên kết cảm biến với một trạm cụ thể.
○ type: Kiểu dữ liệu varchar(50) Loại cảm biến (ví dụ: DHT11).
○ status: Kiểu dữ liệu varchar(10) Trạng thái hoạt động của cảm biến (ON/OFF).
○ temperature: Kiểu dữ liệu float Nhiệt độ hiện tại đo được từ cảm biến.
○ humidity: Kiểu dữ liệu float Độ ẩm hiện tại đo được từ cảm biến.
○ fan_speed: Kiểu dữ liệu int Tốc độ quạt (0-100%).
○ led_state: Kiểu dữ liệu varchar(10) Trạng thái LED (ON/OFF).
○ buzzer_state: Kiểu dữ liệu varchar(10) Trạng thái buzzer (ON/OFF).
○ medium_humidity: Kiểu dữ liệu double Độ ẩm trung bình mục tiêu.
○ medium_temperature: Kiểu dữ liệu double Nhiệt độ trung bình mục tiêu.
○ target_humidity: Kiểu dữ liệu double Độ ẩm mục tiêu được điều chỉnh từ giao diện người dùng.
○ target_temperature: Kiểu dữ liệu double Nhiệt độ mục tiêu được điều chỉnh từ giao diện người dùng.
Quản lý dữ liệu và trạng thái cảm biến là rất quan trọng, cho phép theo dõi nhiệt độ và độ ẩm một cách hiệu quả Hệ thống cũng có khả năng điều chỉnh thiết bị điều khiển như quạt, LED và buzzer trong thời gian thực, đảm bảo môi trường luôn được kiểm soát tối ưu.
Lưu trữ thông tin của các trạm, cung cấp khả năng quản lý và tổ chức các cảm biến trong từng khu vực.
○ id: Kiểu dữ liệu int Mã định danh duy nhất của trạm.
○ name: Kiểu dữ liệu varchar(255) Tên của trạm (ví dụ: Trạm A, Trạm B).
○ location: Kiểu dữ liệu varchar(255) Vị trí của trạm (địa chỉ hoặc tọa độ địa lý).
○ uri: Kiểu dữ liệu varchar(255) Đường dẫn URI kết nối với trạm.
○ port: Kiểu dữ liệu int Số cổng để giao tiếp với trạm.
Tổ chức và theo dõi các cảm biến theo từng khu vực hoặc nhóm.
Lưu trữ thông tin người dùng và quyền truy cập hệ thống.
○ id: Kiểu dữ liệu bigint Mã định danh duy nhất của người dùng.
○ username: Kiểu dữ liệu varchar(255) Tên đăng nhập của người dùng.
○ password: Kiểu dữ liệu varchar(255) Mật khẩu được mã hóa.
○ level: Kiểu dữ liệu int Cấp độ quyền của người dùng (1: Admin, 2: Người dùng thường).
○ assigned_station_id: Kiểu dữ liệu bigint Trạm được chỉ định mà người dùng có quyền quản lý (nếu có).
Quản lý thông tin người dùng, đảm bảo chỉ những người dùng có quyền truy cập mới được phép điều chỉnh hệ thống.
4.2.1.3 Quan hệ giữa các bảng trong cơ sở dữ liệu
○ Mối quan hệ: N-1 (Nhiều cảm biến thuộc về một trạm).
○ Mô tả: Mỗi cảm biến được liên kết với một trạm qua cột station_id.
○ Mối quan hệ: 1-N (Một người dùng có thể quản lý nhiều trạm).
○ Mô tả: Người dùng với cấp độ quản trị (Admin) có thể được gán quyền quản lý nhiều trạm khác nhau qua cột assigned_station_id.
○ Mối quan hệ: Gián tiếp qua bảng Stations (Người dùng quản lý các trạm, và mỗi trạm quản lý các cảm biến).
○ Mô tả: Người dùng quản lý các cảm biến thông qua quyền quản lý trạm mà cảm biến đó thuộc về.
4.2.2 Sơ đồ thực thể quan hệ
Hình 4 25: Sơ đồ thực thể quan hệ
Hệ thống website quản lý các trạm cảm biến và điều khiển thiết bị thông minh được thiết kế với các màn hình sau:
Cung cấp tính năng đăng nhập cho phép người dùng truy cập hệ thống bằng tên và mật khẩu Sau khi xác thực thành công, giao diện sẽ chuyển đến trang dashboard hoặc trang admin, tùy thuộc vào vai trò của người dùng (Admin hoặc User).
- Dashboard Dành Cho Người Dùng
Hiển thị thông tin nhiệt độ, độ ẩm từ các cảm biến được liên kết với trạm của người dùng và các điều khiển thủ công.
● Hiển thị nhiệt độ và độ ẩm theo thời gian thực: Dữ liệu được lấy từ cảm biến, hiển thị bằng số liệu và biểu đồ.
● Điều khiển LED, quạt và buzzer:
Người dùng có thể bật/tắt LED, quạt và buzzer bằng các nút điều khiển trên giao diện.
○ Quạt: Điều chỉnh tốc độ (0-100%) hoặc Bật/Tắt.
● Biểu đồ dữ liệu: Hiển thị lịch sử nhiệt độ và độ ẩm dưới dạng biểu đồ trực quan để người dùng giám sát.
Cung cấp các công cụ quản lý tài khoản người dùng và trạm
● Quản lý tài khoản người dùng:
○ Xem danh sách tài khoản người dùng (ID, username, vai trò).
○ Thêm, sửa, hoặc xóa người dùng.
● Quản lý trạm cảm biến:
○ Xem danh sách các trạm (ID, tên trạm, vị trí).
○ Thêm, sửa hoặc xóa trạm cảm biến.
○ Liên kết trạm với tài khoản người dùng cụ thể.
● Biểu đồ và thông tin hệ thống tổng quan:
○ Biểu đồ nhiệt độ/độ ẩm của toàn bộ hệ thống.
○ Thống kê số lượng trạm, thiết bị cảm biến, và trạng thái hoạt động.
4.4.2.1 Framework và công cụ sử dụng
● Angular: Framework chính để phát triển giao diện người dùng, với khả năng mở rộng và mạnh mẽ.
● TypeScript: Ngôn ngữ chính cho logic và quản lý dữ liệu trong dự án.
● CSS: Sử dụng để tạo kiểu và định dạng giao diện.
● HTML: Định nghĩa cấu trúc và nội dung các thành phần giao diện.
● Angular CLI: Công cụ hỗ trợ tạo, xây dựng và quản lý dự án.
● RxJS: Quản lý các luồng dữ liệu bất đồng bộ, như kết nối thời gian thực từ server.
● Firebase/REST API: (Nếu có) Sử dụng để giao tiếp và đồng bộ hóa dữ liệu với server.
Hình 4 26: Cấu trúc thư mục
- login: Giao diện đăng nhập
- admin: Giao diện Admin Dashboard
- manage-staff: Giao diện quản lý nhân viên
- manage-station : Giao diện quản lý các trạm
- staff : Giao diện nhân viện quản lý từng trạm cảm biến
- user.service: Kết nối Websocket tới BE
- app.moudule: Khai báo và điều hướng các trang
- app-routing.module: Điều hướng đường dẫn các trang
4.4.2.3 Thiết kế thành phần (Components)
○ Thành phần Sidebar tạo thanh điều hướng cố định ở bên trên của ứng dụng.
○ Sidebar chứa các mục dẫn đến các trang chính như:
Quản lý nhân viên (Manage Staff).
Quản lý trạm (Manage Station).
Khi người dùng chọn một mục trong Sidebar, ứng dụng sử dụng Angular Router để chuyển hướng đến trang tương ứng mà không cần tải lại toàn bộ ứng dụng, giúp cải thiện trải nghiệm người dùng và tối ưu hóa hiệu suất.
○ Sidebar được thiết kế để dễ dàng tùy chỉnh: có thể bổ sung thêm các mục mới hoặc thay đổi thứ tự hiển thị các mục khi cần thiết.
○ Giao diện Dashboard hiển thị trạng thái hệ thống theo thời gian thực.
○ Các thành phần nhỏ hơn trong Dashboard được chia thành widgets hoặc cards, mỗi thành phần tập trung vào một chức năng cụ thể.
○ Widgets for Device Control: Hiển thị các trạng thái và thông số liên quan:
Quạt: Bật/Tắt quạt làm mát.
Còi báo động (Buzzer): Kích hoạt cảnh báo khẩn cấp
Hiển thị các thông tin về môi trường:
Nhiệt độ: Giá trị đo được từ cảm biến.
Độ ẩm: Giá trị đo được từ cảm biến.
Biểu đồ thời gian thực (real-time chart) cập nhật liên tục nhiệt độ và độ ẩm.
4.4.2.4 Giao diện tương tác và trải nghiệm người dùng (UI/UX)
Giao diện tương tác được thiết kế rõ ràng với các nút điều khiển lớn và dễ bấm, kèm theo nhãn chỉ dẫn rõ ràng Các biểu tượng trực quan giúp người dùng nhanh chóng nhận diện chức năng, nâng cao trải nghiệm sử dụng.
- Cập Nhật Theo Thời Gian Thực
Ứng dụng sử dụng RxJS và Angular Services để cập nhật trạng thái theo thời gian thực, cho phép thay đổi trạng thái của các thiết bị như LED, quạt và còi báo động Biểu đồ nhiệt độ và độ ẩm được làm mới liên tục mà không cần tải lại trang, giúp người dùng theo dõi thông tin một cách liên tục Dữ liệu trạng thái từ server được đồng bộ hóa thông qua WebSocket hoặc REST API, đảm bảo tính chính xác và kịp thời trong việc cập nhật thông tin.
- Trải Nghiệm Người Dùng (UX)
● Tính năng tự động hóa: o Các thiết bị có thể tự động chạy theo chương trình mặc định đã cài đặt sẵn
● Phản hồi tức thì: o Giao diện phản hồi nhanh với hiệu ứng chuyển động nhẹ, cải thiện trải nghiệm người dùng.
● Thông báo rõ ràng: o Hiển thị thông báo khi có sự cố hoặc trạng thái thay đổi (ví dụ: "Nhiệt độ hoặc độ ẩm đã vượt ngưỡng").
Hình 4 27: Giao diện Đăng nhập
Hình 4 28: Giao diện Admin Dashboard
Hình 4 29: Giao diện quản lí người dùng
Hình 4 10: Giao diện quản lí các trạm
Hình 4 11: Giao diện quản lí trạm cảm biến
Hệ thống server quản lý cảm biến nhiệt độ và độ ẩm được thiết kế với các chức năng chính như sau:
● Hệ thống sử dụng giao thức TCP và WebSocket để hỗ trợ cập nhật dữ liệu nhiệt độ và độ ẩm theo thời gian thực.
● Khi khởi động, server sẽ lắng nghe các sự kiện qua WebSocket để thu thập dữ liệu do cảm biến gửi lên.
● Các sự kiện WebSocket được phát từ server tới frontend để hiển thị dữ liệu cảm biến (nhiệt độ, độ ẩm) trên giao diện theo thời gian thực.
○ POST /api/users/login: Đăng nhập người dùng.
○ GET /api/users: Lấy tất cả danh sách người dùng
○ GET /api/users/deleteUser/{id}: Xóa người dùng
○ POST /api/users/update/{id}: Cập nhật người dùng
○ GET /api/stations: Lấy tất cả danh sách người dùng
○ DELETE /api/stations/{id}: Xóa người dùng
○ PUT /api/stations/{id}: Cập nhật người dùng.
○ GET /api/sensors/update/{stationId}: API để cập nhật Sensor theo Station ID
MySQL được sử dụng để lưu trữ dữ liệu cảm biến và quản lý thông tin người dùng.
● Lưu dữ liệu nhiệt độ và độ ẩm:
○ Giá trị nhiệt độ và độ ẩm, tình trạng quạt, led và buzzer
○ Ngưỡng nhiệt độ và độ ẩm.
MySQL hỗ trợ lưu trữ dữ liệu thời gian và truy vấn hiệu quả cho các biểu đồ và báo cáo.
4.4.2.1 Framework và công cụ sử dụng
● Server được xây dựng bằng Spring Boot, cung cấp nền tảng vững chắc cho các ứng dụng backend.
● Tích hợp tốt với các công cụ hiện đại như WebSocket.
● Các tính năng: o Xây dựng RESTful API nhanh chóng. o Xử lý dữ liệu thời gian thực qua WebSocket.
● Cung cấp cập nhật dữ liệu thời gian thực từ server tới giao diện người dùng.
Các giá trị nhiệt độ và độ ẩm, cùng với tình trạng của thiết bị LED, quạt và buzzer, được truyền tải liên tục qua kết nối WebSocket, giúp hiển thị thông tin thời gian thực trên giao diện người dùng.
Dữ liệu cảm biến được lưu trữ trong MySQL với cấu trúc bảng quan hệ:
● Bảng cảm biến (sensors): o id: Mã định danh cảm biến. o temperature: Giá trị nhiệt độ. o humidity: Giá trị độ ẩm. o timestamp: Thời gian đo.
PHÂN CHIA & THEO DÕI CÔNG VIỆC
Bảng phân công công việc
Họ tên Mã sinh viên Công việc
- Tìm hiểu các công nghệ kết nối trong IOT.
- Các xu hướng hiện tại và tương lai
- Tìm hiểu và lắp đặt các thiết bị, sensor
- Xây dựng giao diện quản lý các sensor
- Xây dựng các kết nối để nhận thông tin từ
BE login, quản lí người dùng, quản lí các trạm
- Tìm hiểu và lắp đặt các thiết bị
- Thiết kế hệ thống, xây dựng, phân tích sơ đồ
- Thiết kế cơ sở dữ liệu cho các cảm biến
- Thiết kế backend thực hiện kết nối tới các sensor, nhận thông tin từ các esp
- Tìm hiểu về các công nghệ truyền thông
- Thiết kế các chức năng quản lí người và các thông tin về quản lí sensor
- Nghiên cứu lắp đặt hệ thống cảm biến
- Xây dựng các API kết nối tới FE
- Tìm hiểu, thu thập thông tin lý thuyết liên quan đến IOT và dự án
- Tìm kiếm hướng phát triển để mở rộng hệ thống
- Xây dựng giao diện sensor, các kết nối giữa
Bảng 1: Bảng phân công công việc
Bảng theo dõi công việc
Công việc Thời gian bắt đầu
1.1 Lên ý tưởng, tìm đề tài 9/9 11/9 Cả nhóm
1.2 - Đặt vấn đề, tìm hiểu mục đích, tổng quan hệ thống
- Tìm hiểu các thiết bị phần cứng, phần mềm cần sử dụng trong dự án và tổng hợp trong báo cáo
- Tìm hiểu toàn bộ kiến thức cơ bản được sử dụng trong hệ thống và tổng hợp vào trong báo cáo
- Vẽ lưu đồ hoạt động của hệ thống
- Mô tả chi tiết các thành phần
2.3 - Thiết kế cơ sở dữ liệu 20/10 27/10
2.4 - Chuẩn bị các thiết bị phần cứng 1/10 10/10
2.5 - Bổ sung phần liệt kê danh sách API và các
2.6 - Tìm hiểu lại các thiết bị cần thiết và lên kế hoạch chuẩn bị:
+ Động cơ quạt, cánh quạt
- Điều chỉnh lại sơ đồ hệ thống
2.9 - Xử lý code Arduino để gửi và nhận dữ liệu qua Websocket
2.10 - Xử lý code BE để nhận lệnh từ FE và gửi dữ liệu đến FE
2.11 - Xử lý các dữ liệu khi nhận từ ESP về BE 10/11 11/11
2.12 - Chạy thử toàn bộ các tính năng 12/11 14/11 Cả nhóm
2.13 - Xử lý các bug còn tồn đọng, xử lý dữ liệu để hoàn thiện hơn
2.14 - Thiết kế mô hình thực tế, dùng các bìa cát tông để mô phỏng
3.1 - Đánh giá lại kết quả dự án
- Mục tiêu: Đánh giá mức độ hoàn thành các mục tiêu ban đầu của dự án, những điểm đã đạt được và những điểm chưa đạt.
+ Mỗi thành viên chia sẻ ý kiến cá nhân về các phần việc mình đã thực hiện, bao gồm những thành công và khó khăn.
+ Thống kê những thành quả đạt được và so sánh với mục tiêu đề ra ban đầu.
+ Ghi nhận các vấn đề đã gặp phải trong quá trình thực hiện dự án và các bài học kinh nghiệm rút ra.
3.2 - Chỉnh sửa và hoàn thiện báo cáo
- Mục tiêu: Chỉnh sửa nội dung báo cáo dự án và hoàn thiện tất cả các phần trước khi nộp.
+ Xem xét lại các góp ý từ thành viên trong nhóm và từ giảng viên (nếu có).
+ Điều chỉnh các phần nội dung trong báo cáo dựa trên các góp ý, bao gồm bổ sung phần chưa rõ ràng hoặc chỉnh sửa lỗi.
+ Kiểm tra lại hình thức báo cáo, đảm bảo tuân thủ các yêu cầu về định dạng, bố cục.
+ Đọc lại báo cáo lần cuối để kiểm tra chính tả, ngữ pháp, và tính nhất quán.
+ Nộp báo cáo hoàn chỉnh cho giảng viên hoặc nơi yêu cầu.
Bảng 2: Bảng theo dõi công việc
ĐÁNH GIÁ KẾT QUẢ DỰ ÁN VÀ KẾT LUẬN
Đánh giá kết quả dự án
Dự án xây dựng hệ thống cảm biến nhiệt độ và độ ẩm đã thành công trong việc triển khai các chức năng cơ bản và đáp ứng yêu cầu ban đầu Tuy nhiên, nhóm vẫn còn một số vấn đề chưa hoàn thiện cần được khắc phục.
Tên Chức năng Trạng thái Mô tả chi tiết
1 Quản lý người dùng Hoàn Thành Quản trị viên có thể quản lý các người dùng, thực hiện thêm, sửa, xóa người dùng
2 Quản lý trạm Hoàn Thành Quản trị viên có thể quản lý thông tin các trạm, thêm, sửa, xóa các trạm
3 Gán thông tin dữ liệu cho trạm
Hoàn Thành Quản trị viên thực hiện việc gán các IP cho các trạm để kết nối tới ESP
4 Quản trị viên điều khiển các trạm
Hoàn Thành Quản trị viên sẽ thực hiện điều chỉnh các thông số của trạm
5 Người dùng điều khiển các trạm
Hoàn Thành Người dùng sẽ nhận được dữ liệu từ trạm mà mình được phân công, có thể xem, điều khiển thủ công, hoặc tự động trạm của mình
Yêu cầu phi chức năng
1 Hiệu suất Hoàn Thành Hiệu suất ổn định, xử lý vấn đề delay.
2 Giao diện Hoàn Thành Giao diện thân thiện, khá dễ dùng, thao tác mượt mà
3 Các luồng truyền dữ liệu
Hoàn Thành Các luồng đã được cải thiện để giảm thiểu tình trạng ngắt kết nối Websocket
4 Xử lý dữ liệu Hoàn Thành Dữ liệu đã được chuẩn hóa và xử lý để có thể hiển thị rõ ràng và dễ hiểu
5 Lắp đặt Hoàn thành Cung cấp các tài liệu chi tiết và rõ ràng giúp việc thiết lập lại được thực hiện dễ dàng hơn
Bảng 3: Đánh giá kết quả dự án
Kết luận
Trong quá trình thiết kế, xây dựng và thử nghiệm, hệ thống cảm biến nhiệt độ và độ ẩm đã đạt được nhiều kết quả tích cực Hệ thống này cho phép quản lý người dùng, quản lý các trạm, thu thập dữ liệu nhiệt độ và độ ẩm, cũng như điều khiển thiết bị một cách hiệu quả Những thành công này chứng minh tính khả thi và hiệu quả của hệ thống trong việc chủ động kiểm soát và điều chỉnh thiết bị theo các điều kiện khác nhau.
Dự án này không chỉ hoàn thiện về mặt kỹ thuật mà còn mang lại giá trị thiết thực trong việc ứng dụng công nghệ IoT vào đời sống Hệ thống cảm biến nhiệt độ và độ ẩm giúp quản lý dễ dàng và khoa học hơn Những bài học và kinh nghiệm từ dự án sẽ là nền tảng vững chắc cho các dự án công nghệ IoT trong tương lai.
2.1 Rút ra bài học kinh nghiệm
Quá trình phát triển dự án đã mang lại cho nhóm nhiều bài học quý giá, bao gồm tầm quan trọng của việc lập kế hoạch chi tiết và phân bổ thời gian hợp lý ngay từ đầu, giúp tránh tình trạng chậm tiến độ và đảm bảo chất lượng sản phẩm Dự án cũng nhấn mạnh sự cần thiết của kiểm thử liên tục và tối ưu hóa phần mềm, đặc biệt trong các hệ thống IoT với nhiều thiết bị kết nối, nhằm phát hiện lỗi sớm và tối ưu hóa hệ thống Nhóm đã đối mặt với nhiều khó khăn trong cấu hình thiết bị và tích hợp dữ liệu, từ đó rèn luyện khả năng giải quyết vấn đề sáng tạo và làm việc dưới áp lực Cuối cùng, khả năng giao tiếp hiệu quả và phối hợp nhịp nhàng giữa các thành viên là yếu tố then chốt giúp tăng cường sự gắn kết và nâng cao năng suất, đảm bảo sự thành công của dự án.
2.2 Định hướng phát triển tương lai Để hệ thống cảm biến nhiệt độ và độ ẩm phát huy tối đa tiềm năng, một số hướng phát triển trong tương lai mà nhóm đã xem xét như sau:
- Thực hiện thêm một số tính năng tự động điều chỉnh thiết bị thông qua tình hình thực tế
- Cải tiến các tính năng dự báo thời tiết giúp người dùng có thể có các phương án chuẩn bị tối ưu
- Tích hợp các model AI hỗ trợ việc gợi ý, đưa ra quyết định phù hợp với tình hình thực tế
- Tích hợp các chức năng bổ sung như tự động mở cửa, máy hút độ ẩm để có thể đa dạng chức năng của hệ thống