1. Trang chủ
  2. » Luận Văn - Báo Cáo

đọc nhiệt độ từ cảm biến dht11 bằng arduino và hiển thị trên web bằng raspberry pi và 1 số ứng dụng liên quan tới môn

15 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Đọc Nhiệt Độ Từ Cảm Biến DHT11 Bằng Arduino Và Hiển Thị Trên Web Bằng Raspberry Pi Và 1 Số Ứng Dụng Liên Quan Tới Môn Học
Tác giả Nguyễn Quang Dũng, Trần Văn Cao
Định dạng
Số trang 15
Dung lượng 4,44 MB

Nội dung

Arduino Uno R3 Cảm biến nhiệt độ và độ ẩm DHT11... Ta khai báo thư viện DHT.h, một thư viện từ Adafruit.. Sau đó khởi động cảm bi n b ng begin ế ằTa dùng phương thức readHumidity trên đố

Trang 1

Bá Báo c o c o cáo áo áo Cu Cu ố ốiiiii K K ỳỳỳỳỳ

Tr ần Văn Cao

Trang 2

M ục l c

1 Gi i thi u ớ ệ

2 Ph n c ng c a bài t p ầ ứ ủ ậ

3 Thi t k ph n m m ế ế ầ ề

4 K t qu ế ả

5 Đánh giá chung

Trang 3

1 Gi i thi u ớ ệ

Đọc nhiệt độ ừ t cảm bi n DHT11 b ng Arduino và hi n th trên web b ng ế ằ ể ị ằ Raspberry Pi và 1 s ng d ng liên quan t i môn h c ố ứ ụ ớ ọ

2 Ph n c ng cầ ứ ủa bài t p

Để ự th c hi n toàn b ệ ộ chương trình ta cần chuẩn bị:

- Raspberry Pi 3

- Arduino Uno R3

- C m bi n DHT11 ả ế

- Đèn Led

Dưới đây là hình ảnh mô t các thi t b ph n c ng : ả ế ị ầ ứ

Raspberry Pi 3

Trang 4

Arduino Uno R3

Cảm biến nhiệt độ và độ ẩm DHT11

Trang 5

Cách nối như sau:

- Chân Vcc c a c m bi n n i v i nguủ ả ế ố ớ ồn 5V trên Arduino

- Chân GND n i v i chân GND trên Arduino ố ớ

- Chân Data n i v i bố ớ ất kì chân kĩ thuật số nào c a Arduino ( ủ ở đây là chân số 4)

Trang 6

3 Thi t k ph n m m ế ế ầ ề

3.1 S dử ụng Arduino đểđọc nhiệt độ và độẩm từ cảm bi n ế

Để đọc d liệu t c m bi n g i v ta s dữ ừ ả ế ử ề ử ụng Arduino IDE cũng như nạp code để thực hi n ệ

Trang 7

Ta khai báo thư viện DHT.h, một thư viện từ Adafruit Thư viện này có thể sử dụng cho 3 lo i c m biạ ả ến: DHT11, DHT21, DHT22 Sau đó, ta khai báo vị trí chân kết n i c a cố ủ ảm bi n vế ới chân kĩ thuật số của Arduino ( ở đây sử ụ d ng chân s 4) và ố cảm biến đượ ử ụng trong chương trình ( DHT11) c s d

Trong hàm setup(), ta kh i ch y v i baudrate (tở ạ ớ ốc độ truyền) là 9600 Sau đó khởi động cảm bi n b ng begin() ế ằ

Ta dùng phương thức readHumidity trên đối tượng dht để ấy độ ẩm Tương tự l đối với nhiệt độ là phương thức readTemperature D li u tr v là d ng chu i (float) ữ ệ ả ề ạ ỗ nên ta ép ki u v ể ề int để dễ dàng sử dụng s li u sau này ố ệ

Trang 8

Ta thu được kết quả trên màn hình Serial Monitor như hình dưới:

3.2 Đưa kết quả đã thu được lên cơ sở ữ liệu d

Như đã nói ở trên các s liố ệu ta thu được không phải vô mục đích, ta sẽ ập 1 đồ l thị

so sánh nhiệt độ và độ ẩm theo thời gian th c Viự ệc đầu tiên cần làm là đưa những

dữ liệu này lên cơ sở dữ liệu (database)

Ta s d ng nhử ụ ững thư viện như hình bao gồm: Serial, time, os, firebase_admin, smtplib, ssl, datetime, email.mime.multipart, email.mime.text

Trong đó :

Thư viện Serial cung cấp phương thức để kết nối với Arduino

Thư viện Datetime và Time để ta cập nhật được theo thời gian th c ự

Thư viện OS để ta có th làm vi c v i tể ệ ớ ệp thư mục

Thư viện firebase_admin dùng k t n i v i firebase realtime database ế ố ớ

Trang 9

Thư viện smtplib tạo kết nối với máy chủ smtp

Thư viện ssl mã hóa theo port 465

Thư viện email.mime g i nhiđể ử ều định d ng body email ạ

Thư viện getpass giúp n m t khẩ ậ ẩu khi người dùng tiến hành nh p ậ

Ta kh i t o bi n today là bi n th i gian hi n t i, bi n Arduino cở ạ ế ế ờ ệ ạ ế ổng COM8 băng thông 9600

Ta kh i t o bi n thông tin database, c p quy n qu n tr viênở ạ ế ấ ề ả ị Để truy c p vào ậ Firestore và admin tool t ng d ng ta c n ph i t o 1 server account t ừ ứ ụ ầ ả ạ ừ đó ta có file serviceAccountKey.json

Sau khi kh i t o nhở ạ ững biến cần thi t ta cho chế ạy Arduino, đọc d li u t Arduino ữ ệ ừ gửi lên, gi i mã chúng và ép kiả ểu để ử ụng s li u v s d ố ệ ới 2 đối tượng là nhietdo và doam Hàm update() được sử dụng để truy n d li u lên database ề ữ ệ

Trang 10

Biến child1 lưu trữ thông tin về nhiệt độ theo thời gian thực được database gửi về

Ta khai báo máy ch SMTP, b o m t SSL, c ng PORT ( ủ ả ậ ổ ở đây là cổng 465), gmail gửi mật khẩu và gmail người nhận, cũng như set up nội dung cho gmail

Khi ng t trình biên d ch, Arduino s d ng hoắ ị ẽ ừ ạt động

3.3 S d ng d li u trên database v bử ụ ữ ệ ẽ ảng và biểu đồ nhiệt độ độ ẩ m theo th i

gian thực được hi n tr trên web ể ị

Để có được biểu đồ chạy theo thời gian th c ta kh i t o các biự ở ạ ến và mảng như hình

Trang 11

Sau khi tham chi u các d li u t database ta s t o 1 b ng ế ữ ệ ừ ẽ ạ ả cũng như biểu đồ ố th ng

kê ch y liên t c ạ ụ

Trang 12

3.4 Thi t k website ế ế

Ta dùng HTML (Hypertext Markup Language), để xây dựng và cấu trúc các thành phần của website, để tạo trang web.HTML sẽ hiển thị nội dung cho người truy cập bao gồm các heading, footer, content, các liên kết cho các mục của website, …

Ta có k t qu ế ả như mục 4 dưới đây

4 K t qu ế ả

4.1 Ph n c ng cầ ứ ủa chương trình

Trang 13

4.2 K t qu c a ph n mế ả ủ ầ ềm

Gmail cảnh báo được gửi về

Nhiệt độ và độ ẩm được thống kê theo thời gian th c ự

Trang 14

Đèn Led được nối với chân 13 của Arduino sẽ phát sáng nếu nhiệt độ > 29 độ C, ngượ ạc l i nếu =< 29 độ ẽ s không phát sáng ( ch y th c nghi m v i nhiạ ự ệ ớ ệt độ phòng)

5 Đánh giá

5.1 Ưu điểm

- Đã ứng dụng được Raspberry Pi vào ph n cầ ứng như yêu cầu của bài t p l n ậ ớ

- H th ng ệ ố ổn định và có tính hoàn thi n khá t t ệ ố

5.2 Yếu điểm

- Tính th c t ự ế chưa được cao

- Các tính năng của hệ thống vẫn còn ít, chưa đa dạng hay có tính th c t cao ự ế

Ngày đăng: 14/05/2024, 16:06

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

TÀI LIỆU LIÊN QUAN

w