1. Trang chủ
  2. » Công Nghệ Thông Tin

Giao trinh iot gateway python

36 64 0

Đ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 đề Giao Trình IoT Gateway Python
Tác giả Lê Trọng Nhân, Nguyễn Trần Hữu Nguyên, Võ Tấn Phương, Nguyễn Thanh Hải, Phạm Văn Vinh
Trường học The Dariu Foundation
Chuyên ngành IoT Gateway
Thể loại Tài Liệu Hướng Dẫn
Định dạng
Số trang 36
Dung lượng 6,21 MB

Cấu trúc

  • Chng Tao tài khoan trên Adafruit IO

    • Gii thiu

    • Kin trúc 4 thành phn cua ng dung

    • Tao tài khoan trên Adafruit IO

    • Tao kênh d liu (Feed)

    • Chia se Feed dang Public

    • Câu hoi ôn tp

  • Chng Thit k Dashboard trên Adafruit IO

    • Gii thiu

    • Tao Dashboard mi

    • Thit k giao din cho Dashboard

    • Chinh sa nút nhn

    • Kim tra kt ni gia Feed và Dashboard

    • Câu hoi ôn tp

  • Chng Hin thc IoT Gateway bng Python

    • Gii thiu

    • Thông tin xác thc

    • Tao d án trên PyCharm

    • Cài t th vin

      • Cài t bng pip install

      • Cài t bng GIT

    • Hin thc chng trình

      • Import th vin và khi tao

      • Hin thc hàm chc nang

      • Cu hình cho Gateway

      • Chay th chng trình

Nội dung

Lê Trọng Nhân Nguyễn Trần Hữu Nguyên Võ Tấn Phương Nguyễn Thanh Hải Phạm Văn Vinh Trang 2 The Dariu Foundation Mục lục Chương 1 Tạo tài khoản trên Adafruit IO 5 1 Giới thiệu 6 2 Kiến trúc 4 thành phần của ứng dụng 7 3 Tạo tài khoản trên Adafruit IO 8 4 Tạo kênh dữ liệu (Feed) 10 5 Chia sẻ Feed ở dạng Public 12 6 Câu hỏi ôn tập 14 Chương 2 Thiết kế Dashboard trên Adafruit IO 15 1 Giới thiệu 16 2 Tạo Dashboard mới 17 3 Thiết kế giao diện cho Dashboard 19 4 Chỉnh sửa nút nhấn 22 5 Kiểm tra kết nối.

Thiết kế Dashboard trên Adafruit IO 15

Tạo tài khoản trên Adafruit IO

Internet vạn vật (IoT) là cuộc cách mạng kết nối thiết bị không dây, mở rộng từ mạng Internet - thành tựu của cách mạng khoa học công nghệ lần thứ 3 Sự phát triển của vi cơ điện tử đã cho phép nhiều thiết bị, không chỉ máy tính, kết nối vào Internet, như điện thoại thông minh, máy tính bảng và thẻ thông minh Dự đoán đến năm 2025, sẽ có 75 tỉ thiết bị kết nối mạng, tạo nên một thế hệ mạng mới, đặc trưng cho cuộc cách mạng khoa học công nghệ lần thứ tư.

4, mạng Internet vạn vật, hay còn gọi là IoT - Internet of Things.

Dựa trên Internet vạn vật, các ứng dụng đã tiến hóa từ khái niệm thông minh sang tự hành (autonomous), với khả năng giám sát và tự động thích nghi trong các lĩnh vực như dịch vụ tại nhà, bãi giữ xe và hệ thống quan trắc nông nghiệp, thủy hải sản Theo Timothy Chou, kiến trúc ứng dụng thông minh dựa trên Internet vạn vật được phân chia thành 5 lớp mô hình, như mô tả trong hình bên dưới.

Hình 1.1:Kiến trúc 5 lớp của một ứng dụng Kết nối vạn vật

Chức năng chính của từng lớp trong kiến trúc này được khái quát như sau:

Trong ứng dụng giám sát, các thiết bị đóng vai trò quan trọng với sự đa dạng về số lượng và chức năng Nhiều loại cảm biến sẽ được sử dụng tùy thuộc vào từng ứng dụng cụ thể, trong khi các nốt cảm biến chủ yếu dựa vào giao tiếp không dây để truyền tải dữ liệu hiệu quả.

Lớp kết nối thu thập dữ liệu từ các nốt cảm biến cần hỗ trợ đa dạng các tiêu chuẩn kết nối tùy thuộc vào từng loại ứng dụng Điều này bao gồm giao tiếp Zigbee và Wifi cho các ứng dụng nhà thông minh với khoảng cách ngắn, cũng như các giao thức như LoRa và 3G/4G cho không gian rộng.

Sau khi thu thập, dữ liệu sẽ được gửi đến các server tập trung để lưu trữ Việc này tạo ra một lượng lớn dữ liệu, đặt ra thách thức lớn cho các server, yêu cầu ứng dụng công nghệ Big Data để xử lý hiệu quả.

Lớp học này tập trung vào việc lọc ra các thông tin đặc trưng và có ngữ nghĩa riêng biệt cho từng loại ứng dụng Các công nghệ Học Máy, đặc biệt là Học Sâu (Deep Learning), sẽ được áp dụng để đạt được mục tiêu này.

Hệ thống sẽ tự động xây dựng các quy luật thích nghi dựa trên thông tin đặc trưng, đồng thời đề xuất các quyết định phù hợp Mỗi quyết định sẽ được thực thi và đo đạc tự động, sai lệch so với mục tiêu tối ưu sẽ được xem xét để cải thiện trong tương lai Qua đó, hệ thống tích lũy "kinh nghiệm" theo thời gian, ngày càng trở nên thông minh và hoàn thiện hơn.

Trong bài viết này, chúng tôi sẽ tập trung vào lớp Connect trong giáo trình, với chức năng Gateway IoTs Thiết bị Gateway sẽ thu thập thông tin và gửi lên server, đồng thời nhận lệnh điều khiển từ server ở lớp Collect Chúng tôi sẽ sử dụng ngôn ngữ lập trình Python để hiện thực hóa Gateway Các nội dung chính sẽ được trình bày chi tiết trong hướng dẫn này.

• Kiến trúc 4 thành phần của ứng dụng dựa trên IoT

• Tạo tài khoản trên Adafruit IO Server

• Tạo kênh lưu trữ dữ liệu trên Adafruit IO

2 Kiến trúc 4 thành phần của ứng dụng

Dựa trên mô hình 5 lớp của kiến trúc IoTs, ứng dụng được chia thành 4 thành phần cơ bản: nốt cảm biến, gateway trung tâm, server và các thiết bị theo dõi dữ liệu cùng điều khiển từ xa.

Hình 1.2:Kiến trúc 4 thành phần trong ứng dụng IoT

Hạt nhân của kiến trúc này là Gateway IoT, được xây dựng từ sự kết hợp giữa máy tính và mạch Microbit Sự kết hợp này cho phép hiện thực hóa chức năng của Gateway bằng ngôn ngữ Python, với máy tính là thiết bị mạnh mẽ và tiện dụng Hệ thống có thể dễ dàng triển khai chương trình Python trên các máy tính nhúng như Raspberry PI Mạch Microbit được tích hợp nhằm mở rộng khả năng kết nối với nhiều mạch cảm biến khác thông qua kỹ thuật giao tiếp không dây.

Nhiều mạch Microbit có thể hoạt động như các nốt cảm biến, gửi dữ liệu về mạch Microbit trung tâm để chuyển lên máy tính Tại đây, chương trình Python sẽ gửi dữ liệu lên server Adafruit IO, cho phép các thiết bị theo dõi từ xa như điện thoại di động hoặc máy tính khác theo dõi dữ liệu hệ thống Khi cần điều khiển thiết bị, luồng dữ liệu sẽ từ thiết bị đầu cuối quay ngược về nốt cảm biến để thực hiện lệnh điều khiển.

Trong hướng dẫn này, chúng ta sẽ hướng dẫn cách tạo tài khoản trên server Adafruit IO, điều này là bước đầu tiên trước khi sử dụng nó để lưu trữ dữ liệu cảm biến và quản lý tín hiệu điều khiển.

3 Tạo tài khoản trên Adafruit IO

Bước 1: Vào trang web chính tại địa chỉ https://io.adafruit.com/ Giao diện sau đây ở hiện ra.

Hình 1.3:Trang chủ của Adafruit IO

Để đăng nhập vào hệ thống, người dùng chỉ cần nhấn vào nút "Sign In" nếu đã có tài khoản Nếu chưa có tài khoản, nút này cũng sẽ hướng dẫn người dùng đến trang để tạo tài khoản mới.

Bước 2: Vì chúng ta chưa có tài khoản, nên ở bước này, chúng ta sẽ chọn tiếpSign

Upđể đăng kí tài khoản.

Hình 1.4:Tạo tài khoản trên Adafruit IO

Bước 3: Nhập thông tin cá nhân bao gồm Họ và Tên, Email, Tên đăng nhập và Mật khẩu Lưu ý, tên đăng nhập không được chứa ký tự đặc biệt Cuối cùng, nhấn nút "Tạo tài khoản" để hoàn tất quá trình đăng ký, như hướng dẫn dưới đây.

Hình 1.5:Giao diện đăng ký tài khoản

Sau khi hoàn tất việc tạo tài khoản, hệ thống sẽ tự động đăng nhập cho bạn Tuy nhiên, trong các lần truy cập tiếp theo, bạn có thể dễ dàng đăng nhập vào hệ thống bằng chức năng đã được cung cấp.

Hiện thực IoT Gateway bằng Python 27

Cài đặt bằng pip install

Đối với phương pháp này, chúng ta sẽ càn mở cửa sổTerminaltrên PyCharm, và gõpip install adafruit-io, sau đó nhấn Enter, như minh họa bên dưới:

Hình 3.8:Cài đặt thư viện Adafruit IO

PyCharm sẽ tải thư viện về máy tính của chúng ta và cài đặt Sau khi cài đặt thành công, sẽ có thông báo sau đây xuất hiện:

Hình 3.9:Cài đặt thư viện thành công

Đến thời điểm này, chúng ta đã chuẩn bị để triển khai chương trình Nếu việc cài đặt thư viện không thành công, bạn có thể tham khảo phương pháp thứ hai trong phần tiếp theo.

Cài đặt bằng GIT

Để thực hiện cách thứ hai, bạn cần tải file ZIP từ server GIT mà chúng tôi đã xây dựng Truy cập vào trang chủ tại địa chỉ https://github.com/npnlab-vn/python_libs, nơi bạn sẽ thấy giao diện hiển thị với nhiều thư viện được phát triển sẵn theo từng giáo trình.

Hình 3.10:GIT lưu các thư viện lập trình Python

Để tải thư viện về máy tính, trước tiên bạn cần chọn nhánh chính xác bằng cách nhấn vào lựa chọn ở vị trí 1, sau đó tìm đến nhánh IoT_CoBan_64bit-v3.8 Nếu máy tính của bạn có cấu hình khác hoặc sử dụng phiên bản Python khác, hãy chọn thư viện phù hợp với hệ thống của mình.

Bước 2: Sau khi lựa chọn nhánh chính xác, bạn có thể tải thư viện bằng cách nhấn vào nút Code và chọn tùy chọn tải file ZIP trong mục Download ZIP Đừng quên chọn đường dẫn để lưu trữ file vừa tải về.

Bước 3: Giải nén file ZIP đã tải về bằng cách nhấn chuột phải và chọn "Extract Here" Sau khi giải nén, nhấn chuột phải vào thư mục vừa tạo để sao chép, hoặc sử dụng phím tắt Ctrl+C.

Hình 3.11:Giải nén thư viện bằng lệnh Extract Here

Bước 4: Sao chép thư mục đã giải nén và dán vào thư mục lưu dự án đã tạo trước đó Trong thư mục này, bạn sẽ tìm thấy file main.py.

Hình 3.12:Thư viện đã được thêm vào dự án

Sau khi hoàn thành bước này, khi trở lại môi trường lập trình PyCharm, người dùng sẽ thấy các thư viện và tập tin đính kèm hiển thị trong cửa sổ dự án.

Bước 5: Click chuột phải vào filesetup.pyvà chọnRun, để tiến hành cài đặt thư viện, như minh họa ở hình bên dưới:

Hình 3.13:Cài đặt thư viện bằng cách chạy file setup.py

Sau khi việc cài đặt hoàn tất, thông báo sau đây sẽ xuất hiện:

Hình 3.14:Cài đặt thư viện thành công

Nếu việc cài đặt không thành công, hãy kiểm tra phiên bản Python của bạn Thông tin này có thể được tìm thấy trong mục Base Interpreter khi bạn tạo dự án, giúp tải lại thư viện cho phù hợp.

Chúng ta sẽ bắt đầu làm việc với file main.py để triển khai chức năng của chương trình Các bước thực hiện trong file này sẽ được mô tả chi tiết như dưới đây.

Import thư viện và khởi tạo

Ở bước này, việc kiểm tra xem cài đặt thư viện đã hoàn tất hay chưa là rất quan trọng Bên cạnh đó, bạn cần điền thông tin cho Feed dữ liệu, cũng như Username và Key của tài khoản Các dòng lệnh đầu tiên sẽ bao gồm: `import sys` và `from Adafruit_IO import MQTTClient`.

AIO_FEED_ID␣=␣"bbc-led"

AIO_KEY␣=␣"aio_radR12aVJMai2YJiGBs1V6TBR06l"

Chương trình 3.1: Import thư viện và khởi tạo

Để thực thi chương trình trong file main.py, bạn chỉ cần nhấn chuột phải vào file và chọn "Run" Từ lần thực thi thứ hai trở đi, bạn có thể sử dụng nút "Run" trên thanh công cụ của PyCharm.

Hiện thực hàm chức năng

Kết nối giữa IoT Gateway và Server Adafruit sử dụng giao thức MQTT (Message Queuing Telemetry Transport), một giao thức truyền thông dựa trên cơ chế publish/subscribe, phù hợp cho các thiết bị Internet of Things (IoT) Dưới đây là bốn hàm cần thiết để vận hành giao thức MQTT tại Gateway IoT, với cách hiện thực các hàm này được trình bày cụ thể.

␣␣␣␣print("Ket␣noi␣thanh␣cong ")

␣␣␣␣client.subscribe(AIO_FEED_ID) def␣␣subscribe(client␣,␣userdata␣,␣mid␣,␣granted_qos):

␣␣␣␣print("Subcribe␣thanh␣cong ") def␣␣disconnected(client):

␣␣␣␣sys.exit␣(1) def␣␣message(client␣,␣feed_id␣,␣payload):

␣␣␣␣print("Nhan␣du␣lieu:␣"␣+␣payload)

Chương trình 3.2: Các hàm chức năng cho phép Gateway kết nối thành công với server và subscribe vào kênh dữ liệu để nhận thông tin Khi có dữ liệu từ bất kỳ nguồn nào gửi lên Feed, dữ liệu này sẽ tự động được chuyển đến Gateway IoT, và hàm message sẽ tự động thực thi mà không cần can thiệp nhiều từ người dùng.

Cấu hình cho Gateway

Bước cuối cùng để hiện thực hóa Gateway là tạo một đối tượng MQTT Client để liên kết với các hàm chức năng đã được định nghĩa trước đó Các lệnh bổ sung cho chương trình bao gồm việc khởi tạo client với tên người dùng và khóa AIO, thiết lập các hàm xử lý kết nối, ngắt kết nối, nhận tin nhắn và đăng ký Cuối cùng, client sẽ kết nối và thực hiện vòng lặp chặn.

Chương trình 3.3: Cấu hình cho đối tượng MQTT Client

Ngày đăng: 30/04/2022, 07:08

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Kiến trúc 5 lớp của một ứng dụng Kết nối vạn vật - Giao trinh iot gateway python
Hình 1.1 Kiến trúc 5 lớp của một ứng dụng Kết nối vạn vật (Trang 6)
Hình 1.2: Kiến trúc 4 thành phần trong ứng dụng IoT - Giao trinh iot gateway python
Hình 1.2 Kiến trúc 4 thành phần trong ứng dụng IoT (Trang 7)
Hình 1.3: Trang chủ của Adafruit IO - Giao trinh iot gateway python
Hình 1.3 Trang chủ của Adafruit IO (Trang 8)
Hình 1.4: Tạo tài khoản trên Adafruit IO - Giao trinh iot gateway python
Hình 1.4 Tạo tài khoản trên Adafruit IO (Trang 9)
Hình 1.5: Giao diện đăng ký tài khoản - Giao trinh iot gateway python
Hình 1.5 Giao diện đăng ký tài khoản (Trang 9)
Hình 1.6: Truy cập vào các kênh dữ liệu - Giao trinh iot gateway python
Hình 1.6 Truy cập vào các kênh dữ liệu (Trang 10)
Hình 1.9: Kênh dữ liệu mới được tạo thành công - Giao trinh iot gateway python
Hình 1.9 Kênh dữ liệu mới được tạo thành công (Trang 11)
Hình 1.8: Điền thông tin cần thiết cho kênh dữ liệu - Giao trinh iot gateway python
Hình 1.8 Điền thông tin cần thiết cho kênh dữ liệu (Trang 11)
Hình 1.12: Thông tin của feed dữ liệu - Giao trinh iot gateway python
Hình 1.12 Thông tin của feed dữ liệu (Trang 12)
Hình 1.11: Một cách khác để truy cập vào feed - Giao trinh iot gateway python
Hình 1.11 Một cách khác để truy cập vào feed (Trang 12)
Hình 2.1: Giao diện Dashboard điều khiển đèn - Giao trinh iot gateway python
Hình 2.1 Giao diện Dashboard điều khiển đèn (Trang 16)
Hình 2.2: Truy cập vào Dashboard của tài khoản - Giao trinh iot gateway python
Hình 2.2 Truy cập vào Dashboard của tài khoản (Trang 17)
Hình 2.3: Tạo mới một Dashboard - Giao trinh iot gateway python
Hình 2.3 Tạo mới một Dashboard (Trang 17)
Hình 2.4: Hoàn thiện thông tin cho Dashboard - Giao trinh iot gateway python
Hình 2.4 Hoàn thiện thông tin cho Dashboard (Trang 18)
Hình 2.6: Xóa một Dashboard trong danh sách - Giao trinh iot gateway python
Hình 2.6 Xóa một Dashboard trong danh sách (Trang 18)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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