1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn thiết kế hệ thống nhúng đề tài thiết kế mạch đo nhiệt độ, độ ẩm rồi truyền dữ liệu lên máy tính qua wifi

30 15 0

Đ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 đề Thiết Kế Hệ Thống Nhúng Đề Tài Thiết Kế Mạch Đo Nhiệt Độ, Độ Ẩm Rồi Truyền Dữ Liệu Lên Máy Tính Qua Wifi
Tác giả Nguyễn Việt Dũng, Lê Văn Dưỡng, Nguyễn Thanh Liêm
Người hướng dẫn Nguyễn Minh Tuân
Trường học Trường Đại Học Bách Khoa Hà Nội
Chuyên ngành Khoa Học Máy Tính và Công Nghệ Thông Tin
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2017
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 1,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

MỞ ĐẦU Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và vi điều khiển PIC ngày càng thông dụng và hoàn thiện hơn , nhưng có thể nói sự xuất hiện của Arduino vào năm

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

BÁO CÁO BÀI TẬP LỚN THIẾT KẾ HỆ

THỐNG NHÚNG

Đề tài: Thiết kế mạch đo nhiệt độ, độ ẩm rồi truyền dữ

liệu lên máy tính qua wifi

Giảng viên hướng dẫn:

Sinh viên: Nguyễn Minh Tuân: 20179501

Nguyễn Việt Dũng: 20121427

Lê Văn Dưỡng : 20130767

Nguyễn Thanh Liêm: 20121969 cuu duong than cong com

Trang 2

MỤC LỤC

LỜI CẢM ƠN 4

MỞ ĐẦU 5

Chương I:Tổng quan và giới thiệu chung về các thành phần của mạch 6

1.1 ARDUINO 6

1.1.1 ? 6

1.1.2 7

1.1.3 9

1.2 Module Wifi ESP8266 V1 11

1.2.1 11

1.2.2 11

1.2.3 12

1.2.4 Giao tiếp bằng lệnh AT với ESP8266 12

1.3 11 14

1.3.1 14

1.3.2 14

1.4 Giới thiệu về Arduino IDE và ngôn ngữ lập trình cho Arduino 17

1.5 Tìm hiểu về ngôn ngữ lập trình web HTML và giao thức HTTP 18

1.5.1 HTML 18

1.5.2 Giao thức HTTP 19

Chương II: Thiết kế mạch và thực hiện lắp mạch thực tế 21

2.1 Sơ đồ mạch và code cho arduino 21

2.1.1 Sơ đồ mạch nguyên lý 21

2.1.2 CODE 22

2.2 Thực nghiệm 24

2.2.1 Các bước thực nghiệm 24

2.2.2 Kết quả: 27

cuu duong than cong com

Trang 3

DANH MụC HÌNH ảNH CHƯƠNG I

Hình 1 1: Board Arduino và chức năng các chân 6

Hình 1 2: Máy in 3D Makerbot điều khiển bằng Arduino Mega2560 7

Hình 1 3: Robot di động tự tránh vật cản 8

Hình 1 4: Một thiết bị UAV 9

Hình 1 5: Arduino Uno 9

Hình 1 6: Module ESP8266 11

Hình 1 7: Sơ đồ chân module ESP8266 12

Hình 1 8: Cảm biến DHT11 14

Hình 1 9: Sơ đồ kết nối vi xử lý của DHT11 14

Hình 1 10: Giao diện phần mềm Arduino IDE 17

Hình 1 11: Minh họa giao thức HTTP 19

Hình 1 12: Ví dụ về URLs 20

CHƯƠNG II Hình 2 1: Sơ đồ mạch nguyên lý 21

Hình 2 2: Arduino mega 2560 24

Hình 2 3: Cảm biến DHT11 24

Hình 2 4: Module ESP8266 25

Hình 2 5: Testboard 25

Hình 2 6: Dây cắm 25

Hình 2 7: Hình ảnh mạch thực tế 26

Hình 2 8: Đặt thông số của IDE và kiểm tra kết nối với Arduino 26

Hình 2 9: Nạp code lên Arduino 27

Hình 2 10: Kết quả đo nhiệt độ phòng 27

Hình 2 11: Kết quả đo ngoài trời 28

Hình 2 12: Kết quả đo ngoài trời ở vị trí khác 28

cuu duong than cong com

Trang 4

LỜI CẢM ƠN

Em xin gửi lời cảm ơn đến

‐ Thầy đã tận tâm chỉ dạy tận tình cho em trong quá trình thực hiện đồ án

‐ Các bạncùng nhóm đồ án ở phòng lab 618 – C9 đã tạo điều kiện cũng như giải đáp các thắc mắc của em lúc em gặp khó khăn trong việc làm đồ án

cuu duong than cong com

Trang 5

MỞ ĐẦU

Ngày nay khoa học công nghệ ngày càng phát triển, vi điều khiển AVR và

vi điều khiển PIC ngày càng thông dụng và hoàn thiện hơn , nhưng có thể nói sự xuất hiện của Arduino vào năm 2005 tại Italia đã mở ra một hướng đi mới cho vi điều khiển Sự xuất hiện của Arduino đã hỗ trợ cho con người rất nhiều trong lập trình và thiết kế, nhất là đối với những người bắt đầu tìm tòi về vi điều khiển mà không có quá nhiều kiến thức, hiểu biết sâu sắc về vật lý và điện tử Phần cứng của thiết bị đã được tích hợp nhiều chức năng cơ bản và là mã nguồn mở Ngôn ngữ lập trình trên nền Java lại vô cùng dễ sử dụng tương thích với ngôn ngữ C

và hệ thư viện rất phong phú và được chia sẻ miễn phí Chính vì những lý do như vậy nên Arduino hiện đang dần phổ biến và được phát triển ngày càng mạnh mẽ trên toàn thế giới Trên cơ sở kiến thức đã học trong môn học : Tin học đại cương , Điện tử tương tự và số… cùng với những hiểu biết về các thiết bị

điện tử, chúng em đã quyết định thực hiện đề tài : Thiết kế mạch đo nhiệt độ,

dộ ẩm sử dụng board Arduino, truyền dữ liệu lên máy tính theo chuẩn WIFI Với mục đích để tìm hiểu thêm về Arduino, làm quen với các thiết bị

điện tử và nâng cao hiểu biết cho bản thân Do kiến thức còn hạn hẹp, thêm vào

đó đây là lần đầu chúng em thực hiện đồ án nên chắc chắn không tránh khỏi những thiếu sót , hạn chế vì thế chúng em rất mong có được góp ý và nhắc nhở

từ thầy giáo để có thể hoàn thiện đề tài của mình

cuu duong than cong com

Trang 6

CHƯƠNG I TổNG QUAN VÀ GIớI THIệU CHUNG Về CÁC

kỳ dễ sử dụng, với một ngôn ngữ lập trình có thể học một cách nhanh chóng ngay cả với người ít am hiểu về điện tử và lập trình Và điều làm nên hiện tượng Arduino chính là mức giá rất thấp và tính chất nguồn mở từ phần cứng tới phần mềm

cuu duong than cong com

Trang 7

Arduino ra đời tại thị trấn Ivrea thuộc nước Ý và được đặt theo tên một vị vua vào thế kỷ thứ 9 là King Arduin Arduino chính thức được đưa ra giới thiệu vào năm 2005 như là một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interaction Design Instistute Ivrea (IDII) Mặc dù hầu như không được tiếp thị gì cả, tin tức về Arduino vẫn lan truyền với tốc độ chóng mặt nhờ những lời truyền miệng tốt đẹp của những người dùng đầu tiên Hiện nay Arduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để tham quan nơi đã sản sinh ra Arduino

Arduino được chọn làm bộ não xử lý của rất nhiều thiết bị từ đơn giản đến phức tạp Trong số đó có một vài ứng dụng thực sự chứng tỏ khả năng vượt trội của Arduino do chúng có khả năng thực hiện nhiều nhiệm vụ rất phức tạp Sau đây là danh sách một số ứng dụng nổi bật của Arduino

Máy in 3D

Hình 1 2: Máy in 3D Makerbot điều khiển bằng Arduino Mega2560

cuu duong than cong com

Trang 8

Một cuộc cách mạng khác cũng đang âm thầm định hình nhờ vào Arduino,

đó là sự phát triển máy in 3D nguồn mở Reprap Máy in 3D là công cụ giúp tạo

ra các vật thể thực trực tiếp từ các file CAD 3D Công nghệ này hứa hẹn nhiều ứng dụng rất thú vị trong đó có cách mạng hóa việc sản xuất cá nhân

Robot

Do kích thước nhỏ gọn và khả năng xử lý mạnh mẽ, Arduino được chọn làm bộ xử lý trung tâm của rất nhiều loại robot, đặc biệt là robot di động

Hình 1 3: Robot di động tự tránh vật cản dùng camera CMUCam và Arduino nano

cuu duong than cong com

Trang 9

Thiết bị bay không người lái UAV

UAV là một ứng dụng đặc biệt thích hợp với Arduino do chúng có khả năng xử lý nhiều loại cảm biến như Gyro, accelerometer, GPS…; điều khiển động cơ servo và cả khả năng truyền tín hiệu từ xa

Trang 10

Chúng ta hãy cùng xem xét chi tiết các thành phần trên một chiếc Arduino Uno:

‐ Ở dãy trên cùng của bảng mạch, có 14 chân tín hiệu kỹ thuật số Input/Output (từ 0 đến 13) Đây là các chân linh hoạt nhất trên Arduino và

có thể hoạt động như một trong hai chức năng đầu vào hoặc đầu ra, và chúng sẽ là mối quan tâm chính trong dự án của bạn Chân tín hiệu kỹ thuật số có nghĩa là các tín hiệu từ các chân này có thể ghi hoặc đọc như là bật hoặc tắt

‐ 6 trong số những chân kỹ thuật số trên (3, 5, 6, 9, 10,11), được đánh dấu bằng dấu ngã ―~― là những chân điều chế độ rộng xung (Pulse Width Modulation), chúng sẽ cung cấp các tín hiệu đầu ra với các mức khác nhau Ví dụ như làm mờ một đèn LED hoặc điều khiển một động cơ ở tốc

độ khác nhau

‐ Chân 13 đặc biệt ở chỗ là nó có gắn trực tiếp một đèn LED (built-in LED) Bởi vậy rất tiện lợi trong mục đích kiểm thử Bạn có thể sử dụng đèn LED on-board đó bằng cách chỉ cần xuất ra chân 13 - hoặc nó có thể được sử dụng như một chuẩn chân vào/ra (I/O)

‐ Tại góc dưới bên phải là 6 chân đầu vào tương tự (analog input) Chúng sẽ đọc giá trị của các cảm biến tương tự, ví dụ như một cảm biến ánh sáng hoặc biến trở

‐ Góc dưới bên trái kế bên các chân đầu vào analog là các chân nguồn (power) Các chân mà bạn nên quan tâm nhất là GND, 3.3v và 5v

‐ Chân còn lại là chân reset Nó sẽ khởi động lại bất cứ chương trình nào có trong bộ nhớ của Arduino

‐ Arduino có giới hạn về dung lượng bộ nhớ, vì vậy nếu chương trình của bạn trở nên quá lớn thì trình biên dịch sẽ đưa ra một cảnh báo lỗi cuu duong than cong com

Trang 11

1.2 Module Wifi ESP8266 V1

Hình 1 6: Module ESP8266

ESP8266 là một chip tích hợp cao - System on Chip (SoC), có khả năng xử

lý và lưu trữ tốt, cung cấp khả năng vượt trội để trang bị thêm tính năng wifi cho các hệ thống khác hoặc đóng vai trò như một giải pháp độc lập

Module wifi ESP8266 v1 cung cấp khả năng kết nối mạng wifi đầy đủ và khép kín, bạn có thể sử dụng nó để tạo một web server đơn giản hoặc sử dụng như một access point

1.2.2

 Wifi 802.11 b/g/n

 Wifi 2.4 GHz, hỗ trợ WPA/WPA2

 Chuẩn điện áp hoạt động 3.3V

 Chuẩn giao tiếp nối tiếp UART với tốc độ Baud lên đến 115200

 Có 3 chế độ hoạt động: Client, Access Point, Both Client and Access Point

 Hỗ trợ các chuẩn bảo mật như: OPEN, WEP, WPA_PSK, WPA2_PSK, WPA_WPA2_PSK

 Hỗ trợ cả 2 giao tiếp TCP và UDP

cuu duong than cong com

Trang 12

 Tích hợp công suất thấp 32-bit CPU có thể được sử dụng như là bộ vi xử

lý ứng dụng

 SDIO 1.1 / 2.0, SPI, UART

 Làm việc như các máy chủ có thể kết nối với 5 máy con

Hình 1 7: Sơ đồ chân module ESP8266

 URXD(RX) — dùng để nhận tín hiệu trong giao tiếp UART với vi điều khiển

 VCC — đầu vào 3.3V

 GPIO 0 — kéo xuống thấp cho chế độ upload bootloader

 RST — chân reset cứng của module, kéo xuống mass để reset

 GPIO 2 — thường được dùng như một cổng TX trong giao tiếp UART để debug lỗi

 CH_PD — kích hoạt chip, sử dụng cho Flash Boot và updating lại module, nối với mức cao

 GND — nối với mass

 UTXD (TX) — dùng để truyền tín hiệu trong giao tiếp UART với vi điều khiển

1.2.4 Giao tiếp bằng lệnh AT với ESP8266

Tập lệnh AT dùng để config các chế độ hoạt động trên module, tập lệnh

AT đối với ESP8266 khá quan trọng để tương tác với các thiết bị khác thông qua UART Chúng ta cùng đi tìm hiểu về tập lệnh AT của ESP8266

cuu duong than cong com

Trang 13

cuu duong than cong com

Trang 15

Nguyên lý hoạt động:

Để có thể giao tiếp với DHT11 theo chuẩn 1 chân vi xử lý thực hiện theo 2 bước:

- Gửi tin hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại

- Khi đã giao tiếp được với DHT11, Cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt độ

đo được

- Bước 1: gửi tín hiệu Start

MCU thiết lập chân DATA là Output, kéo chân DATA xuống 0 trong khoảng thời gian >18ms Trong Code mình để 25ms Khi đó DHT11 sẽ hiểu MCU muốn đo giá trị nhiệt độ và độ ẩm

MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào

Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu >40us

mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với DHT11

Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo nên cao trong 80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 ko Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện quátrình giao tiếp của MCU với DHT

- Bước 2: đọc giá trị trên DHT11

DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó:

 Byte 1: giá trị phần nguyên của độ ẩm (RH%)

 Byte 2: giá trị phần thập phân của độ ẩm (RH%)

 Byte 3: giá trị phần nguyên của nhiệt độ (TC)

cuu duong than cong com

Trang 16

 Byte 4 : giá trị phần thập phân của nhiệt độ (TC)§ Byte 5 : kiểm tra tổng

 Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa

Đọc dữ liệu:

Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1

về MCU, tương ứng chia thành 5 byte kết quả của Nhiệt độ và độ ẩm

cuu duong than cong com

Trang 17

Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được DHT11 kéo lên 1 Nếu chân DATA là 1 trong khoảng 26-28 us thì là 0, còn nếu tồn tại 70us là 1 Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó delay 50us Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là 1 thì giá trị đo được là 1 Cứ như thế ta đọc các bit tiếp theo Các bạn có thể thao khảo theo CODE mình gửi kèm theo

1.4 Giới thiệu về Arduino IDE và ngôn ngữ lập trình cho Arduino

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 10: Giao diện phần mềm Arduino IDE

cuu duong than cong com

Trang 18

Arduino IDE là phần mềm dùng để lập trình cho Arduino Môi trường lập trình Arduino IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Linux Do có tính chất nguồn mở nên môi trường lập trình này hoàn toàn miễn phí và có thể mở rộng thêm bởi người dùng có kinh nghiệm

Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++ Và

do ngôn ngữ lập trình này dựa trên nền tảng ngôn ngữ C của AVR nên người dùng hoàn toàn có thể nhúng thêm code viết bằng AVR vào chương trình nếu muốn

1.5 Tìm hiểu về ngôn ngữ lập trình web HTML và giao thức HTTP 1.5.1 HTML

1.5.1.1 HTML là gì

HTML là một ứng dụng đơn giản của SGML, được sử dụng trong các tổ chức công nghệ truyền thông HTMLđã trở thành một chuẩn cho trang web trên Internet do tổ chức World Wide Web Consortium (W3C) duy trì Phiên bản mới nhất: HTML 5

HTML được lưu trữ như là các tập tin văn bản - trên các máy chủ, để người dùng có thể truy cập thông qua mạng internet - ngoài ra tập tin HTML còn được lưu trữ tại máy tính cá nhân - sử dụng trình duyệt để xem dữ liệu hiển thị như thế nào và sử dụng một editor ( phầm mềm soạn thảo mã như notepad, notepad++, codelobster, dreamweaver, ) để soạn mã HTML

Các file HTML chứa thẻ đánh dấu, là các chỉ thị cho chương trình về cách hiển thị, xử lý văn bản ở dạng thuần túy Phần đuôi mở rộng của tập tin HTML thường có dạng .htm hay .html - ngoài ra còn có phtml ( nhũng mã nguồn php), cshtml ( nhũng mã nguồn asp.net - c#)

cuu duong than cong com

Trang 19

1.5.1.2 Cấu Trúc Một Trang HTML

Gồm 3 phần cơ bản:

Phần HTML: Mọi tài liệu HTML phải bắt đầu bằng thẻ mở <HTML> và kết thúc bằng thẻ đóng </HTML> Cặp thẻ này báo cho trình duyệt biết nội dung giữa chúng là một tài liệu HTML

Phần đầu: Phần đầu bắt đầu bằng thẻ <HEAD> và kết thúc bởi thẻ </HEAD> Phần này chứa tiêu đề hiển thị trên thanh điều hướng của trang Web Tiêu đề là phần khá quan trọng Các mốc được dùng để đánh dấu một Website, trình duyệt

sử dụng tiêu đề để lưu trữ các mốc này Do đó, khi người dùng tìm kiếm thông tin, tiêu đề của trang Web cung cấp từ khoá chính yếu cho việc tìm kiếm

Phần thân: Phần này nằm sau phần tiêu đề Phần thân bao gồm văn

bản, hình ảnh và các liên kết mà bạn muốn hiển thị trên trang Web của mình Phần thân bắt đầu bằng thẻ <BODY> và kết thúc bằng thẻ </BODY>

1.5.2 Giao thức HTTP

1.5.2.1 Khái niệm

HTTP cho phép giao tiếp giữa nhiều máy chủ và khách hàng , và hỗ trợ một hỗn hợp của cấu hình mạng.Điều này trở thành stateless protocol Giao tiếp thường diễn ra qua giao thức TCP / IP, nhưng bất kỳ giao thông vận tải đáng tin cậy có thể được sử dụng Cổng mặc định cho giao thức TCP / IP là 80, nhưng các cảng khác cũng có thể được sử dụng

Gửi yêu cầu / Thực hiện yêu cầu

Hình 1 11: Minh họa giao thức HTTP

Tiêu đề tùy chỉnh cũng có thể được tạo ra và gửi của khách hàng

cuu duong than cong com

Ngày đăng: 13/05/2023, 06:13

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w