- Chương trình hoạt động của các mô đun trong bộ KIT - Ứng dụng điện thoại thu thập, điều khiển và hiển thị dữ liệu.. LÝ DO CHỌN ĐỀ TÀI Đề tài "Thiết kế và thi công bộ KIT lập trình IoT
TỔNG QUAN
LÝ DO CHỌN ĐỀ TÀI
Đề tài "Thiết kế và thi công bộ KIT lập trình IoT" được lựa chọn nhằm mục tiêu phát triển một bộ công cụ học tập toàn diện, hỗ trợ người mới tiếp cận và thực hành các nguyên lý cơ bản của IoT Trong bối cảnh cuộc cách mạng công nghiệp 4.0, IoT đóng vai trò quan trọng trong việc kết nối và tương tác giữa các thiết bị thông minh, tối ưu hóa quy trình sản xuất và quản lý hệ thống Do đó, việc nắm vững kiến thức và kỹ năng liên quan đến IoT là điều cần thiết
Tại Việt Nam, việc tiếp cận và thực hành với công nghệ IoT gặp nhiều khó khăn Các cơ sở giáo dục thường thiếu trang thiết bị cần thiết và tài liệu hướng dẫn chi tiết, khiến việc học tập chủ yếu dừng lại ở lý thuyết, thiếu sự thực hành và ứng dụng thực tế Điều này làm hạn chế khả năng nắm bắt và phát triển kỹ năng của người học
Bộ KIT lập trình IoT ra đời nhằm giải quyết những khó khăn trên Với thiết kế toàn diện và các tài liệu hướng dẫn chi tiết, bộ KIT giúp người dùng dễ dàng tiếp cận và thực hành với các công nghệ IoT Điều này không chỉ giúp họ hiểu rõ hơn về lý thuyết mà còn nâng cao kỹ năng thực hành, giúp họ nắm vững cách thức thu thập, xử lý và áp dụng kiến thức vào các dự án IoT thực tế.
MỤC TIÊU ĐỀ TÀI
Thiết kế và thi công thành công bộ KIT thực hành IoT phục vụ cho việc thực hành các bài tập về IoT.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
• Cấu tạo, nguyên lý và chức năng của vi điều khiển có hỗ trợ sẵn kết nối IoT
• Nghiên cứu về các chuẩn giao tiếp có dây phổ biến
• Màn hình HMI để giám sát dữ liệu và điều khiển các đối tượng
• Các framework, cơ sở dữ liệu và môi trường thực thi phổ biến dành cho việc lập trình ứng dụng điện thoại
• Nghiên cứu và ứng dụng các chuẩn giao tiếp không dây
• Ứng dụng lập trình đơn giản phổ biến, dễ tiếp cận với người dùng
• Vi điều khiển ESP32-WROOM-32E hỗ trợ cổng giao tiếp USB type C 3.0 và được ra sẵn các chân GPIO, các chân nguồn và các chuẩn giao tiếp có dây và không dây
• Cảm biến sử dụng phương thức giao tiếp I2C, RS485, RS232, 0 – 10V, 4 – 20mA
• Màn hình HMI DWIN với các ưu điểm giá thành rẻ, dễ thao tác, dễ nạp chương trình
• Sử dụng React Native làm framework chính; lưu trữ và thu thập dữ liệu thông qua Firebase; môi trường thực thi là Node.js
• Ứng dụng mạng không dây LoRa và ESP-NOW để giao tiếp
• Sử dụng phần mềm Arduino IDE để lập trình chức năng cho vi điều khiển.
PHƯƠNG PHÁP NGHIÊN CỨU
Nhóm vận dụng kết hợp các phương pháp nghiên cứu sau:
• Phương pháp nghiên cứu phân tích: Phân tích các tài liệu kỹ thuật, datasheet liên quan đến các thành phần phần cứng
• Phương pháp nghiên cứu lý thuyết: Nghiên cứu tổng quan về IoT, các công nghệ được ứng dụng trong đề tài
• Phương pháp thực nghiệm: Thiết kế và thi công phần cứng cho bộ KIT, kiểm tra đánh giá hoạt động của hệ thống.
BỐ CỤC CUỐN BÁO CÁO
Đề tài “Thiết kế và thi công bộ KIT lập trình IoT” sẽ được trình bày theo từng phần từ lý thuyết đến ứng dụng Mỗi vấn đề trong bài sẽ được trình bày qua từng chương sau:
Chương này trình bày tổng quan về đề tài, những vấn đề cần đề cập, tóm tắt các ý chính về mục tiêu, đối tượng, phạm vi nghiên cứu và giới hạn cũng như phương pháp tìm hiểu về đề tài
Chương 2: Cơ sở lý thuyết
Chương này trình bày những nội dung cơ sở lý thuyết có liên quan đến đề tài như lý thuyết về ESP32, màn hình HMI DWIN, các chuẩn truyền thông dữ liệu có dây và không dây và các thành phần để xây dựng App
Chương 3: Tính toán và thiết kế
Chương này trình bày về nội dung thiết kế về phần cứng, phần mềm và các nội dung liên quan
Chương 4: Thi công mô hình
Chương này trình bày việc thi công hệ thống
Chương 5: Kết quả đạt được
Chương này trình bày về kết quả thực tế đạt được
Chương 6: Kết luận và hướng phát triển Đưa ra những kết luận về những điều đã đạt được, những hạn chế còn tồn tại của đề tài và đề xuất những hướng phát triển trong tương lai.
CƠ SỞ LÝ THUYẾT
TỔNG QUAN VỀ IoT
Internet of Things (IoT) là một công nghệ tiên tiến kết nối các thiết bị thông minh qua Internet, cho phép chúng thu thập, chia sẻ và xử lý dữ liệu một cách tự động IoT mở rộng khả năng của các thiết bị hàng ngày, từ điện thoại di động, máy tính bảng đến tủ lạnh, máy giặt và hệ thống chiếu sáng Những thiết bị này có thể giao tiếp và phối hợp với nhau để tạo ra một hệ thống thông minh, tối ưu hóa hoạt động và nâng cao hiệu quả Ứng dụng của IoT rất đa dạng và có ảnh hưởng lớn đến nhiều lĩnh vực Trong nhà thông minh, IoT cho phép kiểm soát thiết bị từ xa, tự động điều chỉnh đèn chiếu sáng, nhiệt độ và an ninh, mang lại sự tiện lợi và tiết kiệm năng lượng Trong y tế, các thiết bị đeo thông minh như đồng hồ và cảm biến y tế theo dõi sức khỏe người dùng, cung cấp dữ liệu thời gian thực cho bác sĩ để chẩn đoán và điều trị Trong nông nghiệp, các cảm biến IoT theo dõi điều kiện môi trường như độ ẩm và nhiệt độ đất, giúp nông dân tối ưu hóa quy trình canh tác và nâng cao năng suất [1]
IoT cũng đang thay đổi cách chúng ta quản lý đô thị Các thành phố thông minh sử dụng IoT để quản lý giao thông, tiết kiệm năng lượng và cải thiện chất lượng dịch vụ công cộng Ví dụ, các hệ thống quản lý giao thông thông minh có thể giảm tắc nghẽn và tai nạn bằng cách điều chỉnh đèn tín hiệu giao thông dựa trên lưu lượng thực tế Trong lĩnh vực năng lượng, IoT giúp giám sát và quản lý tiêu thụ năng lượng trong các tòa nhà và cơ sở hạ tầng, góp phần giảm chi phí và bảo vệ môi trường
Tương lai của IoT hứa hẹn mang lại nhiều cơ hội và thách thức Sự tích hợp của trí tuệ nhân tạo (AI) và phân tích dữ liệu lớn (Big Data) với IoT sẽ tạo ra những hệ thống tự động và thông minh hơn, nâng cao hiệu quả và an toàn Công nghệ 5G, với tốc độ truyền dữ liệu cao và độ trễ thấp, sẽ thúc đẩy sự phát triển của IoT, mở ra những ứng dụng mới trong nhiều lĩnh vực
Tóm lại, IoT đang cách mạng hóa cuộc sống và công việc của chúng ta, mở ra nhiều cơ hội mới trong việc cải thiện chất lượng cuộc sống và tăng cường hiệu quả công việc Với sự phát triển không ngừng, IoT sẽ tiếp tục đóng vai trò quan trọng trong cuộc cách mạng công nghiệp lần thứ tư, dẫn dắt chúng ta vào một kỷ nguyên mới của kết nối và thông minh hóa
Hình 2.1: Internet of things (Nguồn: https://thiensu.com.vn/internet-of-things-la-gi-dac-tinh-co-ban-cua-iot/)
Internet of Things (IoT) hoạt động dựa trên một quy trình gồm nhiều bước kết nối và xử lý dữ liệu từ các thiết bị thông minh Quy trình này bao gồm các bước chính sau:
Hình 2.2: Hoạt động của các thiết bị IoT (Nguồn:https://ohstem.vn/iot-internet-of-things-la-gi-he-thong-iot-hoat-dong-nhu-the-nao/)
Thu thập dữ liệu: Các cảm biến hoặc thiết bị IoT thu thập dữ liệu từ môi trường xung quanh Các cảm biến này có thể ghi nhận nhiều loại thông tin khác nhau, từ thông số cơ bản như nhiệt độ và độ ẩm đến dữ liệu phức tạp như hình ảnh và video Mỗi thiết bị được trang bị cảm biến sẽ liên tục gửi dữ liệu thu thập được đến các trạm cơ sở hoặc trực tiếp lên các dịch vụ đám mây [2]
Truyền dữ liệu: Dữ liệu sau khi được thu thập sẽ được truyền tới các dịch vụ lưu trữ đám mây qua kết nối Internet Qua quá trình này, dữ liệu trở nên có thể truy cập từ mọi nơi và bất kỳ thiết bị kết nối nào
Truyền dữ liệu: Dữ liệu sau khi được thu thập sẽ được truyền tới các dịch vụ lưu trữ đám mây qua kết nối Internet Qua quá trình này, dữ liệu có thể truy cập từ mọi nơi và bất kỳ thiết bị kết nối nào
Phản hồi và hành động: Kết quả phân tích và xử lý dữ liệu được chuyển đến người dùng cuối thông qua các giao diện người dùng, ứng dụng di động, trang web, hoặc email Dựa trên thông tin này, người dùng có thể đưa ra các quyết định hoặc điều chỉnh cần thiết Đồng thời, hệ thống IoT cũng có thể tự động thực hiện các hành động phản ứng dựa trên quyết định được đưa ra hoặc thông tin phân tích từ dữ liệu Quá trình này liên tục lặp lại để duy trì và cải thiện hiệu suất của hệ thống IoT theo thời gian
Internet of Things (IoT) đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày, mang lại sự kết nối và tự động hóa cho mọi ngóc ngách của cuộc sống và công nghiệp Tích hợp các thiết bị, cảm biến và máy móc qua kết nối Internet, IoT không chỉ mở ra một thế giới mới của tiện ích và hiệu quả, mà còn tạo điều kiện cho sự đổi mới và tiến bộ
• Công nghiệp: IoT đã thay đổi cách các nhà máy và nhà sản xuất quản lý quy trình sản xuất và chuỗi cung ứng Việc sử dụng cảm biến và hệ thống giám sát thời gian thực giúp giảm thiểu thời gian ngừng hoạt động và tăng hiệu suất sản xuất
• Y tế: IoT mang lại các ứng dụng đột phá trong việc giám sát sức khỏe và cung cấp dịch vụ y tế từ xa Các thiết bị y tế kết nối theo dõi sức khỏe cá nhân và gửi dữ liệu đến các nhà cung cấp dịch vụ y tế, giúp theo dõi bệnh trạng và điều trị theo dõi cá nhân hóa
• Nông nghiệp: IoT đã thúc đẩy sự hiệu quả và bền vững trong quản lý nước và phân bón Các hệ thống cảm biến IoT giúp nông dân đưa ra các quyết định thông minh về việc tưới tiêu và sử dụng phân bón, từ đó nâng cao sản lượng và giảm thiểu lãng phí.+
• Giao thông và vận tải: IoT được sử dụng để cải thiện quản lý giao thông và an toàn giao thông Hệ thống IoT giám sát lưu lượng xe cộ, tình trạng đường và điều chỉnh đèn giao thông tự động để giảm tắc đường và tai nạn giao thông
Kết luận lại, IoT không chỉ là một công nghệ mới mẻ mà còn là một yếu tố quyết định trong sự phát triển của xã hội và kinh tế Với tiềm năng lớn và sức mạnh kết nối, IoT hứa hẹn sẽ tiếp tục thúc đẩy sự tiến bộ và nâng cao chất lượng cuộc sống của chúng ta trong tương lai.
TỔNG QUAN VỀ ESP32
Trong thời đại hiện nay, Internet of Things (IoT) đã nổi lên như một trong những lĩnh vực công nghệ phát triển nhanh chóng nhất, thúc đẩy sự kết nối giữa hàng tỷ thiết bị và hệ thống qua internet Sức mạnh của IoT nằm ở khả năng tạo ra một mạng lưới thông minh, linh hoạt và tự động, giúp tối ưu hóa quản lý và sử dụng tài nguyên, nâng cao hiệu suất và giảm chi phí trong nhiều lĩnh vực
ESP32, với tích hợp Wi-Fi, Bluetooth và nhiều thiết bị ngoại vi, nhanh chóng trở thành công cụ quan trọng trong phát triển các ứng dụng IoT ESP32 cung cấp một nền tảng linh hoạt và mạnh mẽ để xây dựng các hệ thống IoT từ đơn giản đến phức tạp Từ nhà thông minh, tự động hóa công nghiệp, chăm sóc sức khỏe đến quản lý năng lượng, ESP32 đang chứng tỏ vai trò quan trọng trong việc thúc đẩy tiến bộ và đổi mới Trong đồ án này, ESP32 được sử dụng dưới dạng KIT với mô đun vi điều khiển chính là ESP32-WROOM- 32E [3]
Hình 2.3: KIT ESP32 type C CP2102 (Nguồn: https://nshopvn.com/product/kit-rf-thu-phat-wifi-bluetooth-esp32/)
• CPU và Bộ Nhớ Tích Hợp
- Vi xử lý: ESP32-D0WD-V3 hoặc ESP32-D0WDR2-V3, lõi kép Xtensa 32-bit LX6, tốc độ lên đến 240 MHz
- Bộ nhớ: 448 KB ROM, 520 KB SRAM, 16 KB SRAM trong RTC
- ESP32-D0WDR2-V3: Cung cấp thêm 2 MB PSRAM
- Tốc độ: 802.11n lên đến 150 Mbps
- Hỗ trợ tập hợp A-MPDU và A-MSDU
- Hỗ trợ khoảng bảo vệ 0.4 às
- Dải tần số trung tâm của kênh hoạt động: 2412 ~ 2484 MHz
- Chuẩn: Bluetooth V4.2 BR/EDR và Bluetooth LE
- Bộ phát: Class-1, class-2 và class-3
- Bộ mã hóa CVSD và SBC
- Hỗ trợ: Thẻ SD, UART, SPI, SDIO, I2C, LED PWM, Motor PWM, I2S, IR, bộ đếm xung, GPIO, cảm biến chạm điện dung, ADC, DAC, TWAI® (tương thích với ISO 11898-1, tức là CAN Specification 2.0)
- Điện áp hoạt động/Nguồn cung cấp: 3.0 ~ 3.6 V
- Nhiệt độ môi trường hoạt động:
- Phiên bản 105°C: -40 ~ 105 °C (Chỉ hỗ trợ cho module tích hợp flash 4/8 MB)
Hình 2.4: Mặt trước và mặt sau ESP32-WROOM-32E (Nguồn: https://www.ebay.com/itm/315042904324)
Module ESP32-WROOM-32E của Espressif Systems là một trong những giải pháp mạnh mẽ và linh hoạt nhất hiện nay, được thiết kế để đáp ứng nhu cầu của các ứng dụng IoT đa dạng từ đơn giản đến phức tạp Dưới đây là phân tích chi tiết về cấu trúc chức năng của từng khối trong module này:
Hình 2.5: Sơ đồ cấu trúc bên trong ESP32-WROOM-32E (Nguồn: https://www.mouser.vn/new/sparkfun/sparkfun-wrl-17830-esp32-wroom-mcu-module/)
- Chức năng: Cung cấp nguồn điện 3.3V ổn định cho toàn bộ module ESP32- WROOM-32E, đảm bảo hoạt động của tất cả các thành phần bên trong
- Mô tả: Nguồn cung cấp là yếu tố cơ bản để khởi động và duy trì hoạt động của vi xử lý cũng như các thành phần ngoại vi Điện áp 3.3V được chọn do tính phổ biến và hiệu suất cao trong các hệ thống nhúng hiện đại
• Vi Xử Lý (ESP32-D0WD-V3 hoặc ESP32-D0WDR2-V3)
- Chức năng: Là bộ xử lý trung tâm, thực hiện các tác vụ tính toán, xử lý tín hiệu và điều khiển các hoạt động của module
- Mô tả: Vi xử lý ESP32-D0WD-V3 hoặc ESP32-D0WDR2-V3 tích hợp lõi kép Xtensa 32-bit LX6 với tần số hoạt động lên đến 240 MHz Phiên bản ESP32- D0WDR2-V3 còn hỗ trợ thêm bộ nhớ PSRAM 2 MB, nâng cao khả năng xử lý các ứng dụng yêu cầu bộ nhớ lớn như truyền phát âm thanh, xử lý hình ảnh và các tác vụ phức tạp khác
• Dao Động Tinh Thể 40 MHz (40 MHz Crystal)
- Chức năng: Cung cấp tín hiệu clock chuẩn xác cho vi xử lý ESP32
- Mô tả: Dao động tinh thể 40 MHz đảm bảo rằng vi xử lý hoạt động với tần số đồng bộ và ổn định, cần thiết cho các ứng dụng thời gian thực và các tác vụ yêu cầu độ chính xác cao
• Bộ Nhớ Flash QSPI (QSPI Flash)
- Chức năng: Lưu trữ firmware, mã chương trình và các dữ liệu quan trọng
- Mô tả: Bộ nhớ Flash QSPI kết nối với vi xử lý thông qua các chân SPICS, SPIHD, SPID, SPID, SPICLK, SPIVD Bộ nhớ này có dung lượng từ 4 MB đến 16 MB, đủ để lưu trữ hệ điều hành nhúng, các ứng dụng và dữ liệu người dùng
- Chức năng: Tối ưu hóa tín hiệu RF cho truyền phát không dây
- Mô tả: Khối RF Matching giúp điều chỉnh và cân bằng tín hiệu RF, đảm bảo hiệu suất cao nhất cho các kết nối WiFi và Bluetooth, giảm thiểu nhiễu và mất mát tín hiệu
- Chức năng: Phát và nhận sóng vô tuyến cho các kết nối WiFi và Bluetooth
- Mô tả: ESP32-WROOM-32E sử dụng anten PCB tích hợp, giúp giảm kích thước và dễ dàng trong việc triển khai thiết kế phần cứng
- Chức năng: Giao tiếp với các thiết bị ngoại vi
- Mô tả: Các chân GPIO được sử dụng để kết nối và điều khiển các thiết bị ngoại vi như cảm biến, bộ điều khiển động cơ, đèn LED, màn hình, và các thiết bị đầu vào/đầu ra khác GPIOs cho phép thiết kế linh hoạt và tương thích với nhiều loại thiết bị
- Chức năng: Khởi động hoặc tắt module ESP32
- Mô tả: Chân EN là chân điều khiển nguồn Khi chân EN được kéo lên mức cao (High), module sẽ hoạt động bình thường Khi kéo xuống mức thấp (Low), module sẽ vào chế độ tiết kiệm năng lượng hoặc tắt hoàn toàn
• Bộ nhớ PSRAM (Tùy Chọn)
- Chức năng: Cung cấp thêm dung lượng bộ nhớ RAM cho các ứng dụng
- Mô tả: Bộ nhớ PSRAM tùy chọn, kết nối với vi xử lý, giúp mở rộng dung lượng RAM, rất hữu ích cho các ứng dụng đòi hỏi nhiều bộ nhớ như xử lý hình ảnh, âm thanh, và dữ liệu lớn
- Chức năng: Cung cấp điện áp cho bộ nhớ flash và các thiết bị ngoại vi
- Mô tả: Kết nối VDD_SDIO đảm bảo các thành phần bộ nhớ và thiết bị ngoại vi nhận được nguồn điện ổn định, duy trì hiệu suất hoạt động cao.
Tổng quan về HMI DWIN
HMI DWIN là một màn hình thông minh tích hợp công nghệ màn hình TFT LCD tự thiết kế T5L1 ASIC, nó cung cấp hình ảnh sắc nét và màu sắc đa dạng với 16.7 triệu màu 24 bit Sản phẩm này cảm ứng điện dung cung cấp sự thuận tiện cho người dùng Ngoài ra, HMI DWIN hỗ trợ tải xuống thông qua thẻ SD hoặc cổng nối tiếp trực tuyến, giúp người dùng dễ dàng cập nhật dữ liệu Với giao diện phát triển GUI DWIN DGUS V7.6 dễ sử dụng, không yêu cầu kỹ năng lập trình, việc phát triển ứng dụng trở nên đơn giản và thuận tiện
Hình 2.6: HMI DWIN cảm ứng điện dung
(Nguồn: https://www.dwin-global.com/4-3-inch-smart-lcdmodel- dmg80480c043_02wcommercial-grade-product/)
- Mã sản phẩm: DMG80480C043_02WTC
- Loại tấm nền: IPS, màn hình TFT LCD
- Độ phân giải: 480×800 pixel (hỗ trợ góc quay màn hình 0°/90°/180°/270°)
- Màu sắc: 24 bit 8R8G8B, 16 triệu màu
- Diện tích hiển thị khả dụng: Màu Sắc: 24 bit 8R8G8B
- Độ sáng đèn nền: 250 nits
- Bộ nhớ Flash: Flash NOR 16 MBytes, dùng cho font, hình ảnh và file âm thanh
- Chu kỳ ghi lại bộ nhớ Flash: hơn 100,000 lần
- Mở rộng Flash: Mở rộng được lên đến 64Mbytes NOR Flash hoặc 48Mbytes NOR Flash + 512Mbytes NAND Flash
- Chế độ UART: UART2 (TTL/CMOS); UART4: (TTL/CMOS - Chỉ có sẵn sau khi cấu hình hệ điều hành)
- Tốc độ Baud: 3150~3225600bps, giá trị kiến nghị là 115200bps
- Điện áp hoạt động: 4.5~5.5V, điện áp kiến nghị là 5V
- Dòng hoạt động: 260mA (VCC=5V, đèn nền tối đa); 80mA (VCC=5V, đèn nền tắt)
- Nhiệt độ hoạt động: -10℃~60℃ (độ ẩm môi trường khuyến khích dưới 60% khi điện áp hoạt động là 5V)
- Độ ẩm hoạt động: 10%~90%RH, giá trị kiến nghị là 60% RH
Bảng 2-1: Các chân của HMI DWIN
1 VCC Chân cấp nguồn 5VDC
2 RX4 Chân nhận dữ liệu của UART4
3 RX2 Chân nhận dữ liệu của UART2
4 TX2 Chân truyền dữ liệu của UART2
5 TX4 Chân truyền dữ liệu của UART4
Tổng quan về các chuẩn kết nối không dây
2.4.1 Tổng quan về WiFi a) Giới thiệu
Hình 2.7: Logo WiFi (Nguồn: https://en.wikipedia.org/wiki/Wi-Fi)
WiFi (wireless fidelity) là công nghệ mạng cục bộ không dây (WLAN) dựa trên tiêu chuẩn IEEE 802.11, cung cấp kết nối Internet tốc độ cao và ổn định trong các khu vực nhỏ và trong nhà WiFi hiện là một trong những công nghệ không dây phổ biến nhất, sử dụng rộng rãi tại gia đình, văn phòng, khách sạn, trường học, sân bay và nhà hàng Công nghệ này cho phép thiết bị kết nối mạng mà không cần dây dẫn, tạo sự linh hoạt và tiện lợi [4] b) Ưu và Nhược điểm
- Tính di động và tiện lợi: Cho phép kết nối Internet từ bất kỳ đâu trong vùng phủ sóng
- Dễ dàng triển khai: Thiết lập mạng không cần dây dẫn phức tạp, tiết kiệm thời gian và chi phí
- Khả năng mở rộng: Dễ dàng mở rộng phạm vi bằng cách thêm điểm truy cập (AP)
- Tương thích cao: Các thiết bị từ nhiều nhà sản xuất khác nhau có thể hoạt động cùng nhau
- Bảo mật: Dễ bị tấn công nếu không được bảo mật đúng cách
- Phạm vi hạn chế: Phạm vi phủ sóng bị hạn chế và tín hiệu yếu dần khi khoảng cách tăng
- Hiệu suất biến động: Tốc độ và chất lượng kết nối có thể bị ảnh hưởng bởi số lượng người dùng, vật cản và nhiễu sóng c) Đặc điểm, Phân loại và Kiến trúc
- Lớp vật lý: Sử dụng DSSS, FHSS, OFDM và IR để truyền dữ liệu
- Băng tần: Hoạt động trong băng tần 2.4 GHz và 5 GHz
- Tốc độ dữ liệu: Từ 1 Mbps đến 54 Mbps, tùy thuộc vào phiên bản tiêu chuẩn
- Bảo mật: Sử dụng các giao thức như WEP, WPA và WPA2
Hình 2.8: Các tiêu chuẩn WiFi (Nguồn: https://viettuans.vn/cac-chuan-wifi)
Tiêu chuẩn IEEE Băng tần vận hành (GHz) Tốc độ (Mbps) Tốc độ tối đa
Mạng WiFi bao gồm các điểm truy cập (AP – Access Point) và các thiết bị khách (clients) AP phát sóng SSID (Service Set Identifier) để các thiết bị kết nối Các thiết bị khách kết nối với AP thông qua SSID và xác thực mật khẩu nếu cần Kết nối giữa thiết bị khách và AP duy trì bởi tín hiệu beacons từ AP, đảm bảo kết nối liên tục và ổn định d) Ứng dụng của WiFi
WiFi được ứng dụng rộng rãi trong nhiều lĩnh vực, bao gồm:
- Truy cập Internet: Kết nối không dây cho điện thoại, máy tính bảng, và laptop
- Điện thoại VoIP: Thực hiện cuộc gọi thoại qua Internet, giảm chi phí liên lạc
- Kết nối thiết bị điện tử tiêu dùng: TV, đầu đĩa DVD, máy ảnh kỹ thuật số kết nối mạng để truyền dữ liệu và truy cập nội dung trực tuyến
- Ứng dụng trong y tế: Truy cập thông tin bệnh nhân cho bác sĩ và nhân viên y tế
- Ứng dụng trong doanh nghiệp: Hỗ trợ truy cập dữ liệu và tài nguyên mạng từ bất kỳ đâu trong văn phòng, tăng hiệu suất làm việc và giảm chi phí triển khai mạng
WiFi đã đóng vai trò quan trọng trong kết nối mạng không dây và phát triển công nghệ thông tin toàn cầu
2.4.2 Tổng quan về ESP-NOW a) Giới thiệu
Hình 2.9: Logo ESP-NOW (Nguồn: https://www.aranacorp.com/en/communication-between-two-esp8266-with-esp-now/)
ESP-NOW là một giao thức giao tiếp không dây tiên tiến do Espressif Systems phát triển Công nghệ này đặc biệt hữu ích trong bối cảnh IoT và mạng cảm biến đang ngày càng phổ biến, cung cấp giải pháp truyền dữ liệu nhanh chóng và ổn định giữa các thiết bị không dây ESP-NOW loại bỏ yêu cầu thiết lập kết nối trước khi truyền dữ liệu, giảm độ trễ và tiêu thụ năng lượng, đồng thời hỗ trợ truyền dữ liệu mã hóa và không mã hóa, cung cấp sự linh hoạt cao cho các ứng dụng đòi hỏi bảo mật [5, 6] b) Ưu nhược điểm
- Tính hiệu quả và linh hoạt: Loại bỏ bước thiết lập kết nối trước khi truyền dữ liệu, giúp giảm độ trễ và tiêu hao năng lượng, tăng hiệu suất và ổn định
- Hỗ trợ mã hóa: Cho phép truyền dữ liệu mã hóa và không mã hóa, đáp ứng các yêu cầu bảo mật khác nhau
- Tích hợp dễ dàng: Dễ dàng tích hợp vào các ứng dụng hiện có, giảm thời gian phát triển và triển khai
- Tiết kiệm năng lượng: Thiết kế tiêu tốn ít năng lượng, phù hợp với các ứng dụng yêu cầu hoạt động lâu dài
- Hạn chế số lượng thiết bị kết nối: Giới hạn số lượng thiết bị kết nối, đặc biệt là với các thiết bị mã hóa (tối đa 10 trong chế độ Station và 6 trong chế độ SoftAP hoặc SoftAP + Station)
- Giới hạn khả năng truyền dữ liệu: Payload giới hạn ở mức 250 byte mỗi lần truyền, phù hợp với các ứng dụng có yêu cầu dữ liệu nhỏ
- Không hỗ trợ broadcast: Không hỗ trợ truyền dữ liệu dạng broadcast, hạn chế trong một số ứng dụng cụ thể c) Cách hoạt động
• Định dạng trường hoạt động từ nhà cung cấp (vendor action fields):
- ID Phần tử (Element ID): Giá trị là 221, chỉ ra đây là một phần tử cụ thể của nhà cung cấp
- Độ dài (Length): Tổng chiều dài của các trường định danh tổ chức, loại, phiên bản và nội dung
- Định danh tổ chức (Organization Identifier): Giá trị 0x18fe34, tương ứng với ba byte đầu tiên của địa chỉ MAC của Espressif
- Loại (Type): Giá trị là 4, chỉ ra đây là một khung ESP-NOW
- Phiên bản (Version): Chỉ định phiên bản của ESP-NOW
- Thân (Body): Chứa dữ liệu ESP-NOW cần truyền
Hình 2.10: Cấu trúc trường hoạt động từ nhà cung cấp
• Các kiểu kết nối của ESP-NOW:
ESP-NOW hỗ trợ nhiều kiểu kết nối khác nhau để đáp ứng nhu cầu đa dạng của các ứng dụng IoT nhưng dưới đây là hai kiểu kết nối chính mà ESP-NOW cung cấp:
- Kết Nối Một Chiều (One-Way Communication): Một thiết bị ESP32 gửi dữ liệu đến một hoặc nhiều thiết bị khác mà không cần nhận phản hồi Phù hợp cho các ứng dụng truyền dữ liệu cảm biến định kỳ a) b)
Hình 2.11: a) ESP-NOW một slave nhiều master b) ESP-NOW một master nhiều Slave
- Kết Nối Hai Chiều (Two-Way Communication): Các thiết bị ESP32 gửi và nhận dữ liệu từ nhau, phù hợp cho các ứng dụng yêu cầu phản hồi tức thời hoặc xác nhận dữ liệu, chẳng hạn như điều khiển từ xa và giám sát thời gian thực
Hình 2.12: Kết nối ESP-NOW 2 chiều nhiều thiết bị
ESP-NOW với khả năng hỗ trợ cả kết nối một chiều và hai chiều, cung cấp giải pháp mạnh mẽ cho nhiều ứng dụng IoT khác nhau, từ giám sát cảm biến đơn giản đến hệ thống tự động hóa phức tạp
2.4.3 Tổng quan về LoRa a) Giới thiệu
Hình 2.13: Logo LoRa (Nguồn: https://devopedia.org/lora)
LoRa (Long Range) là một kỹ thuật điều chế phổ rộng dựa trên công nghệ Chirp Spread Spectrum (CSS), thiết kế cho việc truyền thông qua khoảng cách xa với mức tiêu thụ năng lượng thấp LoRa nổi bật nhờ khả năng chống nhiễu, kháng đa đường, fading và hiệu ứng Doppler Sử dụng mã sửa lỗi và hệ số trải trực giao, LoRa cải thiện độ nhạy, phạm vi truyền thông và tăng dung lượng mạng Được ứng dụng rộng rãi trong IoT, LoRa cung cấp giải pháp hiệu quả và chi phí thấp cho các dịch vụ định vị và truyền thông không dây [4] b) Ưu nhược điểm
- Khả năng mở rộng băng thông: LoRa có thể mở rộng về cả băng thông và tần số, phù hợp cho cả ứng dụng nhảy tần số hẹp và chuỗi rộng
- Tiêu thụ năng lượng thấp: LoRa là một sơ đồ điều chế bao bọc không đổi, cho phép sử dụng lại các giai đoạn khuếch đại công suất hiệu quả cao, chi phí thấp mà không cần sửa đổi
- Độ bền cao: Tín hiệu LoRa rất chống lại các cơ chế nhiễu trong băng và ngoài băng nhờ vào tính chất không đồng bộ
Các chuyển truyền thông dữ liệu có dây
2.5.1 Tổng quan về chuẩn giao tiếp I2C a) Giới thiệu
I2C (Inter-Integrated-Circuit) là một chuẩn giao tiếp điều khiển giữa các vi mạch trong một hệ thống Được phát triển bởi Philips vào đầu những năm 1980, I2C nhanh chóng trở thành một tiêu chuẩn trong việc điều khiển các thiết bị như cảm biến, vi điều khiển, EEPROM, và nhiều thiết bị khác [8] b) Ưu nhược điểm của I2C
- Đơn giản: I2C sử dụng chỉ 2 dây (SDA và SCL), giúp giảm chi phí phần cứng và không gian cần thiết trên PCB
- Tiêu chuẩn hóa: Được chấp nhận rộng rãi trong ngành công nghiệp và được hỗ trợ bởi nhiều nhà sản xuất vi mạch
- Phần mềm điều khiển: Giao thức phần mềm đơn giản và hiệu quả, giúp dễ dàng triển khai và điều chỉnh
- Tốc độ chậm: Tốc độ truyền thông của I2C thường không cao như các giao thức khác như SPI hay UART
- Phức tạp khi xử lý nhiều thiết bị: Trong môi trường nhiều thiết bị, cần phải xử lý vấn đề xung đột và đa chủ c) Nguyên lý hoạt động
Hình 2.16: Nguyên lý hoạt động của I2C
(Nguồn: https://www.linkedin.com/pulse/understanding-i2c-protocol-addressing-how-build- scanner-larbi-ouiyzme)
I2C hoạt động với hai đường truyền tín hiệu:
- Đường xung nhịp đồng hồ (SCL): Điều khiển bởi thiết bị chủ với tần số thường là 100kHz hoặc 400kHz, có thể lên đến 1MHz hoặc 3.4MHz
- Đường dữ liệu (SDA): Truyền dữ liệu hai chiều, mỗi thiết bị trên bus I2C có một địa chỉ duy nhất để tránh nhầm lẫn Thiết bị chủ điều khiển giao tiếp, tạo xung đồng hồ và quản lý địa chỉ thiết bị tớ
Trong hệ thống I2C, thiết bị chủ kiểm soát toàn bộ giao tiếp, còn thiết bị tớ phản hồi khi được yêu cầu Địa chỉ của mỗi thiết bị được định rõ bằng 7 hoặc 10 bit, cho phép kết nối nhiều thiết bị trên cùng một bus d) Ứng dụng
I2C được sử dụng rộng rãi trong:
- Đọc cảm biến: Giao tiếp với các cảm biến nhiệt độ, áp suất, độ ẩm
- Điều khiển vi điều khiển và vi xử lý: Truyền dữ liệu và lập trình giữa các vi mạch
- Lưu trữ dữ liệu: Truy cập EEPROM và bộ nhớ flash
Tóm lại, I2C là một chuẩn giao tiếp hiệu quả và đơn giản, phù hợp cho nhiều ứng dụng trong ngành công nghiệp điện tử
2.5.2 Tổng quan về chuẩn giao tiếp SPI a) Giới thiệu
SPI (Serial Peripheral Interface) là một giao thức truyền thông nối tiếp đồng bộ, được Motorola phát triển vào giữa thập niên 1980 Giao thức này có kiến trúc master-slave với một master duy nhất và nhiều slave, hỗ trợ truyền thông song công hoàn toàn qua giao diện bốn dây: SCLK (Clock), MOSI (Master Out Slave In), MISO (Master In Slave Out), và SS (Slave Select) SPI có tốc độ truyền dữ liệu lên đến 400 Mbps [9]
Hình 2.17: Giao tiếp giữa SPI Master and Slave b) Ưu nhược điểm
- Tốc độ cao: SPI hỗ trợ tốc độ truyền dữ liệu rất cao, đạt tới 400 Mbps
- Truyền thông song công: Cho phép dữ liệu truyền và nhận đồng thời giữa master và slave
- Thiết kế đơn giản: Giao diện bốn dây giúp dễ dàng trong việc thiết kế và kết nối mạch
- Khả năng mở rộng: Kết nối nhiều slave với một master qua các chân chọn slave riêng biệt
- Nhiều chân kết nối: Cần nhiều chân hơn so với một số giao thức khác như I2C, đặc biệt khi kết nối nhiều slave
- Không hỗ trợ địa chỉ hóa: Không có cơ chế địa chỉ hóa thiết bị, gây khó khăn trong quản lý nhiều slave
- Khoảng cách truyền hạn chế: Thích hợp cho kết nối trong phạm vi ngắn do tín hiệu dễ bị suy giảm khi khoảng cách tăng c) Cách hoạt động
Hình 2.18: Nguyên lý hoạt động của SPI
(Nguồn: https://electronics.stackexchange.com/questions/612346/confusion-with-sck-mosi- timing-relationship-in-spi)
SCLK là tín hiệu xung nhịp dùng để đồng bộ hóa truyền và nhận dữ liệu giữa master và slave Tần số của SCLK quyết định tốc độ truyền dữ liệu SPI là giao thức truyền thông đồng bộ, sử dụng chung một tín hiệu xung nhịp để đảm bảo đồng bộ Tín hiệu này có thể điều chỉnh thông qua các thuộc tính phân cực xung nhịp (CPOL) và pha xung nhịp (CPHA) để xác định thời điểm xuất và lấy mẫu dữ liệu trên các cạnh của chu kỳ xung nhịp
Master chọn slave bằng cách kéo chân SS của slave đó xuống mức thấp Khi không có truyền tải, chân SS được giữ ở mức cao Master có thể có nhiều chân SS để kết nối với nhiều slave hoặc sử dụng một chân SS duy nhất và nối các slave theo kiểu nối tiếp
SPI cung cấp phương thức truyền dữ liệu nhanh và cấu hình đơn giản nhưng yêu cầu nhiều dây dẫn và không hỗ trợ nhiều master Dù vậy, SPI vẫn là lựa chọn phổ biến trong các ứng dụng nhúng và điện tử tiêu dùng
2.5.3 Tổng quan về chuẩn giao tiếp RS485 (Modbus – RTU) a) Giới thiệu
RS485 là chuẩn giao tiếp truyền thông nối tiếp phổ biến trong các hệ thống điều khiển từ xa, đặc biệt trong các doanh nghiệp công nghiệp và khai thác mỏ RS485 đảm bảo an toàn và hiệu quả trong việc truyền dữ liệu điều khiển Tuy nhiên, sự đa dạng về thông số và giao thức truyền thông dẫn đến khó khăn trong việc truyền tín hiệu qua một đường dữ liệu duy nhất, gây giảm tính tương thích và khả năng mở rộng của hệ thống, và làm cho việc bảo trì trở nên phức tạp [10] b) Ưu nhược điểm
- Truyền dẫn mạnh mẽ: RS485 sử dụng truyền dẫn cân bằng và nhận tín hiệu chênh lệch, giúp chống nhiễu chế độ chung mạnh mẽ
- Khả năng truyền thông đa điểm: Hỗ trợ truyền thông dữ liệu đa điểm, cho phép kết nối nhiều thiết bị trên cùng một đường dây
- Khoảng cách truyền xa: Tốc độ truyền dẫn và khoảng cách truyền dẫn có mối quan hệ hàm số, cho phép truyền dữ liệu ở khoảng cách xa
- Độ tin cậy cao: Cấu trúc bus với ít dây cáp, giúp truyền thông dễ dàng và ít lỗi
- Hạn chế về mạng: RS485 không hỗ trợ mạng vòng hoặc sao, chỉ hoạt động ở chế độ bán song công hoặc song công
- Tính tương thích: Do các nhà sản xuất khác nhau thiết kế các thông số và giao thức truyền thông khác nhau, nên tính tương thích giữa các hệ thống là kém
- Khó bảo trì: Nhiều hệ thống độc lập trong cùng một doanh nghiệp làm cho việc bảo trì trở nên phức tạp và tốn kém c) Cấu trúc
Mạng RS485 có thể được chia thành hai cấu hình chính: cấu hình 2 dây (hệ thống bán song công) và cấu hình 4 dây (hệ thống song công toàn phần)
• Cấu hình 2 dây (hệ thống bán song công):
Hình 2.19: Cấu hình RS485 2 dây
Trong cấu hình này, dữ liệu được truyền theo một hướng tại một thời điểm nhất định Các tín hiệu truyền (TX) và nhận (RX) cùng chia sẻ một cặp dây, giúp tiết kiệm chi phí cài đặt Hệ thống bán song công 2 dây phù hợp cho các ứng dụng không yêu cầu truyền và nhận dữ liệu đồng thời
• Cấu hình 4 dây (hệ thống song công toàn phần):
Hình 2.20: Cấu hình RS485 4 dây
(Nguồn: https://www.hindlepowerinc.com/hindle-institute/all-about-stationary-batteries-and- battery-chargers/charger-alarms-and-other-options/communications-options-at-series/)
Trong cấu hình này, các tín hiệu truyền và nhận sử dụng các cặp dây riêng biệt, cho phép truyền dữ liệu theo cả hai hướng cùng một lúc Điều này tăng tốc độ và hiệu quả truyền thông, thích hợp cho các ứng dụng yêu cầu truyền dữ liệu nhanh chóng và liên tục d) Ứng dụng
RS485 thường được sử dụng trong các ứng dụng điều khiển từ xa công nghiệp và khai thác mỏ Nhờ khả năng truyền thông đa điểm và chống nhiễu mạnh mẽ, RS485 được ứng dụng rộng rãi trong các hệ thống tự động hóa, điều khiển quy trình, và hệ thống cảm biến Tuy nhiên, tính tương thích kém và khó khăn trong bảo trì là những thách thức lớn khi tích hợp và quản lý các hệ thống RS485 khác nhau trong cùng một doanh nghiệp
Công nghệ RS485 qua Ethernet đã được phát triển để giải quyết những hạn chế này Bằng cách truyền dữ liệu RS485 qua Ethernet, công nghệ này cho phép nhiều giao thức RS485 khác nhau truyền dữ liệu TCP/IP qua một đường truyền duy nhất Điều này không chỉ giải quyết vấn đề về khoảng cách và tốc độ truyền thông mà còn cải thiện đáng kể độ tin cậy và an ninh của truyền dữ liệu, hiện thực hóa truy cập dữ liệu qua Internet mà không phụ thuộc vào miền e) Tổng quan về đồng hồ KWH một pha DDSU666 Đồng hồ KWH một pha Chint DDSU666 là thiết bị đo lường năng lượng tiên tiến được thiết kế để gắn trên thanh DIN, phù hợp cho các ứng dụng giám sát tải trên các dòng inverter như Growatt, Sofar, Senergy và nhiều thiết bị khác Với những tính năng ưu việt và khả năng đo đạc chính xác
Hình 2.21: Đồng hồ KWH một pha DDSU666 (Nguồn: https://codienhaiau.com/product/dong-ho-do-dien-1-pha-chint-DDSU666-230v-580a/)
• Thông số kỹ thuật chính:
- Điện áp định mức (Un): 120V, 220V, 230V, 240V
- Điện áp hoạt động: Từ 0.75Un đến 1.2Un
- Công suất tiêu thụ: Dưới 1W, 5VA
- Cấp chính xác: Class 1.0 cho công suất hoạt động
- Tiêu chuẩn phù hợp: IEC62052-11, IEC62053-21
- Cổng giao tiếp: RS485, hỗ trợ giao thức Modbus và DL/T
2.5.4 Tổng quan về chuẩn giao tiếp RS232 a) Giới thiệu
Giao tiếp qua cổng nối tiếp RS232 là phương pháp phổ biến trong các ứng dụng điều khiển và đo lường RS232 là chuẩn giao tiếp nối tiếp không đồng bộ, cho phép kết nối giữa hai thiết bị với khoảng cách truyền dẫn từ 12.5 đến 25.4 mét và tốc độ truyền từ 20 kbit/s đến 115 kbit/s [11] b) Ưu nhược điểm
- Chống nhiễu tốt: Đảm bảo truyền thông ổn định trong môi trường nhiễu
- Tháo lắp thuận tiện: Thiết bị ngoại vi có thể tháo lắp khi máy tính đang hoạt động
- Đơn giản: Các mạch điện đơn giản có thể nhận nguồn điện qua cổng nối tiếp, giảm chi phí và đơn giản hóa cài đặt
- Giới hạn tốc độ và khoảng cách: Không phù hợp cho các ứng dụng yêu cầu truyền thông nhanh và xa
- Số lượng thiết bị kết nối hạn chế: Chỉ hỗ trợ kết nối giữa hai thiết bị
- Thiết kế cổng: Số chân hạn chế có thể gây khó khăn trong việc kết nối và làm giảm tính linh hoạt c) Cấu trúc của giao tiếp RS232
- Truyền dẫn không đồng bộ: Dữ liệu được truyền qua cổng RS232 không đồng bộ, với mỗi kí tự bao gồm bit bắt đầu, bit dữ liệu, Parity bit, và bit dừng
- Tốc độ Baud: Tham số quan trọng xác định số lượng bit được truyền trong một giây, cần được thiết lập ở cả hai bên truyền và nhận
- Parity bit: Sử dụng để kiểm tra lỗi trong quá trình truyền dữ liệu
Hình 2.22: Cấu trúc của dữ liệu truyền trong RS232 (Nguồn: http://sieco.vn/tin-tuc/su-khac-biet-giua-rs232-rs422-va-rs485-66.html)
Tổng quan về các thành phần cấu thành App
2.6.1 Tổng quan về framework React Native
Hình 2.23: Logo React Native (Nguồn: https://en.wikipedia.org/wiki/React_Native) a) Giới thiệu
React Native là một framework mã nguồn mở do Facebook phát triển, ra mắt lần đầu năm 2015 Nó cho phép xây dựng ứng dụng di động bằng JavaScript và React, một thư viện JavaScript phổ biến, với khả năng triển khai trên cả iOS và Android từ cùng một mã nguồn [12] b) Ưu nhược điểm
- Phát triển đa nền tảng: Viết mã một lần, chạy trên nhiều nền tảng, tiết kiệm thời gian và công sức
- Hiệu suất cao: Sử dụng các thành phần gốc (native components) giúp hiệu suất tốt hơn so với các framework hybrid khác
- Cộng đồng lớn: Là dự án mã nguồn mở từ Facebook, có cộng đồng hỗ trợ mạnh mẽ và nhiều tài liệu hướng dẫn
- Live Reload và Hot Reload: Giúp nhà phát triển thấy ngay các thay đổi mà không cần build lại ứng dụng
- Tái sử dụng mã: Phần lớn mã có thể sử dụng lại giữa các dự án khác nhau, tăng tốc độ phát triển và giảm chi phí
- Hiệu suất không bằng ứng dụng native hoàn toàn: Ứng dụng native viết bằng Swift (iOS) hoặc Kotlin (Android) có thể cho hiệu suất tốt hơn trong một số trường hợp
- Cần kiến thức rộng: Phải hiểu cả React và các công nghệ native để tối ưu hóa và giải quyết các vấn đề đặc thù
- Thư viện bên thứ ba: Không phải thư viện nào cũng được duy trì và cập nhật đều đặn, gây ra vấn đề về tương thích và bảo mật
- Debugging phức tạp: Debugging có thể phức tạp hơn do phải xử lý cả JavaScript và mã native c) Ứng dụng
React Native đã được sử dụng rộng rãi trong việc phát triển nhiều ứng dụng nổi tiếng, bao gồm:
- Facebook: Chính Facebook, nhà phát triển React Native, cũng sử dụng nó cho ứng dụng di động của mình
- Instagram: Một phần của ứng dụng Instagram được xây dựng bằng React Native
- Walmart: Walmart sử dụng React Native để cải thiện hiệu suất và trải nghiệm người dùng trong ứng dụng của mình
React Native là một công cụ mạnh mẽ và linh hoạt cho phép phát triển các ứng dụng di động đa nền tảng hiệu quả Mặc dù có một số hạn chế, nhưng với những ưu điểm về tiết kiệm thời gian và nguồn lực, React Native vẫn là lựa chọn phổ biến của nhiều công ty và nhà phát triển trên toàn thế giới
Hình 2.24: Logo Expo và các ứng dụng (Nguồn: https://medium.com/@muhammad.zahran/explore-on-expo-82199e3c01ac) a) Giới thiệu
Expo là một framework mã nguồn mở dành cho việc phát triển ứng dụng di động, được xây dựng trên React Native Được phát triển bởi 650 Industries và ra mắt lần đầu vào năm 2016, Expo cung cấp một bộ công cụ và dịch vụ giúp các nhà phát triển xây dựng, triển khai, và thử nghiệm các ứng dụng di động một cách nhanh chóng và dễ dàng Nhờ vào Expo, lập trình viên có thể sử dụng JavaScript và React để tạo ra các ứng dụng di động cho cả iOS và Android một cách hiệu quả b) Ưu nhược điểm
- Phát triển nhanh chóng: Expo đi kèm với nhiều công cụ và dịch vụ tích hợp, giúp rút ngắn thời gian phát triển và triển khai ứng dụng
- Không cần cấu hình phức tạp: Người dùng không cần cài đặt và cấu hình môi trường phát triển phức tạp, giúp việc bắt đầu với Expo dễ dàng hơn
- Hỗ trợ cross-platform: Sử dụng cùng một mã nguồn để xây dựng ứng dụng cho cả iOS và Android
- Thư viện phong phú: Expo cung cấp một thư viện các module và API phong phú, từ quản lý camera đến xử lý thông báo đẩy, giúp lập trình viên dễ dàng thêm các tính năng vào ứng dụng
- Giới hạn tính năng gốc: Do Expo tạo ra các ứng dụng dựa trên React Native, một số tính năng gốc của nền tảng có thể không được hỗ trợ hoặc cần thêm cấu hình phức tạp để tích hợp
- Kích thước ứng dụng lớn: Ứng dụng xây dựng bằng Expo thường có kích thước lớn hơn so với việc sử dụng React Native thuần
- Hiệu suất: Mặc dù Expo khá mạnh mẽ, nhưng trong một số trường hợp, hiệu suất của ứng dụng có thể không bằng ứng dụng viết bằng mã gốc c) Hoạt động
Expo hoạt động như một lớp bổ sung trên React Native, cung cấp các công cụ và dịch vụ để đơn giản hóa quy trình phát triển Dưới đây là cách Expo vận hành:
• Expo SDK: Cung cấp các thư viện và API để truy cập các tính năng phần cứng và phần mềm của thiết bị di động một cách dễ dàng
• Expo CLI: Một công cụ dòng lệnh giúp tạo, xây dựng và triển khai ứng dụng
• Expo Go: Một ứng dụng di động cho phép nhà phát triển xem trước ứng dụng của mình ngay lập tức mà không cần cấu hình phức tạp
• OTA Updates: Cho phép cập nhật ứng dụng trực tiếp đến người dùng mà không cần qua các cửa hàng ứng dụng, giúp triển khai các bản sửa lỗi và tính năng mới nhanh chóng
Nhờ vào những ưu điểm này, Expo trở thành một lựa chọn phổ biến cho việc phát triển ứng dụng di động hiện đại, đặc biệt phù hợp với những dự án yêu cầu tốc độ phát triển nhanh và tính linh hoạt cao
2.6.3 Tổng quan về Node.js
Hình 2.25: Logo Node.js (Nguồn: https://en.wikipedia.org/wiki/Node.js) a) Giới thiệu
Node.js là một môi trường runtime mã nguồn mở, đa nền tảng, xây dựng trên V8 JavaScript engine của Chrome Được phát triển bởi Ryan Dahl vào năm 2009, Node.js cho phép các nhà phát triển sử dụng JavaScript để viết các ứng dụng phía máy chủ, tạo ra các ứng dụng web tốc độ cao và có khả năng mở rộng Node.js đặc biệt phổ biến trong việc xây dựng các ứng dụng thời gian thực như chat, game trực tuyến và API RESTful [13] b) Ưu nhược điểm
- Hiệu suất cao: Node.js áp dụng mô hình không đồng bộ (asynchronous) và không chặn (non-blocking I/O), giúp xử lý nhiều yêu cầu cùng lúc mà không gặp tình trạng nghẽn cổ chai, cải thiện tốc độ và hiệu suất của ứng dụng
- JavaScript ở cả hai mặt: Sử dụng cùng một ngôn ngữ JavaScript cho cả phía máy khách và máy chủ giúp đồng bộ hóa mã nguồn và giảm độ phức tạp trong việc phát triển ứng dụng
- Cộng đồng lớn và hỗ trợ tốt: Với một cộng đồng phát triển rộng lớn và sôi nổi, Node.js có một lượng lớn các gói và mô-đun có sẵn thông qua npm (Node Package Manager), giúp nhà phát triển dễ dàng tìm thấy các giải pháp và thư viện cần thiết
THIẾT KẾ MÔ HÌNH
GIỚI THIỆU
Quá trình phát triển một bộ Kit IoT là sự phối hợp giữa các bước tính toán, lựa chọn và thiết kế, cùng với việc kết hợp xây dựng cả phần cứng và phần mềm Điều này không chỉ đảm bảo rằng hệ thống hoạt động một cách hiệu quả, ổn định mà còn đáp ứng đầy đủ các yêu cầu kỹ thuật và mang lại trải nghiệm tốt nhất cho người dùng Trong chương này, nhóm sẽ đi sâu hơn vào quá trình thiết kế, là bước quyết định để định hình cấu trúc và chức năng của bộ KIT.
YÊU CẦU THIẾT KẾ
Yêu cầu về phần cứng
- Khối xử lý trung tâm: cung cấp đủ chân I/O cho việc kết nối với các phần cứng khác, hỗ trợ xử lý đa luồng, dễ dàng sử dụng, có đầy đủ các phương phức giao tiếp phổ biến như UART, I2C, Analog Hỗ trợ kết nối Internet và các giao thức mạng phổ biến như HTTP, MQTT
- Cung cấp khả năng giao tiếp các thiết bị ngoại vi thông qua các phương thức, giao thức như RS485, RS232, I2C, 4-20mA, 0-10V ổn định và chính xác
- Nguồn cung cấp đủ,ổn định và an toàn khi sử dụng
- Cung cấp khả năng kết nối với nhiều loại cảm với các giải điện áp khác nhau
- Kích thước bộ KIT nhỏ gọn, chắc chắn
- Đầy đủ các chức năng như điều khiển, thu thập và hiển thị dữ liệu
Yêu cầu về phần mềm
- Ứng dụng điện thoại, màn hình HMI có giao diện thân thiện dễ sử dụng, đầy đủ các chức năng như cấu hình, quản lý thiết bị, giám sát và điều khiển
- Truyền nhận dữ liệu thông qua LoRa ổn định và chính xác
- Truyền nhận dữ liệu thông qua ESP-NOW ổn định và chính xác.
MÔ HÌNH HỆ THỐNG
Để hình dung rõ hơn về bộ KIT nhóm đã xây dựng khái quát mô hình tổng thể của bột KIT như Hình 3.1: Sơ đồ khối tổng quát bộ KIT
RS232 NÚT CẢM BIẾN I2C NÚT CẢM BIẾN
Hình 3.1: Sơ đồ khối tổng quát bộ KIT
Dựa theo mô hình tổng thể đã đề ra, bộ KIT sẽ có 4 khối chính gồm:
• Khối nút cảm biến có chức năng thu thập dữ liệu từ cảm biến, hiển thị giá trị nhận được và đồng thời thông qua các mạng không dây truyền dữ liệu đến trạm, nút master
• Khối trạm LoRa có chức năng cập nhật dữ liệu từ các cảm biến gửi về, hiển thị dữ liệu và lưu trữ dấu thời gian Cũng như đưa dữ liệu lên và lấy dữ liệu xuống từ Server
• Khối nút ESP-NOW master, KIT 1 có chức năng cập nhật dữ liệu từ các cảm biến gửi về, lưu trữ dấu thời gian,điều khiển các thiết bị điện và giao tiếp với Server Cuối cùng là tương tác với người dùng thông qua màn hình HMI
• Server chịu trách nhiệm quản lý, xử lý dữ liệu và tạo ra một môi trường tương tác chung giữa các board trạm, master và các nền tảng điều khiển khác
• Ứng dụng điện thoại cung cấp giao diện trực quan cùng với khả năng kiểm soát, quản lý và theo dõi từ xa.
THIẾT KẾ PHẦN CỨNG
3.4.1 Thiết kế cho trạm LoRa a) Sơ đồ khối
KHỐI XỬ LÝ TRUNG TÂM
KHỐI ĐIỀU KHIỂN HIỂN THỊ
Hình 3.2: Sơ đồ khối trạm LoRa
Chức năng cụ thể của từng khối:
• Khối giao tiếp LoRa có nhiệm vụ thu thập dữ liệu từ các nút LoRa trong mạng, đồng thời gửi tín hiệu đến các nút
• Khối điều khiển hiển thị có nhiệm vụ hiển thị dữ liệu nhận được từ các nút, điều khiển chuyển đổi các trang hiển thị khác nhau giúp việc quan sát trực quan hơn
• Khối thời gian thực có nhiệm vụ duy trì và cung cấp thời gian cho trạm ngay cả khi mất nguồn Giúp đảm bảo thời gian luôn được cập nhật kịp thời và chính xác
• Khối xử lý trung tâm đóng vai trò trung tâm, thực hiện xử lý, quản lý, điều khiển và tương tác với các khối chức năng khác Đồng thời, nó cũng tương tác và trao đổi dữ liệu với Server
• Khối nguồn có vai trò cung cấp năng lượng cho toàn mạch hoạt động ổn định b) Sơ đồ nguyên lý
Hình 3.3: Sơ đồ nguyên lý trạm LoRa
Dựa trên Hình 3.3: Sơ đồ nguyên lý trạm LoRa, các khối được thiết kế và lựa chọn linh kiện:
• Khối giao tiếp LoRa là module RA-02 AI-Thinker với hiệu suất cao và khả năng tiết kiệm năng lượng Đặc biệt, khả năng dễ dàng tích hợp với module ESP32 thông qua giao tiếp SPI Để nâng cao độ ổn định của khối nhóm đã bổ sung các tụ lọc C6 và C8 Điều này đảm bảo rằng dữ liệu được truyền nhận một cách mạnh mẽ và ổn định, cải thiện ảnh hưởng bởi nhiễu hoặc các yếu tố môi trường khác
• Khối điều khiển hiển thị sử dụng màn hình LCD OLED với giao tiếp I2C dễ dàng tích hợp với ESP32 Bên cạnh đó một biến trở được sử dụng để thực hiện điều chỉnh các mức khác nhau nhằm hiển thị các trang dữ liệu khác nhau
• Khối thời gian thực sử dụng module DS3231 với giao tiếp I2C, phù hợp với giao tiếp của ESP32 Bên cạnh đó, trong quá trình thiết kế nhóm tích hợp thêm Pin cho DS323 để duy trì thời gian ngay cả khi nguồn điện chính không hoạt động, đảm bảo tính ổn định và đáng tin cậy của hệ thống ngay cả khi có sự cố với nguồn điện Để nâng cao độ ổn định của khối nhóm đã bổ sung các tụ lọc C9 và C10 giúp quá trình truyền dữ liệu được ổn định hơn
• Khối xử lý trung tâm là module ESP32-WROOM-32E với các đặc điểm hiệu suất cao, xử lý đa luồng, đáp ứng đầy đủ các chuẩn truyền thông I2C, SPI mà mạch cần sử dụng Và hơn thế nữa là khả năng hỗ trợ kết nối WiFi giúp trạm có thể kết nối với Server
• Khối nguồn được thiết kế sau khi tính toán toán công suất của tất cả các khối có trong mạnh và được thể hiện ở Bảng 3-1
Bảng 3-1: Điện áp hoạt động và dòng điện của mạch trạm LoRa
STT Khối chức năng Điện áp cấp
Dòng điện tiêu thụ ước tính
4 Hiển thị và điều khiển 5V 100
Dựa vào Bảng 3-1 ta tính toán được công suất tiêu thụ ước tính của toàn mạch khoảng 2.2(W) và mạch chỉ sử dụng nguồn DC Do đó để đảm bảo an toàn khi sử dụng và hoạt động ổn định nhóm sử dụng IC LM2596 với ngõ vào là điện áp DC và công suất ngõ ra tối đa là 15(W) để cung cấp điện áp 5V cho toàn mạch Và sử dụng IC AMS1117 với công suất ngõ ra tối đa khoảng 800(mW) để cung cấp điện áp 3V3 cho mạch Bên cạnh đó nhóm có bổ sung thêm cầu chì F1 và các tụ lọc C1, C2, C5, C7 để bảo vệ và lọc nhiễu cho mạch c) PCB layout và mô hình 3D
Sơ đồ bố trí dây và linh kiện được thể hiện như Hình 3.4
Hình 3.4: PCB layout cho trạm LoRa
Sau khi đi dây và sắp xếp linh kiện ta được mô hình 3D của mạch như hình Hình 3.5
Hình 3.5: Mô hình 3D trạm LoRa
3.4.2 Thiết kế cho KIT thực hành lập trình tổng hợp/ESP-NOW Master: a) Sơ đồ khối
KHỐI NGUỒN KHỐI XỬ LÝ TRUNG TÂM
KHỐI NGÕ VÀO I2C/RS485/ RS232 KHỐI NÚT NHẤN
KHỐI ĐIỀU KHIỂN HIỂN THỊ
Hình 3.6: Sơ đồ khối KIT thực hành lập trình tổng hợp/ESP-NOW Master
Chức năng cụ thể của từng khối:
• Khối giao tiếp LoRa đóng vai trò như một nút trong mạng LoRa được sử dụng để giao tiếp với trạm khi cần truyền dữ liệu thông qua mạng LoRa
• Khối thời gian thực có nhiệm vụ duy trì và cung cấp thời gian cho trạm ngay cả khi mất nguồn Giúp đảm bảo thời gian luôn được cập nhật kịp thời và chính xác
• Khối điều khiển relay có vai trò điều khiển các thiết bị ngoại vi dựa trên các tín hiệu được đưa ra từ khối xử lý trung tâm
• Khối giao tiếp RS485 có vai trò chuyển đổi và truyền tải dữ liệu giữa khối xử lý trung tâm và thiết bị bên ngoài có chuẩn giao tiếp là RS485
• Khối giao tiếp RS232 có vai trò chuyển đổi và truyền tải dữ liệu giữa khối xử lý trung tâm và thiết bị bên ngoài có chuẩn giao tiếp là RS232
• Khối giao tiếp I2C có vai trò chuyển đổi và truyền tải dữ liệu giữa khối xử lý trung tâm và các thiết bị bên ngoài có chuẩn giao tiếp là I2C
• Khối điều khiển hiển thị có vai trò hiển thị dữ liệu của các khối, đồng thời đưa ra các tín hiệu điều khiển thông qua việc tương tác với người dùng
• Khối ngõ vào I2C/RS485/RS232/BUTTON có vai trò là cầu nối giữa thiết bị bên ngoài với các khối giao tiếp, khối xử lý trung tâm để thực hiện các nhiệm vụ tương tác, truyền nhận dữ liệu
THI CÔNG MÔ HÌNH
GIỚI THIỆU
Sau khi thực hiện tính toán và thiết kế cho hệ thống, bước tiếp theo là tiến hành thi công hệ thống dựa trên các thiết kế Thi công hệ thống IoT không chỉ bao gồm việc lắp đặt các thiết bị phần cứng mà còn cần tích hợp và kiểm thử phần mềm, đảm bảo hệ thống hoạt động ổn định và đáp ứng các yêu cầu đặt ra.
THI CÔNG PHẦN CỨNG
Bước đầu tiên trong quá trình thi công mô hình cho hệ thống IoT là hoàn thiện các mô hình phần cứng Đây là bước cơ bản và quan trọng nhất, bởi vì phần cứng là nền tảng để triển khai các giải pháp phần mềm sau này Việc hoàn thiện các mô hình phần cứng không chỉ đảm bảo tính khả thi của thiết kế mà còn tạo cơ sở vững chắc cho việc phát triển và tối ưu hóa phần mềm
4.2.1 Thi công KIT tổng hợp, trạm ESP-NOW
Kết quả KIT tổng hợp (trạm ESP-NOW) sau khi thi công bao gồm hộp chứa, bo mạch chính và các ngoại vi:
Hình 4.1: Bộ KIT thực hành tổng hợp sau khi thi công
Ngoại vi trên bộ KIT bao gồm: ổ cắm điện, các bóng đèn led (tải mô phỏng), nút nhấn giữ, đèn và còi cảnh báo có điện, màn hình HMI, cảm biến SHT31 và đồng hồ đo tải một pha DSU 666 Tất cả được cố định trên bộ khung mica tạo nên một bộ KIT hoàn chỉnh và chắc chắn
Hình 4.2: Bo KIT 1 trên bộ KIT tổng hợp
Trạm LoRa cũng được thi công và có hộp đựng làm bằng mica như KIT tổng hợp, trên này cũng được gắn các mạch nút với các chuẩn kết nối cảm biến khác nhau:
Hình 4.3: Bộ KIT LoRa và các nút cảm biến sau khi được thi công a) Thi công trạm LoRa
Trạm LoRa sau khi được đặt gia công và hàn linh kiện
Hình 4.4: Trạm LoRa b) Thi công nút cảm biến RS485
Nút cảm biến RS485 sau khi được đặt gia công và hàn linh kiện
Hình 4.5: Nút cảm biến RS485 c) Thi công nút cảm biến RS232
Nút cảm biến RS232 sau khi được đặt gia công và hàn linh kiện
Hình 4.6: Nút cảm biến RS232 d) Thi công nút cảm biến I2C
Nút cảm biến I2C sau khi được đặt gia công và hàn linh kiện
Hình 4.7: Nút cảm biến I2C e) Thi công nút cảm biến 0/4 - 20 mA
Nút cảm biến 0/4 - 20 mA sau khi được đặt gia công và hàn linh kiện
Hình 4.8: Nút cảm biến 4 – 20mA f) Thi công nút cảm biến 0 – 10V
Nút cảm biến 0-10V sau khi được đặt gia công và hàn linh kiện
KẾT QUẢ ĐẠT ĐƯỢC
Kết quả bộ KIT tổng hợp
Bộ KIT tổng hợp được thiết kế với cấu trúc chắc chắn, đảm bảo độ ổn định trong quá trình sử dụng
Hình 5.1: Bộ KIT khi được cấp điện
Hệ thống relay trong bộ KIT được điều khiển bởi màn hình HMI DWIN
Cảm biến SHT31 trong bộ KIT hoạt động liên tục, cung cấp dữ liệu về nhiệt độ và độ ẩm Dữ liệu này được hiển thị lên màn hình theo dạng số và đồ thị
Hình 5.3: Giá trị nhiệt độ độ ẩm SHT31 dưới dạng số và đồ thị Đồng hồ bám tải 1 pha DDSU666 theo dõi toàn bộ tải của bộ KIT một và cung cấp dữ liệu về mức tiêu thụ điện năng của toàn bộ bộ KIT Dữ liệu này bao gồm điện áp, dòng điện, tần số và công suất tiêu thụ được hiển thị lên màn hình
Hình 5.4: Giá trị điện áp, dòng điện, tần số và công suất tiêu thụ của DDSU666
Cần phải nhập đúng mã MAC của bo mạch chính để cho phép trang KIT 1 ứng dụng hoạt động a) b)
Hình 5.5: a) Quét kết nối tới bo chính b) Thông báo kết nối thành công
Khu vực hiển thị thông số mã MAC, thời gian trên điện thoại và thời gian trên bo để so sánh và dữ liệu nhiệt độ độ ẩm của cảm biến SHT31 được hiển thị lên ứng dụng theo dạng số và có tùy chọn mở đồ thị để theo dõi a) b)
Hình 5.6: a) Thông tin KIT1 và nhiệt độ độ ẩm b) Nhiệt độ độ ẩm và đồ thị
Dữ liệu đồng hồ bám tải 1 pha bao gồm điện áp, dòng điện, tần số và công suất tiêu thụ được hiển thị lên ứng dụng
Hình 5.7: Khu vực hiển thị dữ liệu của DDSU666 Đóng ngắt các Realy thông quan ứng dụng điện thoại, trạng thái Relay sẽ phản hồi về khi Relay không được đóng
Hình 5.8: Realy được đóng ngắt thông qua ứng dụng điện thoại
Kết quả truyền nhận dữ liệu qua LoRa
Bộ KIT LoRa vào gồm trạm chính và các nút cảm biến
Hình 5.9: Bộ KIT Trạm LoRa và các nút đọc cảm biến khi được cấp điện
Trạm chính khi hoạt động, các dữ liệu nhận về từ các nút được hiển thị lên màn hình và thay đổi dữ liệu xem bằng biến trở
Hình 5.10: Trạm chính khi hoạt động
Nút cảm biến I2C đọc giá trị nhiệt độ độ ẩm của cảm biến SHT31, hiển thị lên
Hình 5.11: Nút cảm biến I2C khi hoạt động
Nút cảm biến RS485 đọc giá trị nhiệt độ độ ẩm của cảm biến SHT20, hiển thị lên màn hình và gửi dữ liệu tới trạm chính
Hình 5.12: Nút cảm biến RS485 khi hoạt động
Nút cảm biến RS232 mô phỏng dữ liệu, hiển thị lên màn hình và gửi dữ liệu tới trạm chính
Hình 5.13: Nút cảm biến RS232 khi hoạt động
Nút cảm biến 0 – 10V đọc giá trị nhiệt độ của cảm biến PT100 nhờ bộ chuyển đổi, hiển thị lên màn hình và gửi dữ liệu tới trạm chính
Hình 5.14: Nút cảm biến 0-10V khi hoạt động
Nút cảm biến 4 – 20mV đọc giá trị nhiệt độ của cảm biến PT100 nhờ bộ chuyển đổi, hiển thị lên màn hình và gửi dữ liệu tới trạm chính
Hình 5.15: Nút cảm biến 4-20mA khi hoạt động
5.2.2 Kết quả ứng dụng điện thoại
Cần phải nhập đúng mã MAC của bo mạch trạm chính để cho phép trang LoRa ứng dụng hoạt động a) b)
Hình 5.16: a) Trang LoRa b) Danh sách toàn bộ các node đang kết nối
Khu vực hiển thị thông số mã MAC, thời gian trên điện thoại và thời gian trên bo để so sánh
Trạng thái kết nối, số thứ tự, mã MAC và nút “View” – dẫn đến trang xem dữ liệu được hiển thị
Trang xem dữ liệu của từng nút
Hình 5.17: Trang hiển thị dữ liệu của từng nút
5.2.3 Kết quả thực nghiệm a) Khoảng cách truyền dữ liệu
Nhóm đã tiến hành thử nghiệm kết nối truyền nhận dữ liệu LoRa với khoảng cách khoảng 620m từ nóc tòa nhà Viện Sư phạm Kỹ thuật TP.HCM đến khu vực gần trường Đại học Tài chính Marketing TP.HCM Khoảng các thực tế được thể hiện ở Hình 5.18
Hình 5.18: Kết quả thực nghiệm khoảng cách truyền dữ liệu của LoRa b) Tỷ lệ truyền thành công
Với khoảng cách trên, ta có kết quả tỷ lệ truyền nhận dữ liệu thành công giữa trạm và các nút cảm biến được thể hiện trong Bảng 5-1
Hình 5.19: Số lượng gói tin gửi và gửi thành công trên màn hình debug
Bảng 5-1: Tỷ lệ truyền gói tin LoRa thành công ở khoảng cách 627m
Nút Thời gian lấy mẫu (s)
Số lượng gói tin gửi đi
Số lượng gói tin gửi thành công