1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)

74 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Tác giả Trần Quỳnh Trang
Người hướng dẫn TS. Hoàng Sơn
Trường học Trường Đại Học Lâm Nghiệp Việt Nam
Chuyên ngành Công Nghệ Kỹ Thuật Cơ Điện Tử
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 74
Dung lượng 1,48 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • PHẦN 1: TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU (11)
    • 1. Lí do chọn đề tài (11)
    • 2. Mục tiêu nghiên cứu (11)
    • 3. Đối tượng nghiên cứu (11)
    • 4. Phạm vi nghiên cứu (11)
    • 5. Phương pháp nghiên cứu (11)
    • 6. Kết quả dự kiến đạt được (11)
  • PHẦN 2: NỘI DUNG KHÓA LUẬN (12)
  • CHƯƠNG 1. TỔNG QUAN NHÀ THÔNG MINH VÀ CÁC THIẾT BỊ ĐIỀU KHIỂN CỦA NHÀ THÔNG MINH (12)
    • 1.1. Tổng quan về các thiết bị điều khiển dùng cho nhà thông minh (12)
    • 1.2. Tổng quan về các cảm biến cửa của nhà thông minh (13)
      • 1.2.1. Chức năng, công dụng của cảm biến cửa (15)
      • 1.2.2. Các loại cảm biến cửa ứng dụng cho nhà thông minh (15)
  • CHƯƠNG 2. MÔ HÌNH HOẠT ĐỘNG CỦA THIẾT BỊ VÀ NGHIÊN CỨU THIẾT KẾ MẠCH PHẦN CỨNG (17)
    • 2.1. Mô hình hoạt động của thiết bị (17)
      • 2.1.1. Thiết bị trong mô hình hoạt động (17)
      • 2.1.2. Cloud server trong mô hình hoạt động (18)
    • 2.2. Sơ đồ khối phần cứng (18)
    • 2.3. Thiết kế mạch (19)
      • 2.3.1. Lựa chọn linh kiện cho mạch (19)
        • 2.3.1.1. Lựa chọn linh kiện cho mạch Điều khiển trung tâm (Gateway) (19)
        • 2.3.1.2. Lựa chọn linh kiện cho mạch Cảm biến (Sensor) (24)
      • 2.3.2. Thiết kế mạch nguyên lý và mạch in (28)
        • 2.3.2.1. Thiết kế mạch nguyên lý và mạch in cho mạch Điều khiển trung tâm (Gateway) (28)
        • 2.3.2.2. Thiết kế mạch nguyên lý và mạch in cho mạch Cảm biến (Sensor) (31)
  • CHƯƠNG 3. NGHIÊN CỨU CẤU TRÚC TRUYỀN THÔNG VÀ TRAO ĐỒI TÍN HIỆU (35)
    • 3.1. Công nghệ wifi và BLE (35)
      • 3.1.1. Wifi (35)
      • 3.1.2. Bluetooth Low Energy (35)
      • 3.1.3. Ứng dụng beacon của BLE (37)
    • 3.2. Mô hình truyền thông dữ liệu (38)
      • 3.2.1. Mô hình Center-Peripheral trong BLE (38)
      • 3.2.2. Mô hình Client-Server trong mạng (39)
    • 3.3. Giao thức truyền thông MQTT (41)
    • 3.4. Giới thiệu cloud server (42)
      • 3.4.1. Cloud server là gì (42)
      • 3.4.2. Cloud server Thingspeak (43)
  • CHƯƠNG 4. NGHIÊN CỨU THUẬT TOÁN ĐIỀU KHIỂN VÀ PHẦN MỀM (44)
    • 4.1. Lưu đồ giải thuật phần mềm (44)
      • 4.1.1. Lưu đồ phần mềm trên mạch cảm biến (44)
      • 4.1.2. Lưu đồ phần mềm trên mạch điều khiển trung tâm (44)
    • 4.2. Cài đặt các thông số trên cloud server (45)
    • 4.3. Lập trình phần mềm trên mạch điều khiển trung tâm và mạch cảm biến 37 1. Lâp trình mạch cảm biến (47)
      • 4.3.2. Lâp trình mạch điều khiển trung tâm (48)
    • 4.4. Tiến hành kiểm thử nghiệm (kết quả Demo, kết quả thử nghiệm thực) (49)
      • 4.4.1. Sản phầm sau khi hoàn thiện (49)
      • 4.4.2. Kết quả dữ liệu trên cloud (50)
    • 4.5. Hướng phát triển (50)
    • 1. Kết luận (51)
    • 2. Tồn tại (51)
    • 3. Kiến nghị .............................................................................................................. 41 PHỤ LỤC (51)

Nội dung

TỔNG QUAN VỀ VẤN ĐỀ NGHIÊN CỨU

Lí do chọn đề tài

Nhà thông minh đang trở thành xu hướng phát triển nổi bật trong xã hội hiện đại, mang lại nhiều tiện ích cho người sử dụng thông qua việc ứng dụng các thiết bị điều khiển thông minh Hệ thống điều khiển nhà thông minh không chỉ nâng cao sự tiện lợi mà còn cung cấp giải pháp an ninh hiệu quả cho ngôi nhà, bao gồm các chức năng như báo trộm, báo cháy và cảnh báo khí ga.

Nghiên cứu phát triển cảm biến trạng thái cửa trong hệ thống điều khiển nhà thông minh cung cấp giải pháp giám sát hiệu quả, cho phép gia chủ nhận thông báo qua điện thoại về trạng thái các cửa trong gia đình Giải pháp này không chỉ giúp phòng ngừa kẻ gian mà còn kích hoạt cảnh báo khi có sự xâm nhập trái phép Tính cấp thiết và hữu ích của nghiên cứu này góp phần nâng cao tính hoàn thiện cho hệ thống điều khiển nhà thông minh.

Mục tiêu nghiên cứu

Nghiên cứu thiết bị cảm biến cửa giúp phát hiện trạng thái đóng/mở của cửa, với khả năng truyền tín hiệu qua Bluetooth đến các thiết bị kết nối internet Thiết bị này cung cấp thông tin về trạng thái cửa và cảnh báo sự đột nhập, cho phép gia chủ nhận thông báo qua điện thoại, máy tính hoặc các thiết bị internet khác.

Đối tượng nghiên cứu

Cửa và cảm biến cửa sử dụng trong nhà thông minh.

Phạm vi nghiên cứu

Nghiên cứu này tập trung vào việc ứng dụng cảm biến trong các khu vực nhà ở dân sự, không bao gồm các lĩnh vực như công xưởng, nhà kho, nhà máy, hay các đơn vị công an và quân đội.

Phương pháp nghiên cứu

Phương pháp lý thuyết: Nghiên cứu qua sách báo, mạng và các phương tiện thông tin khác

Phương pháp kế thừa: Kế thừa các nghiên cứu trước của đồng nghiệp.

Kết quả dự kiến đạt được

Bộ cảm biến trạng thái cửa

NỘI DUNG KHÓA LUẬN

KHIỂN CỦA NHÀ THÔNG MINH 1.1 Tổng quan về các thiết bị điều khiển dùng cho nhà thông minh

Nhà thông minh (Smart Home) là một không gian sống được trang bị các thiết bị điện tử có khả năng điều khiển, giám sát và truy cập từ xa, dựa trên nền tảng Internet vạn vật (IoT) Trong một ngôi nhà thông minh, các thiết bị có thể trao đổi thông tin và tự động điều chỉnh chức năng theo thói quen sinh hoạt của người dùng Hệ thống này tương tác với người dùng thông qua bảng điều khiển điện tử, ứng dụng di động, máy tính bảng hoặc giao diện web.

Nhà thông minh sử dụng công nghệ hồng ngoại, điện thoại thông minh, IoT và công nghệ đám mây để tích hợp các hệ thống như điều khiển ánh sáng, an ninh, rèm và kiểm soát môi trường Người dùng có thể dễ dàng điều khiển các hệ thống này thông qua phần mềm trên điện thoại hoặc máy tính có kết nối internet, cho phép điều khiển từ xa hoặc bằng giọng nói.

Hình 1.1: Tổng quan về nhà thông minh

Trong một căn nhà thông minh (Smarthome), mọi thiết bị điện tử sẽ được điều khiển và kết nối với nhau thông qua các giao thức như Bluetooth, Zigbee, Z-Wave, Wifi, Matter và KNX Người dùng có thể dễ dàng quản lý và điều khiển các thiết bị này thông qua điện thoại di động hoặc bằng giọng nói của mình.

Sử dụng công nghệ trong nhà giúp con người kiểm soát và theo dõi mọi hoạt động bên trong ngôi nhà của mình Ngay cả khi không có ai ở nhà, bạn vẫn có thể sử dụng điện thoại để xem tình hình.

TỔNG QUAN NHÀ THÔNG MINH VÀ CÁC THIẾT BỊ ĐIỀU KHIỂN CỦA NHÀ THÔNG MINH

Tổng quan về các thiết bị điều khiển dùng cho nhà thông minh

Nhà thông minh (Smart Home) là một không gian sống hiện đại, nơi các thiết bị điện tử được tích hợp và có thể điều khiển, giám sát từ xa thông qua Internet vạn vật (IoT) Các thiết bị này có khả năng trao đổi thông tin và tự động điều chỉnh theo thói quen sinh hoạt của người dùng Hệ thống điện tử trong nhà giao tiếp với người sử dụng qua bảng điều khiển, ứng dụng di động, máy tính bảng hoặc giao diện web, mang đến sự tiện lợi và hiệu quả trong quản lý không gian sống.

Nhà thông minh sử dụng công nghệ tiên tiến như hồng ngoại, điện thoại thông minh, IoT và công nghệ đám mây để tích hợp các hệ thống quan trọng, bao gồm hệ thống điều khiển ánh sáng, an ninh, rèm và kiểm soát môi trường Người dùng có thể dễ dàng điều khiển các hệ thống này thông qua phần mềm trên điện thoại hoặc máy tính có kết nối internet, cho phép điều khiển từ xa hoặc bằng giọng nói.

Hình 1.1: Tổng quan về nhà thông minh

Trong một căn nhà thông minh (Smarthome), mọi thiết bị điện tử được kiểm soát và giao tiếp với nhau qua các công nghệ như Bluetooth, Zigbee, Z-Wave, Wifi, Matter, và KNX Người dùng có thể dễ dàng điều khiển các thiết bị này thông qua điện thoại di động hoặc bằng giọng nói của mình.

Công nghệ trong nhà cho phép con người kiểm soát và theo dõi mọi hoạt động diễn ra trong không gian sống của mình, ngay cả khi không có ai ở nhà, thông qua việc sử dụng điện thoại di động.

3 thông minh, máy tính bảng hoặc đôi khi là máy tính Chẳng hạn, nếu có con nhỏ ở nhà thì cũng có thể biết được mọi hoạt động của chúng

Nhà thông minh giúp tiết kiệm năng lượng bằng cách tự động tắt các thiết bị khi không sử dụng, như máy lạnh khi bạn ra ngoài Hệ thống này theo dõi hiệu quả tiêu thụ nước, điện và sưởi ấm, từ đó giảm thiểu nguy cơ chi trả hóa đơn điện cao.

Sử dụng các Camera thông minh và thiết bị an ninh để bảo vệ căn nhà Những camera chất lượng cao thường kết nối trực tiếp với điện thoại

Hệ thống điều khiển rèm cửa, cửa sổ và cửa ra vào là phần không thể thiếu trong ngôi nhà thông minh, cho phép người dùng dễ dàng điều khiển chỉ bằng một cú chạm tay Người dùng có thể thiết lập kịch bản tự động cho rèm cửa, như hạ xuống lúc 21h và mở lên lúc 6h sáng hôm sau, hoặc điều khiển bằng giọng nói thông qua loa thông minh.

Nhà thông minh sở hữu tính năng điều khiển bằng giọng nói, cho phép người dùng dễ dàng kiểm soát và quản lý tất cả thiết bị trong gia đình chỉ bằng giọng nói của mình Đây là một chức năng đặc biệt được nhiều người yêu thích, mang lại sự tiện lợi và hiện đại cho cuộc sống hàng ngày.

Với một thiết bị trợ lý ảo, bạn có thể dễ dàng điều khiển mọi thứ trong nhà từ xa, bất kể bạn đang ở đâu, như trong chuyến công tác hay kỳ nghỉ Hiện nay, các trợ lý ảo phổ biến nhất bao gồm Siri, Google Assistant và Amazon Alexa.

Hệ thống điều hòa có thể trở nên thông minh mà không cần lắp đặt phức tạp hay sửa chữa Chỉ cần sử dụng một thiết bị hồng ngoại không dây, người dùng có thể dễ dàng điều khiển máy lạnh từ điện thoại.

Cảm biến thông minh là yếu tố thiết yếu trong internet vạn vật (IoT), cho phép mọi thứ được trang bị mã nhận dạng và khả năng truyền dữ liệu qua internet Một ứng dụng của cảm biến thông minh là trong mạng cảm biến và thiết bị truyền động không dây (WSAN), với hàng nghìn nút kết nối đến nhiều cảm biến và trung tâm cảm biến khác nhau, cùng với các thiết bị truyền động riêng lẻ.

Tổng quan về các cảm biến cửa của nhà thông minh

Cảm biến cửa, hay còn gọi là cảm biến tiếp xúc cửa, là thiết bị có khả năng phát hiện trạng thái mở hoặc đóng của cửa Thiết bị này có thể được lắp đặt để bảo vệ an ninh cho nhiều loại cửa như cửa sổ, cửa ra vào và cổng nhà để xe Cảm biến cửa đóng vai trò quan trọng trong việc tăng cường an ninh cho các hệ thống cửa.

Hệ thống an ninh của smarthome có chức năng báo động khi có người đột nhập vào nhà Cảm biến sẽ gửi tín hiệu về bộ điều khiển trung tâm (HC), nơi xử lý tín hiệu và truyền dữ liệu đến điện thoại, máy tính, iPad, … để thông báo cho chủ nhà Đồng thời, hệ thống cũng kích hoạt các thiết bị “chống trộm” nhằm cảnh báo hiệu quả.

Cảm biến cửa kết nối Wi-Fi và hoạt động qua bộ điều khiển trung tâm, có thể là không dây hoặc có dây Hầu hết các loại cảm biến này sử dụng công tắc từ và nam châm để phát hiện khi cửa mở hoặc đóng Khi công tắc đóng, hai bộ phận nam châm gần nhau, tạo ra dòng điện Ngược lại, khi công tắc mở, nam châm tách ra, làm ngừng dòng điện và mở mạch Lúc này, một thông báo sẽ được gửi đến bộ điều khiển trung tâm để kích hoạt cảnh báo trên điện thoại và hệ thống báo động trong nhà.

Cảm biến thông minh là thiết bị thu thập dữ liệu từ môi trường vật lý, sử dụng tài nguyên máy tính tích hợp để thực hiện các chức năng đã được lập trình Chúng phát hiện đầu vào cụ thể, xử lý dữ liệu và sau đó truyền tải thông tin đã xử lý.

Tài nguyên máy tính trong cảm biến thông minh thường đến từ bộ vi xử lý di động công suất thấp Một cảm biến thông minh tối thiểu bao gồm bộ cảm biến, bộ vi xử lý và công nghệ truyền thông Để được coi là thông minh, cảm biến cần có tài nguyên máy tính tích hợp trong thiết kế vật lý, vì cảm biến chỉ gửi dữ liệu để xử lý từ xa không đủ tiêu chuẩn.

1.2.1 Chức năng, công dụng của cảm biến cửa

Cảm biến cửa là thiết bị quan trọng giúp phát hiện nhanh chóng khi cửa bị mở hoặc có dấu hiệu bị đột nhập Nhờ vào tính năng này, nó mang lại sự an toàn và bảo mật cho ngôi nhà của bạn.

Khi sử dụng cảm biến cửa cho mục đích phát hiện xâm nhập, cảm biến cửa có hai chức năng quan trọng sau:

Cảm biến cửa là giải pháp hiệu quả để bảo vệ không gian sống trong nhà hoặc văn phòng, ngăn chặn sự xâm nhập từ bên ngoài Thiết bị này có khả năng phát hiện nếu có ai đó vào trong, đồng thời có thể được cài đặt để phát ra âm thanh báo động nhằm ngăn cản kẻ xâm nhập.

Sử dụng cảm biến cửa giúp theo dõi sự hiện diện của mọi người trong nhà, đảm bảo rằng trẻ nhỏ dưới 3 tuổi không đi lang thang khi không có người lớn giám sát.

Hệ thống an ninh không chỉ giúp bảo vệ ngôi nhà khỏi sự xâm nhập của kẻ lạ mà còn đảm bảo an toàn cho trẻ nhỏ khi ở trong nhà Khi kết nối với cảm biến qua điện thoại, người dùng có thể theo dõi tình trạng ngôi nhà mọi lúc Trong trường hợp có sự cố như kẻ đột nhập, hệ thống sẽ thông báo kịp thời, giúp gia đình yên tâm hơn khi đi chơi hoặc công tác xa nhà.

1.2.2 Các loại cảm biến cửa ứng dụng cho nhà thông minh Đối với nhà thông minh, hoàn toàn có thể kết hợp nhiều thiết bị với nhau để chúng có thể tự động hoạt động theo những kịch bản có sẵn Cảm biến cửa cũng không phải ngoại lệ vì nó dễ dàng kết nối với các thiết bị thông minh khác Tuy nhiên, việc kết hợp cảm biến cửa với những thiết bị dưới đây sẽ là tốt nhất

Hình 1.3: Cảm biến cửa với đèn và rèm cửa thông minh

Cảm biến cửa kết hợp với đèn và rèm cửa thông minh là giải pháp hiệu quả cho nhiều gia chủ, giúp tối ưu hóa hệ thống chiếu sáng trong nhà Việc thiết lập hệ thống này không chỉ mang lại sự tiện lợi mà còn nâng cao trải nghiệm sống hàng ngày.

Vào lúc 18h mỗi tối, khi cửa mở, cảm biến sẽ gửi tín hiệu để đèn tự động bật sáng và rèm cửa tự động kéo ra, tạo nên không gian ấm cúng và tiện nghi khi trở về nhà.

Hình 1.4: Cảm biến cửa với cảm biến chuyển động và camera thông minh

Cảm biến cửa kết hợp với cảm biến chuyển động và camera thông minh tạo nên giải pháp an ninh hoàn hảo cho ngôi nhà Ba thiết bị này giúp gia chủ yên tâm khi trời tối hoặc khi vắng nhà Khi phát hiện hành động phá cửa bất thường, hệ thống sẽ tự động kích hoạt đèn chiếu sáng, còi báo động, mở rèm cửa và gửi cảnh báo trực tiếp đến smartphone của người dùng.

Hình 1.5: Cảm biến cửa với còi hú thông minh

Cảm biến cửa kết hợp với còi hú thông minh là giải pháp hiệu quả để cảnh báo khi có người mở cửa vào nhà Thiết bị này giúp người dùng nhận biết sự ra vào của người lạ ngay cả khi không cầm điện thoại, mang lại sự an tâm và bảo vệ cho ngôi nhà.

MÔ HÌNH HOẠT ĐỘNG CỦA THIẾT BỊ VÀ NGHIÊN CỨU THIẾT KẾ MẠCH PHẦN CỨNG

Mô hình hoạt động của thiết bị

Hệ thống thiết kế bao gồm: mạch Cảm biến (Sensor) và mạch Điều khiển trung tâm (Gateway)

Hình 2.1: Mô hình hoạt động của thiết bị

Mô hình hoạt động của thiết bị sẽ được chia làm 2 phần chính: phần thiết bị và phần cloud server

2.1.1 Thiết bị trong mô hình hoạt động

Thiết bị sẽ bao gồm một cảm biến có khả năng phát hiện trạng thái đóng mở của cửa, sử dụng công nghệ Bluetooth Low Energy (BLE) để truyền dữ liệu.

Thiết bị điều khiển trung tâm là một thiết bị trung gian sử dụng công nghệ BLE để tiếp nhận dữ liệu từ cảm biến, mỗi cảm biến được phân biệt bằng chỉ số ID Trong khóa luận này, chỉ sử dụng một cảm biến duy nhất Ngoài ra, thiết bị còn được trang bị công nghệ wifi để kết nối với internet, cho phép gửi dữ liệu ra bên ngoài, cụ thể là lên cloud Thingspeak.

2.1.2 Cloud server trong mô hình hoạt động

Thingspeak là một nền tảng cloud server miễn phí, cho phép hiển thị và lấy dữ liệu từ Cloud về thiết bị IoT thông qua giao thức HTTP và MQTT Với giao diện thân thiện và dễ sử dụng, Thingspeak đã thu hút nhiều người dùng trên toàn thế giới.

Thông qua Thingspeak, dữ liệu từ thiết bị điều khiển trung tâm được gửi lên qua giao thức MQTT, được lưu trữ và hiển thị trực quan qua các bảng biểu.

Ngoài ra các thiết bị khác có thể truy cập đến Thingspeak để lấy dữ liệu hoặc điều khiển ngược lại thiết bị.

Sơ đồ khối phần cứng

Hệ thống thiết kế bao gồm: mạch Điều khiển trung tâm (Gateway) và mạch Cảm biến (Sensor)

Hình 2.2: Sơ đồ khối mạch Điều khiển trung tâm và mạch Cảm biến

Sơ đồ khối của mạch Điều khiển trung tâm (Gateway) bao gồm cổng USB micro để cấp nguồn 5V từ các nguồn như adapter hoặc laptop Mạch còn có khối chuyển đổi nguồn từ 5V sang 3,3V, cung cấp năng lượng cho module ESP32 Đặc biệt, module ESP32 đã tích hợp sẵn anten hỗ trợ kết nối Wifi và Bluetooth năng lượng thấp (BLE).

Sơ đồ khối của mạch cảm biến bao gồm khối nguồn sử dụng 2 viên PIN AAA 1.5V mắc nối tiếp, cung cấp năng lượng cho công tắc từ và module E73 chạy Bluetooth năng lượng thấp Công tắc từ có nhiệm vụ phát hiện sự kiện đóng mở cửa, và tín hiệu này sẽ được đọc bởi module E73.

Thiết kế mạch

2.3.1 Lựa chọn linh kiện cho mạch

2.3.1.1 Lựa chọn linh kiện cho mạch Điều khiển trung tâm (Gateway) a Module ESP

Hình 2.3: Module thu phát wifi bluetooth ESP32

Module thu phát wifi bluetooth ESP32 được phát triển dựa trên nền tảng ESP32, tích hợp công nghệ Wifi, BLE và nhân ARM SoC tiên tiến Kit này có thiết kế tương tự như Kit NodeMCU ESP8266, mang lại sự dễ dàng trong sử dụng, với đầy đủ chân ra, mạch nạp tích hợp và giao tiếp UART CP2102 Wifi BLE ESP32 NodeMCU LuaNode32 là lựa chọn hàng đầu cho các nghiên cứu và ứng dụng liên quan đến Wifi, BLE và IoT.

- IC chính: Wifi BLE SoC ESP32 ESP-WROOM-32;

- Điện áp sử dụng: 2.2V~3.6VDC;

- Dòng điện sử dụng: ~90mA;

- Nhân xử lý trung tâm: ESP32-D0WDQ6 Dual-core low power Xtensa® 32- bit LX6 microprocessors;

- 8 KBytes SRAM in RTC SLOW;

- 8 KBytes SRAM in RTC FAST;

- 1 Kbit of EFUSE, 256 bits MAC;

- Bluetooth v4.2 BR/EDR and BLE specification;

- Wi-Fi mode Station/softAP/SoftAP+station/P2P;

- Security WPA/WPA2/WPA2-Enterprise/WPS;

- Encryption AES/RSA/ECC/SHA;

- IPv4, IPv6, SSL, TCP/UDP/HTTP/FTP/MQTT;

- Interfaces: SD-card, UART, SPI, SDIO, I2C, LED PWM, Motor PWM, I2S,

IR, GPIO, capacitive touch sensor, ADC, DAC, Hall sensor, temperature sensor

Bộ vi xử lý Xtensa lõi kép 32-bit LX6 hoạt động ở tần số 240 MHz, với các phiên bản ESP32-S0WD và ESP32-U4WDH hoạt động ở tần số 160 MHz.

600 MIPS (200 MIPS với ESP32-S0WD/ESP32-U4WDH)

+) Bộ đồng xử lý (co-processor) công suất cực thấp (Ultra low power, viết tắt: ULP)

- Hệ thống xung nhịp: CPU Clock, RTC Clock và Audio PLL Clock

+) Bộ nhớ nội: 448 KB bộ nhớ ROM cho việc booting và các tính năng lõi +) 520 KB bộ nhớ SRAM trên chip cho dữ liệu và tập lệnh

+) Bluetooth: v4.2 BR/EDR và BLE (chia sẻ sóng vô tuyến với Wifi)

- 34 GPIO pad vật lý với các ngoại vi:

+) 10 cảm biến cảm ứng (touch sensor) (GPIO cảm ứng điện dung)

ESP32 hỗ trợ 3 giao thức SPI (SPI0, SPI1, HSPI và VSPI) hoạt động ở cả chế độ master và slave Trong đó, SPI0 và SPI1 được kết nối với bộ nhớ flash của ESP32, trong khi SPI2 và SPI3 tương ứng với HSPI và VSPI.

I²C hỗ trợ 2 chế độ hoạt động là master và slave, với tốc độ truyền dữ liệu ở chế độ Standard mode (100 Kbit/s) và Fast mode (400 Kbit/s) Nó cũng cho phép sử dụng 2 chế độ định địa chỉ 7-bit và 10-bit, và tất cả các GPIO đều có thể được sử dụng để triển khai giao thức I²C.

+) 3 UART (UART0, UART1, UART2) với tốc độ lên đến 5 Mbps

+) SD/SDIO/CE-ATA/MMC/eMMC host controller

+) Ethernet MAC interface cho DMA và IEEE 1588 Precision Time Protocol (tạm dịch: Giao thức thời gian chính xác IEEE 1588)

+) Bộ điều khiển hồng ngoại từ xa (TX/RX, lên đến 8 kênh)

+) PWM cho điều khiển động cơ

+) LED PWM (lên đến 16 kênh)

+) Cảm biến hiệu ứng Hall

+) Bộ tiền khuếch đại analog công suất cực thấp (Ultra low power analog pre- amplifier)

+) Hỗ trợ tất cả các tính năng bảo mật chuẩn IEEE 802.11, bao gồm WFA, WPA/WPA2 và WAPI

+) Secure boot (tạm dịch: khởi động an toàn)

+) 1024-bit OTP, lên đến 768-bit cho khách hàng

Hardware acceleration enhances encryption performance through algorithms such as AES, SHA-2, RSA, and elliptic curve cryptography (ECC), as well as utilizing random number generators (RNG) for improved security.

+) Bộ ổn áp nội với điện áp rơi thấp (internal low-dropout regulator)

+) Miền nguồn riêng (individual power domain) cho RTC

+) Dòng 5 μA cho chế độ deep sleep

+) Trở lại hoạt động từ ngắt GPIO, timer, đo ADC, ngắt với cảm ứng điện dung

* Sơ đồ chân của module ESP32:

Hình 2.4: Sơ đồ chân của module thu phát wifi bluetooth ESP32 b IC ổn áp nguồn AMS1117 SMD chân dán

Hình 2.5: IC ổn áp nguồn AMS1117 SMD chân dán

Bộ điều chỉnh cố định và điều chỉnh tích cực WR1117A cung cấp 1A với hiệu suất cao, hoạt động hiệu quả với mức chênh lệch đầu vào-đầu ra 1,4V Chip điều chỉnh điện áp tham chiếu được cắt chính xác với độ chính xác 2% Mạch giới hạn dòng điện bên trong giúp giảm thiểu căng thẳng cho cả bộ điều chỉnh và mạch nguồn trong điều kiện quá tải.

- Điện áp đầu ra:1.2, 1.5, 1.8, 2.5, 3.3, 5V, ADJ;

- Nhiệt độ hoạt động: -40 đến 150 độ C;

- Đầu ra có thể điều chỉnh hoặc cố định;

- Đốt cháy giới hạn nhiệt 100%;

- Bảo vệ giới hạn hiện tại;

- Ứng dụng vào các mạch điện tử;

- Thay thế IC bị hỏng;

- Ứng dụng trong các mạch ổn áp;

- Sử dụng trong các mạch nguồn ổn định; c Cuộn cảm dán 2.2uH 0805 SMD

Hình 2.6: Cuộn cảm dán 2.2uH 0805 SMD

- Dòng phân cực DC cao hơn và điện trở DC thấp hơn do công nghệ rãnh;

- Cấu hình thấp và độ dày mỏng;

- Cấu trúc nguyên khối cho độ tin cậy cao;

- Khả năng hàn tuyệt vời và khả năng chịu nhiệt cao;

- Không có khớp nối chéo do lá chắn từ tính

2.3.1.2 Lựa chọn linh kiện cho mạch Cảm biến (Sensor) a Module E73

Hình 2.7: Module Bluetooth E73 chip nRF52832

Mô-đun E73-2G4M04S1B là một giải pháp không dây Bluetooth SMD dựa trên chip RF nRF52832 của NORDIC, với lõi ARM CORTEX-M4 hiệu suất cao và hỗ trợ giao thức Bluetooth 4.2 và Bluetooth 5 RF Nó cung cấp nhiều cổng I/O, giúp người dùng phát triển ứng dụng đa dạng với các tài nguyên ngoại vi như UART, I2C, SPI, ADC, DMA, và PWM Mô-đun đi kèm ăng-ten PCB tích hợp và có khả năng kết nối với các ăng-ten khác qua IPEX E73-2G4M04S1B đã được chứng nhận bởi FCC, CE, RoHS và các tổ chức quốc tế uy tín, đảm bảo hiệu suất ổn định Với tinh thể hoạt động trôi ở nhiệt độ thấp và độ chính xác cao 32MHz, mô-đun này đảm bảo tính ổn định và đặc tính công nghiệp Lưu ý rằng đây là mô-đun SoC phần cứng thuần túy, do đó cần lập trình trước khi sử dụng.

- Tần số làm việc 2379 đến 2496 MHz;

- Tốc độ dữ liệu không khí 1 Mbps, 2 Mbps;

- Loại giao diện UART, I2C, SPI;

- Nhiệt độ hoạt động -40 đến +85 ℃;

- Khoảng cách giao tiếp được kiểm tra lên đến 100m;

- Công suất truyền tối đa 2,5mW, phần mềm có thể điều chỉnh nhiều cấp độ;

- Hỗ trợ bluetooth 4.2 và bluetooth 5.0;

- Tích hợp bộ dao động tinh thể xung nhịp 32,768 kHz;

- Hỗ trợ băng tần 2.4GHz ISM miễn phí giấy phép toàn cầu;

- Tài nguyên phong phú, 512KB FLASH, 64KB RAM;

- Hỗ trợ nguồn điện 2.0V ~ 3.6V, nguồn điện hơn 3.3V có thể đảm bảo hiệu suất tốt nhất;

- Thiết kế tiêu chuẩn cấp công nghiệp, hỗ trợ -40 ~ 85°C trong thời gian dài;

- Hỗ trợ ăng-ten PCB trên bo mạch và giao diện IPEX, người dùng có thể lựa chọn theo nhu cầu của mình

- Cảm biến nhà thông minh và công nghiệp;

- Hệ thống an ninh và hệ thống định vị;

- Điều khiển từ xa không dây, UAV;

- Bộ điều khiển từ xa trò chơi không dây;

- Sản phẩm chăm sóc sức khỏe;

- Giọng nói không dây, tai nghe không dây;

- Các ứng dụng trong ngành ô tô

* Sơ đồ chân của module bluetooth E73:

Hình 2.8: Sơ đồ chân của module bluetooth E73 b Công tắc từ

Công tắc từ là loại công tắc hoạt động khi có từ trường mạnh tiếp cận, gây ra tác động từ trường Khi đó, tiếp điểm của công tắc sẽ đóng lại, kết nối hai đầu dây và cho phép dòng điện chạy qua.

- Thân cảm biến: nhựa ABS;

- Điện áp chuyển mạch tối đa: 100VDC;

- Dòng điện chuyển mạch tối đa: 0.5A;

- Điện áp phá hủy: 150VDC;

- Dòng điện truyền tải tối đa: 1A;

- Điện trở tiếp điểm tiếp xúc: < 100mΩ (không bao gồm dây dẫn);

- Thời gian mở tối đa: 0.3ms;

- Thời gian thực thi tối đa: 1ms

- Sử dụng trong lắp đặt trong các thiết bị chống trộm;

- Công tắc hành trình b Công tắc gạt 3 chân

Hình 2.10: Công tắc gạt 3 chân

- Công tắc gạt thường được sử dụng trong các mạch điện tử;

- Các thiết bị cần đóng cắt với trạng thái ON hoặc OFF;

- Là loại công tắc nhỏ gọn, độ bền cao

2.3.2 Thiết kế mạch nguyên lý và mạch in

2.3.2.1 Thiết kế mạch nguyên lý và mạch in cho mạch Điều khiển trung tâm (Gateway)

Hình 2.11: Sơ đồ nguyên lý mạch Điều khiển trung tâm (Gateway)

Hình 2.12: Mô phỏng 2D mạch điều khiển trung tâm

Hình 2.13: Mô phỏng 3D mạch điều khiển trung tâm (mặt trước)

Hình 2.14: Mô phỏng 3D mạch điều khiển trung tâm (mặt sau) a Khối chuyển đổi nguồn

Hình 2.15: Khối chuyển đổi nguồn của mạch Điều khiển trung tâm

Khối nguồn cung cấp năng lượng cho toàn bộ hệ thống, với nguồn đầu vào qua cổng Micro USB có điện áp 5V Đèn LED D1 báo trạng thái nguồn, khi đèn sáng cho thấy có nguồn đang được cấp.

Sử dụng IC hạ áp WR1117A để chuyển đổi nguồn 5V thành 3V3 giúp cung cấp nguồn ổn định cho vi điều khiển Các tụ C1, C2, C3, C4, C7, C8 được sử dụng để ổn định điện áp đầu ra và giảm thiểu nhiễu Bên cạnh đó, cuộn lọc Ferrite Bead FB1, FB2 có tác dụng chặn tín hiệu cao tần và lọc xung nhiễu hiệu quả.

Hình 2.16: Khối vi xử lý của mạch Điều khiển trung tâm

Module ESP32-WROOM-32 là trung tâm điều khiển của hệ thống, hoạt động với điện áp 3V3 và có khả năng thu phát sóng WIFI và BLUETOOTH Đây là một vi điều khiển mạnh mẽ, tiết kiệm năng lượng, được sử dụng làm chip điều khiển chính cho mạch điều khiển trung tâm ESP32 đóng vai trò là trung tâm kết nối giữa các hệ thống node mạch cảm biến và có khả năng kết nối internet.

2.3.2.2 Thiết kế mạch nguyên lý và mạch in cho mạch Cảm biến (Sensor)

Hình 2.17: Sơ đồ nguyên lý mạch Cảm biến (Sensor)

Hình 2.18: Mô phỏng 2D mạch Cảm biến

Hình 2.19: Mô phỏng 3D mạch Cảm biến (mặt trước)

Hình 2.20: Mô phỏng 3D mạch Cảm biến (mặt sau)

Hình 2.21: Khối nguồn của mạch Cảm biến (Sensor)

Khối nguồn của hệ thống mạch cảm biến sử dụng pin AAA 1.5V được mắc nối tiếp để tạo ra điện áp 3V, cung cấp năng lượng cho toàn bộ hệ thống Loại pin này nhỏ gọn, rất phù hợp với thiết kế của hệ thống Công tắc khoá K1 được sử dụng để đóng ngắt nguồn điện khi cần thiết.

Hình 2.22: Khối cảm biến của mạch Cảm biến (Sensor)

Khối cảm biến sử dụng công tắc từ, cho phép phát hiện trạng thái mở của cửa thông qua tín hiệu do nam châm kích hoạt Khối xử lý tiếp nhận thông tin này để xác định xem cửa có đang mở hay không.

Hình 2.23: Khối xử lý của mạch Cảm biến (Sensor)

Chip NRF52832 là khối xử lý chính của hệ thống mạch cảm biến, sử dụng công nghệ Bluetooth Low Energy (BLE) để truyền và nhận dữ liệu đến mạch điều khiển trung tâm Với mức tiêu thụ năng lượng cực thấp, NRF52832 được ứng dụng rộng rãi trong các mạng lưới IoT như node cảm biến, smarthome và thiết bị đeo tay Thiết bị sử dụng NRF52832 có khả năng hoạt động liên tục nhiều ngày mà không cần cung cấp thêm năng lượng.

Cổng kết nối J1 được sử dụng để nạp code cho module thông qua JTAG interface SWD hoặc J-Link

NGHIÊN CỨU CẤU TRÚC TRUYỀN THÔNG VÀ TRAO ĐỒI TÍN HIỆU

Công nghệ wifi và BLE

Wi-Fi là một giao thức mạng không dây dựa trên chuẩn IEEE 802.11 Với Wi-

WiFi, hay mạng cục bộ (LAN), là công nghệ cung cấp truy cập internet trong một phạm vi nhất định Đây là giao thức mạng phổ biến được sử dụng trong nhà và văn phòng để kết nối các thiết bị như máy tính bàn, laptop, tablet, điện thoại thông minh và máy in mà không cần cáp mạng Ngoài ra, WiFi cũng được sử dụng trong các không gian công cộng như quán cà phê và sân bay, đáp ứng nhu cầu kết nối internet cho các thiết bị di động trong khu vực có sóng WiFi.

Sóng vô tuyến được sử dụng cho WiFi tương tự như sóng vô tuyến cho các thiết bị cầm tay và điện thoại di động Chúng có khả năng truyền và nhận sóng vô tuyến, đồng thời chuyển đổi các mã nhị phân 1 và 0 thành sóng vô tuyến và ngược lại.

Wifi hoạt động trên các tần số 2.4 GHz, 5 GHz và 60 GHz, cao hơn so với tần số của điện thoại di động, thiết bị cầm tay và truyền hình Tần số cao giúp tín hiệu truyền tải nhiều dữ liệu hơn.

Nhược điểm của Wi-Fi là chỉ hoạt động hiệu quả trong phạm vi ngắn, mặc dù nó có tốc độ truyền tin vượt trội gấp khoảng 4200 lần so với Zigbee hay Bluetooth Mesh Tuy nhiên, trong bối cảnh điều khiển đèn thông minh, tốc độ này trở nên không cần thiết, vì thiết bị IoT thường chỉ cần truyền tải một lượng thông tin nhỏ Do đó, việc tiết kiệm điện năng trở thành yếu tố quan trọng hơn so với khả năng truyền tải dữ liệu lớn.

Bluetooth Low Energy (BLE) là công nghệ giao tiếp không dây hiệu quả, cho phép các thiết bị thông minh như điện thoại, đồng hồ thông minh và tai nghe không dây kết nối với nhau trong khoảng cách ngắn BLE hoạt động trên tần số 2.4 GHz trong băng tần ISM, giúp giảm thiểu nhiễu sóng từ các thiết bị WiFi và Bluetooth khác Thời gian thiết lập kết nối và truyền dữ liệu của BLE rất nhanh, chỉ khoảng 3 ms, mang lại trải nghiệm liền mạch cho người dùng.

BLE, hay Bluetooth Low Energy, là một tiêu chuẩn Bluetooth mới do SIG (Bluetooth Special Interest Group) phát triển, nhằm nâng cao hiệu quả sử dụng năng lượng trong quá trình truyền dữ liệu Công nghệ này mang lại nhiều khả năng và đã được áp dụng trong nhiều lĩnh vực khác nhau.

Công nghệ hiện đại đang ảnh hưởng đến 26 lĩnh vực khác nhau, bao gồm sức khỏe, thể dục, bảo mật, tự động hóa gia đình, giải trí gia đình, công nghiệp thông minh và IoT (Internet of Things) Những ứng dụng này cũng được tích hợp vào các thiết bị quen thuộc hàng ngày như điện thoại thông minh và máy tính xách tay mà bạn đang sử dụng.

Công nghệ BLE (Bluetooth Low Energy) lý tưởng cho các ứng dụng không cần truyền tải lượng lớn dữ liệu, cho phép khôi phục thông tin với chi phí thấp và tiết kiệm năng lượng Nhờ vào khả năng hoạt động không cần kết nối liên tục, thiết bị BLE có thể sử dụng pin trong nhiều năm BLE không phải là bản nâng cấp của Bluetooth truyền thống mà là một công nghệ mới, tập trung vào Internet of Things (IoT), nơi các thiết bị truyền tải dữ liệu với tốc độ thấp.

BLE sử dụng cấu trúc dữ liệu phân cấp để xác định cách thức trao đổi thông tin Thiết bị BLE hoạt động như một thiết bị ngoại vi, quảng cáo các dịch vụ và đặc điểm của nó để giao tiếp với các thiết bị khác Các thuộc tính này được xác định qua cấu hình GATT (Generic Attributes), thể hiện các giá trị dưới dạng gói thông tin nhỏ có thể thay đổi theo thời gian.

Các đặc tính của thiết bị ngoại vi có thể được phân loại thành hai loại: kiểu đọc và kiểu ghi Các thiết bị ngoại vi với đặc tính kiểu đọc thường truyền đạt thông tin đến trung tâm để gửi dữ liệu, trong khi các thiết bị có đặc tính kiểu ghi thường có giao diện để nhận dữ liệu từ trung tâm.

Bluetooth Low Energy đã được phát triển nhằm tối ưu hóa trải nghiệm người dùng qua các thiết bị IoT, và hiện nay nó đã được áp dụng rộng rãi trong nhiều lĩnh vực công nghệ thông minh.

Samsung SmartTag là phụ kiện định vị giúp theo dõi vị trí đồ vật với độ chính xác cao, cho phép người dùng dễ dàng tìm thấy các vật dụng cần thiết khi cần thiết.

Nhà thông minh sử dụng các thiết bị có thể điều khiển qua smartphone, như August Smart Lock, cho phép người dùng biến điện thoại của mình thành chìa khóa điện tử.

Vòng đeo tay thông minh giúp theo dõi và ghi nhận thông tin về các chế độ luyện tập thể thao của người dùng, đồng thời đồng bộ dữ liệu với smartphone.

-Trong chăm sóc sức khỏe, công nghệ BLE được áp dụng vào thiết bị CGMP, giúp theo dõi hàm lượng glucose

Hệ thống trung tâm của công nghệ BLE bao gồm các thiết bị như smartphone, tablet và laptop, hỗ trợ nhiều hệ điều hành như iOS, Android, Windows Phone, macOS, Linux, Windows 8 và Windows 10.

Mô hình truyền thông dữ liệu

3.2.1 Mô hình Center-Peripheral trong BLE

Mối quan hệ giữa Central và Peripheral tương tự như mối quan hệ giữa máy khách (client) và máy chủ (server), trong đó Central đóng vai trò là máy khách và Peripheral là máy chủ Peripheral sẽ phát đi các gói tin quảng bá thông tin về các dịch vụ mà nó cung cấp, trong khi Central, thường là thiết bị di động, sẽ lắng nghe Khi Central nhận được các gói tin chứa thông tin mà nó quan tâm, nó sẽ gửi yêu cầu kết nối đến Peripheral.

Peripheral (Server) quảng bá sự hiện diện của mình, cho phép các thiết bị khác phát hiện và lưu trữ dữ liệu mà Central (Client) có thể truy cập Trong giao tiếp thông thường, Peripheral như một người nói "tôi đang hoạt động" để các Central nhận biết và tương tác với nhau Khi Central quét các thiết bị xung quanh và phát hiện Peripheral, nó sẽ thiết lập kết nối để bắt đầu trao đổi dữ liệu, tương tự như quá trình kết nối với chuột bluetooth, smartwatch, hay bàn phím bluetooth.

Hình 3.1: Mô hình Center-Peripheral

Bảng 3.1 Hoạt động của mô hình Center-Peripheral:

Nhận thông tin nhận dạng từ các thiết bị xung quanh

Phát thông tin nhận dạng thiết bị

Gửi yêu cầu kết nối đến thiết bị cần kết nối

Nhận yêu cầu kết nối và quyết định có kết nối hay không Sau khi kết nối

Gửi yêu cầu về các loại thông tin mà BLE Peripheral có thể cung cấp

Gửi các loại thông tin thiết bị có thể cung cấp

Quá trình truyền dữ liệu

Nhận thông tin cập nhật từ thiết bị BLE Peripheral để thực hiện chức năng ứng dụng

Gửi dữ liệu đến BLE Central khi có thông tin cập nhật trong thiết bị

BLE Central là thiết bị chủ động gửi yêu cầu kết nối đến các thiết bị khác, và sau khi kết nối thành công, nó sẽ quản lý các hoạt động đồng bộ radio để duy trì kết nối và thực hiện việc truyền nhận dữ liệu.

- BLE Peripheral: là thiết bị chấp nhận yêu cầu kết nối Sau khi kết nối, BLE Peripheral tuân theo các hoạt động đồng bộ từ BLE Central

3.2.2 Mô hình Client-Server trong mạng

Mô hình mạng máy tính client-server bao gồm hai thành phần chính: máy khách (client) và máy chủ (server) Server lưu trữ tài nguyên và cài đặt các chương trình dịch vụ theo yêu cầu của client Ngược lại, client, bao gồm máy tính và các thiết bị điện tử khác, gửi yêu cầu đến server để truy cập tài nguyên và dịch vụ.

Hình 3.2: Mô hình Client-Server

Mô hình mạng Client Server tập trung các ứng dụng chức năng tại dịch vụ file chuyên dụng, trở thành trung tâm của hệ thống Hệ điều hành này cho phép người dùng chia sẻ tài nguyên đồng thời mà không bị giới hạn về vị trí địa lý.

Nguyên lý hoạt động của mô hình Client Server, trong đó:

Client là khách hàng sử dụng dịch vụ, có thể là tổ chức hoặc cá nhân Trong lĩnh vực kỹ thuật số, khái niệm này tương tự, với Client trong mô hình Client-Server được hiểu là một máy tính (Host) có khả năng nhận thông tin từ nhà cung cấp dịch vụ (Server).

Server là máy chủ hoặc phương tiện cung cấp dịch vụ, thường được hiểu là máy tính từ xa trong công nghệ Chức năng chính của server là cung cấp thông tin và quyền truy cập cho các dịch vụ cụ thể Mô hình Client Server mang lại ưu điểm kiểm soát tập trung, cho phép tất cả thông tin được lưu trữ tại một vị trí duy nhất Điều này giúp các quản trị viên mạng dễ dàng quản lý và điều hành, đồng thời giải quyết sự cố một cách hiệu quả và thuận tiện hơn trong việc cập nhật tài nguyên và dữ liệu.

Trong mạng Client Server, dữ liệu được bảo vệ tối đa nhờ vào kiến trúc tập trung, giúp người dùng kiểm soát quyền truy cập Chỉ những người được cấp quyền mới có thể thực hiện các thao tác cần thiết, thông qua thông tin đăng nhập như Username và Password Ngoài ra, việc khôi phục dữ liệu trở nên dễ dàng chỉ với một bản sao lưu duy nhất trong trường hợp mất mát.

Mô hình mạng Client Server có khả năng mở rộng linh hoạt, cho phép người dùng tăng số lượng tài nguyên như Client hoặc Server bất cứ lúc nào Điều này giúp tăng kích thước Server một cách dễ dàng và không gây gián đoạn lớn trong quá trình sử dụng.

Tất cả các Client đều có quyền truy cập vào hệ thống mạng máy tính mà không có sự phân biệt giữa các vị trí hay nền tảng Điều này cho phép nhân viên dễ dàng truy cập thông tin công ty mà không cần sử dụng terminal mode hay bộ xử lý khác.

Giao thức truyền thông MQTT

MQTT (Message Queuing Telemetry Transport) là giao thức truyền thông tin nhắn theo mô hình publish/subscribe, lý tưởng cho các thiết bị IoT với băng thông thấp và độ tin cậy cao Giao thức này hoạt động hiệu quả trong các mạng lưới không ổn định, dựa vào một Broker nhẹ, dễ cài đặt và có tính mở, không bị ràng buộc bởi ứng dụng cụ thể nào.

MQTT là giao thức lý tưởng cho các môi trường có chi phí mạng cao, băng thông thấp hoặc không đáng tin cậy, đặc biệt khi hoạt động trên các thiết bị nhúng với tài nguyên hạn chế Với khả năng sử dụng băng thông thấp trong điều kiện độ trễ cao, MQTT rất phù hợp cho các ứng dụng M2M (Machine to Machine) và cũng được áp dụng trong Facebook Messenger.

MQTT là một giao thức lý tưởng cho các ứng dụng IoT nhờ vào những ưu điểm nổi bật như băng thông thấp, độ tin cậy cao và khả năng hoạt động hiệu quả ngay cả trong môi trường mạng không ổn định Nó tiêu tốn rất ít byte cho việc kết nối với server, cho phép giữ kết nối open liên tục và hỗ trợ kết nối nhiều thiết bị (MQTT client) thông qua một MQTT server (broker).

MQTT nổi bật với tính năng truyền thông điệp theo mô hình Pub/Sub, cho phép truyền tin phân tán một chiều và tách biệt với ứng dụng Việc truyền thông điệp diễn ra ngay lập tức mà không cần quan tâm đến nội dung Dữ liệu truyền được bao bọc nhỏ gọn, giảm tải cho đường truyền Giao thức nền tảng sử dụng là TCP/IP, và có ba mức độ tin cậy cho việc truyền dữ liệu (QoS: Quality of Service).

- QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức TCP/IP

QoS 1: Trong mô hình này, broker/client sẽ gửi dữ liệu và yêu cầu ít nhất một lần xác nhận từ phía nhận, điều này có nghĩa là có khả năng nhận được nhiều hơn một lần xác nhận cho dữ liệu đã gửi.

- QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một lần, quá trình này phải trải qua 4 bước bắt tay

MQTT được phát triển với tính năng nhẹ và linh hoạt, chỉ có một lớp bảo mật ở tầng ứng dụng thông qua xác thực client để truy cập broker Mặc dù vậy, MQTT vẫn có khả năng tích hợp với các giải pháp bảo mật đa tầng khác như VPN ở tầng mạng hoặc SSL/TLS ở tầng transport Mục tiêu chính của MQTT là phục vụ cho truyền thông machine-to-machine.

MQTT là một giao thức linh hoạt, có thể áp dụng cho nhiều kịch bản truyền thông như machine-to-cloud, cloud-to-machine và app-to-app Với việc sử dụng broker phù hợp và cài đặt MQTT client đúng cách, các thiết bị trên nhiều nền tảng khác nhau có thể giao tiếp dễ dàng và hiệu quả.

Giới thiệu cloud server

Cloud server hay Cloud VPS là dịch vụ máy chủ dựa trên nền tảng điện toán đám mây, cho phép chia sẻ tài nguyên từ một máy chủ vật lý Dịch vụ này hoạt động như một máy chủ riêng biệt (Dedicated Server), mang lại cho người dùng quyền kiểm soát và quản lý toàn bộ cloud server của mình.

Cloud server là giải pháp lý tưởng cho việc xây dựng hệ thống Mail Server, Web Server, Backup và Storage Server, mang lại sự dễ dàng, nhanh chóng và bảo mật trong triển khai Với nhiều ưu điểm vượt trội so với máy chủ ảo thông thường, cloud server nổi bật về độ ổn định và khả năng linh hoạt trong việc khởi tạo, cấp phát và nâng cấp cấu hình.

Tính sẵn sàng cao trong dịch vụ đám mây được đảm bảo nhờ cơ chế tự theo dõi trạng thái của các máy chủ Khi một trong các hệ quản trị ảo gặp sự cố, hệ thống sẽ tự động chuyển client sang server khác, giúp duy trì hoạt động liên tục và ổn định.

Khách hàng có thể dễ dàng nâng cấp tài nguyên bằng cách điều chỉnh giới hạn trên các server hiện có hoặc tạo thêm máy chủ ảo mới trong nội bộ để hỗ trợ cho hoạt động kinh doanh của mình.

- Trình quản lý vô cùng thân thiện: giao diện Cloud Server dựa trên nền tảng web 2.0 với đầy đủ các tính năng tiện ích

- Khả năng truy cập từ xa hiệu quả: mọi server đều cung cấp dịch vụ truy cập từ xa

- Sao lưu dữ liệu: Hệ thống Cloud Server được “backup” và lưu trữ hàng tuần dưới dạng “snapshot” giúp đảm bảo an toàn dữ liệu ở mức cao nhất

Cloud Server được trang bị hệ thống bảo mật nhiều lớp tiên tiến, đảm bảo an toàn liên tục cho dữ liệu Hệ thống này không chỉ bảo vệ dữ liệu ra vào mà còn cung cấp một giải pháp bảo mật toàn diện khi giao tiếp với bên ngoài.

Những công cụ khi sử dụng dịch vụ cloud server phổ biến nhất hiện nay:

Công cụ kết nối phổ biến cho các cloud server là hệ điều hành Linux và Windows Mỗi hệ điều hành có những công cụ riêng để kết nối với cloud server Đối với Linux Cloud Server, người dùng có thể sử dụng các công cụ kết nối thích hợp.

33 cụ PuTTY Để kết nối với Window Cloud Server, có thể sử dụng công cụ mRemoteNG hoặc công cụ Remote Desktop Connection

Để thực hiện việc upload và download dữ liệu giữa máy tính và Cloud Server, bạn cần sử dụng các công cụ phổ biến như FileZilla và WinSCP.

Với Thingspeak, bạn có thể đăng ký tài khoản miễn phí, nhưng dung lượng lưu trữ và quyền truy cập có giới hạn Tuy nhiên, điều này hoàn toàn phù hợp cho ứng dụng trong phạm vi khóa luận Để truy cập Thingspeak, hãy vào đường dẫn [https://thingspeak.com/](https://thingspeak.com/) Giao diện chính của Thingspeak là dashboard, nơi bạn có thể điều khiển và quản lý dữ liệu một cách dễ dàng.

Hình 3.3: Giao diện dashboard điều khiển và quản lý dữ liệu

Tại đây chúng ta có thể tạo ra các channel nơi chưa các dữ liệu mà thiết bị có thể gửi lên

NGHIÊN CỨU THUẬT TOÁN ĐIỀU KHIỂN VÀ PHẦN MỀM

Lưu đồ giải thuật phần mềm

4.1.1 Lưu đồ phần mềm trên mạch cảm biến

Khi bật công tắc nguồn cho mạch cảm biến, phần mềm sẽ khởi tạo các ngoại vi cần thiết như cảm biến công tắc từ để nhận diện tín hiệu đầu vào của sự kiện đóng hoặc mở cửa, đèn LED để thông báo sự thay đổi của cảm biến cho người dùng, và đặc biệt là khởi tạo Bluetooth năng lượng thấp.

Bluetooth sẽ ở chế độ advertising để phát tín hiệu quảng cáo Bản tin sẽ được phát ra dưới dạng khung truyền của chuẩn ibeacon

4.1.2 Lưu đồ phần mềm trên mạch điều khiển trung tâm

Mạch điều khiển trung tâm sau khi khởi động sẽ khởi tạo các ngoại vi cần thiết như wifi và BLE, đồng thời có đèn LED để báo hiệu trạng thái kết nối Để kết nối internet, cần cấu hình wifi cho thiết bị để nó có thể kết nối với modem và truyền tải thông tin ra bên ngoài.

Sử dụng ESP32, Hang đã cung cấp một chuẩn kết nối dễ dàng thông qua giao thức Blufi, kết hợp với ứng dụng di động ESP Blufi.

Sau khi mạch kết nối với WiFi, cần chờ để thiết lập kết nối với cloud Thingspeak qua giao thức MQTT Nếu không thể kết nối, hệ thống sẽ thông báo cho người dùng qua đèn LED để họ có thể kiểm tra lại cài đặt mạng.

Hình 4.2: Lưu đồ hoạt động của điều khiển trung tâm

Khi kết nối với đám mây, nhiệm vụ chính của mạch điều khiển trung tâm là liên tục kiểm tra kết nối với các cảm biến xung quanh để thu thập dữ liệu Mỗi khi có sự thay đổi trong dữ liệu, mạch điều khiển trung tâm sẽ gửi thông tin lên đám mây.

Cài đặt các thông số trên cloud server

Để thiết bị kết nối được thì chúng ta cần cấu hình một số thông số để có thiết bị có thể login được hợp lệ

Để cấu hình MQTT device, cần khởi tạo các thông số như Client ID, Username và Password, những thông số này sẽ được tích hợp vào phần mềm của thiết bị điều khiển trung tâm Lưu ý rằng password chỉ có thể được xem và tải về một lần duy nhất trên Thingspeak, vì vậy nếu mất password, bạn sẽ phải khởi tạo lại từ đầu.

Hình 4.3: Cài đặt thông số đăng nhập cho thiết bị

Tại mục channel setting, chúng ta sẽ cài đặt các tên biến để thiết bị gửi lên đúng vào tên này thì Thingspeak sẽ chấp nhận là lưu lại

Hình 4.4: Cài đặt thông số để lưu dữ liệu

Trong bài viết này, chúng tôi sẽ giới thiệu về việc tạo nhiều kênh cho các thiết bị khác nhau, mỗi kênh sẽ có một ID riêng ID này đóng vai trò quan trọng trong việc gửi dữ liệu lên chương trình Chúng tôi sẽ sử dụng Field 3 để theo dõi trạng thái cửa và thực hiện kích hoạt cũng như lưu lại thông tin này.

Lập trình phần mềm trên mạch điều khiển trung tâm và mạch cảm biến 37 1 Lâp trình mạch cảm biến

4.3.1 Lâp trình mạch cảm biến

Mạch cảm biến sử dụng module NRF52832 của hang Nordic Semiconductor Công cụ lập trình được cung cấp là KeilC cho dòng chip ARM

Trong chương trình, cần khởi tạo mảng dữ liệu theo chuẩn Ibeacon, với thông số quan trọng nhất là UUID UUID là mã 128bit (16byte) độc lập, và mạch điều khiển trung tâm cần lọc các thiết bị cảm biến có UUID này để thu thập dữ liệu.

Hình 4.5: Khung truyền của beacon

Trong chương trình main cần check trạng thái của cửa và update data vào bản tin beacon ở trên thông qua thông số Minor:

Hình 4.6: Xử lí đọc và update dữ liệu trạng thái cửa

4.3.2 Lâp trình mạch điều khiển trung tâm

Mạch điều khiển trung tâm sử dụng module ESP32 của hãng Espressif, với công cụ lập trình ESP-IDF Chương trình tập trung vào việc thu thập dữ liệu từ cảm biến và gửi thông tin này lên đám mây.

Từ cấu hình cloud Thingspeak ở trên trong chương trình cần khởi tạo giao thức MQTT với những thông số tương thích với cloud:

Hình 4.7: Cấu hình kết nối cloud

Thông số bao gồm địa chỉ kết nối hay host Cổng kết nối 1883 (không bảo mật)

Và 3 thông số đã khởi tạo từ cloud phía trên

Dữ liệu nhân được từ cảm biến sẽ xử lí thông qua bản tin beacon

Hình 4.8: Nhận và update dữ liệu lên cloud

Sau khi giải mã bản tin beacon, mạch điều khiển trung tâm sẽ thu thập trạng thái cảm biến cửa thông qua thông số minor đã được quy định Thông tin này sẽ được gửi lên kênh đã được cài đặt trên cloud Thingspeak.

Tiến hành kiểm thử nghiệm (kết quả Demo, kết quả thử nghiệm thực)

Sau khi đã hoàn thành các bước kiểm tra không có lỗi gì phát sinh ta bắt đầu tiến hành thử nghiệm

4.4.1 Sản phầm sau khi hoàn thiện

Hình 4.9: Mạch Điều khiển trung tâm - Gateway (mặt trước)

Hình 4.10: Mạch Điều khiển trung tâm - Gateway (mặt sau)

Hình 4.11: Mạch Cảm biến - Sensor (mặt trước)

Hình 4.12: Mạch Cảm biến - Sensor (mặt sau) 4.4.2 Kết quả dữ liệu trên cloud

Hình 4.13: Kết quả dữ liệu trên cloud

Dữ liệu trạng thái cửa được gửi lên cloud từ mạch điều khiển trung tâm, với thao tác thực hiện bằng cách thay đổi miếng nam châm tại khu vực cảm biến để mô phỏng hành động đóng mở cửa Trong đó, giá trị 1 tương ứng với cửa mở và 0 tương ứng với cửa đóng Tất cả các thông số đều được lưu trữ kèm theo lịch sử thời gian, giúp việc tra cứu và quản lý trở nên dễ dàng hơn.

Hướng phát triển

- BLE mạng Mesh với số cảm biến lớn;

- Phát triển mobile app riêng

KẾT LUẬN - TỒN TẠI - KIẾN NGHỊ

Kết luận

Sau khi thực hiện xong nội dung nghiên cứu của đề tài, em rút ra một số kết luận sau:

1 Nắm được xu hướng hiện tại của các công nghệ cũng như thiết bị trong hệ thống IoT nói chung và thiết bị smarthome nói riêng

2 Hiểu được các kiến thức về cách hoạt động các công nghệ chúng ta đang sử dụng hằng ngày như WIFI, Bluetooth

3 Hiểu về hệ thống mạng hệ thống internet, các giao thức truyền tải thông tin trong mạng internet

4 Tự tay thiết kế mạch, hiểu về quy trình thiết kế lựa chọn linh kiện, hàn lắp ráp mạch

5 Làm quen với việc lập trình trên các module chip của các hang như Espressif, Nordic Semiconductor.

Tồn tại

Trong quá trình thực hiện đề tài vẫn còn một số tồn tại sau:

1 Thiết kế mạch chưa nhỏ gọn chưa có vỏ sản phẩm

2 Chưa có app và web quản trị riêng, đang sử dụng của 1 bên thứ 3.

Kiến nghị 41 PHỤ LỤC

1 Nâng cấp mô hình hoạt động lên mạng nhiều thiết bị cảm biến hơn

2 Sớm đưa kết quả nghiên cứu vào ứng dụng trong thực tế

3 Thiết bị cảm biến cần được tối ưu thêm về lập trình để hướng đến tiết kiệm năng lượng trong thời gian 6 tháng đến 1 năm chỉ với viên pin nhỏ

PHỤ LỤC Phụ lục 1: Chường trình phần mềm trên mạch điều khiển trung tâm gateway

#include "mqttHandle.h" bool isBlufiRunning = false; uint16_t lastMinor = 100; static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_param_t

#define WIFI_LIST_NUM 10 static wifi_config_t sta_config; static wifi_config_t ap_config;

/* FreeRTOS event group to signal when we are connected & ready to make a request */ static EventGroupHandle_t wifi_event_group;

The event group enables the use of multiple bits for various events; however, our primary focus is on a single event—determining whether we are connected to the Access Point (AP) with an IP address The constant defined for this connection status is referred to as CONNECTED_BIT, represented by BIT0.

The article discusses the storage of station information for communication with a phone, highlighting key variables such as connection status flags for both the station and Bluetooth (BLE), as well as arrays for the BSSID and SSID It also notes the length of the SSID and includes a demo tag for identification purposes, along with an external vendor configuration for the ESP BLE iBeacon.

///Declare static functions static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param);

#if (IBEACON_MODE == IBEACON_RECEIVER) static esp_ble_scan_params_t ble_scan_params = {

scan_type = BLE_SCAN_TYPE_ACTIVE,

own_addr_type = BLE_ADDR_TYPE_PUBLIC,

scan_filter_policy = BLE_SCAN_FILTER_ALLOW_ALL,

scan_duplicate = BLE_SCAN_DUPLICATE_DISABLE

#elif (IBEACON_MODE == IBEACON_SENDER) static esp_ble_adv_params_t ble_adv_params = {

adv_type = ADV_TYPE_NONCONN_IND,

own_addr_type = BLE_ADDR_TYPE_PUBLIC,

channel_map = ADV_CHNL_ALL,

adv_filter_policy = ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY,

The function `esp_gap_cb` handles various BLE events, specifically processing the completion of setting raw advertisement data through the event `ESP_GAP_BLE_ADV_DATA_RAW_SET_COMPLETE_EVT`.

#if (IBEACON_MODE == IBEACON_SENDER) esp_ble_gap_start_advertising(&ble_adv_params);

} case ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT: {

#if (IBEACON_MODE == IBEACON_RECEIVER)

//the unit of the duration is second, 0 means scan permanently

ESP_LOGI(DEMO_TAG, " -iBeacon start scanning -"); uint32_t duration = 0; esp_ble_gap_start_scanning(duration);

} case ESP_GAP_BLE_SCAN_START_COMPLETE_EVT:

//scan start complete event to indicate scan start successfully or failed if ((err = param->scan_start_cmpl.status) != ESP_BT_STATUS_SUCCESS) {

BLUFI_INFO( "Scan start failed: %s", esp_err_to_name(err));

} break; case ESP_GAP_BLE_ADV_START_COMPLETE_EVT:

//adv start complete event to indicate adv start successfully or failed if ((err = param->adv_start_cmpl.status) != ESP_BT_STATUS_SUCCESS) {

BLUFI_INFO( "Adv start failed: %s", esp_err_to_name(err));

The ESP_GAP_BLE_SCAN_RESULT_EVT event is triggered during BLE scanning, providing access to scan results The scan_result parameter contains details about the scan, specifically the search event type When the event type is ESP_GAP_SEARCH_INQ_RES_EVT, it indicates that inquiry results have been received.

/* Search for BLE iBeacon Packet */ if (true)//esp_ble_is_ibeacon_packet(scan_result->scan_rst.ble_adv, scan_result-

>scan_rst.adv_data_len))

{ esp_ble_ibeacon_t *ibeacon_data = (esp_ble_ibeacon_t*)(scan_result-

>scan_rst.ble_adv); uint16_t major = ENDIAN_CHANGE_U16(ibeacon_data-

>ibeacon_vendor.major); uint16_t minor = ENDIAN_CHANGE_U16(ibeacon_data-

>ibeacon_vendor.minor); if(major == 258 && minor != lastMinor)

ESP_LOGI(DEMO_TAG, " -iBeacon Found -"); esp_log_buffer_hex("IBEACON_DEMO: Device address:", scan_result-

>scan_rst.bda, ESP_BD_ADDR_LEN ); esp_log_buffer_hex("IBEACON_DEMO: Proximity UUID:", ibeacon_data-

>ibeacon_vendor.proximity_uuid, ESP_UUID_LEN_128); lastMinor = minor;

ESP_LOGI(DEMO_TAG, "Major: 0x%04x (%d)", major, major);

ESP_LOGI(DEMO_TAG, "Minor: 0x%04x (%d)", minor, minor);

ESP_LOGI(DEMO_TAG, "Measured power (RSSI at a 1m distance):%d dbm", ibeacon_data->ibeacon_vendor.measured_power);

ESP_LOGI(DEMO_TAG, "RSSI of packet:%d dbm", scan_result-

>scan_rst.rssi); mqtt_publish_doorState((bool)lastMinor);

} case ESP_GAP_BLE_SCAN_STOP_COMPLETE_EVT: if ((err = param->scan_stop_cmpl.status) != ESP_BT_STATUS_SUCCESS){ BLUFI_INFO( "Scan stop failed: %s", esp_err_to_name(err));

ESP_LOGI(DEMO_TAG, "Stop scan successfully");

} break; case ESP_GAP_BLE_ADV_STOP_COMPLETE_EVT: if ((err = param->adv_stop_cmpl.status) != ESP_BT_STATUS_SUCCESS){

BLUFI_INFO( "Adv stop failed: %s", esp_err_to_name(err));

ESP_LOGI(DEMO_TAG, "Stop adv successfully");

} static void ip_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data)

When the IP_EVENT_STA_GOT_IP event is triggered, the system sets the connected bit in the Wi-Fi event group and retrieves the current Wi-Fi mode It initializes an esp_blufi_extra_info_t structure, populating it with the station's BSSID and SSID information If the Bluetooth Low Energy (BLE) connection is active, the system sends a Wi-Fi connection report indicating a successful connection.

BLUFI_INFO("BLUFI BLE is not connected yet\n");

} static void wifi_event_handler(void* arg, esp_event_base_t event_base, int32_t event_id, void* event_data)

The code snippet handles various Wi-Fi events in a switch statement When the event ID indicates that the station has started, the function `esp_wifi_connect()` is called to initiate a connection Upon successfully connecting, a global variable is set to true, and the BSSID and SSID of the connected network are copied into global variables for later use If the station gets disconnected, additional handling can be implemented.

The ESP32 WiFi libraries currently lack the functionality for automatic reassociation, necessitating a workaround To implement this, the global state for connection is reset, including clearing the SSID and BSSID buffers The connection process is initiated by calling `esp_wifi_connect()`, followed by clearing the connection status in the event group Additionally, when the Access Point (AP) starts, the WiFi mode is retrieved using `esp_wifi_get_mode()`.

If the BLE connection is established and the device is connected to the station, the system will proceed to report the Wi-Fi connection status by sending a connection report using the ESP-Bluefi protocol.

} else { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_FAIL, 0, NULL);

BLUFI_INFO("BLUFI BLE is not connected yet\n");

} break; case WIFI_EVENT_SCAN_DONE: { uint16_t apCount = 0; esp_wifi_scan_get_ap_num(&apCount); if (apCount == 0) {

BLUFI_INFO("Nothing AP found"); break;

} wifi_ap_record_t *ap_list = (wifi_ap_record_t *)malloc(sizeof(wifi_ap_record_t) * apCount); if (!ap_list) {

BLUFI_ERROR("malloc error, ap_list is NULL"); break;

To retrieve access point records, use the function `ESP_ERROR_CHECK(esp_wifi_scan_get_ap_records(&apCount, ap_list));` Allocate memory for the Bluetooth Wi-Fi access point list with `esp_blufi_ap_record_t * blufi_ap_list = (esp_blufi_ap_record_t *)malloc(apCount * sizeof(esp_blufi_ap_record_t));` Ensure to check for successful memory allocation; if `blufi_ap_list` is NULL, free the previously allocated `ap_list` to prevent memory leaks.

BLUFI_ERROR("malloc error, blufi_ap_list is NULL"); break;

{ blufi_ap_list[i].rssi = ap_list[i].rssi; memcpy(blufi_ap_list[i].ssid, ap_list[i].ssid, sizeof(ap_list[i].ssid));

} if (ble_is_connected == true) { esp_blufi_send_wifi_list(apCount, blufi_ap_list);

BLUFI_INFO("BLUFI BLE is not connected yet\n");

} esp_wifi_scan_stop(); free(ap_list); free(blufi_ap_list); break;

} static void initialise_wifi(void)

ESP_ERROR_CHECK(esp_netif_init()); wifi_event_group = xEventGroupCreate();

ESP_ERROR_CHECK(esp_event_loop_create_default()); esp_netif_t *sta_netif = esp_netif_create_default_wifi_sta(); assert(sta_netif);

ESP_ERROR_CHECK(esp_event_handler_register(WIFI_EVENT,

ESP_EVENT_ANY_ID, &wifi_event_handler, NULL));

ESP_ERROR_CHECK(esp_event_handler_register(IP_EVENT,

IP_EVENT_STA_GOT_IP, &ip_event_handler, NULL)); wifi_init_config_t cfg = WIFI_INIT_CONFIG_DEFAULT();

ESP_ERROR_CHECK( esp_wifi_init(&cfg) );

ESP_ERROR_CHECK( esp_wifi_set_mode(WIFI_MODE_STA) );

ESP_ERROR_CHECK( esp_wifi_start() );

} static esp_blufi_callbacks_t example_callbacks = {

event_cb = example_event_callback,

negotiate_data_handler = blufi_dh_negotiate_data_handler,

encrypt_func = blufi_aes_encrypt,

decrypt_func = blufi_aes_decrypt,

checksum_func = blufi_crc_checksum,

}; static void example_event_callback(esp_blufi_cb_event_t event, esp_blufi_cb_param_t

/* actually, should post to blufi_task handle the procedure,

* now, as a example, we do it more simply */ switch (event) { case ESP_BLUFI_EVENT_INIT_FINISH:

BLUFI_INFO("BLUFI init finish\n"); isBlufiRunning = true; esp_blufi_adv_start(); break; case ESP_BLUFI_EVENT_DEINIT_FINISH:

BLUFI_INFO("BLUFI deinit finish\n"); isBlufiRunning = false; break; case ESP_BLUFI_EVENT_BLE_CONNECT:

BLUFI_INFO("BLUFI ble connect\n"); ble_is_connected = true; esp_blufi_adv_stop(); blufi_security_init(); break; case ESP_BLUFI_EVENT_BLE_DISCONNECT:

BLUFI_INFO("BLUFI ble disconnect\n"); ble_is_connected = false; blufi_security_deinit(); esp_blufi_adv_start(); break; case ESP_BLUFI_EVENT_SET_WIFI_OPMODE:

The BLUFI function sets the Wi-Fi operating mode, as indicated by the parameter `param->wifi_mode.op_mode` It then checks for errors when applying this mode using `esp_wifi_set_mode` In the event of a request to connect to an access point, the process is initiated accordingly.

BLUFI_INFO("BLUFI requset wifi connect to AP\n");

/* there is no wifi callback when the device has already connected to this wifi so disconnect wifi before connection

*/ esp_wifi_disconnect(); esp_wifi_connect(); break; case ESP_BLUFI_EVENT_REQ_DISCONNECT_FROM_AP:

BLUFI_INFO("BLUFI requset wifi disconnect from AP\n"); esp_wifi_disconnect(); break; case ESP_BLUFI_EVENT_REPORT_ERROR:

The BLUFI report error is logged with the error code, and the error information is sent using esp_blufi_send_error_info When the ESP_BLUFI_EVENT_GET_WIFI_STATUS event occurs, the current Wi-Fi mode is retrieved If the device is connected to a station, the extra information is prepared, including the station's BSSID and SSID, and a successful connection report is sent using esp_blufi_send_wifi_conn_report.

} else { esp_blufi_send_wifi_conn_report(mode, ESP_BLUFI_STA_CONN_FAIL, 0, NULL);

BLUFI_INFO("BLUFI get wifi status from AP\n"); break;

} case ESP_BLUFI_EVENT_RECV_SLAVE_DISCONNECT_BLE:

BLUFI_INFO("blufi close a gatt connection"); esp_blufi_disconnect(); break; case ESP_BLUFI_EVENT_DEAUTHENTICATE_STA:

The code snippet handles the event for receiving a station's BSSID in ESP-BLUFI, copying the BSSID into the configuration structure and marking it as set Subsequently, it updates the Wi-Fi configuration for the station interface using the modified settings.

BLUFI_INFO("Recv STA BSSID %s\n", sta_config.sta.ssid); break; case ESP_BLUFI_EVENT_RECV_STA_SSID: strncpy((char *)sta_config.sta.ssid, (char *)param->sta_ssid.ssid, param-

>sta_ssid.ssid_len); sta_config.sta.ssid[param->sta_ssid.ssid_len] = '\0'; esp_wifi_set_config(WIFI_IF_STA, &sta_config);

BLUFI_INFO("Recv STA SSID %s\n", sta_config.sta.ssid); break; case ESP_BLUFI_EVENT_RECV_STA_PASSWD: strncpy((char *)sta_config.sta.password, (char *)param->sta_passwd.passwd, param-

>sta_passwd.passwd_len); sta_config.sta.password[param->sta_passwd.passwd_len] = '\0'; esp_wifi_set_config(WIFI_IF_STA, &sta_config);

BLUFI_INFO("Recv STA PASSWORD %s\n", sta_config.sta.password); break; case ESP_BLUFI_EVENT_RECV_SOFTAP_SSID: strncpy((char *)ap_config.ap.ssid, (char *)param->softap_ssid.ssid, param-

The configuration of the access point (AP) is updated by setting the SSID length to the specified value and ensuring the SSID string is properly terminated This is achieved through the assignment of the SSID length to the AP configuration and calling the function to apply the new settings to the Wi-Fi interface in AP mode.

The code snippet processes the reception of a SoftAP SSID and password, logging the SSID and its length It then securely copies the provided password into the configuration structure, ensuring proper termination of the string Finally, it updates the Wi-Fi configuration for the access point using the new settings.

Ngày đăng: 11/10/2023, 00:24

HÌNH ẢNH LIÊN QUAN

Hình 1.2: Cảm biến cửa - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 1.2 Cảm biến cửa (Trang 14)
Hình 1.3: Cảm biến cửa với đèn và rèm cửa thông minh - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 1.3 Cảm biến cửa với đèn và rèm cửa thông minh (Trang 15)
Hình 1.4: Cảm biến cửa với cảm biến chuyển động và camera thông minh - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 1.4 Cảm biến cửa với cảm biến chuyển động và camera thông minh (Trang 16)
Hình 2.4: Sơ đồ chân của module thu phát wifi bluetooth ESP32 - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.4 Sơ đồ chân của module thu phát wifi bluetooth ESP32 (Trang 22)
Hình 2.7: Module Bluetooth E73 chip nRF52832 - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.7 Module Bluetooth E73 chip nRF52832 (Trang 24)
Hình 2.8: Sơ đồ chân của module bluetooth E73 - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.8 Sơ đồ chân của module bluetooth E73 (Trang 26)
Hình 2.11: Sơ đồ nguyên lý mạch Điều khiển trung tâm (Gateway) - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.11 Sơ đồ nguyên lý mạch Điều khiển trung tâm (Gateway) (Trang 28)
Hình 2.14: Mô phỏng 3D mạch điều khiển trung tâm (mặt sau) - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.14 Mô phỏng 3D mạch điều khiển trung tâm (mặt sau) (Trang 30)
Hình 2.16: Khối vi xử lý của mạch Điều khiển trung tâm - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.16 Khối vi xử lý của mạch Điều khiển trung tâm (Trang 31)
Hình 2.18: Mô phỏng 2D mạch Cảm biến - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.18 Mô phỏng 2D mạch Cảm biến (Trang 32)
Hình 2.21: Khối nguồn của mạch Cảm biến (Sensor) - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.21 Khối nguồn của mạch Cảm biến (Sensor) (Trang 33)
Hình 2.23: Khối xử lý của mạch Cảm biến (Sensor) - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 2.23 Khối xử lý của mạch Cảm biến (Sensor) (Trang 34)
Hình 4.1: Lưu đồ phần mềm trên mạch cảm biến - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 4.1 Lưu đồ phần mềm trên mạch cảm biến (Trang 44)
Hình 4.2: Lưu đồ hoạt động của điều khiển trung tâm - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 4.2 Lưu đồ hoạt động của điều khiển trung tâm (Trang 45)
Hình 4.12: Mạch Cảm biến - Sensor (mặt sau) 4.4.2. Kết quả dữ liệu trên cloud - Nghiên cứu phát triển cảm biến trạng thái cửa ứng dụng trong hệ điều khiển của nhà thông minh (smarthome)
Hình 4.12 Mạch Cảm biến - Sensor (mặt sau) 4.4.2. Kết quả dữ liệu trên cloud (Trang 50)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w