Báo cáo bài tập lớn học phần lập trình hệ thống nhúng xây dựng hệ thống iot hiển thị thông tin thời tiết

17 0 0
Báo cáo bài tập lớn học phần lập trình hệ thống nhúng xây dựng hệ thống iot hiển thị thông tin thời tiết

Đ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

Phần 1: Giới thiệu chungThời gian thực hiện: 1 tháng từ tháng 10 năm 2023 đến tháng 11 năm 2023Nhóm sinh viên gồm:1 Nguyễn Minh Di ĐanDH11C4 2 Nguyễn Hải Đăng3 Lê Văn Lương 4 Đặng Hoàng

Trang 1

TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO BÀI TẬP LỚN HỌC PHẦN

Trang 2

Mục luc

Trang 3

Phần 1: Giới thiệu chung

Thời gian thực hiện: 1 tháng (từ tháng 10 năm 2023 đến tháng 11 năm 2023)Nhóm sinh viên gồm:

1 Nguyễn Minh Di Đan

DH11C4 2 Nguyễn Hải Đăng

3 Lê Văn Lương 4 Đặng Hoàng Phúc 5 Nguyễn Việt Quang

Giảng viên hướng dẫn: Nguyễn Đức AnDự kiến sản phẩm:

- Báo cáo bài tập lớn học phần: Lập trình hệ thống nhúng (3 tín chỉ).

- Hệ thống IOT hiển thị thông tin thời tiết bằng hệ thống nhúng Arduino Wifi ESP8266 NodeMCU Lua WeMos D1 R2.

Nội dung báo cáo gồm:

Chương 1: Tổng quan về vấn đề nghiên cứu

Chương 2: Lập kế hoạch thực hiện, phân tích đánh giá hệ thống cần xây dựngChương 3: Xây dựng hệ thống

Đặt vấn đề:

Trong quá trình đổi mới phát triển về chất lượng đời sống xã hội ở thời đại kỷ nguyên số hiện nay vấn đề thời tiết đang là vấn đề cần thiết cho nhu cầu cuộc sống của mỗi con người , nhận thấy điều này nhóm thực hiện đề tài đã nghĩ ra ý tưởng xây dựng một trang web hiển thị thông tin thời tiết lấy thêm dữ liệu từ thiết bị nhúng.

Hiện nay, mọi người cần thông tin để lên kế hoạch cho những hoạt động hàng ngày, từ việc đi học, đi làm đến thăm quan, thể dục và giải trí Việc cung cấp chính xác ,dễ dàng

Trang 4

tiếp cận và sử dụng có thể giúp mọi người tránh được những các trường hợp thời tiết xấu xảy ra Xây dựng trang web hiển thị thông tin thời tiết cũng là cách tốt để nhóm phát triển tư duy kỹ năng lập trình ,thiết kế web và quản lý dự án Kết hợp kiến thức được nhà trường trau dồi cùng với khả năng tự tìm tòi học hỏi, nhóm tự tin rằng có thể đóng góp vào cộng đồng một ứng dụng web hiển thị thông tin thời tiết một cách chính xác và dễ dàng tiếp cận Đây là một cách tốt để đóng góp vào cộng đồng để giúp mọi người có thể đối phó với biến đổi khí hậu và cập nhật thông tin thời tiết luôn có sự biến động liên tục như hiện nay

Như vậy, nhóm NCKH quyết định chọn đề tài: “Xây dựng hệ thống IOT hiển thị

thông tin thời tiết” đáp ứng, hỗ trợ cho các hoạt động cuộc sống con người nói chung và

của toàn thể các thành viên của Trường Đại học Tài nguyên và Môi trường Hà Nội nói riêng Website được xây dựng để hiển thị thông tin thời tiết có tích hợp việc lấy dữ liệu từ thời tiết thông qua các hệ thống nhúng Với sự gia tăng về tần suất và sự cường độ của biến đổi khí hậu, thì thông tin thời tiết chính xác và dễ dàng tiếp cận là rất quan trọng để giúp mọi người chuẩn bị và ứng phó với các biến đổi thời tiết bất ngờ Điều này cũng đặt ra nhiều thách thức trong việc đảm bảo đảm bảo độ chính xác của thông tin thời tiết Hiện nay, thông tin thời tiết thường được cung cấp thông qua các trang web hoặc ứng dụng di động Tuy nhiên, việc lấy thêm thông tin thời tiết bằng thiết bị nhúng và cung cấp thời tiết một cách chính xác là một bước tiến hơn nó có thể cung cấp chính xác thời tiết ở địa điểm cụ thể với chi phí rẻ Thiết bị nhúng là các cảm biến thời tiết, nó có thể cung cấp thông tin thời tiết cụ thể cho một vị trí cụ thể, giúp người dùng xem thông tin thời tiết thời gian thực Điều này có ý nghĩa đặc biệt trong các ngành như nông nghiệp, hàng hải, hàng không, và quản lý thảm họa, nơi thông tin thời tiết chính xác có thể đóng vai trò quyết định Ngoài ra, việc sử dụng thiết bị nhúng giúp tối ưu hóa việc thu thập và truyền tải dữ liệu thời tiết, từ đó giúp tiết kiệm năng lượng và tài nguyên hơn so với các hệ thống truyền thống Điều này không chỉ giúp giảm thiểu tác động tiêu cực đối với môi trường mà còn tiết kiệm nguồn lực và giảm chi phí hoạt động Vì vậy, việc xây dựng một website hiển thị thông tin thời tiết không chỉ giúp nâng cao tính chính xác và sự tiện lợi mà còn đóng góp

Trang 5

vào việc bảo vệ môi trường và tối ưu hóa nguồn lực Đây là một đề tài đáng quan tâm và cần được thúc đẩy trong tình hình thế giới đang phải đối mặt với những thách thức về biến đổi khí hậu ngày càng nghiêm trọng.

Trang 6

Phần 2: Nội dung chính báo cáo

Chương 1: Tổng quan về vấn đề nghiên cứu

1 Khái niệm Hệ thống nhúng là gì?

Hệ thống nhúng (Embedded System) là một hệ thống máy tính hoặc điện tử tích

hợp sâu vào một thiết bị khác (thiết bị chủ yếu) để thực hiện một nhiệm vụ cụ thể hoặc một tập hợp các nhiệm vụ cụ thể Hệ thống nhúng được thiết kế để thực hiện các chức năng hoặc nhiệm vụ cố định và thường hoạt động trong môi trường ứng dụng cụ thể, thường là ẩn danh và không tương tác trực tiếp với người dùng.

Hình 1.1 Hệ thống nhúng là gì?

Các hệ thống nhúng được tích hợp trong các thiết bị và hệ thống khác nhau, bao gồm điện thoại di động, máy tính cá nhân, máy tính điều khiển trong ô tô, thiết bị y tế, máy giặt, tủ lạnh, thiết bị giao thông thông minh, và nhiều ứng dụng khác Chúng thường chạy trên các hệ điều hành nhúng hoặc hệ thống nhúng thời gian thực để đảm bảo hoạt

Trang 7

động ổn định và phản hồi nhanh chóng cho các tác vụ cụ thể

Hệ thống nhúng được thiết kế để hoạt động với tiêu chuẩn cao về độ tin cậy và hiệu suất trong môi trường cụ thể và thường có các hạn chế về tài nguyên phần cứng, bộ nhớ, và năng lượng Điều này đòi hỏi các kỹ sư điều khiển cẩn thận và tối ưu hóa phần cứng cũng như phát triển phần mềm để đảm bảo rằng hệ thống nhúng hoạt động đúng cách trong các ứng dụng cụ thể.

2 Lập trình hệ thống nhúnga) Công cụ:

– Arduino IDE: là một phần mềm với một mã nguồn mở, được sử dụng chủ yếu để

viết và biên dịch mã vào module Arduino Nó bao gồm phần cứng và phần mềm Phần cứng chứa đến 300,000 board mạch được thiết kế sẵn với các cảm biến, linh kiện Phần mềm giúp bạn có thể sử dụng các cảm biến, linh kiện ấy của Arduino một cách linh hoạt phù hợp với mục đích sử dụng.

Hình 1.2 Arduino IDE

– Ngôn ngữ PHP: là một trong những ngôn ngữ lập trình hướng đối tượng Nó

được sử dụng trong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị di động.

Trang 8

Hình 1.3 PHP

– MySQL: là hệ quản trị cơ sở dữ liệu, trong dự án này được dùng để lưu trữ dữ

liệu đo được từ thiết bị nhúng Những dữ liệu được lưu có thể được sử dụng lại để phân tích, dự báo thời tiết hoặc dùng cho mục đích khác.

Hình 1.4 MySQL

– HTTP Protocol:

+) HTTP (HyperText Transfer Protocol - Giao thức truyền tải siêu văn

bản): là một trong các giao thức chuẩn về mạng Internet, được dùng để liên

hệ thông tin giữa Máy cung cấp dịch vụ (Web server) và Máy sử dụng dịch vụ (Web client), là giao thức Client/Server dùng cho World Wide Web – WWW.

Trang 9

Hình 1.5 HTTP

+) HTTP POST (HyperText Transfer Protocol POST) là một trong các

phương thức truyền tải dữ liệu qua giao thức HTTP Nó được sử dụng để gửi dữ liệu từ máy khách (client) lên máy chủ (server) để thực hiện một tác vụ hoặc lấy dữ liệu từ máy chủ HTTP POST thường được sử dụng khi bạn muốn gửi dữ liệu không hiển thị trực tiếp trong URL, và khi bạn muốn truyền dữ liệu đến máy chủ mà có thể thay đổi trạng thái của máy chủ hoặc lưu trữ dữ liệu trên máy chủ.

b) Ngôn ngữ C++

Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm Môi trường lập trình đơn giản dễ sử dụng, ngôn ngữ lập trình Wiring dễ hiều và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật Và quan trọng là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn.

Hình 1.6 C++

Trang 10

Quản lý bộ nhớ kiểm soát: C++ cho phép bạn kiểm soát trực tiếp việc quản lý bộ

nhớ, điều này quan trọng trong lập trình nhúng để tránh rò rỉ bộ nhớ và tối ưu hóa việc sử dụng bộ nhớ hạn chế.

Lập trình hướng đối tượng (OOP): C++ hỗ trợ lập trình hướng đối tượng, giúp tổ

chức mã nguồn thành các đối tượng và lớp, tạo sự tái sử dụng mã nguồn và dễ bảo trì hơn.Tính đa năng: C++ cho phép viết mã ở cả mức cao và mức thấp, phù hợp với nhiều yêu cầu và hệ thống nhúng khác nhau.

Tiêu chuẩn C++ và thư viện: Có nhiều tiêu chuẩn C++ đã được phát triển (như C+

+98, C++11, C++14, C++17, C++20), và một số tiêu chuẩn này bổ sung thêm các tính năng quan trọng cho lập trình nhúng C++ cũng đi kèm với một thư viện tiêu chuẩn phong phú, bao gồm các công cụ và chức năng chuẩn giúp viết mã dễ dàng hơn.

Tính năng gần gũi với phần cứng: C++ cho phép truy cập và tương tác trực tiếp

với phần cứng thông qua con trỏ và việc truy cập bộ nhớ địa chỉ Điều này quan trọng trong lập trình nhúng, nơi bạn thường cần truy cập các thanh ghi và thiết bị phần cứng

Nhiều công cụ hỗ trợ: Có nhiều trình biên dịch và môi trường phát triển tích hợp

(IDE) hỗ trợ lập trình C++ cho các bo mạch nhúng phổ biến như Arduino, Raspberry Pi, và nhiều nền tảng khác

Cộng đồng lớn và tài liệu phong phú: C++ có một cộng đồng lập trình viên đông

đảo và tài liệu phong phú, giúp người dùng tìm hiểu và giải quyết vấn đề dễ dàng hơn Như vậy, C++ là một lựa chọn phổ biến trong lập trình nhúng vì tính mạnh mẽ và tính đa dụng của nó, cùng với khả năng kiểm soát bộ nhớ và tương tác trực tiếp với phần cứng.

3 Hệ thống và các cảm biến sử dụng trong hệ thống

Arduino là một nền tảng phát triển phổ biến trong việc xây dựng các hệ thống đo

nhiệt độ Hệ thống đo nhiệt độ sử dụng Arduino có thể được sử dụng trong nhiều ứng dụng khác nhau như theo dõi nhiệt độ môi trường, quản lý nhiệt độ trong hệ thống làm lạnh hoặc sưởi ấm, giám sát thời tiết, và nhiều ứng dụng khác.

Dưới đây là một sơ lược về hệ thống Arduino để đo nhiệt độ:

- Kit Arduino ESP8266 WeDos D1 R2: để điều khiển hệ thống đo nhiệt độ.- Cảm biến nhiệt độ: DHT11.

- Kết nối và cài đặt: cảm biến nhiệt độ sẽ được kết nối thông qua các analog.- Lưu dữ liệu: lưu truyền dữ liệu qua wifi.

- Lập trình và theo dõi: có thể lập trình để gửi dữ liệu nhiệt độ lên dịch vụ đám

mây.

Trang 11

-a) Hệ thống nhúng ESP8266 WeDos D1 R2

WEMOS D1 R2 là kit phát triển phiên bản mới nhất từ WeMos, kit được thiết kế với hình dáng tương tự Arduino Uno nhưng trung tâm lại là module wifi Soc ESP8266EX được build lại firmware để có thể chạy với chương trình Arduino Kit thích hợp và dễ dàng thực hiện các ứng dụng thu thập dữ liệu và điều khiển qua Wifi.

Hình 1.7 mạch ESP8266 D1 R2

Thông số kỹ thuật:

- Vi điều khiển: ESP8266 D1 R2 - Điện áp hoạt động: 3.3V - I/P Digital Pin: 11

- Analog Pin: 1 (Max input = 3.2V) - Xung Clock: 80MHz/160MHz - Flash: 4Mb

Trang 12

Cảm biến độ ẩm và nhiệt độ DHT11 là cảm biến rất thông dụng hiện nay vì chi phí rẻ và rất dễ lấy dữ liệu thông qua giao tiếp 1 wire (giao tiếp digital 1 dây truyền dữ liệu duy nhất) Bộ tiền xử lý tín hiệu tích hợp trong cảm biến giúp bạn có được dữ liệu chính xác mà không phải qua bất kỳ tính toán nào.

Hình 1.8 Cảm biến DHT11 Thông số kỹ thuật:

Trang 13

- Điện áp hoạt động: 5VDC - Chuẩn giao tiếp: TTL, 1 wire.

- Khoảng đo độ ẩm: 20%-90%RH sai số ± 5%RH.

- Khoảng đo nhiệt độ: 0-50°C sai số ± 2°C.

- Kích thước: 28mm × 12mm × 10 mm.

c) Lưu trữ dữ liệu

Sử dụng server

Trang 14

Chương 2: kế hoạch xây dựng hệ thống1 Yêu cầu, công việc đề ra

Cần xác định các vấn đề cần giải quyết, từ đó có thể phân công việc trong khả năng cho

Kết nối cảm biến với nền tảng nhúng: cần kết nối cảm biến đến với nền tảng

nhúng để có thể đoc được dữ liệu nhiệt độ.

Lập trình nền tảng nhúng: viết mã để đọc dữ liệu từ cảm biến, lưu trữ hoặc xử lý

dữ liệu này.

(Lưu ý: Sử dụng ngôn ngữ phù hợp với nền tảng đã chọn).

Hiển thị dữ liệu nhiệt độ: có thể hiển thị lên màn hình, gửi dữ liệu đến ứng dụng

hoặc máy chủ từ xa.

Lưu trữ dữ liệu: có thể cần 1 cơ sở dữ liệu hoặc tệp lưu trữ dữ liệu.

Cài đặt hệ thống: lắp ráp phần cứng, nạp chương trình lên nền tảng nhúng và kết

nối với nguồn điện Đảm bảo cảm biến được đặt ở vị trí phù hợp để đo nhiệt độ mục tiêu.

Kiểm tra và hiệu chỉnh: kiểm tra hệ thống để đảm bảo nó hoạt động đúng và đo

nhiệt độ chính xác.

Bảo trì và theo dõi: bảo trì và theo dõi hệ thống để đảm bảo nó hoạt động ổn định

và không gặp sự cố.

1 Chuẩn bị linh kiện Nguyễn Minh Di Đan

Đặng Hoàng Phúc 100% 2 Nghiên cứu phần cứng

Nguyễn Minh Di Đan Lê Văn Lương Đặng Hoàng Phúc

100%

Trang 15

3 Thiết kế phần mềm Nguyễn Minh Di Đan

Lê Văn Lương 100% 4 Test hệ thống Lê Văn Lương

Nguyễn Việt Quang 100% 5 Báo cáo đề tài Đặng Hoàng Phúc

Nguyễn Hải Đăng 100% Bảng 2.1 Công việc và tiến độ

2 Xác định hệ thống cần xây dựng

Xác định các yếu tố quan trọng cần xem xét giải quyết trong bài:

Mục tiêu đo nhiệt độ là gì?

Đo nhiệt độ và độ ẩm trực tiếp tại vị trí hiện tại của cảm biến.

Phạm vi đo là bao nhiêu?

Đo nhiệt độ trong khoảng từ 0 - 50 C, sai số ±2°C.

Đo độ ẩm trong khoảng từ 20 - 90%, ±5%RH.Tần suất đo là bao nhiêu?

Tần suất đo: 0.1s/lần.

Vị trí lắp cảm biến ở đâu?

Tiếp xúc trực tiếp với môi trường.

Yêu cầu kết nối và lưu trữ dữ liệu?

Kết nối với Wifi,

Năng lượng và nguồn điện?

Trang 17

Phần 3: kết luận và kiến nghị

Ngày đăng: 05/04/2024, 14:36

Từ khóa liên quan

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

Tài liệu liên quan