Trong đó: Nút 1 để chọn chế độAuto/Manual; Nút 2, 3, 4 dễ điều khiển LED đơn, Buzzer và Relay.* Đồ thị thể hiện hai giá trị nhiệt độ và độ ẩm đọc được từ Server.* Có các biểu tượng để th
Trang 1KHOA CÔNG NGHỆ ĐIỆN TỬ BÀI BÁO CÁO TUẦN 6
Môn: Chuyên đề IoT GVHD: Phạm Quang Trí Lớp: DHIOT16A – 420301413301 Nhóm SV thực hiện: Nhóm 1
TP.HCM, Ngày 27 Tháng 9 Năm 2023
BÁO CÁO KẾT QUẢ THỰC HÀNH
Bài tập mức độ 3 (10 điểm):
Trang 2Sử dụng 2 mô-đun Raspberry Pi kết hợp với Grove Base Hat và các mô-đun Grovephù hợp để viết chương trình điều khiển như sau:
o Web: Viết giao diện Web có:
* 4 nút nhấn (ON, OFF, Auto và Manual) Trong đó: Nút 1 để chọn chế độAuto/Manual; Nút 2, 3, 4 dễ điều khiển LED đơn, Buzzer và Relay
* Đồ thị thể hiện hai giá trị nhiệt độ và độ ẩm đọc được từ Server
* Có các biểu tượng để thể hiện trạng thái hiện tại của LED đơn, Buzzer vàRelay là đang bật hoặc tắt
* Có cửa sổ hiển thị con số kích thước lớn giá trị nhiệt độ và độ ẩm đọcđược từ Server (hiển thị giá trị của lần cập nhật cuối cùng)
* Có cửa sổ hiển thị thời gian hiện tại
o Mô-đun Raspberry 1: Thực hiện việc đọc giá trị nhiệt độ, độ ẩm của mỗi
trường Đồng thời gửi dữ liệu nhiệt độ, độ ẩm lên Server của Thingspeakmỗi 20 giây cho một gói tin và thực hiện lên liên tục trong ít nhất 30 phút.Tùy chọn sử dụng giao thức HTTP hoặc MQTT Chương trình bắt buộcphải khởi động lại (reset) khi xảy ra lỗi cảm biến, rớt mạng
o Mô-đun Raspberry 2: Thực hiện việc đọc giá trị nhiệt độ, độ ẩm từ
Server và in ra màn hình LCD 16x2 Tùy chọn sử dụng giao thức HTTPhoặc MQTT Ngoài ra còn có thêm các tính năng sau:
+ Nếu ở chế độ Manual, sẽ bật/tắt LED đơn và Relay từ điều khiển trêngiao diện
Sau đó, thực hiện các bước để chương trình có khả năng tự khởi động khi bật
nguồn cho mô-đun Raspberry.
Lưu ý:
Bắt buộc chương trình phải có có khả năng tự khởi động khi bật nguồn cho mô-đun
Raspberry
Bắt buộc chương trình phải tự khởi động lại (reset) khi có lỗi phát sinh trong quá trình
hoạt động Thao tác chạy chương trình thủ công sẽ không được chấp nhận
Trang 3Minh chứng trong báo cáo phải bổ sung thêm phần hình ảnh đồ thị dữ liệu của từng loại
cảm biến trên Server ThingSpeak trong 30 phút
Trong cả ba mức độ bài tập, hai gói tin kề nnhau thể hiện trong Server có thời gian 90
giây mới được xem là liên tục Khi không đáp ứng được yêu cầu này thì không được chấp nhận
Đối với mức độ 2 và 3, nếu tồn tại dữ liệu bất thường được gửi lên Server sẽ làm mất
tính liên tục của dữ liệu Trong quá trình gửi dữ liệu lên Server, nếu dữ liệu cảm biến bị lỗi thì không được Server mà phải đọc lại và gửi liệu khác
Trang 4Nhóm 1
MỤC LỤC BÁO CÁO
Yêu cầu 1: Trong quyển báo cáo, dựa vào yêu cầu của bài tập đã chọn, phải vẽ sơ đồ
nguyên lý kết nối phần cứng của toàn bộ hệ thống sử dụng Raspberry Pi
Yêu cầu 2: Trong quyển báo cáo, trình bày rõ ràng lưu đồ giải thuật và mã nguồn của
chương trình điều khiển
Yêu cầu 3: Nạp chương trình vào mô-đun Raspberry Pi và thực hiện cho chạy thử trên
phần cứng trong phòng thực hành Quay video clip minh chứng kết quả thực hiện, tải lênYoutube duy nhất 1 video clip (trong trường hợp minh chứng có nhiều video clip nhỏ thìsinh viên phải tự ghép lại thành 1 video clip tổng hợp) và ghi liên kết vào báo cáo
Yêu cầu 4: Trong video clip phải có:
o Thuyết minh mô tả quá trình thao tác thí nghiệm
o Trình bày kết nối dây giữa Raspberry với các mô-đun
o Trình bày chức năng từng dòng lệnh Python trong mã nguồn của chương trình điềukhiển
o Trình bày và nhận xét kết quả thí nghiệm
your phone? Save to
read later on your computer
Save to a Studylist
Trang 5 Yêu cầu 1: Dựa vào yêu cầu của bài tập đã chọn, phải vẽ sơ đồ
nguyên lý kết nối phần cứng của toàn bộ hệ thống sử dụng
Raspberry Pi
Hình 1: Sơ đồ nguyên lý kết nối phần cứng Mô-đun Raspberry
-Sau khi đã chuẩn bị phần cứng, ta thực hiện kết nối cảm biến với
chân 16, LED với chân 5, buzzer với chân 12, relay với chân 18 và
kết nối LCD với chân I2C trên Mô-đun Raspberry Pi như hình:
Trang 6Hình 2: Sơ đồ kết nối phần cứng thực tế Mô-đun Raspberry.
Trang 7 Yêu cầu 2: Trình bày rõ ràng lưu đồ giải thuật và mã nguồn của
chương trình điều khiển
Lưu đồ giải thuật code gửi dữ liệu:
Trang 8Hình 5: Lưu đồ giải thuật của chương trình của Mô-đun Raspberry (gửi
dữ liệu)
Mã nguồn chương trình gửi dữ liệu:
import time
from seeed_dht import DHT
from grove.display.jhd1802 import JHD1802
def thingspeak_mqtt(temp, humi):
payload = "field1=%s&field2=%s" % (temp, humi)
Trang 9print("Nhiet do: {}C, Do am: {}%".format(temp,humi))
Trang 10 Lưu đồ giải thuật code đọc dữ liệu:
Trang 12Hình 6: Lưu đồ giải thuật của chương trình của Mô-đun Raspberry (đọc dữ
liệu)
Mã nguồn chương trình đọc dữ liệu:
import paho.mqtt.client as mqtt
from urllib import request, parse
from gpiozero import LED
from gpiozero import Buzzer
from grove.display.jhd1802 import JHD1802
from grove.grove_relay import GroveRelay
Trang 37"name": "Điều khiển",
Trang 39Sơ đồ chương trình Node-red:
Hình 7: Sơ đồ chương trình Node-red.
Giao diện Node-red trên Ipad(trong phòng thực hành):
Hình 5: Giao diện Node-red trên Ipad.
Trang 40Giao diện Node-red đã qua chỉnh sửa:
Yêu cầu 3: Nạp chương trình vào mô-đun Raspberry Pi và thực
hiện cho chạy thử trên phần cứng trong phòng thực hành Quay
video clip minh chứng kết quả thực hiện, tải lên Youtube duy nhất
1 video clip (trong trường hợp minh chứng có nhiều video clip nhỏ
thì sinh viên phải tự ghép lại thành 1 video clip tổng hợp) và ghi
liên kết vào báo cáo
Kết quả mình chứng:
-Channel ID: 2272959
-Author: mwa0000030896721
Trang 41Hình 7: Minh chứng dữ liệu đã up Server.
Trang 42 Yêu cầu 4: Trong video clip phải có:
o Thuyết minh mô tả quá trình thao tác thí nghiệm
o Trình bày kết nối dây giữa Raspberry với các mô-đun
o Trình bày chức năng từng dòng lệnh Python trong mã nguồn của chươngtrình điều khiển
o Trình bày và nhận xét kết quả thí nghiệm
Link Youtube:
https://youtu.be/J3b6r6d_jmE