Giao trinh iot gateway python

36 59 0
Giao trinh iot gateway python

Đ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

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.

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 The Dariu Foundation Mục lục Chương Tạo tài khoản Adafruit IO Giới thiệu Kiến trúc thành phần ứng dụng Tạo tài khoản Adafruit IO Tạo kênh liệu (Feed) Chia sẻ Feed dạng Public Câu hỏi ôn tập 10 12 14 Chương Thiết kế Dashboard Adafruit IO Giới thiệu Tạo Dashboard Thiết kế giao diện cho Dashboard Chỉnh sửa nút nhấn Kiểm tra kết nối Feed Dashboard Câu hỏi ôn tập 15 16 17 19 22 23 25 Chương Hiện thực IoT Gateway Python Giới thiệu Thông tin xác thực Tạo dự án PyCharm Cài đặt thư viện 4.1 Cài đặt pip install 4.2 Cài đặt GIT Hiện thực chương trình 5.1 Import thư viện khởi tạo 5.2 Hiện thực hàm chức 5.3 Cấu hình cho Gateway 5.4 Chạy thử chương trình 27 28 29 30 31 32 32 35 35 35 36 36 Phát triển IoT Gateway Python Trang Trang The Dariu Foundation CHƯƠNG Tạo tài khoản Adafruit IO Giới thiệu Internet vạn vật, hay gọi Internet of Things – IoTs, cách mạng việc kết nối thiết bị không dây với Ban đầu, có mạng Internet, thành tựu cách mạng khoa học công nghệ lần thứ 3, cho phép máy tính kết nối trao đổi thơng tin toàn cầu Tuy nhiên, với phát triển nhanh chóng ngành vi điện tử (Micro Electro Mechanical System), khơng máy tính, nhiều thiết bị có khả kết nối vào mạng Internet Thơng dụng sống mà kể đến điện thoại thông minh, máy tính bảng, loại thẻ thơng minh (Smart cards) hay nốt mạng cảm biến không dây (Wireless Sensor Networks) Theo ước tính cộng đồng khoa học, đến năm 2025 có 75 tỉ thiết bị kết nối mạng Internet với Với đặc tính đó, hệ mạng hình thành, sản phẩm đặc trưng cho cách mạng khoa học công nghệ lần thứ 4, mạng Internet vạn vật, hay gọi IoT - Internet of Things Dựa mạng Internet vạn vật, ứng dụng khơng cịn khái niệm thơng minh nữa, mà tiến lên bước cao hơn, gọi tự hành (autonomous), chẳng hạn ứng dụng giám sát tự động thích nghi việc điền khiển dịch vụ nhà, bãi giữ xe, hay hệ thống quan trắc nông nghiệp, thủy hải sản Theo diễn giả tiếng Timothy Chou, kiến trúc ứng dụng thông minh dựa Internet vạn vật ông chia thành mơ hình lớp, mơ tả hình bên Hình 1.1: Kiến trúc lớp ứng dụng Kết nối vạn vật Chức lớp kiến trúc khái quát sau: • Things: Các thiết bị ứng dụng giám sát Chúng ta thấy, lớp phong phú mặt số lượng đa dạng chức Rất nhiều loại cảm biến dùng, tùy vào ứng dụng giám sát Bên cạnh đó, nốt cảm biến chủ yếu dựa vào giao tiếp khơng dây • Connect: Thu thập liệu từ nốt cảm biến Do có nhiều tiêu chuẩn kết nối tùy theo loại ứng dụng, lớp phải hỗ trợ nhiều loại kết nối, từ Trang The Dariu Foundation giao tiếp Zigbee Wifi ứng dụng nhà thông minh, với khoảng cách giao tiếp ngắn giao không gian rộng LoRa hay 3G/4G • Collect: Sau liệu thu thập, chúng gửi lên server tập trung để lưu trữ liệu Tại đây, lượng lớn liệu đẩy về, tạo thách thức không nhỏ cho server phải ứng dụng công nghệ Big Data (dữ liệu lớn) để xử lý • Learn: Nhiệm vụ lớp lọc thông tin đặc trưng, có ngữ nghĩa đặc thù cho loại ứng dụng Các công nghệ Học Máy Học Sâu (Deep Learning) áp dụng • Do: Dựa vào thơng tin đặc trưng, hệ thống xây dựng nên quy luật thích nghi theo ngoại cảnh, đề xuất định cho hệ thống Với định, việc thực thi đo đạc cách tự động, sai lệnh định so với mục tiêu tối ưu xem xét lại cho lần sau Theo cách này, hệ thống tự động tích lũy “kinh nghiệm” thời gian dài, để ngày trở nên thơng minh hồn thiện Trong giáo trình này, hướng dẫn tập trung lớp Connect, với chức gọi Gateway IoTs Thiết bị đóng vai trị làm Gateway, tập hợp thơng tin gửi lên server, nhận điều khiển từ phía server lớp Collect Chúng thực Gateway ngơn ngữ lập trình Python Các nội dung hướng dẫn sau: • Kiến trúc thành phần ứng dụng dựa IoT • Tạo tài khoản Adafruit IO Server • Tạo kênh lưu trữ liệu Adafruit IO Kiến trúc thành phần ứng dụng Dựa mơ hình lớp kiến trúc IoTs, phân ứng dụng thành thành phần bản, bao gồm nốt cảm biến, gateway trung tâm, server thiết bị để theo dõi liệu điều khiển từ xa, trình bày hình bên dưới: Hình 1.2: Kiến trúc thành phần ứng dụng IoT Phát triển IoT Gateway Python Trang Hạt nhân trung tâm kiến trúc Gateway IoT, xây dựng cách kết hợp máy tính mạch Microbit Sở dĩ có kết hợp này, chức Gateway thực ngơn ngữ Python Máy tính thiết bị mạnh mẽ tiện dụng cho yêu cầu Thêm nữa, triển khai hệ thống, chương trình Python dễ dàng sử dụng lên máy tính nhúng, chẳng hạn Raspberry PI chẳng hạn Mạch Microbit gắn thêm vào với nhu cầu mở rộng kết nối với nhiều mạch cảm biến khác kĩ thuật giao tiếp không dây mạch Microbit Nhiều mạch Microbit đóng vai trị nốt cảm biến, gửi liệu mạch Microbit trung tâm, nơi chuyển liệu lên máy tính Tại đây, chương trình viết ngơn ngữ Python gửi liệu lên server Adafruit IO Từ đó, thiết bị theo dõi từ xa điện thoại di động hay chí máy tính khác theo dõi liệu hệ thống Trong trường hợp muốn điều khiển thiết bị, luồng liệu ngược từ phía thiết bị đầu cuối nốt cảm biến, để thi hành lệnh điều khiển Trong hướng dẫn này, bắt đầu tạo tài khoản server Adafruite IO, trước sử dụng để lưu trữ liệu cảm biến luân chuyển tín hiệu điều khiển Tạo tài khoản Adafruit IO Bước 1: Vào trang web địa https://io.adafruit.com/ Giao diện sau Hình 1.3: Trang chủ Adafruit IO Bạn đọc nhấn vào nút Sign In để đăng nhập vào hệ thống có tài khoản Tuy nhiên, nút dẫn đến trang tạo tài khoản bước Bước 2: Vì chưa có tài khoản, nên bước này, chọn tiếp Sign Up để đăng kí tài khoản Trang The Dariu Foundation Hình 1.4: Tạo tài khoản Adafruit IO Bước 3: Cung cấp thông tin cá nhân(FIRST NAMEvà LAST NAME), Email, Tên đăng nhập Mật Riêng với tên đăng nhập, bạn khơng sử dụng kí tự đặc biệt Cuối cùng, nhấn vào nút CREATE ACCOUNT để tạo tài khoản, hướng dẫn bên Hình 1.5: Giao diện đăng ký tài khoản Sau tạo tài khoản thành công, hệ thống tự đăng nhập Tuy nhiên, lần làm việc tiếp theo, bạn đọc hoàn tồn đăng nhập vào hệ thống với chức Sign In Phát triển IoT Gateway Python Trang Tạo kênh liệu (Feed) Để lưu liệu server, cần phải phân loại cho Thơng thường, gọi kênh liệu, hay feed Mỗi đối tượng hệ thống thường có kênh liệu cho riêng Chẳng hạn để lưu trạng thái bóng đèn, cần kênh liệu, tên BBC_LED chẳng hạn Sau đăng nhập vào hệ thống thành công, bắt đầu tạo kênh liệu đầu tiên, với bước hướng dẫn bên Bước 1: Mở danh sách kênh liệu, cách nhấn vào Feeds, minh họa hình bên dưới: Hình 1.6: Truy cập vào kênh liệu Tiếp theo đó, chọn tiếp vào tính View all để liệt kênh tất kênh liệu có tài khoản, minh họa hình sau đây: Hình 1.7 : Danh sách kênh có sẵn Trong minh họa hình trên, tài khoản chưa có kênh liệu cả, đăng kí lần Một kênh liệu tạo cách nhấn vào nút New Feed Bước 2: Điền thông tin cho kênh liệu, minh họa hình bên Trang 10 The Dariu Foundation • Button Off Value: Trường cho ta tùy chỉnh liệu gửi nút bấm để trở thành trạng thái tắt Chúng ta quy định liệu cho trường Ngồi ra, bạn đọc kiểm tra việc thay đổi giao diện nút nhấn, có liệu gửi lên Feed, cách nhập giá trị ô Test Value Chức mơ hình ảnh nút nhấn, vận hành thực tế Cuối cùng,ta chọn Create block nút nhấn xuất Dashboard bạn, sau Hình 2.12: Nút nhấn tạo Dashboard Chỉnh sửa nút nhấn Trong số trường hợp, có nhu cầu cài đặt lại cho đối tượng nút nhấn, chẳng hạn làm cho kích thước to hơn, thay đổi giá trị cho trạng thái Bật/Tắt, chí xóa nút nhấn Tính hiệu chỉnh kích hoạt, cách nhấn vào biểu tượng cài đặt, chọn tiếp vào Edit Layout, hướng dẫn bên dưới: Hình 2.13: Chỉnh sửa đối tượng nút Các đối tượng giao diện Dashboard lúc xuất thêm biểu tượng cài đặt riêng Khi nhấn vào biểu tượng này, chọn tiếp Edit Block, giao diện cũ trình bày Hình 2.11 xuất để bạn đọc thay đổi thông tin cấu Trang 22 The Dariu Foundation hình Tính xóa đối tượng giao diện xuất danh sách lựa chọn, nhấn vào biểu tượng cài đặt Trong trường hợp muốn thay đổi kích thước đối tượng giao diện, bạn đọc đơn giản kéo thả góc để thay đổi Cuối cùng, nhấn vào nút Save Layout Kiểm tra kết nối Feed Dashboard Đây bước kiểm tra cuối cấu hình Adafruit IO, trước bắt đầu lập trình gửi liệu từ Gateway lên Feed Quy trình kiểm tra theo trình tự sau: Bước 1: Từ giao diện Dashboard, bạn nhấn thử nút nhấn giao diện, ghi nhớ lại số lần nhấn, tương ứng với trạng thái ON OFF nút nhấn Bước 2: Mở lại giao diện kênh liệu Feed, bạn thấy giá trị thô, gửi lên Feed, minh họa hình sau Hình 2.14: Dữ liệu gửi lên Feed tương tác Dashboard Mặc dù đồ thị vẽ kênh liệu, bạn đọc cần lưu ý liệu thô nó, liệt kê bảng bên Mỗi nhấn nút, trạng thái lưu lại, với thông số thời gian Thông tin thô này, gửi xuống Gateway tương lai Bước 3: Tại trang liệu Feed, chọn nút + Add Data Tính mô việc gửi liệu từ Gateway lên Feed tương lai Giao diện sau ra: Phát triển IoT Gateway Python Trang 23 Hình 2.15: Thêm liệu Feed tay Bạn đọc điền giá trị hợp lệ, trường hợp 1, sau nhấn vào nút Create Hiển nhiên, dòng liệu thêm vào Feed Nhưng song song đó, giao diện Dashboard thay đổi tương ứng Bước 4: Kiểm tra độ trễ hệ thống Đây điều mẻ mà Adafruit IO server mang lại Bạn đọc thử chia sẻ đường link Dashboard với người khác, để bên kiểm tra từ xa Chúng ta thấy rằng, việc giao tiếp liệu Feed Dashboard có độ trễ thấp Với Gateway IoT thực sau, tương tác Dashboard, liệu gửi lên Feed Bước đó, Feed tự động gửi xuống cho Gateway IoT để thực thi lệnh Trong trường hợp ngược lại, liệu gửi lên Feed từ Gateway IoT, giao diện Dashboad tự động cập nhật theo Nhờ chế này, mà server Adafruit IO phù hợp cho ứng dụng quan trắc điều khiển từ xa qua mạng Trang 24 The Dariu Foundation Câu hỏi ôn tập Đối tượng sau sử dụng để giám sát điều khiển hệ thống? A Gateway IoT B Feed C Dashboard D Adafruit IO Đối tượng có vai trị giống Back-End? A Gateway IoT B Feed C Dashboard D Adafruit IO Đối tượng có vai trị giống Front-End? A Gateway IoT B Feed C Dashboard D Adafruit IO Khi cấu hình nút nhấn Dashboard, giá trị cho trạng thái nút nhấn phù hợp? A B C ON OFF D Khác Độ trễ việc giao tiếp liệu Feed Dashboard là: A Nhanh B Chậm C Trung bình D Khơng xác định Độ trễ việc giao tiếp liệu Feed Gateway IoT là: A Nhanh B Chậm C Trung bình D Khơng xác định Độ trễ việc giao tiếp liệu Dashboard Gateway IoT là: A Nhanh B Chậm C Trung bình D Khơng xác định Đáp án C B C D A A Phát triển IoT Gateway Python A Trang 25 Trang 26 The Dariu Foundation CHƯƠNG Hiện thực IoT Gateway Python Giới thiệu Với bước chuẩn bị trước cho kênh liệu (Feed) giao diện tương tác (Dashboard), bắt đầu thực chức Gateway IoT Mặc dù dùng máy tính để thực chức Gateway IoT, chương trình giới thiệu hồn tồn thực máy tính nhúng triển khai thành ứng dụng thực tế Raspberry PI Jetson Nano Đây lợi lớn ngơn ngữ lập trình Python, tương thích với nhiều tảng hệ điều hành khác Thậm chí, hiệu chương trình Python máy tính nhúng cịn tốt máy tính mà làm việc Với hệ điều hành Linux máy tính nhúng, mã nguồn Python thực thi tối ưu Hình 3.1: Kiến trúc thành phần ứng dụng IoT Kiến trúc thành phần ứng dụng dựa kết nối vạn vật, đến cụ thể hóa trình bày hình Feed liệu Adafruit server trở thành nơi trung chuyển liệu Gateway IoT Dashboard Trong hướng dẫn này, tập trung thực máy tính chương trình, nhận liệu người dùng tương tác Dashboard Đây tính mà bạn đọc cần cho ứng dụng điều khiển từ xa Tính này, với server thơng thường, chẳng hạn ThingSpeak, có độ trễ đáng kể Nói cách khác, người dùng muốn bật bóng đèn với server ThingSpeak, tối thiểu 30 giây sau Gateway IoT nhận lệnh thực Tuy nhiên, với server Adafruit IO, độ trễ thấp, thông thường giây Các mục tiêu hướng dẫn sau: • Cài đặt thư viện lập trình cho Adafruit IO server • Hiện thực chương trình Python máy tính • Kiểm tra chương trình với Dashboard Trang 28 The Dariu Foundation Thông tin xác thực Để thông tin gửi lên Feed cách hợp lệ, Gateway cần phải có thơng tin xác thực để kết nối với Feed Từ công cụ trang chủ Adafruit IO, sau đăng nhập vào hệ thống, bạn có thơng tin xác thực mục My Key, minh họa sau đây: Hình 3.2: Thơng tin để xác thực tài khoản Với giao diện nhấn vào My Key, cầ lưu lại thông tin Username Active Key Tiếp theo, bạn cần kiểm tra tên Feed liệu truy xuất dạng Active Key Tên sinh tự động hệ thống, khác với tên đặt tạo Feed trước Để truy xuất thông tin này, bạn chọn Feeds công cụ nhấp chuột vào Feed liệu tạo, hướng dẫn BBC_LED, giao diện sau ra: Hình 3.3: Kiểm tra thông tin Feed Sau nhấn vào mục Feed Info, giao diện Tại đây, có tên kênh liệu để sử dụng cho phần lập trình, minh họa hình bên dưới: Phát triển IoT Gateway Python Trang 29 Hình 3.4: Tên truy cập Feed liệu Như vậy, thông tin cần lưu lại trước lập trình, bao gồm tên Feed dạng truy cập khóa (thường tên Feed, dạng viết thường), Username Active Key Ba thông tin sử dụng thực chương trình Python Tạo dự án PyCharm Trong hướng dẫn này, sử dụng môi trường lập trình PyCharm để thực chương trình chức cho Gateway IoT chạy máy tính PyCharm đánh giá phần mềm thông dụng bậc cho việc lập trình Python, tương thích với nhiều hệ điều hành khác Windows, Linux hay MacOS Phần mềm cung cấp môi trường ảo để dễ dàng cài đặt thư viện mở rộng lập trình đến tính cao cấp Phiên trình thơng dịch Python sử dụng hướng dẫn 3.8 Hình 3.5: Phần mềm lập trình PyCharm Hướng dẫn cài đặt phần mềm PyCharm chương trình biên dịch Python tìm thấy giáo trình Python Cơ Bản, chia sẻ đường dẫn sau: https://drive.google.com/file/d/1dJLE3CdRJvU2QUOfjqMcX6azHMBYBl_q/view Trang 30 The Dariu Foundation Sau khởi động PyCharm, chọn File/New Project, minh họa hình bên dưới: Hình 3.6: Tạo dự án Pycharm Bạn đọc cần lưu ý đường dẫn để lưu dự án Bạn đọc nên tạo trước thư mục mới, để lưu tất dự án vào thư mục Chúng ta khơng qn kiểm tra phiên trình thơng dịch Python trước nhấn vào nút Create Trong trường hợp bạn cài nhiều phiên Python vào máy tính, có danh sách chọn lựa cho bạn mục Base interpreter Một cửa sổ thơng báo sau bạn nhấn vào Create Bạn đọc lựa chọn tạo dự án cửa sổ PyCharm để mở nhiều cửa sổ lúc, cách nhấn vào This Window, minh họa sau: Hình 3.7 : Tạo dự án cửa sổ PyCharm Khi dự án tạo xong, bạn đọc xóa hết nội dung chương trình mặc định main.py, để bắt đầu thực chương trình cho IoT Gateway Cài đặt thư viện Một bước thiếu cho tính cao cấp với ngơn ngữ Python cài đặt thư viện Thư viện mở rộng mà cần tích hợp adafruit-io Có cách để cài đặt thư viện này: Cài đặt trực tuyến công cụ pip install cài đặt từ mã nguồn GIT tự phát triển Đối với bạn đọc có kinh nghiệm phương pháp quen thuộc Tuy Phát triển IoT Gateway Python Trang 31 nhiên, bắt đầu phương pháp không thành cơng, bạn đọc thử phương pháp thứ Với server Git chúng tơi bảo trì thường xuyên cung cấp thư viện phù hợp cho bạn đọc Chi tiết cho phương pháp cài đặt thư viện trình bày sau: 4.1 Cài đặt pip install Đối với phương pháp này, càn mở cửa sổ Terminal PyCharm, gõ pip install adafruit-io, sau nhấn Enter, minh họa bên dưới: Hình 3.8: Cài đặt thư viện Adafruit IO PyCharm tải thư viện máy tính cài đặt Sau cài đặt thành cơng, có thơng báo sau xuất hiện: Hình 3.9: Cài đặt thư viện thành cơng Cho đến bước này, sẵn sàng để thực chương trình Nếu việc cài đặt thư viện khơng thành cơng, bạn đọc thử với cách thứ 2, phần 4.2 Cài đặt GIT Đối với cách thứ này, bạn cần tải file ZIP từ server GIT xây dựng Đầy tiên, truy cập vào trang chủ sau đây: https://github.com/npnlab-vn/python_libs Sau diện hình bên lên, với nhiều thư viện xây dựng sẵn theo giáo trình Trang 32 The Dariu Foundation Hình 3.10: GIT lưu thư viện lập trình Python Bước 1: Bạn cần chọn nhánh cho trước tải thư viện máy tính, cách nhấn vào lựa chọn vị trí Sau đó, tìm đến nhánh IoT_CoBan_64bit-v3.8 Đối với máy có cấu hình khác, phiên Python khác, bạn đọc tự lựa chọn thư viện phù hợp với máy tính Bước 2: Sau chọn nhánh, tải thư viện về, cách nhấn vào nút Code chọn chế độ tải file ZIP mục Download ZIP Bạn đọc cần chọn đường dẫn để lưu lại file vừa tải Bước 3: Giải nén file ZIP vừa tải về, cách nhấn chuột phải chọn Extract Here Với thư mục vừa giải nén, tiếp tục nhấn chuộc phải để chép (hoặc nhấn phím nóng Ctrl+C), minh họa bên dưới: Hình 3.11: Giải nén thư viện lệnh Extract Here Bước 4: Sao chép thư mục giải nén, dán vào thư mục lưu dự án tạo phần trước Trong thư mục này, bạn thấy file main.py, kết sau đây: Phát triển IoT Gateway Python Trang 33 Hình 3.12: Thư viện thêm vào dự án Sau bước này, quay trở lại mơi trường lập trình PyCharm, thấy thư viện tập tin đính kèm xuất cửa sổ dự án Bước 5: Click chuột phải vào file setup.py chọn Run, để tiến hành cài đặt thư viện, minh họa hình bên dưới: Hình 3.13: Cài đặt thư viện cách chạy file setup.py Sau việc cài đặt hồn tất, thơng báo sau xuất hiện: Hình 3.14: Cài đặt thư viện thành công Trong trường hợp việc cài đặt không thành công, bạn đọc cần kiểm tra lại phiên Python Khi tạo dự án, thơng tin nằm mục Base Interpreter để tải lại thư viện cho phù hợp Trang 34 The Dariu Foundation Hiện thực chương trình Bây giờ, chuyển sang làm việc file main.py để thực chức chương trình Từng bước thực file trình bày chi tiết bên 5.1 Import thư viện khởi tạo Ở bước này, quan trọng để kiểm tra lại việc cài đặt thư viện có thực hồn tất hay khơng Bên cạnh đó, bạn đọc cần phải điền thơng tin cho Feed liệu mình, Username Key tài khoản Những dòng lệnh sau: import␣sys from␣Adafruit_IO␣import␣MQTTClient AIO_FEED_ID␣=␣"bbc-led" AIO_USERNAME␣=␣"NPNLab_BBC" AIO_KEY␣=␣"aio_radR12aVJMai2YJiGBs1V6TBR06l" Chương trình 3.1: Import thư viện khởi tạo Bạn đọc thực thi chương trình file main.py, cách nhấn chuột phải vào file chọn Run Từ lần thứ 2, bạn chọn nút Run công cụ PyCharm 5.2 Hiện thực hàm chức Việc kết nối IoT Gateway Server Adafruit dựa giao thức đặc biệt, gọi MQTT (Message Queuing Telemetry Transport) Đây giao thức truyền thông dựa chế publish/subscribe, chuyên dụng cho thiết bị Internet of Things (IoT) Bốn hàm thực tiếp sau đây, phục vụ cho việc vận hành giao thức MQTT Gateway IoT Việc thực hàm trình bày sau: def␣␣connected(client): ␣␣␣␣print("Ket␣noi␣thanh␣cong ") ␣␣␣␣client.subscribe(AIO_FEED_ID) def␣␣subscribe(client␣,␣userdata␣,␣mid␣,␣granted_qos): ␣␣␣␣print("Subcribe␣thanh␣cong ") def␣␣disconnected(client): ␣␣␣␣print("Ngat␣ket␣noi ") ␣␣␣␣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 Khi kết nối thành công với server, Gateway subscribe vô kênh liệu để nhận liệu từ Khi có liệu từ nguồn gửi lên Feed, liệu Phát triển IoT Gateway Python Trang 35 tự động gửi xuống Gateway IoT, hàm message tự động chạy mà không cần phải xử lý nhiều 5.3 Cấu hình cho Gateway Bước cuối việc thực Gateway, tạo đối tượng MQTT Client, đế liên kết với hàm chức tạo Các câu lệnh bổ sung vào chương trình trình bày sau: client␣=␣MQTTClient(AIO_USERNAME␣,␣AIO_KEY) client.on_connect␣=␣connected client.on_disconnect␣=␣disconnected client.on_message␣=␣message client.on_subscribe␣=␣subscribe client.connect() client.loop_blocking() Chương trình 3.3: Cấu hình cho đối tượng MQTT Client 5.4 Chạy thử chương trình Bây giờ, cho thực thi file main.py để kiểm tra tính Khi vừa khởi chạy, Gateway kết nối với server Adafruit IO sau đăng kí (Subscribe) vào kênh Feed BBC_LED Thông tin sau in hình tác vụ thành cơng: Hình 3.15: Gateway kết nối đăng kí kênh thành cơng Bây giờ, bạn đọc mở lại Dashboard tương tác nút nhấn để minh họa cho việc gửi lệnh Bật/Tắt Gần lập tức, lệnh chuyển xuống Gateway IoT, kết hình bên dưới: Hình 3.16: Gateway nhận liệu từ Dashboard Hiển nhiên, tất các liệu lưu lại Feed liệu, mà bạn đọc kiểm tra lại dễ dàng Trang 36 The Dariu Foundation ... Dashboard Gateway IoT là: A Nhanh B Chậm C Trung bình D Không xác định Đáp án C B C D A A Phát triển IoT Gateway Python A Trang 25 Trang 26 The Dariu Foundation CHƯƠNG Hiện thực IoT Gateway Python. .. thống? A Gateway IoT B Feed C Dashboard D Adafruit IO Đối tượng có vai trị giống Back-End? A Gateway IoT B Feed C Dashboard D Adafruit IO Đối tượng có vai trị giống Front-End? A Gateway IoT B Feed... này, gửi xuống Gateway tương lai Bước 3: Tại trang liệu Feed, chọn nút + Add Data Tính mơ việc gửi liệu từ Gateway lên Feed tương lai Giao diện sau ra: Phát triển IoT Gateway Python Trang 23

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

Từ khóa liên quan

Mục lụ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

Tài liệu cùng người dùng

Tài liệu liên quan