Skip to content

Latest commit

 

History

History
402 lines (288 loc) · 12.5 KB

bai-18.rst

File metadata and controls

402 lines (288 loc) · 12.5 KB

21. Bài 18: Điều khiển và giám sát robot qua IoT ========================================

Mục tiêu:


  1. Làm quen với khái niệm Internet vạn vật (IoT), WiFi và MQTT
  2. Thực hành lập trình có thể điều khiển và giám sát các hoạt động và trạng thái của robot qua Internet

    image

Giới thiệu về công nghệ IoT, WiFi và MQTT -------------------------------

  • Công nghệ IoT: IoT (Internet vạn vật) là mạng kết nối hàng tỷ thiết bị trên khắp thế giới qua Internet

    • Xây dựng thành phố thông minh:

    image

    • Internet công nghiệp:

    image

    • Hỗ trợ nông nghiệp và nhiều ứng dụng khác

    image

  • Kết nối WiFi trong IoT: Có vai trò cực kỳ quan trọng trong IoT, là công nghệ chính để truyền dữ liệu trong hệ thống IoT

    image

  • Giao thức MQTT: Là giao thức truyền thông tin nhẹ và nhanh giữa các thiết bị, phù hợp cho các thiết bị IoT

    • Gồm 2 phần chính: Broker (Server) và các Clients (thiết bị hay máy tính)
    • Client có thể publish các message lên một topic cụ thể hoặc subscribe một topic nào đó để nhận message từ topic này

    image

Giới thiệu khối lệnh -----------------------------------

  • Tải thư viện lập trình MQTT trên OhStem App:

    1. Trong danh mục khối lệnh, chọn vào khối MỞ RỘNG để mở các thư viện mở rộng, như minh họa ở hình dưới:

    image

    1. Nhập từ khóa MQTT vào ô tìm kiếm, sau đó nhấn Enter. Kết quả của việc tìm kiếm sẽ xuất hiện như hình:

    image

    1. Nhấn vào MQTT để thêm thư viện. Khi thông báo sau đây xuất hiện, bạn chọn OK.

    image

    Phần mềm sẽ yêu cầu bạn kết nối với mạch Yolo:Bit, tuy nhiên, bạn có thể bỏ qua bước này. Sau đó, chúng ta sẽ có một nhóm khối lệnh mới như hình:

    image

  • Các khối lệnh trong MQTT:

    • Khối lệnh kết nối vào mạng WiFi (bạn cần nhập tên và mật khẩu WiFi)

    image

    • Khối lệnh kết nối đến chương trình điều khiển với username và key đã đặt ở bảng giám sát

    image

    • Khối lệnh đăng ký nhận thông tin gửi vào chủ đề (thường là nhận lệnh từ bảng điều khiển Dashboard)

    image

Tạo bảng điều khiển IoT (Dashboard) -------------------------------

  1. Tại giao diện chính của OhStem App, chọn Bảng điều khiển IoT

    image

  2. Chọn Tạo mới

    image

  3. Kéo thả và sắp xếp các công cụ điều khiển (widget) theo ý muốn

    image

Giao diện cấu hình bảng điều khiển IoT

image

Điều khiển đổi màu Rover từ Internet ---------------------------------------

Yêu cầu: Cấu hình Color Picker để bật tắt đèn LED trên Rover

Cấu hình bảng điều khiển IoT

  1. Trong giao diện bảng điều khiển IoT, kéo thả Color Picker ra ngoài

image

  1. Nhấn vào Color Picker và cấu hình kênh là V1.

image

  1. Nhấn nút Play để chuyển về chế độ điều khiển

image

Lập trình và nạp vào robot Rover:

  1. Kết nối vào mạng WiFi. Đây là bước đầu mà chúng ta cần làm để thiết bị có thể kết nối với Internet. Cũng giống như máy tính, việc kết nối với mạng WiFi bất kỳ chỉ cần được thực hiện một lần. Do đó, chúng ta sẽ lập trình tính năng này trong phần bắt đầu của chương trình.

image

Lưu ý: Trong câu lệnh này, bạn cần cung cấp đúng 2 thông tin là tên và mật khẩu của WiFi cho Yolo:Bit.

  1. Sau khi kết nối với mạng WiFi, chúng ta sẽ lập trình để Yolo:Bit kết nối với server OhStem mà chúng ta đã tạo trước đó, thông qua 2 thông tin là Username và key sẽ bỏ trống.

    • Với Username lấy trong bảng điều khiển IoT

image

  1. Cuối cùng cần đăng ký nhận thông tin gửi vào chủ đề - topic đã cấu hình trước đó. Ở đây cấu hình đã chọn cho Color Picker trước đó là V1.

Lưu ý: Cần ghi đúng chính xác tên của chủ đề.

image

Mỗi khi nút nhấn trên Dashboard được nhấn, dữ liệu sẽ được tự động lưu lại trong biến thông tin. Phần hướng dẫn này sẽ được trình bày ở các phần sau.

  1. Liên kết định kỳ đến Server.

Sau các bước cấu hình ở trên, chúng ta cần phải tạo một liên kết định kì với Server. Việc này được thực hiện lặp đi lặp lại liên tục, nên chúng ta cần phải hiện thực nó trong khối lặp lại mãi, như sau:

image

Chu kì kiểm tra kết nối với Server mà chúng tôi đề xuất ở đây là 1 giây, tức là 1000ms (sử dụng câu lệnh tạm dừng trong mục CƠ BẢN). Thời gian dừng càng lớn thì việc nhận tín hiệu điều khiển khi nhấn nút sẽ chậm. Tuy nhiên, nếu thời gian dừng nhỏ thì chúng sẽ làm tốn tài nguyên của mạng Internet (do mạch Yolo:Bit phải thường xuyên truy cập và gửi dữ liệu lên Server Adafruit IO).

Trong các ứng dụng hiện tại, chúng ta nên sử dụng độ trễ 1 giây.

  1. Xử ký dữ liệu nhận được từ Server OhStem. Để xử lý dữ liệu nhận được (lưu trong biến thông tin), chúng ta cần phải lập trình trong phần bắt đầu.

Chương trình hoàn chỉnh như sau:

image

Định kỳ cập nhập thông tin lên Server IoT ---------------------------------------

Yêu cầu: Định kỳ cập nhật thông tin nhiệt độ, ánh sáng từ Rover lên Server IoT (bảng điều khiển)

Cấu hình bảng điều khiển IoT

  1. Kéo Widget thông tin ra ngoài

image

  1. Đặt tên, cấu hình kênh V2 và chọn cách hiển thị

image

  1. Thực hiện tương tự với ánh sáng (V3)

image

Thư viện sự kiện

  1. Chọn Mở rộng trong giao diện lập trình thiết bị.

image

  1. Tải thư viện SỰ KIỆN

image

  1. Tải hoàn tất:

image

Lập trình cho Rover như sau:

  1. Viết chương trình sau mỗi 2 giây thông tin nhiệt độmức độ sáng sẽ được cập nhật lên bảng điều khiển. Chương trình như sau:

image

  1. Chương trình hoàn chỉnh để gửi thông tin lên bảng điều khiển.

image

Điều khiển robot qua Internet ---------------------------------

Yêu cầu: Điều khiển bật / tắt đèn pha 2 bên của robot Rover thông qua bảng điều khiển IoT

Cấu hình bảng điều khiển IoT

  1. Kéo Widget thông tin ra ngoài

image

  1. Đặt tên, cấu hình kênh V4.

image

  1. Thực hiện tương tự cho đèn phải (V5)

image

Lập trình cho Rover như sau:

  1. Thêm 2 khối lệnh để đăng ký nhận thông tin từ chủ đề V4 (cho đèn LED bên trái) và V5 (cho đèn LED bên phải)

image

  1. So sánh thông tin nhận được với giá trị kiểu chuỗi “1” và “0” bằng khối lệnh trong mục Chữ viết

image

Chương trình hoàn chỉnh như sau:

image

Điều khiển di chuyển qua Internet -------------------------------

Yêu cầu: Điều khiển robot di chuyển theo các hướng thông qua bảng điều khiển IoT

Cấu hình bảng điều khiển IoT

  1. Kéo Widget Joystick ra ngoài

image

  1. Chọn kênh thông tin V6

image

Lập trình cho Rover như sau:

  1. Thêm khối lệnh đăng ký nhận thông tin từ chủ đề V6

image

  1. So sánh thông tin nhận được và điều khiển robot tương ứng

image

Chương trình mẫu


  • Điều khiển đèn từ Internet: Tại đây

    image

  • Định kỳ cập nhật thông tin lên Server IoT: Tại đây

    image

  • Điều khiển bật / tắt đèn pha 2 bên của robot Rover thông qua bảng điều khiển IoT: Tại đây

    image

  • Điều khiển di chuyển qua Internet: Tại đây

    image