Trong chương trình Python dùng để đọc dữ liệu từ Server ThingSpeak, có ba mục rất quan trọng mà chúng ta cần phải biết là “Channel ID“, “Read API Key” và “Field#“. Hai thông tin này cần phải được điều chỉnh chính xác để đảm bảo việc đọc dữ liệu từ Server có thể thực hiện được. Trong phần này chúng ta sẽ sử dụng Server vừa được tạo ra bên trên để thực hiện các bài thí nghiệm.
Tiến hành đăng nhập vào Server ThingSpeak để lấy các thông tin về mã nhận dạng kênh (Channel ID), khóa API đọc dữ liệu (Read API Key) và các trường lưu trữ (Field) có trong kênh lưu trữ trên Server. Các thông tin này được minh họa chi tiết trong Hình 4.5.
Hình 4.5. Khóa API đọc dữ liệu và các trường lưu trữ của kênh Test_Data_Server.
Nhằm giúp hiểu rõ hơn cách thức sử dụng ngôn ngữ lập trình Python để viết chương trình đọc dữ liệu từ Server ThingSpeak sử dụng giao thức HTTP, chúng ta sẽ thực hiện một ví dụ minh họa đơn giản như sau: Raspberry Pi sẽ đọc dữ liệu cuối cùng đã được tải lên Server ThingSpeak tại trường lưu trữ “Field1” có tên định danh là “Temparature“. Mã nguồn hoàn chỉnh cho ví dụ minh họa này như sau:
import httplib, json, urllib
import urllib2
# Channel ID: 794872
# Author: iotlabiuh
# User API Key: YUPXLTFPBN4TLX9P
# MQTT API Key: IZWFYCHQJKAHM2MU
# API Key (Write): VN9L7BBX6YI4LWJ3
# API Key (Read): VSOKXS2QDTNC3Z3O
# CTC nhan du lieu cuoi cung duoc gui vao Field_1 tren Server ThingSpeak IoT
### Input –
### Output – value – Du lieu cuoi cung duoc gui vao Field_1 tren Server ThingSpeak IoT
Hình 4.6. Minh họa Raspberry Pi đọc giá trị cuối cùng của Field1 trên Server.
11.2. Sử dụng giao thức MQTT
Trong chương trình Python dùng để đọc dữ liệu từ Server ThingSpeak, có các mục rất quan trọng mà chúng ta cần phải biết là “Channel ID“, “User API Key“, “MQTT API Key” và “Field#“. Để có được các thông tin này chúng ta thực hiện tương tự như trong phần gửi dữ liệu lên Server sử dụng giao thức MQTT. Trong phần này chúng ta sẽ sử dụng Server vừa được tạo ra bên trên để thực hiện các bài thí nghiệm.
Tiến hành đăng nhập vào Server ThingSpeak để lấy thông tin về mã nhận dạng kênh (Channel ID), các khóa API và các trường lưu trữ (Field) có trong kênh lưu trữ trên Server. Các thông tin này được minh họa chi tiết trong Hình 4.5 và Hình 4.7.
Hình 4.7. Các khóa API của kênh Test_Data_Server dùng cho giao thức MQTT.
Nhằm giúp hiểu rõ hơn cách thức sử dụng ngôn ngữ lập trình Python để viết chương trình đọc dữ liệu từ Server ThingSpeak sử dụng giao thức MQTT, chúng ta sẽ thực hiện một ví dụ minh họa đơn giản như sau: Raspberry Pi sẽ đọc dữ liệu cuối cùng đã được tải lên Server ThingSpeak tại trường lưu trữ “Field1” có tên định danh là “Temparature“. Mã nguồn hoàn chỉnh cho ví dụ minh họa này như sau:
import paho.mqtt.client as mqtt
# Channel ID: 794872
# Author: iotlabiuh
# User API Key: YUPXLTFPBN4TLX9P
# MQTT API Key: IZWFYCHQJKAHM2MU
# API Key (Write): VN9L7BBX6YI4LWJ3
# API Key (Read): VSOKXS2QDTNC3Z3O
# Chuong trinh con thuc hien ket noi Server
def on_connect(client, userdata, flags, rc):
print(“Connected With Result Code {}”.format(rc))
channel_ID = “794872”
api_key_read = “VSOKXS2QDTNC3Z3O”
# subscribes to updates to a channel field from a private channel
Hình 4.8. Minh họa Raspberry Pi đọc giá trị cuối cùng của Field1 trên Server.
11.3. Bài tập củng cố kiến thức
Bài tập 1
Yêu cầu bài tập: Bằng cách sử dụng các kết quả dữ liệu đã được gửi và lưu trữ trên Server ThingSpeak thông qua các bài tập trong phần “Lập trình Python gửi dữ liệu lên Server“. Hãy viết chương trình Python cho Raspberry Pi để đọc các giá trị nhiệt độ và độ ẩm đã được lưu trữ trên Server này bằng cách sử dụng giao thức HTTP.
Báo cáo kết quả thực hiện bài tập:
Hiển thị phân biệt cụ thể giá trị nhiệt độ và độ ẩm đọc được từ Server.
Hướng khắc phục khi bị mất kết nối Internet.
Trong báo cáo phải trình bày lưu đồ giải thuật, mã nguồn của chương trình điều khiển.
Bài tập 2
Yêu cầu bài tập: Bằng cách sử dụng các kết quả dữ liệu đã được gửi và lưu trữ trên Server ThingSpeak thông qua các bài tập trong phần “Lập trình Python gửi dữ liệu lên Server“. Hãy viết chương trình Python cho Raspberry Pi để đọc các giá trị nhiệt độ và độ ẩm đã được lưu trữ trên Server này bằng cách sử dụng giao thức MQTT.
Báo cáo kết quả thực hiện bài tập:
Hiển thị phân biệt cụ thể giá trị nhiệt độ và độ ẩm đọc được từ Server.
Hướng khắc phục khi bị mất kết nối Internet.
Trong báo cáo phải trình bày lưu đồ giải thuật, mã nguồn của chương trình điều khiển.