Đang tải... (xem toàn văn)
Thứ hai: Với sự thay đổi thất thường của khí hậu hiện nay, việc nắm được chính xácnhiệt độ và độ ẩm của môi trường sống giúp chúng ta chủ động được cách thức sinh hoạtphù hợp để dáp ứng
Trang 1ĐẠI HỌC XÂY DỰNGKHOA CÔNG NGHỆ THÔNG TIN
Trang 2NgàyCông việc đã kiểm traCông việc giao buổi sauGhichú
Giới thiệu đề tài, hướng dẫn làm báo cáo về
Đồ án Đồ họa Máy tính
Các nội dung khác như: sản phẩm nếu có: Gửi riêng vào thư mục
Nộp bản thảo đồ án đểthầy xem hướng dẫn chỉnh sửa
Hoàn thiện đề tài, nộp báo và sản phẩm (nếu có sản phẩm)
11/12/2020
Trang 4Ảnh 1 Cảm biến nhiệt độ độ ẩm DHT11Ảnh 2 Modern Wifi ESP8266Ảnh 3 Dây data
Ảnh 4 BoardẢnh 5 Dây nốiẢnh 6 Lắp đặt thiết bịẢnh 7 Code ArduinoẢnh 8 Chọn boardẢnh 9 Chọn cổngẢnh 10 Kết nối HiveMQẢnh 11 Tạo testtopicẢnh 12 Upload codeẢnh 13 Serial MonitorẢnh 14 Dữ liệu đẩy lên testtopicẢnh 15 Dữ liệu trên firebaseẢnh 16 Chi tiết dữ liệu trên firebaseẢnh 17 Giao diện khởi độngẢnh 18 Giao diện xem nhiệt độ, độ ẩmẢnh 19 Giao diện dữ liệu
Ảnh 20 Giao diện chi tiết dữ liệu
Trang 5I TỔNG QUAN ĐỀ TÀI1 ĐẶT VẤN ĐỀ
Thứ nhất: Hiện nay hiện tượng cháy nổ diễn ra rất thường xuyên, phức tạp và gây hậuquả rất nghiêm trọng Hiện tượng này gây ra thiệt hại nghiêm trọng về người, tài sản kéotheo nhiều hệ lụy cho môi trường và xã hội gây hoang mang trong dư luận Đặc biệt việccháy nổ hình thành do những nguyên nhân có thể rất nhỏ, tuy nhiên do không được pháthiện kịp thời dẫn đến bùng phát gây hậu quả nghiêm trọng Điều này đặt ra nhu cầu vềmột công cụ có thể cảnh báo trước những nguy cơ cháy nổ, để có phương án kịp thờiphòng tránh Và một ứng dụng theo dõi nhiệt độ từ xa có thể đáp ứng nhu cầu này Nógiúp chúng ta cập nhật liên tục nhiệt độ tại bất kì đâu chúng ta muốn theo dõi, đặc biệt lànhững nơi có nguy cơ cháy nổ cao Nếu có sự tăng bất thường của nhiệt độ tức là có nguycơ xảy ra cháy nổ Khi nắm được thông tin cập nhật, chúng ta sẽ kịp thời đưa ra được giảipháp để khắc phục.
Thứ hai: Với sự thay đổi thất thường của khí hậu hiện nay, việc nắm được chính xácnhiệt độ và độ ẩm của môi trường sống giúp chúng ta chủ động được cách thức sinh hoạtphù hợp để dáp ứng nhu cầu của cơ thể trong các điều kiện môi trường khác nhau Ví dụnhư vào một ngày khô hanh chúng ta có thể nắm được và chủ động cung cấp đủ nước chocơ thể Điều này thực sự quan trọng khi bạn cần để chăm sóc trẻ em hoặc người già Như vậy, với ứng dụng theo dõi nhiệt độ chúng ta đã giải quyết được cả hai vấn đề nêutrên Nó thực sự là một ứng dụng cần thiết cho bất kì người dùng nào bỏi tính thực tế vàhiệu quả nó mang lại.
2 ĐỊNH HƯỚNG THIẾT KẾ
Quá trình xây dựng ứng dụng sẽ không đi sâu về lắp đặt thiết bị phần cứng và bộ vi điều khiển mà chỉ quan tâm đến việc xây dựng ứng dụng giao tiếp với người dùng và các thiết bị cảm biến nhiệt ( Đặc biệt là phần giao diện đồ họa của ứng dụng ).
Ứng dụng có thể sử dụng trên các thiết bị Android có kết nối mạng.- Công nghệ sử dụng
Trang 6- Tác nhân: Người sử dụng ứng dụng.- Các chức năng cơ bản:
● Xem nhiệt độ và độ ẩm hiện tại.
● Cảnh báo sự bất thường của dữ liệu đo được.● Xem dữ liệu đã được đo và thống kê theo thời gian.- Mô tả chức năng:
● Xem nhiệt độ, độ ẩm: Người dùng lựa chọn chức năng xem nhiệt độ, đồ ẩm Lúc này giao diện xem nhiệt độ độ ẩm sẽ được bật và dữ liệu đo được tại thời điểm hiện tại được tải lên trên giao diện.
● Cảnh báo: Kho nhiệt độ tăng quá mức giới hạn, ứng dụng sẽ gửi một cảnh báo chongười dùng ngay trên giao diện xem nhiệt độ độ ẩm.
● Thống kê dữ liệu: Toàn bộ giá trị nhiệt độ độ ẩm đã đo sẽ được lưu lại và thống kê theo thời gian Khi người dùng chọn chức năng xem sẽ chuyển đến giao diện lưu trữ Tại đây người dùng có thể xem dữ liệu được lưu bằng cách lựa chọn ngày cần xem.Khi người dùng lựa chọn ngày bất kì, toàn bộ dữ liệu nhiệt độ, độ ẩm được đongày hôm đó sẽ được mở ra.
Trang 8- Dây Data
nh 3 Dây dataẢ- Board
nh 4 BoardẢ
Trang 9- Dây nối
nh 5 Dây nốếiẢ
Trang 10III CHẠY THIẾT BỊ1 CODE ADUINO
+ Tiến hành mở file main.ino có đường dẫn
nh 7 Code ArduinoẢ
Tại đây chúng ta thay đổi tên và mật khẩu wifi theo wifi chúng ta sử dụng:
char ssid[] = "matkhauwifi"; // Tên wifi
char pass[] = "12345679"; // Mật khẩu
Trang 11+ Chọn Tools Board NodeMCU 1.0(ESP Module)� �
nh 8 Ch n board
Trang 12+ Chọn Tools Port COM5 //� � Việc chọn cổng phụ thuộc vào cổng bạn đang sử dụng
nh 9 Ch n c ng
Trang 143 UPLOAD CODE
Chọn để upload code lên thiết bị đã được kết nối
nh 12 Upload codeẢ
Trang 15+ Chờ cho quá trình upload code hoàn tất
Chúng ta có thể mở Serial Monitor để xem kết quả chạy code
nh 13 Serial MonitorẢ
Trang 16+ Lúc này dữ liệu nhiệt độ, độ ẩm đo được sẽ được đẩy lên testtopic chúng ta đã tạo ở bước trước
nh 14 D li u đ y lến testtopic
Trang 17+ Đồng thời dữ liệu được đẩy lên Firebase
Đường dẫn Firebase lưu dữ liệu nhiệt độ, độ ẩm phục vụ ứng dụng này
https://console.firebase.google.com/project/temperature-be828/database/temperature-be828/data// Tài kho n và c s d li u đảơ ở ữ ệượ ạc t o b i hai thành viến Lế Vắn Th c và Phan Quốếc Nh tởụậ+ Dữ liệu trên Firebase được lưu trữ như sau
nh 15 D li u trến firebase
Trang 18+ Chi tiết dữ liệu trên Firebase
nh 16 Chi tiếết d li u trến firebase
Trang 19IV GIAO DIỆN ỨNG DỤNG VÀ HƯỚNG DẪN SỬ DỤNG1 GIAO DIỆN KHỞI ĐỘNG
- Tại giao diện khởi động, người dùng có 2 lựa chọn:
● Chuyển tới giao diện xem nhiệt độ, độ ẩm Người dùng có hai cách thực hiện điều này Người dùng click vào “ Sensor ”hoặc chọn censor để thực hiện chức năng này.
● Chuyển tới giao diện xem dữ liệu nhiệt độ độ ẩm đã được lưu lại theo thời gian cụ thể Người dùng click vào “Data” hoặc chọn data để thực hiện chức năng này.
Trang 20nh 17 Giao di n kh i đ ng
2 GIAO DIỆN XEM NHIỆT ĐỘ ĐỘ ẨM
- Tại giao diện này, người dùng được cung cấp giá trị nhiệt độ độ ẩm được đo tại thời điểm này Nếu dữ liệu đo được vượt qua mức giới hạn, người dùng sẽ nhận được cảnh báo ngay trên giao diện này để nắm bắt được vấn đề cần giải quyết
Trang 21nh 18 Giao di n xem nhi t đ , đ m
3 GIAO DIỆN DỮ LIỆU
- Tại giao diện này hiển thị danh sách các ngày liên tục từ lúc người dùng sử dụng ứng dụng Đây chính là danh sách để người dùng có thể xem lại dữ liệu đo được từ các ngày
Trang 22nh 19 Giao di n d li u
Trang 234 GIAO DIỆN DỮ LIỆU NHIỆT ĐỘ, ĐỘ ẨM THEO NGÀY
- Tại đây cung cấp đầy đủ từng mốc thời gian và dữ liệu nhiệt độ, độ ẩm đo được trong ngày được chọn
nh 20 Giao di n chi tiếết d li u
Trang 24V Source code1 Home.page.html
<ion-toolbar text-center> <ion-title>Home</ion-title> </ion-toolbar>
2 Sensor.page.html
<ion-toolbar text-center> <ion-title>Sensor</ion-title> </ion-toolbar>
Trang 25<divid="blik">
<pstyle="color: rgb(255, 0, 0)"> Nhiệt độ quá nóng!! Cần kiểm tra</p> </div>
</div> </div></ion-content>
<ion-list*ngFor="let date of uids; let i = index"> <ion-item-sliding>
<ion-item[href]="'/data-detail/' + date"routerDirection="forward"> <p>Dữ liệu ngày: </p>
<ion-label>
<h3>{{date}}</h3> </ion-label> <br>
<p> <u>See details</u></p> </ion-item>
<ion-item-optionsside="end">
<ion-item-option color="danger"(click)="delete(date, i)">
<ion-iconslot="icon-only"name="trash"style="color: beige;"></ion-icon> </ion-item-option>
</ion-item-options> </ion-item-sliding> </ion-list>
</ion-content>
Trang 26<ion-list*ngFor="let d of dataSnap; let i = index"> <ion-item-sliding>
<ion-label> -
<ion-iconname="md-time"></ion-icon> </ion-label>
<ion-noteslot="end"> <h2>
<ion-iconslot="start"name="ios-water"style="color: aqua;"icon>Humidity: {{d.humidity}}% </h2>
<h2>
<ion-iconslot="start"name="ios-thermometer"style="color: brown;"></ion-icon>Temperature: {{d.temperature}}°C </h2>
</ion-note>
<ion-item-optionsside="end">
<ion-item-option color="danger"(click)="delete(d.timeKey, i)">
<ion-iconslot="icon-only"name="trash"style="color: beige;"></ion-icon> </ion-item-option>
</ion-item-options> </ion-item-sliding> </ion-list>
</ion-content>
Trang 275 index.html
<meta charset="utf-8" /> <title>Nhat&Thuc</title> <basehref="/" />
<meta name="viewport"content="viewport-fit=cover, width=device-width, scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="format-detection"content="telephone=no"/> <meta name="msapplication-tap-highlight"content="no" /> <linkrel="icon"type="image/png"href="assets/icon/favicon.png" /> <! add to homescreen for ios >
<meta name="apple-mobile-web-app-capable"content="yes" /> <meta name="apple-mobile-web-app-status-bar-style"content="black" /></head>
<app-root></app-root></body>
6 filebase.ts
const config = {
apiKey:"AIzaSyCGS8Nj1R5ggnPwalFj0h3y1wFQcBpC3SI", authDomain:"temperature-be828.firebaseapp.com", databaseURL:"https://temperature-be828.firebaseio.com",
Trang 28appId: "1:258374555341:web:1ff0dae85c95a7652bbb84", measurementId: "G-FNR0X6PXQN"
VII Tài liệu tham khảo
webapp