Các thiết bị tìm kiếm sử dụng công nghệ LoRa có thể truyền dữ liệu từ sâu trong rừng và bao trùm nhiều khu vực.. Từ những vấn đề thực tế trên, nhóm đã tiến hành và nghiên cứu đề tài "Thi
TỔNG QUAN
GIỚI THIỆU
Trong thời đại đang phát triển hiện nay, nhiều công nghệ điều khiển, tự động hóa tự động đóng vai trò rất quan trọng trong các lĩnh vực như khoa học công nghệ, nông nghiệp, quản lý công nghiệp Sự phát triển về công nghệ và quy trình giúp tăng năng suất và hiệu quả sản xuất đồng thời giảm thiểu rủi ro tai nạn lao động và tiết kiệm chi phí Chúng ta cần ứng dụng hiệu quả công nghệ điều khiển tự động, phát triển các giải pháp sáng tạo trong các lĩnh vực liên quan, đóng góp vào sự phát triển khoa học công nghệ và đất nước
Sự phát triển và phổ biến của Internet of Things là một trong những xu hướng phát triển nổi bật nhất trong thời đại kỹ thuật số hiện nay Chính sự phát triển của công nghệ và việc sử dụng các thiết bị di động thông minh, cảm biến đã tạo ra sự tiện lợi to lớn cho nhân loại thông qua các thiết bị được điều khiển hoàn toàn tự động Sự phát triển của IoT đã giúp cho việc liên lạc giữa chúng ta cũng như công tác cứu hộ, cứu nạn đạt được sự tiến bộ đáng kể
Trong liên lạc và phát hiện vị trí, các yếu tố cần được xem xét bao gồm tốc độ, địa hình và nhiễu để đảm bảo liên lạc thông suốt và nhanh nhất trong trường hợp khẩn cấp Thiết bị liên lạc bao gồm hệ thống định vị, thu thập dữ liệu về vị trí hiện tại của người dùng Dữ liệu thu thập từ các thiết bị này sẽ được phân tích và xử lý bằng phần mềm đặc biệt giúp hoạt động cứu hộ được tiến hành nhanh chóng Điều này cho thấy sự phát triển của Internet of Things đã trở thành hiện thực và giúp nâng cao hiệu quả tìm kiếm cứu nạn Xuất phát từ nhu cầu thực tế, nhóm quyết định thực hiện dự án
“THIẾT KẾ VÀ THI CÔNG THIẾT BỊ TÌM KIẾM VÀ LIÊN LẠC TRONG
TRƯỜNG HỢP KHẨN CẤP” Mô hình này được thiết kế với hệ thống liên lạc và tín hiệu và cung cấp vị trí thời gian thực của người dùng, với việc sử dụng LoRa thay thế cho Wifi sẽ giúp giảm lượng điện năng tiêu thụ, tăng tuổi thọ của pin cũng như thời gian sử dụng thiết bị Mô hình được trang bị module GPS có độ lệch thấp, giúp tăng độ chính xác so với LoRaWan Geolocation được sử dụng bởi các thiết bị có sẵn trên thị trường và được tích hợp thêm micro, còi báo để giúp việc cứu hộ có thể được
2 thực hiện dễ dàng hơn Phần mềm vị trí sử dụng API của Google Maps sẽ giúp việc xác định vị trí dễ dàng và chính xác hơn so với những bản đồ tự vẽ ở những sản phẩm trước đây Mô hình giúp tối ưu tìm kiếm, tiết kiệm thời gian và chi phí nhưng vẫn đạt hiệu quả cao Ở chương trình của Slave nhóm đã thực hiện code trên hệ event-driven dễ dàng phát hiện lỗi và sửa lỗi ở từng module khi xãy ra lỗi và các module hoạt động song song với nhau cho hiệu quả hoạt động tốt nhất, các file giao tiếp với nhau thông qua message và xử lý khi nhận được mesage.
TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Trong bối cảnh các hoạt động mạo hiểm núi rừng ngày càng phổ biến hiện nay, việc thiết kế các thiết bị tìm kiếm và liên lạc trong các tình huống khẩn cấp là điều cấp thiết Điều này đặt ra yêu cầu phải kiểm soát tốt để đảm bảo an toàn cho người tham gia sự kiện Việc ứng dụng công nghệ truyền dẫn, định vị và còi báo động không dây LoRa sẽ giúp nhân viên chịu trách nhiệm giám sát, cứu nạn ứng phó nhanh chóng khi cần thiết, từ đó giảm thiểu rủi ro cho những người tham gia hoạt động
Từ những vấn đề thực tế trên, nhóm đã tiến hành và nghiên cứu đề tài "Thiết kế và thi công thiết bị tìm kiếm và liên lạc trong trường hợp khẩn cấp” sử dụng module ESP32 giao tiếp truyền nhận không dây với công nghệ LoRa, một công nghệ có thể truyền dữ liệu đi xa lên đến hàng chục kilomet trong điều kiện thuận lợi.
MỤC TIÊU NGHIÊN CỨU
• Nghiên cứu những dạng thiết bị liên lạc hiện nay để tiến hành thiết kế và thi công thiết bị cho phù hợp với yêu cầu để có kết quả kiểm tra tốt nhất trước khi đưa vào ứng dụng
• Hệ thống thu thập được từ các giá trị từ những cảm biến Các thông số về vị trí, tần suất thu phát tín hiệu khẩn cấp và khoảng cách liên lạc tối đa
• Tìm hiểu các giao tiếp truyền nhận không dây của công nghệ LoRa với module ESP32
• Những dữ liệu từ các cảm biến thông qua tín hiệu truyền nhận từ LoRa được hiển thị lên màn hình LCD, xuất dữ liệu lên Web
• Sử dụng phương pháp nghiên cứu các ứng dụng IoT để thực hiện đề tài
NHIỆM VỤ NGHIÊN CỨU
• Tiến hành tìm hiểu và nghiên cứu về cấu trúc phần cứng, nguyên tắc hoạt động và tính năng của module ESP32, giao tiếp không dây sử dụng công nghệ LoRa, các cảm biến
• Tìm hiểu về lập trình Web, tìm hiểu về ngôn ngữ lập trình, lập trình giao diện trên phần mềm Visual Studio Code và phần mềm lập trình Arduino IDE, thiết kế và in mạch PCB trên Proteus
• Tìm hiểu và xây dựng cơ sở dữ liệu trên Firebase.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
• Module thu phát tín hiệu LoRa SX1278
• Mạch định vị GPS GY-NEO 6M V2
• Lập trình bằng ngôn ngữ C trên trình biên dịch Arduino IDE
• Thiết kế giao diện Web trên Visual Studio Code, HTML
• Đưa dữ liệu các cảm biến lên Firebase
• Thiết kế sơ đồ nguyên lý và vẽ mạch in trên Proteus 8.12 Professional
1.5.2 Phạm vi nghiên cứu Đề tài thực hiện và dừng lại ở mức độ, thiết kế và thi công thiết bị tìm kiếm và liên lạc trong trường hợp khẩn cấp bao gồm:
• Thi công hệ thống mô hình có kích thước dài, rộng, cao là 30 x 20 x 15 cm nguyên vật liệu bằng khung sắt, mạch đồng và nhựa mica
• Module ESP32 giao tiếp thông qua truyền không dây thu phát từ tín hiệu LoRa
• Web dùng để giám sát thông số cảm biến
• Toàn bộ hệ thống hoạt động được khi có nguồn điện cấp vào và không có nguồn dự phòng
• Nguồn điện cấp cho các động cơ hoạt động có giá trị: 12V 5A.
PHƯƠNG PHÁP NGHIÊN CỨU
Để thực hiện đề tài này, nhóm đã tiến hành nghiên cứu về nguyên tắc hoạt động của các module và giao tiếp với công nghệ LoRa, cảm biến, cũng như truyền nhận dữ liệu qua Internet và đồng bộ dữ liệu với Web Đồng thời, nhóm sử dụng ngôn ngữ lập trình C, CSS và HTML, cùng với các phần mềm để phát triển chương trình điều khiển, thiết kế giao diện và mô phỏng phần cứng.
BỐ CỤC
Chương 1: Tổng quan: Giới thiệu lý do chọn đề tài, tính cấp thiết, xác định được mục tiêu, nhiệm vụ nghiên cứu, đối tượng và phạm vi nghiên cứu, phương pháp nghiên cứu và bố cục đồ án
Chương 2: Cơ sở lý thuyết: Nghiên cứu lý thuyết về sự phát triển của rau muống, các chuẩn giao tiếp trong IoT, trình bày tổng quan về các cơ sở lý thuyết và các linh kiện được sử dụng trong mô hình
Chương 3: Tính toán và thiết kế: Trình bày tính toán và thiết kế, giới thiệu tổng quan về yêu cầu của đề tài để thiết kế và thực hiện các tính toán, bao gồm việc thiết kế sơ đồ khối hệ thống, sơ đồ nguyên lý toàn mạch và các tính toán thiết kế mạch
Chương 4: Thi công hệ thống: Thi công hệ thống, mô tả quá trình lắp ráp các thiết bị, đo kiểm tra mạch, lắp ráp mô hình, thiết kế lưu đồ giải thuật cho chương trình và viết chương trình cho hệ thống, cũng như hướng dẫn quy trình sử dụng hệ thống
Chương 5: Kết quả - Nhận xét - Đánh giá: Trình bày về những kết quả đạt được sau quá trình nghiên cứu và thi công thông qua hình ảnh và video đã được quay về quá trình vận hành của hệ thống, đánh giá mức độ hoàn thành của đề tài dựa trên các kết quả đạt được Qua đó nhận xét và đánh giá kết quả của hệ thống dựa trên những yêu cầu đặt ra
Chương 6: Kết luận và hướng phát triển: Thông qua các kết quả đã có được từ chương 5, đưa ra các kết luận về những ưu điểm và nhược điểm của toàn hệ thống Qua đó đưa ra những định hướng cải thiện và phát triển hệ thống.
CƠ SỞ LÝ THUYẾT
TỔNG QUAN CÁC PHẦN CỨNG SỬ DỤNG
2.1.1 Module Lora RF 433Mhz SPI SX1278 Ra-02
LoRa là viết tắt của Long Range Đó là công nghệ không dây dành cho tần số vô tuyến được phát triển bởi Semtech Công nghệ LoRa này có khả năng truyền thông tin đến cả hai đầu của khoảng cách xa mà không tiêu tốn nhiều năng lượng Thuộc tính này có thể được sử dụng bởi các cảm biến từ xa chỉ cần một cục pin nhỏ để truyền thông tin [1]
LoRa có thể đạt khoảng cách 15-20 km và có thể hoạt động bằng pin trong hơn một thập kỷ
Như hình 2.1 là Mô-đun LoRa LoRa1278-C1 chứa chip SX1278 của bộ xử lý Semtech RF, được sử dụng cùng với phổ truyền và nhảy tần LoRa Spread Spectrum Khoảng cách giữa quá trình giao tiếp và thu tín hiệu của nó lớn hơn khoảng cách hiện tại giữa FSK và GFSK, đó là lý do tại sao kỹ thuật này được gọi là Demikian Nhiều tín hiệu không tương tác với nhau ở tần số cao Mô-đun này có khả năng chống nhiễu mạnh mẽ Công tắc của ăng-ten được kết hợp với bộ vi xử lý và được điều khiển bởi bộ vi xử lý này Với thiết kế nhỏ gọn và công suất truyền 100mW, nó có thể được sử dụng trong nhiều hoạt động đọc kỹ thuật số không dây, điều khiển từ xa các thiết bị công nghiệp và các ứng dụng khác [1]
• Kích thước gói tin: 256 Byte
• Kỹ thuật Modulation: FSK, GFSK, MSK, GMSK, LORA
• Giao tiếp: Half-Duplex SPI
• Tần số hoạt động: 433 MHz
Như hình 2.2 là module ESP32-WROOM-32 gồm thành phần MCU Wi-Fi + Bluetooth + Bluetooth LE mạnh mẽ và linh hoạt, dành cho nhiều mục đích khác nhau, bao gồm cảm biến mạng tiết kiệm năng lượng hoặc các dự án đòi hỏi khắt khe như mã hóa giọng nói, phát nhạc trực tuyến hoặc giải mã MP3
Cốt lõi của mô-đun là bộ vi xử lý ESP32-D0WDQ6* Bộ xử lý tích hợp được xây dựng cho tính linh hoạt và khả năng mở rộng Hai lõi CPU riêng biệt có thể được điều khiển và tần số của CPU được thay đổi từ 80 MHz thành 240 MHz Con chip này còn có bộ xử lý tiết kiệm năng lượng có thể thay thế CPU để giảm điện năng trong khi thực hiện các tác vụ không đòi hỏi nhiều sức mạnh tính toán, chẳng hạn như giám sát các thiết bị bên ngoài ESP32 chứa nhiều thành phần ngoại vi, bao gồm cả cảm ứng cảm biến điện dung, thẻ dựa trên SD, Ethernet, giao tiếp SPI nhanh, UART, I2S và I2C [2]
• Vi xử lý 32-bit LX6 Single hoặc Dual-Core với tần số đồng hồ lên đến
• 520 KB SRAM, 448 KB ROM và 16 KB RTC SRAM
• Hỗ trợ kết nối Wi-Fi 802.11 b/g/n với tốc độ lên đến 150 Mbps
• Hỗ trợ cả Bluetooth Classic v4.2 và BLE
• 34 GPIO có thể lập trình
• 18 kênh ADC 12-bit SAR và 2 kênh DAC 8-bit
• Giao tiếp Serial bao gồm 4 x SPI, 2 x I2C, 2 x I2S, 3 x UART
• Ethernet MAC cho việc giao tiếp LAN vật lý (yêu cầu PHY ngoại vi)
• 1 bộ điều khiển Host cho SD/SDIO/MMC và 1 bộ điều khiển Slave cho SDIO/SPI
• Motor PWM và lên đến 16 kênh LED PWM
• Secure Boot và Flash Encryption
• Tăng tốc phần cứng mật mã cho AES, Hash (SHA-2), RSA, ECC và RNG
Một số môi trường lập trình thông dụng bao gồm:
• Espressif IDF (IoT Development Framework)
2.1.3 Máy tính Raspberry Pi 3 model B Ở hình 2.3 là module Raspberry Pi, một máy tính mã nguồn mở miễn phí, nhỏ hơn một chiếc PC mini Pi là một phương tiện thú vị và đơn giản để cải thiện khả năng lập trình và máy tính ở mọi lứa tuổi Bằng cách kết nối Pi với TV, màn hình và bàn phím cũng như bằng cách lập trình các chức năng phù hợp, Pi có thể thực hiện
9 nhiều hành động giống như máy tính để bàn, bao gồm duyệt internet và chơi trò chơi điện tử Ngoài ra, Pi còn lý tưởng cho những nỗ lực sáng tạo mà bạn muốn thử - các mô hình mới phù hợp với các dự án Internet of Things vì sức mạnh tính toán của chúng Với việc phát hành Pi 3, LAN không dây và Bluetooth Low Energy cũng được tích hợp [3]
Các chân Raspberry Pi 3 model B bao gồm:
• 8 chân là chân GND (đất)
• chân cung cấp điện áp 5V
• chân cung cấp điện áp 3.3V
• 2 chân còn lại là ID_SD và ID_SC được sử dụng trong giao tiếp I2C
• Hình 2.4 là danh sách các chân có trong Raspberry Pi 3 model B
Hình 2 4: Raspberry Pi 3 model B GPIO [4]
Các chân GPIO được sử dụng để kết nối với các thiết bị điện tử và có thể được sử dụng như đầu vào hoặc đầu ra GPIO 2 và 3 có thể được sử dụng cho giao tiếp I2C vì chúng là các chân SDA và SCL tương ứng [4]
Các chân 5V có thể được sử dụng để cung cấp nguồn 5V cho bất kỳ thiết bị điện tử nào Tương tự, đối với chân 3.3V
Các thông số kỹ thuật của Raspberry Pi 3:
• CPU Broadcom BCM2837 64bit Quad-Core 1.2GHz
• BCM43438 wireless LAN và Bluetooth Low Energy (BLE) tích hợp trên bo mạch
• Cổng âm thanh stereo 4 cực và cổng video composite
• Cổng camera CSI để kết nối camera Raspberry Pi
• Cổng hiển thị DSI để kết nối màn hình cảm ứng Raspberry Pi
• Cổng Micro SD để tải hệ điều hành và lưu trữ dữ liệu
• Nguồn Micro USB có thể điều chỉnh lên đến 2.5A
Mô-đun GY-NEO6MV2 là một họ các bộ thu GPS độc lập hiệu suất cao sử dụng động cơ định vị u-blox 6 Mô-đun xác định vị trí của nó trên Trái đất và cung cấp dữ liệu đầu ra về vĩ độ và kinh độ của nó GY-NEO6MV2 đi kèm với một pin nhỏ để khởi động nhanh chóng, cùng với một EEPROM tích hợp Để tăng cường thu sóng, có một ăng-ten gốm bên ngoài được kết nối với bo mạch thông qua một kết nối U.FL Ở hình 2.5 là mô-đun GPS GY-NEO6MV2 có thể theo dõi lên đến 22 vệ tinh thông qua 50 kênh và đạt độ nhạy cao nhất trong ngành công nghiệp, đạt -161 dB trong khi chỉ tiêu thụ 45 mA dòng điện Kiến trúc nhỏ gọn, thiết kế mô-đun, tùy chọn nguồn điện và lựa chọn bộ nhớ làm cho các mô-đun NEO6MV2 trở thành lựa chọn lý tưởng cho các thiết bị di động hoạt động bằng pin với các ràng buộc về chi phí và không gian nghiêm ngặt [5]
Hình 2 5: GPS GY-NEO6MV2 [5]
Các tính năng chính của GY-NEO6MV2:
• Dựa trên module GPS u-Blox NEO-6M với pin dự phòng tích hợp và EEPROM tích hợp trên bo mạch
• Được trang bị ăng-ten gốm U.FL bên ngoài để thu sóng tốt hơn
• Tương thích với các bo mạch điều khiển bay khác nhau được thiết kế để hoạt động với module GPS, như APM2.0 và APM2.5 chỉ là một vài ví dụ
• Mô-đun này có bộ điều tiết điện áp tích hợp và đôi khi được gọi là GY- GPS6MV2
• Thu được tín hiệu ở mức -162 dBm và -148 dBm khi khởi động lạnh
• EEPROM để lưu cài đặt cấu hình
• Tăng tốc độ thu sóng với AssistNow Autonomous
• Quản lý điện năng có thể điều chỉnh được
• Động cơ GPS/SBAS hỗ trợ (WAAS, EGNOS, MSAS)
• Bộ thu GPS độc lập
• Tương thích với Giải pháp GPS của u-Blox cho Android
• A-GPS: Dịch vụ AssistNow Online và AssistNow Offline tuân thủ OMA SUPL
• Dưới 1 giây thời gian đến vị trí đầu tiên cho khởi động nóng và hỗ trợ
• Thời gian đến vị trí đầu tiên: 32 giây cho khởi động lạnh, 23 giây cho khởi động ấm, dưới 1 giây cho khởi động nóng
• Giao tiếp UART tại các chân ra (có thể sử dụng SPI, I2C và USB bằng cách hàn chân vào lõi chip)
Các chân kết nối được liệt kệ ở bảng 2.1:
Vcc Điện áp cấp cho chip rx Chân nhận UART tx Chân truyền UART
Bảng 2 1: Các chân kết nối
2.1.2 Màn hình OLED giao tiếp I2C trắng 0.96" 12864
Hình 2.6 là module hiển thị ma trận chấm đen trắng 128x64 điểm với giao diện I2C này là một bảng hiển thị OLED I2C 1.3" tiện dụng Đây là một lựa chọn lý tưởng khi bạn cần một màn hình siêu nhỏ So với màn hình LCD, màn hình OLED có nhiều ưu điểm hơn, bao gồm độ sáng cao, tự phát sáng, tỷ lệ tương phản cao, thiết kế mỏng, góc nhìn rộng, khả năng hoạt động ở nhiều nhiệt độ khác nhau và tiêu thụ điện năng thấp Bạn có thể sử dụng module này với bất kỳ vi điều khiển 3.3V-5V nào, chẳng hạn như Arduino [6] Bảng 2.2 liệt kê các thông số kỹ thuật của màn hình LCD OLED
STT Thông số Giá trị
1 Điện áp đầu vào 2.2~5V DC
3 Góc hiển thị Lớn hơn 160 độ
4 Số điểm hiển thị 128x64 điểm
5 Độ rộng màn hình 0.96 inch
7 Giao tiếp với máy tính I2C
Bảng 2 2: Thông số kỹ thuật LCD OLED 12864 [6]
CÁC CHUẨN GIAO TIẾP TRONG DỰ ÁN
SPS SIS (Chuẩn Giao diện Đoạn Vệ tinh) phải tuân thủ các yêu cầu kỹ thuật liên quan đến giao diện giữa Đoạn Vệ tinh và các bộ thu SPS theo quy định của phiên bản hiện tại của IS-GPS-200 và phiên bản hiện tại của IS-GPS-705 Trong trường hợp xung đột giữa các đặc tính giao diện SPS SIS được mô tả trong tài liệu này và các IS, ưu tiên sẽ được đưa ra để tuân theo các IS Ở hình 2.7 là quá trình tạo và truyền thông tin vị trí của hệ thống SIS GPS cho một vệ tinh được minh họa trong Hình 2.6 Tiêu chuẩn tần số nguyên tử tạo ra một cơ sở thời gian ổn định cho vệ tinh Tín hiệu xung clock 10,23 MHz được tổng hợp và các tín hiệu đồng bộ code/carrier tín hiệu được phân phối bởi bộ tạo tần số tới các hệ thống phụ của vệ tinh Máy tính nhiệm vụ nhận dữ liệu định vị (NAV) đã tải từ Control Segment (CS) thông qua hệ thống Telemetry, Tracking, and Command (TT&C) Hệ thống Đồng bộ Điều hướng tạo ra các mã mã hóa tần số ngẫu nhiên (PRN) và thêm dữ liệu NAV vào các mã PRN Hệ thống Băng tần L module hóa các chuỗi nhị phân kết quả lên các tần số L1 (1575,42 MHz), L2 (1227,6 MHz) và L5 (1176,45 MHz) sau đó được phát sóng qua anten vòng xoắn [7]
15 Đối với một tàu vũ trụ (SV) nhất định, tất cả các thành phần tín hiệu được truyền (bước sóng, mã và dữ liệu) được tạo ra từ cùng một nguồn tần số trên vệ tinh
Tín hiệu L1: Vệ tinh truyền tín hiệu ở tần số 1575,42 MHz theo quy định của IS-GPS-200 Tín hiệu L1 được truyền với công suất đủ để đảm bảo mức công suất tín hiệu nhận được tối thiểu là -158,5 dBW cho mã C/A tại L1 trong các điều kiện được xác định trong IS-GPS-200
Tín hiệu L2: Vệ tinh truyền tín hiệu ở tần số 1227,60 MHz theo quy định của IS-GPS-200 Khi có tín hiệu L2C, tín hiệu L2 được truyền với công suất đủ để đảm bảo mức công suất tín hiệu nhận được tối thiểu ít nhất là -160,0 dBW đối với mã tổng hợp L2C của mã CM cộng với CL (tức là, đa nhiệm từng chip sự kết hợp) code) theo các điều kiện được xác định trong ISGPS-200
Tín hiệu L5: Một số vệ tinh phát tín tại 1176.45 MHz như được quy định trong IS-GPS-705 Khi tín hiệu L5 có mặt, các tín hiệuL5 được phát với đủ công suất để đảm bảo mức công suất tín hiệu nhận tối thiểu ít nhất là -157.9 dBW cho mã I5 và - 157.9 dBW cho mã Q5 dưới điều kiện được xác định trong IS-GPS-705 [7]
2.2.2 Chuẩn IEEE 802.11 Wi-Fi – Wireless Fidelity
IEEE 802.11, còn được biết đến là Wi-Fi, là một tập hợp các quy định và thông số kỹ thuật cho các mạng LAN không dây Wi-Fi sử dụng sóng radio tần số cao để kết nối các thiết bị mạng thay vì sử dụng dây cáp Với Wi-Fi, các thiết bị trong mạng có thể di chuyển mà không bị hạn chế về vị trí Tiêu chuẩn này được thiết kế để hỗ trợ các thiết bị di động tham gia tích cực trong việc quản lý mạng, và có thể dễ dàng tích hợp với các mạng di động như 2G, 3G và 4G [8]
IEEE 802.11 bao gồm nhiều tiêu chuẩn và bổ sung khác nhau như 802.11a, 802.11b, 802.11e, 802.11g, 802.11n, vv Các đặc điểm và ưu điểm của chuẩn IEEE 802.11 Wi-Fi trong IoT bao gồm:
• Phạm vi hoạt động: Wi-Fi có phạm vi hoạt động lớn, cho phép kết nối từ xa giữa các thiết bị IoT và trạm cơ sở Phạm vi hoạt động của Wi-Fi phụ thuộc vào môi trường xung quanh và công suất phát của thiết bị, nhưng trong điều
16 kiện lý tưởng, nó có thể hoạt động trong phạm vi từ vài chục mét đến vài trăm mét
• Độ tin cậy cao: Wi-Fi đã được phát triển và kiểm chứng trong nhiều năm, điều này đảm bảo tính ổn định và độ tin cậy cao Các thiết bị Wi-Fi phổ biến và dễ dàng tương thích với nhau, cho phép kết nối và giao tiếp mượt mà giữa các thiết bị khác nhau trong mạng IoT
• Tiêu thụ năng lượng: mặc dù Wi-Fi cung cấp tốc độ truyền dữ liệu cao, nhưng nó tiêu tốn năng lượng khá lớn Điều này có thể là một hạn chế trong các ứng dụng IoT yêu cầu tuổi thọ pin lâu dài hoặc sử dụng nguồn năng lượng hạn chế
• Bảo mật: Wi-Fi cung cấp các phương thức bảo mật mạnh như WPA2 để đảm bảo an toàn cho dữ liệu truyền qua mạng Điều này quan trọng trong các ứng dụng IoT, nơi bảo mật thông tin là yếu tố quan trọng
Mạng IEEE 802.15 là mạng vô tuyến cá nhân không dây (Wireless Personal Area Network - WPAN), được thiết kế để kết nối các thiết bị vào không gian làm việc của cá nhân Mạng này có phạm vi phủ sóng nhỏ trong khoảng vài chục mét, phù hợp cho mục đích nối kết các thiết bị ngoại vi [9] Các công nghệ phổ biến trong nhóm này bao gồm Bluetooth, Wibree, Zigbee và nhiều công nghệ khác
Các ưu điểm của chuẩn IEEE 802.15 trong IoT bao gồm:
• Tiết kiệm năng lượng: chuẩn này được thiết kế để tiết kiệm năng lượng, cho phép các thiết bị hoạt động trong thời gian dài trên pin hoặc nguồn năng lượng hạn chế
•Phạm vi hoạt động: chuẩn IEEE 802.15 hỗ trợ phạm vi hoạt động trong khoảng vài mét đến hàng chục mét, tùy thuộc vào tần số sử dụng và môi trường
• Tốc độ truyền dữ liệu: chuẩn IEEE 802.15.4 hỗ trợ tốc độ truyền dữ liệu từ vài Kbps đến hàng trăm Kbps, tuỳ thuộc vào cấu hình và thiết lập của mạng
• Độ tin cậy cao: chuẩn này được thiết kế để đảm bảo tính ổn định và độ tin cậy cao trong việc kết nối và truyền dữ liệu giữa các thiết bị IoT
CÁC CHUẨN TRUYỀN DỮ LIỆU
2.3.1 Chuẩn giao tiếp SPI trong truyền nhận không dây LoRa
Chuẩn giao tiếp SPI được sử dụng trong truyền nhận LoRa cung cấp một cách hiệu quả để truyền dữ liệu giữa vi điều khiển và module LoRa [14] Các đặc điểm chi tiết của giao tiếp SPI trong truyền nhận LoRa
• Giao tiếp Full Duplex: Giao tiếp SPI trong truyền nhận LoRa cho phép truyền dữ liệu đồng thời hai chiều (Full Duplex) Vi điều khiển có thể gửi dữ liệu đi (truyền) thông qua chân MOSI và đồng thời nhận dữ liệu từ module LoRa thông qua chân MISO Điều này cho phép vi điều khiển và module LoRa
22 truyền và nhận dữ liệu một cách đồng thời, tăng tốc độ truyền dữ liệu và hiệu suất
• Tốc độ truyền dữ liệu cao: Giao tiếp SPI hỗ trợ truyền dữ liệu với tốc độ cao Tốc độ truyền dữ liệu thường được thiết lập và điều chỉnh bởi vi điều khiển, và tùy thuộc vào thiết bị và môi trường ứng dụng Việc truyền dữ liệu nhanh giúp đảm bảo việc truyền thông LoRa được thực hiện một cách hiệu quả và đáng tin cậy
• Đồng bộ hóa: Giao tiếp SPI trong truyền nhận LoRa sử dụng tín hiệu đồng hồ (SCK) để đồng bộ hóa quá trình truyền dữ liệu giữa vi điều khiển và module LoRa Tín hiệu SCK cung cấp xung đồng hồ đồng bộ cho việc truyền và nhận dữ liệu, đảm bảo rằng cả hai thiết bị đang hoạt động cùng một tốc độ và thời gian
• Đa thiết bị: Giao tiếp SPI cho phép kết nối nhiều thiết bị Slaves với một thiết bị Master duy nhất Mỗi thiết bị Slave có một chân NSS/CS riêng để được chọn hoặc bỏ chọn Vi điều khiển sẽ kích hoạt chân NSS/CS tương ứng để chọn module LoRa cần truyền hoặc nhận dữ liệu
• Độ tin cậy cao: Giao tiếp SPI trong truyền nhận LoRa cung cấp độ tin cậy cao, đảm bảo rằng dữ liệu được truyền và nhận một cách chính xác và không bị mất mát Khi vi điều khiển và module LoRa tuân thủ cùng một chuẩn SPI, đảm bảo sự tương thích và khả năng truyền thông đáng tin cậy
Hình 2 9: Chuẩn giao tiếp SPI [14]
Hình 2.9 mô tả chuẩn giao tiếp SPI Thông qua giao tiếp SPI, vi điều khiển và module LoRa có thể truyền và nhận dữ liệu một cách nhanh chóng, đồng bộ và tin
23 cậy Điều này giúp xây dựng các ứng dụng LoRa đáng tin cậy và hiệu quả, như hệ thống cảm biến từ xa, mạng cảm biến không dây, theo dõi và điều khiển từ xa, và nhiều ứng dụng IoT khác
I2C là một chuẩn giao tiếp sử dụng hai dây, cho phép vi điều khiển (Master) giao tiếp với các vi điều khiển khác hoặc các module ngoại vi (Slave) Giao tiếp I2C cho phép kết nối một Master với một Slave, một Master với nhiều Slave, hoặc nhiều Master với nhiều Slave
I2C sử dụng hai đường truyền tín hiệu:
• SDA (Serial Data): Đường truyền dữ liệu hai chiều giữa master và slave, được sử dụng để truyền và nhận dữ liệu
• SCL (Serial Clock): Đường mang tín hiệu xung nhịp, được sử dụng để đồng bộ hoạt động truyền nhận dữ liệu giữa master và slave
Chuẩn giao tiếp I2C là chuẩn giao tiếp truyền đồng bộ nối tiếp và chuẩn này cần 2 điện trở kéo lên hỗ trợ truyền nhận dữ liệu Giá trị điện trở tùy thuộc vào mỗi module
Hình 2 10: Giao tiếp giữa Master và Slave [15]
Hình 2.10 cho thấy giao tiếp giữa một master với nhiều slave thì các slave không được tự giao tiếp lẫn nhau Chỉ khi master gửi tín hiệu điều khiển đến đúng địa chỉ slave tương ứng thì slave đó mới bắt đầu giao tiếp với master ở chức năng truyền hoặc nhận dữ liệu Đối với giao thức I2C master chọn slave tương ứng thông qua địa chỉ được gán trên mỗi slave.[15]
2.3.3 Chuẩn giao tiếp UART Ở hình 2.11 cho thấy giao thức truyền thông UART là một chuẩn giao tiếp dữ liệu giữa hai thiết bị, chẳng hạn như giữa vi điều khiển và vi điều khiển, vi điều khiển và module, hoặc giữa các module hỗ trợ giao tiếp UART
Chuẩn giao tiếp UART sử dụng ba chân truyền nhận dữ liệu
Khi giao tiếp giữa hai UART với nhau thì chân truyền (TX) UART thiết bị 1 nối với chân nhận (RX)
UART thiết bị 2, chân truyền (TX) UART thiết bị 2 nối với chân nhận (RX) UART thiết bị 1 và chân
GND của 2 UART phải được nối chung với nhau để so sánh mức điện áp
UART là một chuẩn giao tiếp bất đồng bộ, khác với chuẩn giao tiếp I2C, vì nó không sử dụng tín hiệu xung nhịp (clock) Để truyền và nhận dữ liệu, hai thiết bị cần đồng nhất về tốc độ truyền/nhận, được gọi là tốc độ baud.[16]
GIỚI THIỆU PHẦN MỀM LẬP TRÌNH CHO HỆ THỐNG
2.4.1 Giới thiệu về Visual Studio Code (VS Code)
VS Code, phát triển bởi Microsoft, là một môi trường phát triển tích hợp (IDE) đa nền tảng Nó có thể được cài đặt trên nhiều hệ điều hành như Windows, macOS và Linux VS Code được thiết kế như một sự kết hợp tối ưu giữa trình chỉnh sửa mã (Code Editor) và môi trường phát triển tích hợp [19] Hình 2.15 là giao diện chính của phần mềm VS Code
Hình 2 12: Giao diện chính VS Code
25 Đối với đề tài này nhóm chọn Visual Studio Code để lập trình cho ESP32, và trang Web VS Code hỗ trợ nhiều ngôn ngữ lập trình khác nhau như C/C++, C#, Html, Css, Java, Trên môi trường VS Code còn hỗ trợ nền tảng PlatformmIO IDE Nền tảng này giúp việc lập trình cho ESP32 được thuận tiện hơn, dễ nhìn hơn Tuy nhiên, tính năng nổi bật nhất của VS Code là hỗ trợ lập trình nhiều ứng dụng Web, giúp người sử dụng lập trình và thiết kế Web một cách chuyên nghiệp Hình 2.17 là giao diện vùng lập trình của VS Code
Hình 2 13:Giao diện vùng lập trình của VS Code
2.4.2 Platform I/O IDE for VS Code
Hình 2.17 cho thấy Arduino IDE hoạt động tốt cho các ứng dụng nhỏ Tuy nhiên, đối với các dự án nâng cao với hơn 200 dòng code, nhiều file và các tính năng nâng cao khác như tự động hoàn thành và kiểm tra lỗi, VS Code với phần mở rộng PlatformIO IDE là giải pháp thay thế tốt nhất [20]
Dưới đây là một số lợi thế của việc sử dụng VS Code với PlatformIO IDE so với Arduino IDE truyền thống:
• Tự động phát hiện cổng COM của board mạch
• IntelliSense: Tự động hoàn thành code khi chúng ta đang gõ VS Code sẽ cố gắng đoán những gì bạn muốn viết, hiển thị các khả năng khác nhau và cung cấp thông tin chi tiết về các tham số của hàm đang được gọi
• Tự động phát hiện và gạch chân các lỗi có trong mã trước khi biên dịch
• Mở nhiều tab và file cùng một lúc
• Có thể ẩn đi từng phần của code
Hình 2 14:Giao diện vùng lập trình Platform I/O IDE for VS Code
THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
YÊU CẦU HỆ THỐNG VÀ SƠ ĐỒ KHỐI HỆ THỐNG
-Từ những vấn đề và giải pháp đặt ra trong đề tài: “Thiết kế hỗ trợ tìm kiếm trong rừng”, nhóm đã thiết kế và thi công mô hình thiết bị thực hiện các chức năng sau:
+ Hệ thống nhận và lưu trữ thông tin tín hiệu được phát đi bởi những thiết bị khác
+ Hệ thống có thể gửi tin nhắn qua lại với các thiết bị khác, có thể truy cập vị trí theo thời gian thực để gửi tín hiệu cầu cứu
+ Hiển thị thông tin nhận được trên màn hình Oled
+ Độ trễ thấp, hạn chế nhiễu để thông tin truyền đi chính xác hơn
+ Kết nối giữa thiết bị Master và Slave ổn định và khoảng cách xa để thuận tiện cho người dùng
3.1.2 Sơ đồ khối hệ thống và chức năng từng khối
Hình 3 1: Sơ đồ khối hệ thống
Mô tả chức năng từng khối:
➢ Khối xử lý trung tâm 1 (Master):
+ Khối hiển thị: Có chứng năng hiển thị vị trí của các slave khi các slave gửi về và các tin nhắn của các slave gửi cho master
+ Khối Lora: Có chứng năng nhận dữ liệu tin nhắn và vị trí GPS từ các slave thông qua truyền nhận tín hiệu không dây lora
+ Giao diên web: Có chức năng hiển thị bản đồ và vị trí chính xác của các Slave theo thời gian thực, và hiển thị các đoạn hội thoại tin nhắn với các slave
➢ Khối xử lý trung tâm 2 và 3 (Slave):
+ Khối hiển thị: Có chứng năng hiển thị các dòng tin nhắn giữa các slave, ô chữ cái để chọn và dòng tin nhắn đang soạn chuẩn bị gửi
+ Khối nút nhấn (Button): nút left, right để ấn qua trái qua phải để chọn ký tự gửi, nút nhấn select để chọn ký tự gửi, nút nhấn send để gửi ký tự đi và nút SOS để gửi định vị về master
+ Khối Lora: Có chứng năng truyền nhận dữ liệu giữa các Slave và gửi tọa độ từ GPS về master
+ Khối GPS: Có chứng năng ghi lại vị trí người dùng mỗi 10 phút và gửi về master thông qua lora khi cần thiết
3.1.3 Hoạt động của hệ thống
Khi được cấp nguồn, các khối hệ thống sẽ bắt đầu hoạt động theo các quy trình và quy tắc được thiết lập trước, trong đó bao gồm việc khởi động các thành phần cần thiết, thiết lập kết nối giữa các mô-đul và phần tử, và thực hiện các chức năng và nhiệm vụ được giao theo cách tự động hoặc dựa trên các thao tác và yêu cầu từ người sử dụng
Mỗi khối Slave đại diện cho một người dùng, các Slave có thể nhắn tin với nhau thông qua kết nối không dây lora, khi cần thiết có thể nhắn tin và gửi định vị GPS đến Master
Hệ thông được soạn tin nhắn bằng các nút left, right để di chuyển đến ký tự muốn gửi, có thể ấn giữ để di chuyển nhanh hơn, nút select để chọn ký tự đang di chuyển đến Sau khi soạn được chuỗi tin nhắn thì người dùng có thể chọn nút send để gửi đoạn tin nhắn đó đi đến các Slave khác
Hệ thống bao gồm nút SOS dùng trong trường hợp khẩn cấp, khi người dùng ấn nút SOS thì chế độ cầu cứu sẽ được kích hoạt Khi kích hoạt chế độ SOS các tin nhắn nhận và gửi sẽ được kết nối đến Master thông qua kết nối không dây Lora đồng thời hệ thống cũng gửi tọa độ vị trí hiện tại được đọc từ GPS đến Master
Master sẽ được đặt ở nơi có mang wifi, sóng điện thoại, hay những nơi thuận tiện cho việc cứu hộ Hệ thống Master luôn được bật module lora để nhận các tín hiệu SOS gửi từ các Slave, hiển thị vị trí của các Slave và gửi tin nhắn cho các Slave
THIẾT KẾ PHẦN CỨNG HỆ THỐNG
3.2.1 Thiết kế phần cứng khối xử lý trung tâm 1 (Master)
3.2.1.1 Khối thu tín hiệu LoRa
Trên thị trường, có nhiều loại module thu phát tín hiệu với chức năng và thiết kế tương tự, ví dụ như LoRa SX1278, Reader RFID RC522, Zigbee CC2530, RF NRF24L01 và nhiều loại khác Trong số này, module thu phát tín hiệu LoRa SX1278 nổi bật Module này có công suất phát từ 20dBm – tương đương 100mW, hoạt động trong dải tần số từ 420 – 450 MHz và có khả năng lập trình với tốc độ lên đến 300 Kbps LoRa SX1278 có thể truyền và nhận tín hiệu ở khoảng cách rất xa trong điều kiện thời tiết tốt Ngoài ra, với kích thước nhỏ gọn, module này vẫn cung cấp đầy đủ các chân kết nối của SX1278.[21] Vì vậy, module LoRa SX1278 Ra-02 là lựa chọn phù hợp cho hệ thống mà nhóm của chúng tôi đã lựa chọn Để thực hiện dự án các chân của Lora được kết nối như hình 3.2 sau:
Hình 3 2: Sơ đồ kết nối màn hình với Raspberry Pi 3B+
Raspberry Pi Lora – SX1278 Module
Bảng 3 1: Kết nối chân của khối Lora với Raspberry Pi 3B+
3.2.1.2 Khối hiển thị Để hiển thị nhóm sử dụng màn hình máy tính laptop để hiển thị phần web với bản đồ vị trí của các Slave thông qua công HDMI có sẵn trên Raspberry pi3, cùng với đó là chột và bàn phím được kết nối với Raspberri pi3 qua công USB để điều khiển
3.2.1.4 Khối xử lý trung tâm 1 (Master) Để thực hiện các yêu cầu dự án đặt ra nhóm quyết định sử dụng Raspberry pi3 để làm khối xử lý trung tâm master vì có đủ các chân để đọc cảm biến, kết nối mạng qua cổng LAN ổn định và xử lý các tín hiệu đọc được từ Lora
Sơ đồ chân được biểu thị như hình 3.4:
Hình 3 3: Sơ đồ chân Raspberry Pi 3B+
• Các chân IO10, IO9, IO11, IO8, IO4, IO17, IO18, IO27, IO22 được kết nối lần lượt với các chân của khối truyền nhận tín hiệu Lora
• Cổng USB 1 và USB 2 kết nối với chuột và bàn phím máy tính
• Cổng HDMI keetss nối với màn hình hiển thị
• Cổng LAN kết nối với wifi
3.2.2 Thiết kế phần cứng hai khối xử lý trung tâm 2 (Slave 1)
3.2.2.1 Khối thu phát tín hiệu LoRa
Hai khối thu phát tin hiệu lora của hai khối xử lý trung tâm 2 và khối xử lý trung tâm 3 sẽ truyên và nhân dữ liệu các ký tự tin nhắn với nhau và truyền dữ liệu tọa độ đến master Các tín hiệu gửi về master sẽ được xử lý và hiển thị trên bản đồ trên web để theo dõi và thực hiện các công tác cứu trợ
Sơ đồ kết nối chân khối phát tín hiệu LoRa của hai khối xử lý trung tâm 2 và
3 được mô tả như hình 3.5
Hình 3 4: Sơ đồ kết nối chân khối Lora với ESP
Các chân kết nối của 2 khối phát tín hiệu LoRa của hai khối xử lý trung tâm 2 và 3 được nối theo thứ tự như sau:
• Chân GND nối với GND của ESP32
• Nguồn 3V3 được cấp từ nguồn 3V3 của ESP32
• Chân RESET nối với chân IO14 của ESP32
• Chân DIO0 nối với chân IO2 của ESP32
• Chân NSS nối với chân IO5 của ESP32
• Chân MOSI nối với chân IO23 của ESP32
• Chân MISO nối với chân IO19 của ESP32
• Chân SCK nối với chân IO18 của ESP32
Trên thị trường có sẵn nhiều loại nút nhấn với các đặc tính khác nhau như nút nhấn 2 chân, nút nhấn 4 chân, nút nhấn tròn, vuông và nhiều loại khác Trong mô hình này, nhóm đã lựa chọn sử dụng nút nhấn 4 chân vì nó đáp ứng yêu cầu của nhóm về độ bền, dễ mua và dễ lắp đặt Khối nút nhấn được sử dụng để điều khiển các thiết bị trực tiếp trên board mạch
Trong mô hình nhóm đã sử dụng 10 nút nhấn cho hai khối xử lý trung tâm Slave 1 và Slave 2, bao gồm 5 nút cho khối xử lý trung tâm Slave 1 và 5 nút cho khối xử lý trung tâm Slave 2 có chức năng chọn các ký tự gửi tin nhắn, gửi tin nhắn và nút chuyển sang chế độ SOS Như hình 3.6:
Hình 3 5: Sơ đồ chân kết nối các nút nhấn với ESP
• Button Left nối với chân IO17 của ESP32
• Button Right nối với chân IO16 của ESP32
• Button Select nối với chân IO4 của ESP32
• Button Send nối với chân IO0 của ESP32
• Button Sos nối với chân IO15 của ESP32
Một chân của nút nhấn được kết nối với nguồn của ESP32 Chân còn lại được nối với điện trở và chân tín hiệu nối và ESP32 Chân còn lại của điện trở được nối đất
Sử dụng điện trở kéo có mục tiêu để cho phép ESP32 xác định trạng thái của chân tín hiệu, tức là xác định xem nó đang ở mức logic cao hay mức logic thấp Đồng thời, việc áp dụng điện trở kéo cũng đảm bảo rằng dòng điện chảy qua chân tín hiệu không đủ lớn để gây hỏng cho vi điều khiển Để xác định giá trị điện trở, nhóm sử dụng định luật để tín giá trị được trở như ở khối tín hiệu
35 Để tránh dòng cao ảnh hưởng đến vi điều khiển thì dòng chọn cần nằm trong khoảng từ 0.5mA đến 1mA, chọn I= 1mA và Vout = 5V điện áp trên chân ESP32 từ đó suy ra:
0.001 = 5kΩ (3.6) Trong các mạch số giá trị điện trở nút nhấn thường là 4k7 – 10kΩ nên nhóm đã chọn 4k7 cho nút nhấn
3.2.2.3 Khối GPS Để thực hiện mô hình nhóm chọn Module GPS NEO 6M V2 là module định vị toàn cầu sử dụng hệ thống vệ tinh GPS của Mỹ Module GPS NEO 6M V2 cho tốc độ xác định vị trí nhanh và chính xác, có nhiều mức năng lượng hoạt động, phù hợp với các ứng dụng chạy pin
Module GPS NEO 6M V2 sử dụng board điều khiển kết nối của hãng U-BLOX đến từ Thụy Sĩ có rất nhiều năm kinh nghiệm trong lĩnh vực sản xuất module định vị toàn cầu Để thực hiện mô hình nhóm kết nối với ESP32 qua các chân như hình 3.7:
Hình 3 6: Sơ đồ chân kết nối GPS với ESP
• Chân TXD nối với chân RXD0 của ESP32
• Chân RXD nối với chân TXD0 của ESP32
3.2.2.4 Khối hiển thị Để tiết kiệm năng lượng nhóm sử dụng Màn hình OLED 1.3inch 128x64 giao tiếp I2C cho khả năng hiển thị đẹp, rõ nét vào ban ngày và khả năng tiết kiệm năng lượng tối đa với mức chi phí phù hợp, màn hình sử dụng giao tiếp I2C cho chất lượng đường truyền ổn định và rất dễ giao tiếp chỉ với 2 chân GPIO
36 Để thực hiện mô hình nhóm kết nối với ESP32 qua các chân như hình 3.8:
Hình 3 7: Sơ đồ chân kết nối màn hình với ESP
• Chân VCC nối với chân 3.3V của ESP32
• Chân GND nối với chân GND của ESP32
• Chân SCL nối với chân IO22 của ESP32
• Chân SDA nối với chân IO21 của ESP32
3.2.2.5 Khối xử lý trung tâm 2 (Slave)
Sau khi cân nhắc nhóm quyết định sử dụng Module thu phát Wifi ESP- WROOM-32 ESP-32 vì có đầu đủ các chân kết nối và đáp ứng được những nhu cầu cần xử lý trong dự án
Các chân được kết nối như hình 3.9:
Hình 3 8: Sơ đồ kết nối chân của khối xử lý trung tâm 2
• Các chân IO14, IO2, IO5, IO23, IO19, IO18 lần lượt kết nối với các chân của khối truyền nhận tín hiệu Lora Ra-02
• Các chân IO17, IO16, IO4, IO0, IO5 lần lượt kết nối với năm nút nhấn
• Các chân RXD0, TXD0 lần lượt nối với các chân của khối GPS
• Các chân IO22, IO21 lần lượt kết nối với các chân của khối hiển thị
Khối nguồn trong mạch là một thành phần quan trọng, chịu trách nhiệm cung cấp năng lượng điện cho các linh kiện và thiết bị khác trong mạch Khối nguồn có nhiệm vụ biến đổi nguồn điện đầu vào thành nguồn điện ổn định và đáp ứng các yêu cầu cụ thể của mạch Để hệ thống hoạt động ổn định nhóm đã liệt kê và tính toán chọn lựa các nguồn phù hợp như sau:
- Dòng điện tiêu thụ trên ESP32 được tính theo công thức:
IEsp32 = tổng số chân sử dụng x dòng điện trên mỗi I/O (II/O)
3.2.3.1 Mạch xử lí Master Ở phiên bản Raspberry Pi 3, nhà cung cấp khuyến cáo khách hàng sử dụng nguồn 5V – 2.5A để đảm bảo cho bo mạch hoạt động tốt nhất
Dòng điện trên mỗi I/O của ESP32 vào khoảng 20mA và sử dụng 15 chân của ESP32 nên ta có: IEsp32 = 15 x 20 = 300 mA
STT Tên Thiết Bị Sử Dụng Dòng tiêu thụ (mA)
Bảng 3 2: Dòng điện tiêu thụ của các thiết bị sử dụng nguồn 5VDC
Như bảng 3.2 cho thấy nhóm sử dụng nguồn ngoài là pin 5VDC/4.5A để làm nguồn cung cấp cho hệ thống
SƠ ĐỒ NGUYÊN LÝ TOÀN HỆ THỐNG
THI CÔNG HỆ THỐNG
GIỚI THIỆU
Sau quá trình thiết kế và tính toán hệ thống, nhóm đã tiến hành thi công sản phẩm Các công đoạn bao gồm việc vẽ PCB, lắp ráp linh kiện, lập trình hệ thống, kiểm tra và viết tài liệu hướng dẫn Các công đoạn được thực hiện một cách chính xác và tuần tự để đảm bảo sản phẩm hoàn chỉnh và hoạt động tốt.
THI CÔNG HỆ THỐNG
4.2.1 Thi công vẽ mạch in của hệ thống
Sau khi đã hoàn thành thiết kế sơ đồ nguyên lý của hệ thống trong chương 3 Nhóm đã tiến hành vẽ mạch in PCB cho hệ thống Nhóm đã thiết kế mạch in cho hệ thống bao gồm: mạch xử lý trung tâm Slave Để thiết kế sơ đồ nguyên lý và vẽ mạch in nhóm đã sử dụng phần mềm Proteus 8.12 là một phần mềm chuyên về vẽ mạch điện tử và mạch in PCB Khi đã thiết kế và vẽ mạch in xong, nhóm đã thi công mạch trên board đồng với kích thước 13cm x 10cm như hình 4.1
Hình 4 1: Sơ đồ mạch in của Slave
4.2.2 Thi công lắp ráp các linh kiện lên trên board mạch
❖ Hệ thống board mạch Slave
Hình 4 2: Sơ đồ bố trí linh kiện 3D của hệ thống Slave
Hình 4 3: Hình ảnh thực tế hệ thống Slave sau khi lắp các linh kiện
Các linh kiện được lắp ở mặt trên board mạch hệ thống Master tương ứng với các số được đánh dấu lần lượt là các vị trí:
• Vị trí 1: Màn hình LCD OLED giao tiếp I2C trắng 0.96" 12864
• Vị trí 2: Vi điều khiển ESP32
• Vị trí 4: Khay đựng 2 pin, dùng để cấp nguồn cho Slave
• Vị trí 5: Module LoRa SX1278
• Vị trí 6: Anten dùng để khuếch đại tín hiệu LoRa truyền đi
❖ Hệ thống board mạch Master
Hình 4 4: Hình ảnh thực tế hệ thống Master sau khi lắp các linh kiện
Các linh kiện được lắp ở mặt trên board mạch hệ thống Slave 1 tương ứng với các số được đánh dấu lần lượt là các vị trí:
• Vị trí 1: Board mạch Raspberry Pi 3B+
• Vị trí 2: Module LoRa SX1278
• Vị trí 3: Anten dùng để khuếch đại tín hiệu LoRa nhận được
STT Tên linh kiện Số Lượng Thông Số
Bảng 4 1: Danh sách các linh kiện trong toàn hệ thống
ĐÓNG GÓI VÀ THI CÔNG MÔ HÌNH
Hai hệ thống bao gồm Master và Slave nhóm sử dụng hộp mica để đảm bảo hệ thống không bị hư hại khi va đập
❖ Đóng gói hệ thống Master
Hệ thống tủ điều khiển Master chứa mạch điều khiển chính của hệ thống Master, board mạch Raspberry Pi 3B+ và module LoRa Mô hình hệ thống Master sau khi đã được thi công được thể hiện như hình 4.5
Hình 4 5: Hình ảnh mặt trước hệ thống Master
❖ Đóng gói hệ thống Slave
Hệ thống Slave chứa mạch điều khiển chính của hệ thống, board mạch nút nhấn báo hiệu SOS và module GPS NEO 6M V2 Mô hình hệ thống Slave sau khi đã được thi công được thể hiện như hình 4.6
Hình 4 6: Hình ảnh hệ thống Slave
LẬP TRÌNH HỆ THỐNG
4.4.1: Lưu đồ giải thuật hệ thông Master
Hình 4 7: Lưu đồ giải thuật Master
➢ Giải thích lưu đồ giải thuật chính của Master:
Như hình 4.7 khi cáp nguồn chương trình sẽ bắt đầu khởi tạo lora và wifi Khi kết nối thành công chương trình sẽ chờ dữ liệu từ lora đến để so sánh gói tin Nếu gói tin bắt đầu bằng ký tự “a” thì chế độ SOS sẽ được bật, nếu kí tự đầu tiên là “b” thì chế độ SOS sẽ được tắt Khi bắt đầu không phải kí tự “a” hoặc “b” thì hệ thống sẽ gửi tọa độ lên firebase Khi hoàn tất gửi dữ liệu hệ thống xem xét dã gửi thành công hay chưa, nếu gửi thành công chương trình sẽ gửi thông báo "Data pushed to firebase", nếu gửi không thành công thì chương trình sẽ trả về "Error pushing to firebase" và sau đó hệ thống quay lại chờ gói tin lora tiếp theo
4.4.2: Lưu đồ giải thuật hệ thông Slave
Hình 4 8: Lưu đồ giải thuật Slave
➢ Giải thích lưu đồ giải thuật hình 4.8 của Slave:
Vì nhóm thực hiện code dựa trên hệ event_driven nên các file sẽ hoạt động song song với nhau Trình tự được giải thích như sau:
(1), (2), (3), (4): Khi cấp nguồn hàm main sẽ gửi các message đê yêu cầu khởi tạo các module gps, spi, screen và button Với các module lora, screen thì hàm main chỉ gửi yêu cầu một lần để khởi đông, còn với module gps hàm main sẽ gửi liên tục mỗi một giây để gửi tọa độ về master
(5): Sau khi khởi động thành công thì task GPS sẽ gửi một message đến task_screen để hiển thị LoRa đã được khổi động thành công
(6): Sau khi khởi động thành công thì task loRa sẽ gửi một message đến task_screen để hiển thị LoRa đã được khổi động thành công
(7), (8): Khi nhấn nút ON thì message SL_SOS_ON sẽ được gửi đến task_screen để hiển thị trên màn hình và message SL_LORA_SPI_SOS sẽ gửi đến task_lora_spi để gửi tín hiệu cầu cứu đến master thông qua lora
(9), (10): Khi nhấn nút OFF thì message SL_SOS_OFF sẽ được gửi đến task_screen để hiển thị trên màn hình và message SL_LORA_SPI_UN_SOS sẽ gửi đến task_lora_spi để gửi tín hiệu hủy cầu cứu đến master thông qua lora
4.4.2.1: Lưu đồ giải thuật khối GPS
Hình 4 9: Lưu đồ giải thuật task_gps_uart
➢ Giải thích lưu đồ giải thuật hình 4.9 của khối GPS:
Khi nhận message SL_GPS_INIT từ main, task_gps_uart sẽ khai báo các chân 16 có chức năng RX và 17 có chức năng TX Sau khi khai báo các chân thì tiến hành khởi động module GPS, khi khởi động thành công module GPS sẽ tiên hành gửi message đến task_screen để thông bào đã khởi động thành công khối GPS
Khi nhận được message SL_GPS_SEND từ main, task_gps_uart sẽ bắt đầu đọc dữ liệu từ module GPS Khi đọc xong task_gps_uart sẽ tạo và gán giá trị đọc được
48 cho biến location_lat và location_lng Sau khi có được giá trị thì sẽ đóng gói và ép kiểu dữ liệu sang các task khác để tiếp tục công việc
4.4.2.2: Lưu đồ giải thuật khối LoRa
Hình 4 10: lưu đồ giải thuật task_lora_spi
➢ Giải thích lưu đồ giải thuật hình 4.10 của khối LoRa:
Khi nhận được message SL_LORA_SPI_INIT từ main, task_lora_spi sẽ khai báo các chân và khởi động module lora Sau khi khởi động xong module lora thì sẽ gửi message đến task_screen để thông báo đã khởi động thành công module Lora Khi nhận được dữ liệu và message SL_LORA_SPI_SEND_LOCATION_LAT từ task_gps_uart, task_lora_spi sẽ tiến hành khai báo biến, gán lại kiểu dữ liệu và lấy dữ liệu, bắt đầu mở gói tin nhắn của lora và gửi dữ liệu đến master
Khi nhận được dữ liệu và message SL_LORA_SPI_SEND_LOCATION_LNG từ task_gps_uart, task_lora_spi sẽ tiến hành khai báo biến, gán lại kiểu dữ liệu và lấy dữ liệu, tiến hành gửi dữ liệu sau khi gửi dữ liệu xong thì đóng gói tin nhắn lora lại và kết thúc một gói tin
Khi nhận message SL_LORA_SPI_SOS từ app_bsp, task_lora_spi sẽ tiến hành mở gói tin gửi tín hiệu cầu cứu đến message và đóng gói tin lại, kết thúc một gói tin Khi nhận message SL_LORA_SPI_UN_SOS từ app_bsp, task_lora_spi sẽ tiến hành mở gói tin, gửi tín hiệu hủy lệnh cầu cứu đến message và đóng gói tin lại, kết thúc một gói tin
4.4.2.3: Lưu đồ giải thuật Khối hiển thị
Hình 4 11 1: Lưu đồ giải thuật task_screen
Hình 4 12 2: Lưu đồ giải thuật task_screen
➢ Giải thích lưu đồ giải thuật hình 4.11 của khối hiển thị:
Khi nhận message SL_SCREEN_INIT từ main, task_screen sẽ khai báo địa chỉ i2c của màn oled, khai báo kiểu sáng, kích cỡ chữ và xóa toàn bộ màn hình trước khi hiển thị các khung được vẽ sẵn
Khi nhận message SL_LORA_CHECK từ task_lora_spi, task_screen sẽ khai báo kiểu hiển thị, kích cỡ chữ, vị trí hiển thị và kí tự “ok” để báo đã khởi động thành công module lora
Khi nhận message SL_GPS_CHECK từ task_gps_uart, task_screen sẽ khai báo kiểu hiển thị, kích cỡ chữ, vị trí hiển thị và kí tự “ok” để báo đã khởi động thành công module GPS
Khi nhận message SL_SOS_ON từ app_bsp, task_screen sẽ xóa ký tự đang hiển thị và khai báo kiểu hiển thị, kích cỡ chữ, vị trí hiển thị và kí tự “on” để báo hiệu chế độ cầu cứu đang hoạt động
Khi nhận message SL_SOS_OFF từ app_bsp, task_screen sẽ xóa ký tự đang hiển thị và khai báo kiểu hiển thị, kích cỡ chữ, vị trí hiển thị và kí tự “off” để báo hiệu chế độ cầu cứu đang dừng hoạt động
KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ
KẾT QUẢ ĐẠT ĐƯỢC TỪ LÝ THUYẾT
Sau quá trình tìm hiểu và nghiên cứu thực hiện đề tài, nhóm đã tiếp thu được nhiều kiến thức, tích lũy kinh nghiệm và học cách giải quyết các vấn đề phát sinh trong quá trình thực hiện
• Về các linh kiện, module, thiết bị phần cứng của hệ thống nhóm đã biết rõ hơn về giao tiếp giữa vi điều khiển ESP32 với truyền nhận không dây LoRa Quá trình giao tiếp giữa các module cảm biến với ESP32 Nắm rõ hơn về các cách truyền nhận thông qua các chuẩn giao tiếp như SPI, UART, I2C, các chuẩn giao tiếp trong IoT
• Về các ứng dụng lập trình cho hệ thống, lập trình cho module ESP32 bằng phần mền Arduino IDE, thiết kế giao diện Web trên phần mềm Visual Studio Code
• Về những công cụ hỗ trợ, hiểu và nắm được quy trình thiết kế sơ đồ nguyên lý và vẽ mạch in PCB trên phần mềm Proteus 8.12 Professional.
KẾT QUẢ THỰC NGHIỆM
Sau đã khi thiết kế và hoàn chỉnh mô hình cũng như lập trình cho hệ thống, nhóm đã cho hệ thống hoạt động để kiểm tra và sửa lỗi Kết quả của toàn bộ hệ thống sau khi hoàn thiện được trình bày bên dưới
5.2.1 Kết quả đo khoảng truyền nhận giữa các LoRa thực tế
Nhóm sẽ tiến hành đo khoảng cách truyền nhận không dây LoRa giữa hệ thống Master và hệ thống Slave Nhóm sẽ chọn đo khoảng cách tại đường thẳng, ít vật cản và điều kiện thời tiết thuận lợi Hình 5.2 thể hiện khoảng cách đo giữa các LoRa
Hình 5 1: Bản đồ tọa độ đo khoảng cách truyền nhận không dây LoRa
Nhóm sẽ đặt hệ thống Master tại một điểm cố định Điểm được đánh dấu mà đỏ trên màn hình điện thoại là vị trí đặt Master tại toạ độ 10.85832, 106.80116 Hình 5.3 mô tả vị trí đặt Master
Hình 5 2: Hình ảnh thực tế vị trí đặt hệ thống Master
Nhóm sẽ di chuyển hệ thống Slave với khoảng cách là 250m tại tọa độ 10.85771, 106.79915 so với Master Tại vị trí này thì tín hiệu truyền nhận không dây LoRa tại Slave vẫn gửi dữ liệu các thông số cảm biến đến Master được hiển thị trên Terminal của Raspberry Pi 3B+ trên màn hình Laptop Hình 5.4 mô tả khoảng cách tại vị trí 250m Hình 5.5 mô tả dữ liệu Master nhận được ở khoảng cách 250m
Hình 5 3: Hình ảnh thực tế hệ thống Slave ở vị trí 250m
Khi di chuyển Slave đến vị trí 1km có tọa độ 10.85122, 106.80413 Tại hai vị trí này thì tín hiệu gửi từ Slave đến Master vẫn nhận được dữ liệu, các dữ liệu của các cảm biến được hiển thị lên màn hình Oled Hình 5.6 mô tả khoảng cách tại vị trí 1km
Hình 5 4: Hình ảnh thực tế hệ thống Slave ở vị trí 1km Đến vị trí 1,3km có tọa độ 10.85094, 106.80656 thì Master không nhận được dữ liệu từ Slave Toạ độ nhận được lúc này là 0,000 0,0000 Hình 5.7 mô tả khoảng cách tại vị trí 1,3km Hình 5.8 thể hiện dữ liệu Master nhận được từ Slave
Hình 5 5: Hình ảnh thực tế hệ thống Slave ở vị trí 1,3km
Hình 5 6: Hình ảnh dữ liệu Master nhận được từ Slave ở khoảng cách 1.3km
Sau khi test khoảng cách đo truyền nhận không dây của LoRa của hệ thống Master và Slave, nhóm nhận thấy tại khoảng cách tầm 1,1km thì tín hiệu gửi từ hai Slave đến Master vẫn truyền nhận tốt Đối với khoảng cách tại vị trí 1,3km thì tín hiệu gửi từ Slave đến Master không được ổn định, các yếu tố ảnh hưởng đến quá trình truyền nhận mà nhóm nhận thấy được bao gồm yếu tố: Anten nhóm đặt ở vị trí thấp, cây xanh cao cản trở quá trình truyền nhận của LoRa, con đường có độ dóc Hình 5.9 mô tả con đường tại vị trí 1,3km và vịt trí đặt Anten
Hình 5 7: Hình ảnh thực tế con đường tại vị trí 1.3km và vị trí đặt Anten hệ thống Master
Màn hình hiển thị Oled được thiết kế gắn trước hệ thống Slave, màn hình hiển thị các giá trị toạ độ
5.2.2.2 Giao diện màn hình hiển thị của Slave
Sau khi đã kết nối thì tín hiệu gửi từ Slave đến Master trong khoảng chu kỳ thời gian 1 giây sẽ hiển thị các thông số giá trị cảm biến ra màn hình Oled Hình 5.12 hiển thị giao diện các thông số giá trị của các cảm biến của hệ thống Slave 1 gửi đến hệ thống Master Màn hình Oled sẽ hiển thị từ trái sang phải và từ trên xuống dưới bao gồm: Slave, trạng thái LoRa, trạng thái GPS, phát tín hiệu cầu cứu, kinh độ và vĩ độ
Hình 5 8: Giao diện Oled hiển thị Slave và các giá trị cảm biến
5.2.3 Kết quả giao diện Web Đề tài mà nhóm thực hiện, các thông số dữ liệu của Web được lấy từ cơ sở dữ liệu là Firebase và được cập nhật liên tục khi được kết nối với mạng Wi-Fi Để muốn truy cập vào Web thì sẽ có một địa chỉ Website: https://huytran1612.github.io/CapstoneProject/ sau khi truy cập sẽ hiển thị ra giao diện bản đồ Đây là tab để theo dõi vị trí của Slave ở hệ thống Master, cũng như phát tín hiệu khi Slave cầu cứu Hình 5.13 thể hiện giao diện Web
NHẬN XÉT VÀ ĐÁNH GIÁ HỆ THỐNG
Sau các quá trình cho toàn bộ hệ thống hoạt động, nhóm đã nhận thấy mô hình hoạt động đúng theo những yêu cầu và mục tiêu đặt ra của đề tài:
Về hoạt động phần cứng:
• Toàn bộ hệ thống Master và Slave hoạt động ổn định
• Tín hiệu truyền nhận không dây LoRa tương đối ổn định
• Module GPS hoạt động tương đối ổn định
• Tốc độ khi nhấn nút trên board tương đối nhanh
• Giao diện màn hình hiển thị OLED 12864 hiển thị rõ các giá trị
• Tốc độ truyền của LoRa còn chậm trong trường hợp có vật cản, bảng 5.1 so sánh tốc độ truyền của LoRa trong từng trường hợp ở các khoảng cách khác nhau bao gồm ở vị trí 10.85094, 106.80656 được đề cập ở phần 5.2.1 Số liệu được lấy trung bình sau khi gửi dữ liệu đi 5 lần và được gửi đi với kích cỡ gói tin khác nhau
• Trong trường hợp có cây xanh, tốc độ truyền bị ảnh hưởng bởi các vật cản tự nhiên như lá cây
• Trong trường hợp nhà cao tầng và tầng hầm, tốc độ truyền của LoRa bị ảnh hưởng do việc chắn sóng bởi các toà nhà, và tần số sóng của LoRa không phù hợp để truyền dưới tầng hầm
• Ở vị trí 10.85832, 106.80116 do nằm trong khu công nghiệp, sóng LoRa bị nhiễu bởi các yếu tố xung quanh dẫn đến việc rớt gói tin khi truyền xa và giảm tốc độ truyền gói tin
• Nhìn chung, tốc độ truyền dữ liệu của LoRa tương đối ổn định, nhưng còn bị ảnh hưởng bởi các yếu tố xung quanh, công suất truyền chưa cao làm ảnh hưởng đến tốc độ truyền và khoảng cách truyền nhận tín hiệu
Trường hợp 200m 500m 1km 1.5km Đường thẳng và không có vật cản ở giữa
Nơi có nhiều cây xanh 50-100kbps 20-30kbps 5-10kbps 1-10kbps
Nơi có toà nhà xung quanh
Trong tầng hầm 1-10kbps