You are on page 1of 63

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI

BÁO CÁO TỔNG KẾT


ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
NĂM HỌC 2022-2023

ĐỀ TÀI: THIẾT KẾ, CHẾ TẠO MODULE ĐO CÁC THÔNG SỐ


NHIỆT ĐỘ, ĐỘ ẨM, CƯỜNG ĐỘ UV CÓ KHẢ NĂNG GỬI DỮ
LIỆU LÊN INTERNET.

Sinh viên thực hiện: Tên lớp Tên khoa


Trần Văn Thụ Cơ điện tử 2 K61 Cơ khí
Vũ Huy Tấn Cơ điện tử 2 K61 Cơ khí
Phạm Hoàng Anh Cơ điện tử 2 K61 Cơ khí
Nguyễn Hải Nam Cơ điện tử 2 K61 Cơ khí
Bùi Văn Thuần Cơ điện tử 2 K61 Cơ khí

Người hướng dẫn: Ths. Trịnh Tuấn Dương

HÀ NỘI, 2023
NGHIÊN CỨU KHOA HỌC SINH VIÊN
ĐỀ TÀI: THIẾT KẾ, CHẾ TẠO MODULE ĐO CÁC THÔNG SỐ NHIỆT
ĐỘ, ĐỘ ẨM, CƯỜNG ĐỘ UV CÓ KHẢ NĂNG GỬI DỮ LIỆU LÊN
INTERNET.
Nhóm, tên thành viên:

Trần Văn Thụ (Nhóm Trường) GVHD: Ths. Trịnh Tuấn Dương
Vũ Huy Tấn
Phạm Hoàng Anh
Nguyễn Hải Nam
Bùi Văn Thuần

1
MỤC LỤC
MỤC LỤC ......................................................................................................................2

DANH MỤC CÁC HÌNH .............................................................................................4

DANH MỤC CÁC BẢNG.............................................................................................5

MỞ ĐẦU .........................................................................................................................6

CHƯƠNG 1: TỔNG QUAN .........................................................................................7


1.1 Giới thiệu chung .................................................................................................................... 7

1.2 Mục đích, đối tượng, nội dung nghiên cứu. ........................................................................ 7

1.2.1 Mục đích nghiên cứu ..................................................................................................... 7

1.2.2 Đối tượng nghiên cứu. ................................................................................................... 8

1.2.3 Nội dung nghiên cứu của đề tài:................................................................................... 8

CHƯƠNG 2 THIẾT KẾ CHẾ TẠO MẠCH PHẦN CỨNG ..............................10


2.1 Tổng quan về linh kiện sử dụng ......................................................................................... 10

2.1.1 Arduino UNO R3......................................................................................................... 11

2.1.2 Phần mềm để lập trình cho Arduino: ........................................................................ 14

2.1.3 Chọn loại thiết bị truyền phát không dây và cơ sở lý thuyết : ................................ 18

2.1.4 Cơ sở lý thuyết chung về cảm biến nhiệt độ , độ ẩm , tia UV :................................ 20

2.1.5 Phần mềm mô phỏng , thiết kế mạch Proteus: ......................................................... 23

2.2 Sơ đồ khối hệ thống ,thiết kế mạch nguyên lí. .................................................................. 26

2.2.1 Chuẩn bị các thiết bị cần thiết để lắp mạch phát cảm biến nhiệt độ, độ ẩm và
cường độ tia uv............................................................................................................................. 27

2.2.2 Thiết kế mạch phát trên Proteus: .............................................................................. 28

2.2.3 Tiến hành lắp mạch thật:............................................................................................ 29

2.2.4 Tiến hành hoàn thiện bo mạch phát và nạp code cho mạch. ................................... 33

2.2.5 Nguyên lí của mạch và giải thích code ....................................................................... 37

2.3 Tiến hành hoàn thiện bo mạch phát và tiến hành nạp code cho mạch: ......................... 40

2.4 Tiến hành kiểm tra, khảo sát mạch phát và thu. .............................................................. 42

2.4.1 Kiểm tra khảo sát mạch ở điều kiện trong phòng: ................................................... 42

2
CHƯƠNG 3 THIẾT KẾ CHẾ TẠO VỎ CHO MÔ HÌNH . ...............................44
3.1 Tìm hiểu về công nghệ in 3D .............................................................................................. 44

3.2 Thiết kế mô hình in 3D bằng phần mềm solidworks........................................................ 44

3.2.1 Giới thiệu qua về phần mềm solidworks ................................................................... 44

3.2.2 Thiết kế vỏ mô hình ..................................................................................................... 45

3.3 Thiết lập in cho sản phẩm................................................................................................... 48

CHƯƠNG 4 APP INVENTOR ..............................................................................50


4.1 Giới thiệu về App Inventor ................................................................................................. 50

4.2 Các tính năng có trên MIT App Inventor ......................................................................... 50

4.3 Hướng dẫn sử dụng App Inventor ..................................................................................... 51

4.4 Tạo phần mềm hiển thị cảm biến nhiệt độ,độ ẩm và tia uv gửi từ Bluetooth bằng app
Inventor ............................................................................................................................................ 52

KẾT LUẬN VÀ KIẾN NGHỊ .....................................................................................60


Phần kết luận:.................................................................................................................................. 60

Phần kiến nghị:................................................................................................................................ 60

TÀI LIỆU THAM KHẢO: .........................................................................................62

3
DANH MỤC CÁC HÌNH
Hình 1: Sơ đồ chân module HC 05 ...............................................................................18
Hình 2: Sơ đồ kết nối HC-05 .........................................................................................19
Hình 3: Cảm biến DHT21 .............................................................................................21
Hình 4: Cấu tạo DHT21 ................................................................................................22
Hình 5: Cảm biến tia UV ML8511.................................................................................23
Hình 6: Phần mềm Proteus ...........................................................................................24
Hình 7: hình ảnh mô phỏng Proteus cho mạch Arduino xuất ra màn hình LCD ..........25
Hình 8: mô phỏng thiết kế mạch đo nhiệt độ truyền phát không dây ...........................25
Hình 9: Sơ đồ khối mạch phát .......................................................................................26
Hình 10: Mạch phát đo nhiệt độ, độ ẩm, uv hiển thị lên LCD, truyền dữ liệu lên app. 29
Hình 11: Hình ảnh lắp đặt modul chuyển đổi I2C vào màn hình LCD. ........................30
Hình 12Modul IC2 và màn hình LCD ...........................................................................30
Hình 13: Lắp đặt màn hình led LCD thông qua bộ chuyển đổi vào Arduino ...............31
Hình 14: Sơ đồ lắp đặt cảm biến nhiệt độ độ ẩm DHT21 .............................................32
Hình 15: Lắp đặt cảm biến cường độ tia UV ML8511 ..................................................32
Hình 16: lắp đặt modul truyền phát tín hiệu bluetooth HC 05 .....................................33
Hình 17: Sơ đồ nguyên lý hoạt động của mạch.............................................................34
Hình 18: Mạch phát nhiệt độ, độ ẩm và cường độ tia UV sau khi nhập code ..............36
Hình 19: Nghiệm thu nhiệt độ so sánh độ chênh lệch so với thực tế trong phòng ........42
Hình 20: Nghiệm thu kiểm tra nhiệt độ so sánh độ chênh lệch so với thực tế ..............43
Hình 21: Tổng quát về vỏ hộp ......................................................................................46
Hình 22: Nắp hộp ..........................................................................................................47
Hình 23: Nắp pin ...........................................................................................................47
Hình 24: Vị trí lắp Arduino ..........................................................................................47
Hình 25: Vị trí lắp cảm biến DHT21 .............................................................................47
Hình 26: Vị trí lắp cảm biến UV ...................................................................................48
Hình 27: Vị trí lắp LED LCD 1602 ...............................................................................48
Hình 28: Sản phẩm sau khi hoàn thiện .........................................................................49
Hình 29: Trang quản lý dự án .......................................................................................51
Hình 30: Tạo một trang quản lý mới .............................................................................52
Hình 31: Cửa số giao tiếp với App Inventor. .................................................................52
Hình 32: Thiết kế giao diện ứng dụng ...........................................................................53
Hình 33: Giao diện ứng dụng mô phỏng khi hoàn thành .............................................54
Hình 34: Cửa sổ tạo chương trình cho ứng dụng .........................................................54
Hình 35: Thuộc tính của block ......................................................................................55
Hình 36: Phương thức của block...................................................................................55
Hình 37: Sự kiện của Block ...........................................................................................56
Hình 38: Hành động kết nối liên lục các bluetooth đã lưu ...........................................56
Hình 39: Hành động nút bấm chọn kết nối Bluetooth ...................................................57
Hình 40: Hành động kết nối Bluetooth cần chọn ..........................................................57
Hình 41: Hành động kết nối hiển thị data từ buletooth ................................................58
Hình 42: Cách cài đặt chương trình bằng mã quét QR và code ...................................59
4
DANH MỤC CÁC BẢNG

Bảng 1: Thống kê thiết bị cần thiết để thiết kế bộ phát. ................................................27


Bảng 2: Bảng nguyên lí cắm chân từ LCD tới mạch chuyển đổi I2C. ..........................29
Bảng 3: Bảng nguyên lí cắm chân từ modul chuyển đổi tới Arduino Uno....................31
Bảng 4: Bảng nguyên lí cắm chân từ cảm biến về uno .................................................31
Bảng 5: Bảng nguyên lí cắm cảm biến tia UV ML8511 vào Arduino. ..........................32
Bảng 6:Bảng nguyên lí cắm modul truyền phát Bluetooth HC 05 vào Arduino. ..........33

5
MỞ ĐẦU

Trong thời đại công nghệ số ngày nay, việc thu thập và giám sát thông tin môi
trường đã trở thành một phần quan trọng của cuộc sống hàng ngày. Cùng với sự phát
triển của công nghệ, chúng ta có khả năng kết nối và truyền dữ liệu từ các thiết bị đo
môi trường lên Internet một cách dễ dàng và nhanh chóng. Điều này mở ra cơ hội cho
việc tạo ra các thiết bị thông minh có khả năng đo nhiệt độ, độ ẩm và cường độ UV, và
gửi dữ liệu trực tiếp lên Internet để giúp chúng ta hiểu rõ hơn về môi trường xung quanh.
Mục tiêu của chúng em là thiết kế một thiết bị nhỏ gọn, hiệu quả và dễ sử dụng,
có khả năng đo các thông số môi trường quan trọng và truyền dữ liệu lên nền tảng trực
tuyến để có thể truy cập từ xa. Để đạt được mục tiêu này, chúng em sẽ sử dụng các cảm
biến để đo nhiệt độ, độ ẩm và cường độ UV. Module sẽ được thiết kế và lập trình sử
dụng một vi điều khiển nhúng, như Arduino, để điều khiển hoạt động và thu thập dữ
liệu. Chúng em sẽ tìm hiểu về các giao thức truyền thông, như Wi-Fi hoặc Bluetoot, để
kết nối module với Internet và gửi dữ liệu lên nền tảng đám mây.
Thông qua đề tài này, nhóm nghiên cứu chúng em hy vọng có thể đóng góp vào
việc phát triển các thiết bị đo môi trường thông minh và kết nối mạng. Việc thu thập và
phân tích dữ liệu môi trường từ xa sẽ mang lại nhiều lợi ích, từ việc quản lý và bảo vệ
môi trường đến ứng dụng trong các lĩnh vực như nông nghiệp, quản lý đô thị và y tế.
Tuy nhiên, chúng em nhận thức rằng đề tài này có những hạn chế và thách thức.
Sự đa dạng của môi trường và yêu cầu đa dạng của người dùng đòi hỏi sự linh hoạt và
đa năng của module. Chúng em rất mong nhận được sự hỗ trợ, đóng góp và góp ý từ các
thầy/cô giảng viên để hoàn thiện và nâng cao chất lượng của đề tài này. Chúng em cũng
xin chân thành cảm ơn thầy giáo Ths. Trịnh Tuấn Dương đã giúp đỡ chúng rất nhiều
trong quá trình tìm hiểu, thiết kế và hoàn thành đề tài nghiên cứu này.

Hà Nội, ngày 29 tháng 5 năm 2023


Phụ trách thực hiện

6
CHƯƠNG 1: TỔNG QUAN

1.1 Giới thiệu chung


Đề tài "Thiết kế, chế tạo module đo các thông số nhiệt độ, độ ẩm, cường độ UV
có khả năng gửi dữ liệu lên Internet" tập trung vào việc phát triển một thiết bị đo các
thông số môi trường như nhiệt độ, độ ẩm và cường độ UV. Thiết bị này được thiết kế và
chế tạo để hoạt động trong môi trường ngoài trời và có khả năng gửi dữ liệu về một máy
chủ trên Internet.
Đặc điểm nổi bật của module là khả năng gửi dữ liệu lên Internet, cho phép người
dùng từ xa có thể theo dõi, giám sát và thu thập dữ liệu môi trường từ thiết bị. Việc gửi
dữ liệu lên Internet cung cấp khả năng truy cập từ xa, thuận tiện cho việc giám sát, phân
tích dữ liệu và đưa ra các quyết định hợp lý dựa trên thông số thu thập được.
Đề tài đòi hỏi sự kết hợp giữa các công nghệ như Arduino, cảm biến nhiệt độ, độ
ẩm, cảm biến cường độ UV và giao thức kết nối Internet như Bluetooth hoặc Wi-Fi. Việc
nghiên cứu và chế tạo module này đòi hỏi sự hiểu biết về lĩnh vực đo lường môi trường,
kỹ thuật điện tử và lập trình.
Sau khi hoàn thành, module đo các thông số nhiệt độ, độ ẩm, cường độ UV và
khả năng gửi dữ liệu lên Internet sẽ mang lại lợi ích trong việc giám sát, quản lý môi
trường và đưa ra các quyết định dựa trên dữ liệu thu thập được.
1.2 Mục đích, đối tượng, nội dung nghiên cứu.
1.2.1 Mục đích nghiên cứu
Mục đích chính của nghiên cứu này là thiết kế và chế tạo một module đo các
thông số nhiệt độ, độ ẩm và cường độ UV, và có khả năng gửi dữ liệu liên tục lên Internet.
Điều này nhằm tạo ra một sản phẩm có khả năng đo và gửi dữ liệu môi trường trong
thời gian thực, từ đó cung cấp thông tin hữu ích cho việc giám sát, quản lý và phân tích
dữ liệu môi trường.
Thông qua việc sử dụng module đo các thông số và kết nối Internet, sản phẩm
này sẽ cho phép thu thập dữ liệu môi trường từ nhiều địa điểm khác nhau và gửi nhanh
chóng đến một máy chủ trên Internet. Dữ liệu thu thập được có thể được truy cập từ xa
và theo dõi thông qua các thiết bị di động hoặc máy tính, cung cấp thông tin cần thiết để
đánh giá tình trạng môi trường, phân tích xu hướng và đưa ra quyết định hợp lý.
7
Việc giám sát các thông số nhiệt độ, độ ẩm và cường độ UV trong thời gian thực là quan
trọng trong nhiều lĩnh vực như nông nghiệp, môi trường, y tế, và công nghiệp. Sản phẩm
này có thể được ứng dụng để giám sát môi trường trong các trang trại, khu đô thị, công
viên, công trình xây dựng và nhiều vị trí khác. Nó cung cấp cho người dùng thông tin
quan trọng để đưa ra các biện pháp bảo vệ môi trường, điều chỉnh điều kiện sống và
nâng cao chất lượng cuộc sống.
1.2.2 Đối tượng nghiên cứu.
Đối tượng của nghiên cứu có thể là học sinh, sinh viên hoặc các chuyên gia, nhà
nghiên cứu trong lĩnh vực môi trường, nông nghiệp, đô thị và khoa học địa chất. Học
sinh, sinh viên có thể ứng dụng trong việc học tập. Các chuyên gia trong lĩnh vực môi
trường có thể sử dụng sản phẩm để giám sát các thông số nhiệt độ, độ ẩm và cường độ
UV trong các khu vực môi trường khác nhau và thu thập dữ liệu để phân tích và đưa ra
quyết định hợp lý về bảo vệ môi trường. Các chuyên gia trong lĩnh vực nông nghiệp có
thể sử dụng sản phẩm để theo dõi điều kiện môi trường trong trang trại và ứng dụng các
biện pháp phù hợp để cải thiện năng suất và chất lượng sản phẩm nông nghiệp. Trong
lĩnh vực đô thị, các tổ chức quản lý môi trường và các trung tâm nghiên cứu có thể sử
dụng sản phẩm để giám sát chất lượng môi trường trong các khu vực đô thị và đưa ra
các biện pháp cải thiện môi trường sống cho cộng đồng. Cuối cùng, các nhà khoa học
và nhà nghiên cứu quan tâm đến việc giám sát môi trường cũng có thể tận dụng sản
phẩm để thu thập dữ liệu và phân tích các xu hướng và biến đổi môi trường.
1.2.3 Nội dung nghiên cứu của đề tài:
Nội dung nghiên cứu bao gồm:
Phân tích yêu cầu: Nghiên cứu yêu cầu và nhu cầu về thông số nhiệt độ, độ ẩm
và cường độ UV trong việc giám sát môi trường.
Thiết kế module: Nghiên cứu và phát triển thiết kế module đo các thông số môi
trường, bao gồm lựa chọn các linh kiện, mạch điện, cảm biến và giao thức kết nối
Internet.
Chế tạo module: Tiến hành gia công, lắp ráp và kiểm tra module để đảm bảo hoạt
động đúng và ổn định.
Đo lường và kiểm tra: Thực hiện các thử nghiệm và đo lường để đánh giá độ
chính xác và tin cậy của module trong các điều kiện môi trường khác nhau.

8
Gửi dữ liệu lên Internet: Xây dựng phần mềm hoặc ứng dụng để gửi dữ liệu đo
được từ module lên một máy chủ trên Internet và hiển thị dữ liệu môi trường một cách
trực quan và dễ sử dụng.
Tìm hiểu về công nghệ in 3D: Sử dụng công nghệ in 3D để tạo ra vỏ bảo vệ và
thiết kế ngoại hình cho module đo. Áp dụng kỹ thuật thiết kế 3D và sử dụng máy in 3D
để tạo ra các bộ phận cần thiết cho module. Đánh giá tính khả thi và hiệu quả của việc
sử dụng in 3D trong quá trình sản xuất module đo.
Đánh giá và kết luận: Đánh giá hiệu quả và tính ứng dụng của module trong việc giám
sát môi trường và rút ra kết luận về hiệu quả và tiềm năng của sản phẩm.

9
CHƯƠNG 2 THIẾT KẾ CHẾ TẠO MẠCH PHẦN CỨNG

2.1 Tổng quan về linh kiện sử dụng


Trong đề tài "Thiết kế, chế tạo module đo các thông số nhiệt độ, độ ẩm, cường
độ UV có khả năng gửi dữ liệu lên Internet", chúng em đã sử dụng một số linh kiện quan
trọng để thiết kế và chế tạo module. Dưới đây là một tổng quan về các linh kiện chính
được sử dụng:
Arduino UNO R3: Arduino UNO R3 là một bo mạch phát triển mã nguồn mở
được sử dụng để điều khiển các thành phần điện tử khác nhau. Nó cung cấp một giao
diện dễ sử dụng và linh hoạt cho việc lập trình và kết nối các linh kiện khác nhau.
Cảm biến nhiệt độ, độ ẩm DHT21: Cảm biến DHT21 được sử dụng để đo và ghi
nhận thông số nhiệt độ và độ ẩm trong môi trường xung quanh. Nó cung cấp độ chính
xác cao và có khả năng đo trong khoảng rộng của nhiệt độ và độ ẩm.
Cảm biến cường độ UV ML8511: Cảm biến ML8511 được sử dụng để đo và
đánh giá cường độ tia tử ngoại (UV). Nó cung cấp thông tin về mức độ UV trong môi
trường, giúp đánh giá tiềm năng gây hại của tia UV đối với con người và môi trường.
Module giao tiếp I2C: Module giao tiếp I2C được sử dụng để kết nối các linh
kiện với nhau thông qua giao thức I2C. Nó cho phép truyền dữ liệu giữa các linh kiện
một cách dễ dàng và hiệu quả.
Màn hình LED LCD 16x2: Màn hình LED LCD 16x2 được sử dụng để hiển thị
thông tin đo được từ các cảm biến. Nó cung cấp một giao diện đồ họa đơn giản và thuận
tiện để người dùng có thể theo dõi dữ liệu môi trường.
Module giao tiếp Bluetooth HC-05: Module Bluetooth HC-05 được sử dụng để
kết nối module đo với các thiết bị di động hoặc máy tính thông qua Bluetooth. Nó cho
phép truyền dữ liệu từ module đo đến các thiết bị khác và cung cấp tính năng gửi dữ liệu
lên Internet.
Các linh kiện này cùng hoạt động và tương tác với nhau để tạo ra một module đo
các thông số nhiệt độ, độ ẩm và cường độ UV có khả năng gửi dữ liệu lên Internet.

10
2.1.1 Arduino UNO R3

Hình 1: Arduino UNO R3


Chúng em quyết định chọn loại arduino UNO R3 với các lý do sau:
- Giá thành phải chăng.
- Do đã có sẵn thiết bị từ lúc học.
- Dễ dàng sử dụng kết nối với máy tính và phổ biến.
- Thiết kế đơn giản nhưng có sức mạnh vượt trội, dễ thao tác, được ứng dụng trong
nhiều lĩnh vực.
- Điều khiển các thiết bị từ xa qua điện thoại, máy tính, dễ dàng tương tác với các
thiết bị thông minh.
Cơ sở lý thuyết của arduino UNO:
Dựa trên tài liệu trên internet. Đã đưa ra các lý thuyết cơ bản về Arduno Uno, được
trình bày như sau:
Một mạch arduino bao gồm một vi điều khiển AVR với nhiều linh kiện bổ sung giúp
đẽ dàng lập trình và có thể mở rộng với các mạch khác. Một khía cạnh quan trọng của
Arduino là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối với CPU của
board với các module thêm vào có thể dễ dàng chuyển đổi. Arduino chính thức thường
sử dụng các dòng chính megaAVR, đặc biệt là Atmega8, Atmega168, Atmega328,
Atmega1280 và Atmega2560. Một vài bộ vi xử lý khác cũng thường được sử dụng bới

11
các mạch Arduino tương thích. Hầu hết các mạch gồm bộ điều chỉnh tuyến tính 5V và
một thạch anh dao động 16MHz (Hoặc bộ cộng hưởng ceramic trong một vài biến thể).
Một vi điều khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép
đơn giản là upload chương trình vào bộ nhớ flash on-chip. So với các thiết bị khác
thường phải cần một bộ nạp bển ngoài. Diều này giúp cho việc sử dụng Arduno được
trực tiếp hơn bằng cách cho phép sử dụng 1 máy tính gốc như là một bộ nạp chương
trình.
Board Arduino sẽ đưa hầu hết các chân I/O của vi điều khiển để sử dụng cho những
mạch ngoài, Diecimila, Duemilano, và bây giờ là Uno đưa ra 14 chân I/O kỹ thuật số, 6
trong số đó có thể tạo xung PWM (điều chế độ rộng xung) và 6 chân inpu annalog, có
thể sử dụng như là 6 chân I/O số. Một vài trong số đơ có chức năng tương đương với
Arduino và có thể sử dụng để thay thế qua lại. Nhiều mở rộng cho Arduno được thực
hiện bằng bằng cách thêm vào các drive đầu ra, thường sử dụng trong trường học dể đơn
giản hóa các cấu trúc của các “con rệp” và các robot nhỏ. Những board khác thường
tương đương về điện nhưng có các thay đổi về hình dạng đôi khi còn duy trì độ tương
thích với shield, đôi khi không, Vài biến thể sử dụng bộ vi xử lý haofnt oàn khác biệt,
với các mức độ tương thích khác nhau.
Các chức năng của chân cắm trong Arduino:
Nguồn (Giắc cắm USB / Thùng) : Mỗi bảng Arduino cần một cách để được kết nối
với nguồn điện. Arduino UNO có thể được cấp nguồn từ cáp USB đến từ máy tính hoặc
nguồn điện trên tường được kết thúc trong giắc cắm thùng. Trong hình trên, kết nối USB
được dán nhãn (1) và giắc cắm thùng được dán nhãn (2).
Kết nối USB cũng là cách sẽ tải mã lên bo mạch Arduino của mình. Điện áp được
đề nghị cho hầu hết các mô hình Arduino là từ 6 đến 12 Volts.
Chân (5V, 3.3V, GND, Analog, Kỹ thuật số, PWM, ISF) : Các chân trên Arduino
của bạn là nơi kết nối dậy để xây dựng mạch (có thể kết hợp với bảng mạch và một số
dây. Arduino UNO thường có 'đầu bằng nhựa màu đen cho phép cắm dây ngay vào
bảng, có một số loại chân khác nhau, mỗi loại được dán nhãn trên bảng và được sử dụng
cho các chức năng khác nhau.
GND (3): Viết tắt của ‘Ground. Có một số chân GND trên Arduino, bất kỳ trong số
đó có thể được sử dụng để nối đất mạch của bạn.

12
5V (4) & 3.3V (5): chân 5V cung cấp năng lượng 5 volt và chân 3,3V cung cấp 3,3
volt. Hầu hết các thành phần đơn giản được sử dụng với Arduino đều hoạt động tốt ở
mức 5 hoặc 3,3 volt.
Tương tự (6): Khu vực của các chân dưới nhãn ‘Tương tự In (A0 đến 45 trên UNO)
là các chân Tương tự. Các chân này có thể đọc tín hiệu từ một cảm biến tương tự (như
cảm biến nhiệt độ) và chuyển đổi thành một giá trị kỹ thuật số mà chúng ta có thể đọc
được.Kỹ thuật số (7): Trên khắp các chân tương tự là các chân kỹ thuật số (0 đến 13 trên
UNO). Các chân này có thể được sử dụng cho cả đầu vào kỹ thuật số (như cho biết nếu
nhấn nút) và đầu ra kỹ thuật số (như cấp nguồn cho đèn LED).
PWM (8): Bạn có thể đã nhận thấy dấu ngã (-) bên cạnh một số chân kỹ thuật số (3,
5, 6, 9, 10 và 11 trên UNO). Các chân này hoạt động như các chân kỹ thuật số thông
thường, nhưng cũng có thể được sử dụng cho một thứ gọi là điều chế độ rộng xung
(PWM).
DIỆN TÍCH (9): Viết tắt của Tham chiếu Tương tự được sử dụng để đặt điện áp
tham chiếu ngoài (trong khoảng từ 0 đến 5 Volts) làm giới hạn trên cho các chân đầu
vào tương tự.
Nút reset : Giống như Nintendo gốc, Arduino có nút đặt lại (10). Nhấn nó sẽ tạm
thời kết nối pin reset xuống đất và khởi động lại bất kỳ mã nào được tải trên Arduino.
Điều này có thể rất hữu ích nếu mã không lặp lại.
Đèn LED chỉ báo nguồn: Ngay bên dưới và bên phải của chữ UN UNO trên bảng
mạch, có một đèn LED nhỏ bên cạnh chữ (11). Đèn LED này sẽ sáng lên bất cứ khi nào
cắm Arduino vào nguồn điện. Nếu đèn này không bật, thì có một cơ hội tốt có gì đó
không ổn. Thời gian để kiểm tra lại mạch.
Đèn LED TX : TX là ngắn để truyền, RX là ngắn để nhận. Những dấu hiệu này xuất
hiện khá nhiều trong thiết bị điện tử để chỉ ra các chân chịu trách nhiệm truyền thông
nối tiếp. Trong trường hợp này, có hai vị trí trên Arduino UNO nơi TX và RX xuất hiện
- một lần bởi các chân kỹ thuật số 0 và 1, và lần thứ hai bên cạnh đèn LED chỉ báo TX
và RX (12). Các đèn LED này sẽ cung cấp một số chỉ dẫn trực quan đẹp bất cứ khi nào
Arduino nhận hoặc truyền dữ liệu.
IC chính : cục màu đen với tất cả các chân kim loại là IC, hoặc mạch tích hợp (13)
nó như bộ não của Arduino. IC chính trên Arduino hơi khác biệt so với loại bo mạch,

13
loại bo mạch chủ. Điều này có thể quan trọng, vì có thể cần biết loại IC trước khi tải lên
một chương trình mới từ phần mềm Arduino.
Điều chỉnh điện áp : Bộ điều chỉnh điện áp (14) không thực sự là loại có thể (hoặc
nên) tương tác với Arduino. Bộ điều chỉnh điện áp thực hiện kiểm soát lượng điện áp
được đưa vào bảng Arduino.
2.1.2 Phần mềm để lập trình cho Arduino:
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.
Khi các chúng ta bắt điện bằng mạch Arduino, reset hay nạp chương trình mới,
hàm setup() sẽ được gọi đến đầu tiên. Sau khi xử lý xong hàm setup(). Arduino sẽ nhảy
đến hàm loop() và lặp vô hạn hàm này cho đến khi tắt điện board mạch Arduino. Chu
trình đó có thể mô tả trong hình dưới đây:

Hàm setup() Hàm loop()

Arduino IDE sử dụng GNU toolchain và AVR libe để biên dịch chương trình và
sử dụng avrdude để tải lên các chương trình vào board mạch chủ. Do nền tăng Arduino
sử dụng vi điều khiển Atmel, môi trường phát triển của Atmel, AVR Studio hoặc Atmel
Studio mới hơn, cũng có thể được sử dụng để phát triển phan mềm cho các Arduino.
Arduino IDE là nơi để soạn thảo code, kiểm tra lỗi và upload code cho Arduino.
Lưu ý: Khi lập trình code cho để tài ta cần phải thêm thư viên cho bộ truyền phát HC-
05 và cảm biến độ ẩm DHT21 (Định kèm cùng file)
2.1.2.1 Lý thuyết code dùng trong lập trình arduino:
Cấu trúc:
14
1. Lệnh setup() và loop():
Những lệnh trong setup() sẽ được chạy khi chương trình của bạn khởi động. Có
thể sử dụng nó để khai báo giá trị của biển, khai báo thư viện, thiết lập các thông số,...
Sau khi setup() chạy xong, những lệnh trong loop() được chạy. Chúng sẽ lặp đi lặp lại
liên tục cho tới khi nào ngắt nguồn của board Arduino mới thôi.
Bất cứ khi nào bạn nhất nút Reset, chương trình của bạn sẽ trở về lại trạng thái
như khi Arduino mới được cấp nguồn.
Arduino được Setup() {//Lệnh Loop() {//Lệnh
cấp nguồn của bạn} của bạn}

Bấm nút reset

2. Câu lệnh if
If([Biểu thức1][toán tử so sánh][Biểu thức 2] { //biểu thức điều kiện [câu lệnh 1]
} else {
[câu lệnh 2]
}
Nếu biểu thức điều kiện trả về giá trị TRUE, [câu lệnh 1] sẽ được thực hiện, ngược lại,
[câu lện 2] sẽ được thực hiện.
3. Switch/ Case:
Giống như if, switch/case cụng là một dạng lệnh nếu thì, nhưng được thiết kế chuyên
biệt để xử lý giá trị trên một biến chuyên biệt.
Ví dụ, có một biến là action sẽ nhận giá trị từ những module khác qua serial. Nhưng
action sẽ nằm trong một các giá trị nào đó thì lúc này nên sử dụng switch/case.
4. Lệnh for:
Hàm for có chức năng làm một vòng lặp. Hàm for lặp đi lặp lại một công việc có tính
chất chung nào đó. Chẳng hạn, khi bật tắt một con LED thì dùng digitalWrite xuất HIGH
deley rồi lại LOW rồi lại delay.
5. Lệnh While:
Vòng lặp while là một dạng vòng lặp theo điều kiện, không thể biết trước số lần lặp của
nó, nhưng có thể quản lý lúc nào thì nó ngừng lặp.

15
6. Lệnh return:
Return có nhiệm vụ trả về một giá trị (Cùng kiểu dữ liệu với hàm) được gọi.
7. cú pháp mở rộng:
“;” (dấu chấm phẩy) dùng để kết thúc dòng lệnh.
#define là một đối tượng của ngôn ngữ C/C++ cho phép đặt tên một hằng số nguyên hay
số thực.
#include: cho phép chương trình tải một thư viện đã được viết sẵn. Tức là có thể truy
xuất được những tài nguyên treong thư viện này từ chương trình của mình. Nếu có một
đoạn code và cần sử dụng nó trong nhiều chương trình, có thể dùng. #include dùng để
nạp đoạn code ấy vào chường trình, thay vì phải chép đi chép lại đoạn code đấy.
8. Toán tử số học:
=(Phép gán); + (phép cộng); - (phép trừ); * (Phép nhân); / (Phép chia); % (Phép chia
lấy số dư)
9. Toán tử so sánh:
== (So sánh bằng); != (Khác bằng); > (Lớn hơn); < (Bé hơn); >= (Lớn hơn hoặc bằng);
<= (Bé hơn hoặc bằng)
Giá trị:
1. Hằng số:
High: Trong lập trình trên Arduino, High là một hằng số có giá trị nguyên là 1. Trong
điện tử, High à một mức điện áp lớn hơn 0V. Giá trị của High được định nghĩa khác
nhau trong các mạch điện khác nhau, nhưng thường được quy. ước ở các mức như 1.8V,
2.7V, 3.3V 5V, 12V, ...
Low: Trong lập trình trên Arduino, LOW là một hằng số có giá trị nguyên là 0. Trong
điện tử, LOW là mức điện áp 0V hoặc gần bằng 0V, giá trị này được định nghĩa khác
nhau trong các mạch điện khác nhau, nhưng thường là 0V hoặc hơn một chút xíu.
Input, output,input_pullup
2. Kiểu dữ liệu:
Void là một từ khóa chỉ dùng trong việc khai báo một function. Những function
được khai báo với "void" sẽ không trả về bất kỳ dữ liệu nào khi được gọi.
Char: Kiểu dữ liệu này là kiểu dữ liệu biểu diễn cho 1 ký tự. Kiểu dữ liệu này
chiếm 1 byte bộ nhớ. Kiểu char chỉ nhận các giá trị trong bảng mã ASCII. Kiểu char

16
được lưu dưới dạng 1 số nguyên byte có số âm (có các giá trị từ -127 - 128), thay vì thiết
đặt một biến kiểu char có giá trị là 'A', bạn có thể đặt là 65.
Byte: Là một kiểu dữ liệu biểu diễn số nguyên nằm trong khoảng từ 0 đến 255.
Int: là kiểu số nguyên chính được dùng trong chương trình Arduino. Kiểu int
chiếm 2 byte bộ nhớ . Trên mạch Arduino Uno, int có đoạn giá trị từ -32,768 đến 32,767
(-215 đến 215-1) (16 bit).
Float: Để định nghĩa 1 kiểu số thực, bạn có thể sử dụng kiểu dữ liệu float. Một
biến dùng kiểu dữ liệu này có thể đặt một giá trị nằm trong khoảng 3.4028235E+38 đến
3.4028235E+38. Nó chiếm 4 byte bộ nhớ. Với kiểu dữ liệu float bạn có từ 6-7 chữ số
có nghĩa nằm ở bên mỗi bên dấu ".". Như vậy, có thể đặt một số thực dài đến 15 ký tự
(bao gồm dấu .).
Array: là mảng (tập hợp các giá trị có liên quan và được đánh dấu bằng những chỉ
số). Array được dùng trên Arduino chính là Array trong ngôn ngữ lập trình C.
3. Chuyển đổi kiểu dữ liệu:
Hàm char() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu char. Hàm byte()
có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu byte.
Hàm int() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu int.
Hàm float() có nhiệm vụ chuyển kiểu dữ liệu của một giá trị về kiểu float.
Hàm:
1. Nhập xuất Digital (Digital I/O):
pinMode(): Cấu hình 1 pin quy định hoạt động như là một đầu vào (INPUT) hoặc
đầu ra (OUTPUT).
digitalWrite(): Xuất tín hiệu ra các chân digital, có 2 giá trị là HIGH hoặc là LOW.
Nếu một pin được thiết đặt là OUTPUT bởi pinMode(). Và khi dùng digitalWrite để
xuất tín hiệu thì điện thế tại chân này sẽ là 5V (hoặc là 3,3 V trên mạch 3,3 V) nếu được
xuất tín hiệu là HIGH, và OV nếu được xuất tín hiệu là LOW.
digitalRead(): Đọc tín hiệu điện từ một chân digital (được thiết đặt là INPUT). Trả
về 2 giá trị high hoặc low.
2. Nhập xuất Analog (Analog I/O):
analogReference(): có nhiệm vụ đặt lại mức (điện áp) tối đa khi đọc tín hiệu
analogRead.

17
analogRead(): là đọc giá trị điện áp từ một chân Analog (ADC). Trên mạch Arduino
UNO có 6 chân Analog In, được ký hiệu từ AO đến A5. Trên các mạch khác cũng có
những chân tương tự như vậy với tiền tố "A" đứng đầu, sau đó là số hiệu của chân.
analogWrite(): là lệnh xuất ra từ một chân trên mạch Arduino một mức tín hiệu analog
(phát xung PWM). Thường điều khiển mức sáng tối của đèn LED hay hướng quay của
động cơ servo bằng cách phát xung PWM.
2.1.3 Chọn loại thiết bị truyền phát không dây và cơ sở lý thuyết :
2.1.3.1 Module Bluetooth HC-05
Sau khi tìm hiểu và tham khảo chúng em quyết định chọn module Bluetooth HC-05 với
các ưu điểm sau :
- Module Bluetooth HC-05 là lựa chọn tối ưu cho nghiên cứu này vì:
- Giá thành rẻ hơn so với các Module khác, tốc độ hoạt động phù hợp với truyền dữ liệu
điều khiển thiết bị, dễ dàng mua ở thị trường Việt Nam, được nhiều người sử dụng và
đánh giá là rất ổn định.
- Module Bluetooth HC-05 cung cấp hai giao tiếp trong khoảng cách ngắn hơn với tốc
độ nhanh.
- Phạm vi giao tiếp lên đến 8-10m nhưng sẽ giảm xuống khi có vật cản.
- Có chân enale cho phép chuyển đổi giữa chế độ dòng lệnh và dữ liệu.
- Thiết bị sử dụng nguồn điện 5V
- Module có thể làm Master hoặc Slave
2.1.3.2 - Hỗ trợ nhiều tốc độ truyền ( 9600 19200 38400 115200 )
2.1.3.3 Sơ đồ chân của thiết bị truyền phát :

Hình 2: Sơ đồ chân module HC 05

18
Chân VCC : Giống như mọi thiết bị khác, HC05 Modules cũng phụ thuộc vào
nguồn điện để hoạt động và chân VCC cấp nguồn điện từ bên ngoài.
Chân GND : Chân nối đất module.
Chân TX : Chân truyền dữ liệu giao thức UART
Chân RX : Chân nhận dữ liệu trong giao tiếp UART.
Chân State : Báo trạng thái kết nối của Bluetooth.
Chân Enable/key : Chân Enable / Key là chân thay đổi chế độ giữa chế độ dữ
liệu và chế độ dòng lệnh bằng cách cấp tín hiệu bên ngoài. Cấp logic cao sẽ chuyển sang
chế độ dòng lệnh và trạng thái logic thấp sẽ chuyển sang chế độ dữ liệu. Chế độ thiết bị
mặc định là chế độ dữ liệu.
Chân button : Các chế độ dữ liệu và lệnh có thể thay đổi thông qua một nút nhấn
có trên module.
Chân LED : Đèn LED hiển thị trạng thái của Module HC-05.2.2.3.3 Cách sử
dụng Bluetooth HC-05
- Module có hai chân giao tiếp dữ liệu nối tiếp, TX sẽ giao tiếp với RX của bộ điều
khiển và RX sẽ giao tiếp với TX của vi điều khiển.
- Dữ liệu sẽ được truyền với tốc độ truyền được xác định trong bộ vi điều khiển. Tốc
độ truyền 9600 là tốc độ dữ liệu mặc định nhưng nó cũng có thể thay đổi được.

Hình 3: Sơ đồ kết nối HC-05

- Có chân thứ ba (Key) dùng để chuyển đổi chế độ. Chế độ mặc định, khi không có tín
hiệu đầu vào được cấp vào chân Key, thiết bị sẽ hoạt động ở chế độ dữ liệu.

19
- Ở chế độ dữ liệu, sẽ chỉ có truyền dữ liệu từ thiết bị. Sau khi cấp tín hiệu đầu vào
logic vào chân này, thiết bị sẽ chuyển sang chế độ dòng lệnh.
Cách gửi dữ liệu :
1.Thiết lập kết nối Bluetooth: Kết nối thiết bị gốc (ví dụ: Arduino) với HC-05
bằng cách sử dụng chân TX (Transmit) của thiết bị gốc kết nối với chân RX (Receive)
của HC-05 và ngược lại.
2 . Cài đặt baud rate: Thiết lập baud rate (tốc độ truyền dữ liệu) cho HC-05 và
thiết bị gốc để đảm bảo hai thiết bị giao tiếp với cùng một tốc độ. Baud rate mặc định
của HC-05 thường là 9600.
3. Gửi dữ liệu: Sử dụng các hàm hoặc thư viện UART có sẵn trong ngôn ngữ lập
trình bạn đang sử dụng để gửi dữ liệu thông qua kết nối Bluetooth.
2.1.4 Cơ sở lý thuyết chung về cảm biến nhiệt độ , độ ẩm , tia UV :
Khái quát chung về cảm biến :
Cảm biến là thiết bị điệu tử cảm nhận những trạng thái hay quá trình vật lý hay
hoá học ở môi trường cần khảo sát , và biến đổi thành tín hiệu điện để thi thập thông tin
về tình trạng hay quá trình đó .
Thông tin được xử lý để rút ra tham số định tính hoặc định lượng của môi trường
, phục vụ các nhu cầu nghiên cứu khoa học ký thuật hay dân sinh và gọi ngắn gọn là do
đạc , phục vị trong truyền và xử lý thông tin hay trong các điều khiển các quá trình khác
.
Cảm biến có 2 loại chính :
- Cảm biến vật lý : Sóng điện tử , ánh sáng , tử ngoại , hồng ngoại , tia X , tia
gamma , hạt bức xạ , nhiệt độ , áp suất , âm thanh , rung động , khoảng cách ,
chuyển động ,….
- Cảm biến hoá học : độ ẩm , độ PH , khói ,….
- Phân loại theo nguyên lý hoạt động :
- Cảm biến điện trơ : hoạt động dự theo di chuyển con chạy hoặc góc quay của
biến trở , hoặc sự thay đổi điện trở do co giãn vật dẫn .
- Cảm biến điện dung : Sự thay đổi điện dung của cảm biến khi khoảng cách hay
góc đến vật thể kim loại thay đổi .
- Cảm biến từ trường : Cảm biến hiệu ứng Hall , cảm biến từ trường dùng vật liệu
sắt từ ,… dùng trog từ kế .
20
- Cảm biến nhiệt độ : cặp lưỡng cực hoặc dạng linh kiện bán dẫn ,…
Cảm biến nhiệt độ , độ ẩm :
Cảm biến nhiệt độ là 1 cặp nhiệt điện , 1 thiết bị điện gòm 2 dây dẫn điểm không
giống nhau tạo thành các mối nối ở các nhiệt độ khác khau , hoặc 1 máy dò nhiệt độ
kháng ( RTD) do nhiệt từ 1 nguồn cụ thể và biến đổi thông tin thu thấp được thành 1
dàn có cấu trúc, Cảm biến nhiệt độ thường được dùng trong hệ thống HV và hệ thống
điều khiển môi trường AC , trang bị y tế, cảm biến xử lý thực phẩm , xử lý hoá chất , hệ
thống điều khiển oto.
Hình ảnh các loại cảm biến :
Cảm biến đo cường độ tia UV :
Cảm biến tia UV một thiết bị hoặc một hệ thống được sử dụng để đo lường và
phát hiện mức độ tia tử ngoại (UV) trong môi trường xung quanh. Tia tử ngoại là một
phần của quang phổ từ mặt trời và các nguồn ánh sáng khác có bước sóng ngắn hơn ánh
sáng có thể nhìn thấy bằng mắt thường. Cảm biến UV đóng vai trò quan trọng trong việc
giám sát và bảo vệ sức khỏe của con người, đặc biệt là trong việc phát hiện và ngăn chặn
tác động tiêu cực của tia tử ngoại lên da và mắt.
2.1.4.1 Lựa chọn cảm biến
*Cảm biến nhiệt độ độ ẩm :Dựa trên các tài liệu , dữ kiện của các đề tài nghiên
cứu , Các ưu nhược điểm trình bày ở trên . Em quyết định chọn loại DHT21.

Hình 4: Cảm biến DHT21

DHT 21 có những ưu điểm sau : Cảm biến độ ẩm, nhiệt độ DHT21 AM2301
Temperature Humidity Sensor được sử dụng để đo độ ẩm và nhiệt độ của không khí,
cảm biến có độ bền và độ ổn định cao, sử dụng giao tiếp 1-wire giao tiếp với Vi điều

21
khiển dễ dàng chỉ với 1 dây tín hiệu duy nhất, thích hợp với các ứng dụng cần đo độ ẩm,
nhiệt độ trong nông nghiệp, nhà thông minh,...
Cấu tạo của DHT 21:

Hình 5: Cấu tạo DHT21

Quá trình giao tiếp tổng thể :


Khi MCU gửi tín hiệu bắt đầu , DHT21 thay đổi từ chế độ tiêu thụ điện năng
thaaos sang chế độ chạy , chờ MCU hoàn thành tín hiệu bắt đầu . Sau khi hoàn thành ,
DHT21 sẽ gửi tín hiệu phản hồi của dữ liệu 40bit bao gồm thông tin về độ ẩm và nhiệt
độ tương đối đến MCU . Người dung có thể chọn thu thấp ( đọc) một số dữ liệu . Không
có tins hiệu bắt đầu từ MCU, DHT21 sẽ không đưa ra tín hiệu phản hồi cho MCU. Sau
khi dữ liệu thu thập được , DHT21 sẽ thay đổi thành mức tiêu thụ năng lượng thấp chế
độ cho đến khi nhận được tín hiệu bắt đầu từ MCU một lần nữa.
*Cảm biến đo cường độ tia UV :
Chúng em quyết định chọn cảm biến tia UV ML8511 .
- Ưu điểm : Cảm biến tia UV ML8511 Ultraviolet Light Sensor sử dụng IC cảm
biến ML8511 UV cho độ nhạy cao, dùng để phát hiện và nghiên cứu chỉ số UV trong
môi trường. Loại cảm biến này có dòng tiêu thụ thấp, kích thước nhỏ gọn và độ chính
xác cao, với đầu ra là tín hiệu Analog nên rất dễ giao tiếp và xử lý dữ liệu từ cảm biến
bằng Vi điều khiển mà không cần đến một mạch chuyển đổi quang điện.
Cấu tạo ML8511 :

22
Hình 6: Cảm biến tia UV ML8511

1. Đầu dò UV: Đầu dò UV của ML8511 có khả năng thu nhận tia UV từ môi trường. Nó
bao gồm một bề mặt phản xạ và các thành phần quang học như ống kính và bộ lọc để
tập trung vào tia UV.
2. Bộ chuyển đổi: Tín hiệu tia UV thu thập được từ đầu dò được chuyển đổi thành tín
hiệu điện tương ứng. Bộ chuyển đổi chủ yếu gồm các linh kiện điện tử như biến trở, tụ
điện và linh kiện bảo vệ.
3. Bộ xử lý: ML8511 có một bộ xử lý tích hợp để xử lý tín hiệu điện từ bộ chuyển đổi.
Bộ xử lý có nhiệm vụ calibra tín hiệu đo và chuyển đổi nó thành đơn vị đo mức độ tia
UV.
4. Giao diện: Cảm biến ML8511 có các chân giao tiếp để kết nối với vi điều khiển hoặc
hệ thống khác. Thông qua giao diện này, dữ liệu đo lường có thể được truyền và sử dụng
để hiển thị hoặc xử lý.
→Với cấu trúc đơn giản như vậy, ML8511 có thể dễ dàng tích hợp vào các ứng dụng đo
lường mức độ tia UV trong thực tế.
2.1.5 Phần mềm mô phỏng , thiết kế mạch Proteus:
2.1.5.1 Phần mềm Proreus:
Phần mềm Proteus là phần mềm cho phép mô phỏng hoạt động của mạch điện tử
bao gồm phần thiết kế mạch và vvieest chương trình điều khiển cho các họ vì
điều khiển như MCS-51 , PIC, AVR, ARDUINO ,…

23
Hình 7: Phần mềm Proteus

Phần mềm bao gồm 2 chương trình : ISIS cho phép mô phỏng mạch và ARES
dung để vẽ mạch in . Proteus là công cụ mô phỏng cho các loại Vi điều khiển khá tốt ,
nó hỗ trợ các dòng 8051, AVR ,PIC ,…các giao tiếp I2C , SPI , CAN ,USB ,.. ngoài ra
còn mô phỏng các mạch số , mạch tương tự một cách hiệu quả .
Proteus là công cụ chuyên về mô phỏng mạch điện tử .
Các tính năng của Proteus:
Có cơ sở dữ liệu 32 bit cho phép độ chính xác đến 10mm , độ phân giải góc 0,10
và kích thước board lớn nhất là -10m . ARES hỗ trợ mạch in 16 lớp. Làm việc thông qua
các menu ngữ cảnh tiện lợi.
File netlist từ phần mềm vẽ mạch nguyên lý ISIS . Tự động cập nhật ngược chỉ
số linh kiện , sự thay đổi chân , đổi cổng ở mạch in sang mạch nguyên lý . Công
cụ kiểm tra lỗi thiết kế.
Thư viện đầy đủ từ lỗ khoan mạch đến linh kiện dán.
Trước khi muốn thực hiện mô phỏng cho mạch , bắt buộc cần phải them thư viện
Arduino.
2.1.5.2 Hình ảnh thể hiện tính năng của Proteus trong thư viện thiết kế mạch:
Dưới đây là hình ảnh mô phỏng Proteus cho mạch Arduino xuất ra màn hình LCD
mà đã được hoàn thành .
Ảnh mô phỏng trên Proteus :

24
Hình 8: hình ảnh mô phỏng Proteus cho mạch Arduino xuất ra màn hình LCD

2.1.5.3 Tiến hành mô phỏng thiết kế mạch đo nhiệt độ truyền phát không dây
Mô phỏng thiết kế mạch sẽ như hình , nguyên lý hoạt động Arduino nhận nhiệt
độ, độ ẩm, tia UV và xuất ra màn hình LCD.

Hình 9: mô phỏng thiết kế mạch đo nhiệt độ truyền phát không dây

Sau khi thiết kế mô phỏng và nhập code vào Arduino. Màn hình LCD sẽ hiển thị
nhiệt độ đúng như ý muốn.
25
Nguyên lý hoạt động : Arduino sẽ nhận biết tín hiệu từ cảm biến nhiệt độ , độ ẩm
, cường độ tia UV. Bằng cách gửi tín hiệu đổ xuất lên Arduino sẽ hiển thị thông số nhiệt
độ, độ ẩm, cường độ tia UV.
2.2 Sơ đồ khối hệ thống ,thiết kế mạch nguyên lí.
2.2.1 Sơ đồ khối:

Hình 10: Sơ đồ khối mạch phát

Chức năng của các khối


Cảm biến nhiệt độ, độ ẩm DHT21: cảm biến đo nhiệt độ, độ ẩm của môi trường
và gửi tín hiệu về Arduino UNO khi có tín hiệu yêu cầu.
Cảm biến tia UV ML8511: cảm biến đo cường độ tia UV của môi trường và gửi
tín hiệu về Arduino UNO khi có tín hiệu yêu cầu.
Màn hình led LCD: tiếp nhận tín hiệu từ Arduino UNO để hiện thị lên màn hình
LCD 16x2 bao gồm nhiệt độ, độ ẩm và cường độ tia UV.
Bộ phát bluetooth HC 05: phát tín hiệu đến bộ nhận.
Arduino UNO: tiếp nhận dữ liệu từ cảm biến nhiệt độ độ ẩm và cường độ tia UV.
Xuất ra màn hình LCD và bộ phát bluetooth HC 05.
Modul chuyển đổi I2C: kết nối với vi điều khiển thông qua giao tiếp I2C.

26
2.2.1 Chuẩn bị các thiết bị cần thiết để lắp mạch phát cảm biến nhiệt độ, độ ẩm
và cường độ tia uv.

Bảng 1: Thống kê thiết bị cần thiết để thiết kế bộ phát.

STT Tên thiết bị Hình ảnh


1 Bo mạch Arduino UNO

2 Bảng board

3 Dây cắm

4 Modul chuyển đổi

5 Cảm biến nhiệt độ độ ẩm DHT21

27
6 Cảm biến tia uv

7 Màn hình led LCD

8 Bộ phát bluetoth HC05

2.2.2 Thiết kế mạch phát trên Proteus:

Do trên phần mềm Proteus không có con cảm biến nhiệt độ, độ ẩm HDT21 nên ta thay
thế bằng con cảm biến nhiệt độ và độ ẩm DHT 11. Trong thư viện Protues không có con
cảm biến tia uv ML8511 nên phải vẽ mô hình để mô phỏng, hiển thị lên màn hình LCD
và truyền tín hiệu thông qua bluetoth lên app. Do chân cắm của Arduino không đáp ứng
được nhiều con cảm biến, modul cùng lúc nên ta cắm chân vcc 5V, 3.3V và GND của
Arduino vào board mạch để dễ dàng kết nối.

28
Hình 11: Mạch phát đo nhiệt độ, độ ẩm, uv hiển thị lên LCD, truyền dữ liệu lên app.

2.2.3 Tiến hành lắp mạch thật:


2.2.3.1 Kết nối LCD với modul chuyển đổi I2C.
Kết nối I2C thông qua 16 chân kết nối của LCD.
Bảng 2: Bảng nguyên lí cắm chân từ LCD tới mạch chuyển đổi I2C.

STT Chân cắm của LCD Chân cắm của modul I2C
1 VSS 1
2 VDD 2
3 VEE 3
4 RS 4
5 RW 5
6 E 6
7 D0 7
8 D1 8
9 D2 9
10 D3 10
11 D4 11
12 D5 12
13 D6 13
14 D7 14
15 A 15
16 K 16

29
Sơ đồ nguyên lí:

Hình 12: Hình ảnh lắp đặt modul chuyển đổi I2C vào màn hình LCD.

Hình 13Modul IC2 và màn hình LCD

2.2.3.2 Tiến hành cắm các chân của modul chuyển đổi I2C.

30
Bảng 3: Bảng nguyên lí cắm chân từ modul chuyển đổi tới Arduino Uno.

STT Chân cắm của modul Chân cắm vào Arduino UNO
chuyển đổi I2C
1 GND GND của board mạch
2 VCC Nguồn 5V của board mạch
3 SDA A4
4 SCL A5

Sơ đồ nguyên lí:

Hình 14: Lắp đặt màn hình led LCD thông qua bộ chuyển đổi vào Arduino

2.2.3.3 tiến hành cắm các chân của cảm biến nhiệt độ, độ ẩm DHT21.
Bảng 4: Bảng nguyên lí cắm chân từ cảm biến về uno

STT Chân cắm của cảm biến Chân cắm của Arduino
nhiệt độ độ ẩm
1 VDD Nguồn 5V của board mạch
Chân GND của board
2 GND
mạch
Chân 6 Digital của
3 Data
Arduino UNO

31
Sơ đồ nguyên lí :

Hình 15: Sơ đồ lắp đặt cảm biến nhiệt độ độ ẩm DHT21

2.2.3.4 Tiến hành cắm các chân của cảm biến tia UV ML8511.
Bảng 5: Bảng nguyên lí cắm cảm biến tia UV ML8511 vào Arduino.

STT Chân cắm của cảm biến tia Chân cắm của Arduino
UV ML8511
Nối vào chân A1 và nguồn
1 EN
3.3 V của board mạch
2 OUT Chân A0 của Arduino
Nối vào chân GND của
3 GND
board mạch
Nối vào chân nguồn 3.3 V
4 3V3
của board mạch
Sơ đồ nguyên lí

Hình 16: Lắp đặt cảm biến cường độ tia UV ML8511

32
2.2.3.5 Lắp đặt modul truyền phát Bluetooth HC 05.
Bảng 6: Bảng nguyên lí cắm modul truyền phát Bluetooth HC 05 vào Arduino.

Chân cắm của modul


STT truyền phát Bluetooth Chân cắm của Arduino
HC 05
1 VCC Nguồn 5v của board mạch
2 GND Chân GND của board mạch
3 TXD Chân 10 của Arduino
4 RXD Chân 11 của Arduino

Sơ đồ nguyên lí:

Hình 17: lắp đặt modul truyền phát tín hiệu bluetooth HC 05

2.2.4 Tiến hành hoàn thiện bo mạch phát và nạp code cho mạch.
Sau khi hoàn thiện các bước lắp đặt modul chuyển đổi I2C, màn hình led LCD, cảm
biến nhiệt độ và độ ẩm DHT 21, cảm biến cường độ tia UV ML8511 và modul truyền
phát tín hiệu bluetooth HC 05 thì ta sẽ được một bo mạch hoàn chỉnh:

33
Nguyên lí hoạt động:

Hình 18: Sơ đồ nguyên lý hoạt động của mạch

Arduino nhận tín hiệu từ cảm biến, nhận biết nhiệt độ, độ ẩm và cưởng độ tia UV. Sau
đó hiển thị dữ liệu lên màn hình led LCD và phát tín hiệu để truyền dũ liệu đến mạch
thu.

Bắt đầu tiến hành nạp code cho mạch:


#include "DHT.h"
#define DHT21Pin 6
#define DHTType DHT21
#include <Arduino.h>
#include <ML8511.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define ANALOGPIN A0
#define ENABLEPIN A1
ML8511 light(ANALOGPIN, ENABLEPIN); DHT dht(DHT21Pin,DHTType);
float humi ;
float tempC;
SoftwareSerial BTserial(10, 11); // RX | TX void setup() {
34
// put your setup code here, to run once:
Serial.begin(9600);
BTserial.begin(9600);
dht.begin(); //Khởi động cảm biến lcd.init(); //Khởi động LCD
lcd.backlight(); //Mở đèn
lcd.setCursor(0,0);
lcd.print("UV:");
lcd.setCursor(0,1);
lcd.print("C|H:");
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000);
humi = dht.readHumidity();
tempC = dht.readTemperature();
Serial.print(" DO AM:");
Serial.print( humi );
Serial.println(" %" ); Serial.print(" NHIET DO C:");
Serial.print(tempC);
Serial.println(" oC "); // UV
light.enable();
float UV = light.getUV();
light.disable();
Serial.print( " CHI SO UV : ");
Serial.print(UV, 4);
Serial.println(" mW cm^2");
delay(1000);
// LCD
// Kiểm tra cảm biến có hoạt động hay không
if (isnan(tempC) || isnan(humi) || isnan(UV))
{
Serial.println("Không có giá trị trả về từ cảm biến");
35
return;
} lcd.setCursor(4,0); //con trỏ vị trí số 7, hiện ô số 8
lcd.print(UV, 4);
lcd.setCursor(9,0); //Con trở ở vị trí 12, hiện ô 13
lcd.print("mW|cm^2");lcd.setCursor(4,1);
lcd.println(tempC);
lcd.setCursor(8,1);
lcd.print("C");
lcd.setCursor(9,1);
lcd.print("|");
lcd.setCursor(10,1);
lcd.print(humi);
lcd.setCursor(14,1);
lcd.print("%");
String data = String(tempC) + "," + String(UV) + "," + String(humi) ;// Tạo chuỗi dữ
liệu gồm nhiệt độ, độ ẩm và chỉ số UV
BTserial.println(data); // Gửi chuỗi dữ liệu đến MIT App Inventor qua Bluetooth
delay(5000);
Serial.println(data);
}
Sau khi nạp code thành công, phần mềm không báo lỗi ta nhận được mạch như sau:
ảnh mạch thực

Hình 19: Mạch phát nhiệt độ, độ ẩm và cường độ tia UV sau khi nhập code
36
2.2.5 Nguyên lí của mạch và giải thích code
Cách thức nhận tín hiệu của thiết bị cảm biến nhiệt độ, độ ẩm
Khi DHT phát hiện tín hiệu bắt đầu, nó sẽ gửi tín hiệu phản hồi ở mức điện áp
thấp, tín hiệu này kéo dài 80us. Sau đó chương trình của DHT thiết lập dữ liệu cấp điện
áp 1 bus từ thấp đến cao và giũ nó cho 80us để chuẩn bị cho DHT gửi dữ liệu. Khi Data
Single-Bus ở mức điện áp thấp, điều này có nghĩa DHT gửi phản hồi tín hiệu. Khi DHT
gửi tín hiệu phản hồi nó sẽ tăng điện áp và giữ nó trong 80us và chuẩn bị truyền dữ liệu.
Khi DHT gửi dữ liệu tới MCU, mọi bit dữ liệu bắt đầu với mức điện áp thấp 50us và độ
dài của tín hiệu của mức điện áp cao sau đây xác định xem bit dữ liệu là “0” hay “1”.
Như vậy, DHT gửi và nhận dữ liệu với một dây tín hiệu Data, với chuẩn dữ liệu
truyền 1 dây này, chúng ta phải đảm bảo sao ở chế độ chờ dây Data có giá trị ở mức cao,
nên trong mạch sử dụng DHT 21, day Data phải được mắc với một trở kéo bên ngoài
(thông thường giá trị là 4.7kΩ). Trích dẫn code:
Serial.print(" DO AM:");
Serial.print( humi );
Serial.println(" %" ); Serial.print(" NHIET DO C:");
Serial.print(tempC);
Serial.println(" oC ");
Dữ liệu truyền về DHT 21 gồm 40 bit dư liệu theo thứ tự: 8 bit biểu thị phần
nguyên của nhiệt độ,8 bit biểu thị phần thập phân của nhiệt độ, 8 bit biểu thị phần nguyên
của độ ẩm, 8 bit biểu thị phần thập phân của độ ẩm, 8bit còn lại check sum.
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. Khi đó DHT 21 sẽ hiểu MCU muốn đo nhiệt độ và độ ẩm.
B1: MCU đưa chân Data lên 1, sau đó thiết lập lại là chân đầu vào.
B2: sau khoảng 20-40 us, DHT21 sẽ kéo chân Data xuống thấp. Nếu >40 us mà
chân Data chưa được kéo xuống thấp nghĩa là giao tiếp được với DHT21.
B3: chân Data ở mức thấp <80us sau đó được DHT21 kéo lên 80us. Bằng việc
giám sát chân Data, MCU có thể biết được có thể giao tiếp với DHT21 được hay không.
Khi tín hiệu đo được DHT21 lên cao, khi đó hoàn thiện quá trình giao tiế giữa DHT21
với MCU.
Cách thức hoạt động của modul cảm biến tia UV ML8511.

37
Modul cảm biến tia UV ML8511 là cảm biến tia cực tím dễ sử dụng, hoạt động
bằng cách phát tín hiệu tương tự liên quan đến lượng ánh sáng UV được phát hiện. Cảm
biến này phát hiện ánh sáng từ 280 - 390nm.
Khu vực nhạy cảm là một phần của phổ UVB (tia cháy) và hầu hết phổ UVA (tia
rám nắng). Nó tạo ra một điện áp tương tự có liên quan tuyến tính với cường độ tia cực
tím đo được (mW / cm2). Thông qua vi điều khiển, có thể thực hiện chuyển đổi tín hiệu
tương tự sang tín hiệu số thì bạn có thể phát hiện mức độ UV.
Khi cấp điện hệ thống hoạt động, vi điều khiển hiển thị thông tin ban đầu. Lúc
này vi điều khiển chờ tín hiệu từ mạch đọc cảm biến đo tia uv ml8511 trong môi trường
trả về tín hiệu analog dùng để đo cường độ tia uv trong ánh nắng hoặc trong đèn tia cực
tím và kiểm tra mức tín hiệu, Khi nhận tín hiệu vi điều khiển tính toán, xử lý dữ liệu và
xuất tín hiệu giá trị thực tế.
Trích dẫn code:
// UV
light.enable();
float UV = light.getUV();
light.disable();
Serial.print( " CHI SO UV : ");
Serial.print(UV, 4);
Serial.println(" mW cm^2");
delay(1000);
Cách thức hoạt động của modul truyền phát tín hiệu bluetooth HC 05
Ở chế độ mặc định, HC-05 BT sẽ hoạt động như Slave. Bằng cách sử dụng mật
khẩu mặc định, thiết bị sẽ được kết nối.
Mật khẩu mặc định: 1234 hoặc 0000
Để sử dụng module như một Master, module phải ở chế độ dòng lệnh. Chế độ
master không phổ biến cho các module Bluetooth.
Chân key có thể giúp chuyển đổi các chế độ có thể điều khiển thông qua tín hiệu
digital nhưng module có sẵn một nút nhấn có thể sử dụng để chuyển đổi các chế độ.
Chức năng báo trạng thái:
Chân Đèn LED báo trạng thái cho người dùng và chân state báo tín hiệu trạng
thái cho bộ vi điều khiển. Chân sate sẽ ở mức logic cao trong trường hợp có kết nối để
38
thông báo cho bộ vi điều khiển thực hiện các lệnh khác. Đèn LED sẽ có các chức năng
khác nhau:
• Nếu nó tiếp tục nhấp nháy thì module đang đợi kết nối.
• Nhấp nháy một lần trong 2 giây sẽ cho biết rằng module đã chuyển sang chế
độ dòng lệnh.
Nhấp nháy hai lần trong một giây sẽ cho biết module đã chuyển sang chế độ dữ liệu.
Trích dẫn code:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);}
void loop() {
if (Serial.available() > 0 ) {
int data = Serial.read();
Serial.println("INCOMING DATA:");
Serial.print(data);}
// put your main code here, to run repeatedly:}
Giải thích code:
Code kiểm tra dữ liệu từ giao thức nối tiếp và in dữ liệu ra màn hình Arduino
COM.Sau khi giao tiếp với bo mạch HC-05, cần phải bật nguồn, sau đó kết nối với
module Bluetooth khác trên điện thoại di động hoặc máy tính xách tay. Trong quá trình
sử dụng kết nối, hãy nhập mật khẩu 1234 hoặc 0000.Sau đó, gửi bất kỳ dữ liệu văn bản
nào qua điện thoại di động. Để gửi dữ liệu, có rất nhiều ứng dụng di động. Trong trường
hợp gửi tệp phương tiện, có thể xảy ra lỗi do HC05 không hỗ trợ nó.
Như vậy, module sẽ hoạt động như một slave nhưng bằng cách sử dụng code sau,
nó có thể được chuyển đổi thành Master. Điều duy nhất chúng ta sẽ cần thay đổi là tốc
độ truyền, sử dụng lệnh sau:
void setup() {// put your setup code here, to run once:Serial.begin(38400); // just
change the baud rate from 9600 to 38400pinMode(2, INPUT);}Trong trường hợp thiết
bị là master, đầu kia phải có cùng tốc độ truyền để giao tiếp với nhau. Nó chỉ có thể
kết nối với một thiết bị duy nhất tại một thời điểm và nếu không có sự cho phép của
thiết bị, nó sẽ không thay đổi module master.Module hiệu quả hơn trong liên lạc giao
39
tiếp trong khoảng cách ngắn sau khi phát minh ra các phương pháp mới. Nó hoạt động
đảm bảo an toàn với tốc độ nhanh.
2.3 Tiến hành hoàn thiện bo mạch phát và tiến hành nạp code cho mạch:
Sau khi hoàn thiệt kết nối modul chuyển đổi I2C vớiLCD, modul thu phát bluetooth và
lắp cảm biến nhiệt độ, độ ẩm DHT 21 cùng với cảm biến cường độ tia UV ML8511 vào
Arduini UNO ta thu được mạch hoàn chỉnh:
Nguyên lí hoạt động : Arduino nhận dữ liệu từ modul truyền phát bluetooth HC05
xong sau đó hiển thị ra màn hình LCD.
Tiến hành nạp code cho mạch:
#include "DHT.h"
#define DHT21Pin 6
#define DHTType DHT21
#include <Arduino.h>
#include <ML8511.h>
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define ANALOGPIN A0
#define ENABLEPIN A1
ML8511 light(ANALOGPIN, ENABLEPIN); DHT dht(DHT21Pin,DHTType);
float humi ;
float tempC;
SoftwareSerial BTserial(10, 11); // RX | TX void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
BTserial.begin(9600);
dht.begin(); //Khởi động cảm biến lcd.init(); //Khởi động LCD
lcd.backlight(); //Mở đèn
lcd.setCursor(0,0);
lcd.print("UV:");
lcd.setCursor(0,1);
40
lcd.print("C|H:");
}
void loop() {
// put your main code here, to run repeatedly:
delay(1000);
humi = dht.readHumidity();
tempC = dht.readTemperature();
Serial.print(" DO AM:");
Serial.print( humi );
Serial.println(" %" ); Serial.print(" NHIET DO C:");
Serial.print(tempC);
Serial.println(" oC "); // UV
light.enable();
float UV = light.getUV();
light.disable();
Serial.print( " CHI SO UV : ");
Serial.print(UV, 4);
Serial.println(" mW cm^2");
delay(1000);
// LCD
// Kiểm tra cảm biến có hoạt động hay không
if (isnan(tempC) || isnan(humi) || isnan(UV))
{
Serial.println("Không có giá trị trả về từ cảm biến");
return;
} lcd.setCursor(4,0); //con trỏ vị trí số 7, hiện ô số 8
lcd.print(UV, 4);
lcd.setCursor(9,0); //Con trở ở vị trí 12, hiện ô 13
lcd.print("mW|cm^2");lcd.setCursor(4,1);
lcd.println(tempC);
lcd.setCursor(8,1);
lcd.print("C");
41
lcd.setCursor(9,1);
lcd.print("|");
lcd.setCursor(10,1);
lcd.print(humi);
lcd.setCursor(14,1);
lcd.print("%");
String data = String(tempC) + "," + String(UV) + "," + String(humi) ;// Tạo chuỗi dữ
liệu gồm nhiệt độ, độ ẩm và chỉ số UV
BTserial.println(data); // Gửi chuỗi dữ liệu đến MIT App Inventor qua Bluetooth
delay(5000);
Serial.println(data);
}
2.4 Tiến hành kiểm tra, khảo sát mạch phát và thu.
2.4.1 Kiểm tra khảo sát mạch ở điều kiện trong phòng:

Hình 20: Nghiệm thu nhiệt độ so sánh độ chênh lệch so với thực tế trong phòng
[ Time: 19:50 date: 29/05/2023 ]

42
Hình 21: Nghiệm thu kiểm tra nhiệt độ so sánh độ chênh lệch so với thực tế

[ Time: 19:55 date: 29/05/2023 ]


Nhận xét
o Nhiệt độ đo được trên mạch là 31.5 độ C và thực tế là 32 độ C
o Độ ẩm trên mạch là 79.3% và thực tế là 79%
o Mạch truyền rõ, không có hiện tượng bị lỏng dây, mất tín hiệu giữa chừng, tín
hiệu truyền liên tục và hiển thị tín hiệu trên mạch và trên app trùng khớp và chính
xác.
Như vậy dữ liệu hiển thị gần đúng so với kết quả thực tế kiểm tra, khảo sát mạch ở
điều kiện ngoài trời và khoảng cách truyền.

43
CHƯƠNG 3 THIẾT KẾ CHẾ TẠO VỎ CHO MÔ HÌNH .

3.1 Tìm hiểu về công nghệ in 3D


- Công nghệ in 3D, còn được gọi là công nghệ in phục hình hay chế tạo
thêm, là quá trình tạo ra các đối tượng vật lý bằng cách kết hợp các lớp vật liệu
theo trình tự dựa trên một mô hình số hóa 3D. Đây là một trong những công nghệ
tiên tiến nhất và đang phát triển nhanh chóng trong lĩnh vực sản xuất và thiết kế.
- Quá trình in 3D thông thường bao gồm các bước sau :
1. Thiết kế: Tạo hoặc lấy một mô hình số hóa 3D của đối tượng mong muốn.
Điều này có thể được thực hiện bằng cách sử dụng phần mềm thiết kế hỗ trợ máy
tính (CAD) hoặc bằng cách quét một đối tượng hiện có bằng một máy quét 3D.
2. Chia lớp: Mô hình 3D được chia thành các lớp mỏng dựa trên phần mềm
đặc biệt. Mỗi lớp đại diện cho một phần ngang mỏng của đối tượng.
3. In: Máy in 3D đọc các lớp được chia và bắt đầu xây dựng đối tượng bằng
cách thêm hoặc đông cứng vật liệu được chọn, chẳng hạn như nhựa, nhựa tổng
hợp, kim loại hoặc thậm chí thực phẩm, dựa trên hướng dẫn từ mô hình số.
4. Hoàn thiện: Sau khi quá trình in hoàn tất, đối tượng có thể yêu cầu các
bước xử lý sau, bao gồm loại bỏ các cấu trúc hỗ trợ, mài nhẵn, đánh bóng, sơn,
hoặc bất kỳ bước xử lý bổ sung nào để đạt được độ hoàn thiện và chức năng mong
muốn.
→ Công nghệ in 3D có nhiều ứng dụng trong các ngành công nghiệp khác
nhau, bao gồm tạo mẫu, sản xuất các sản phẩm tùy chỉnh, mô hình kiến trúc, ứng
dụng y tế, giáo dục và nhiều hơn nữa. Nó mang lại lợi thế tạo ra những hình học
phức tạp và thiết kế độc đáo mà có thể khó hoặc không thể đạt được với các
phương pháp sản xuất truyền thống.
3.2 Thiết kế mô hình in 3D bằng phần mềm solidworks
3.2.1 Giới thiệu qua về phần mềm solidworks
SolidWorks là một phần mềm CAD (Computer-Aided Design) 3D nổi
tiếng và phổ biến trong lĩnh vực thiết kế cơ khí và chế tạo. Thiết kế 3D:
SolidWorks cho phép người dùng tạo và chỉnh sửa các mô hình 3D chi tiết, bao
44
gồm các bộ phận và lắp ráp. Người dùng có thể sử dụng các công cụ và chức năng
đa dạng để tạo ra các hình dạng, chi tiết và bề mặt phức tạp.
3.2.2 Thiết kế vỏ mô hình
3.2.2.1 Để thiết kế trên phần mềm solidworks đầu tiên chúng ta cần nhìn tổng
quan về giao diện của phần mềm vẽ Part (2D).

Để thiết kế 1 sản phẩm (part ) ta thực thiện các bước cơ bản sau :

Bước 1 : Chọn mục thiết kế 2D sketch


Bước 2 : Chọn Sketch trên góc trái để tạo mặt phẳng vẽ
Bước 3 : Chọn mặt phẳng hình chiếu bạn muốn vẽ
Bước 4 : Sử dụng công cụ vẽ 2D trên thanh công cụ để tạo ra bản vẽ 2D .

45
3.2.2.2 Thực hiện tạo hình 3D cho chi tiết
Sau khi có được bản vẽ 2D , ta thực hiện tạo khối 3D cho bản vẽ :

Bước 1 : chọn sang mục Features dành cho thiết kế khối 3D


Bước 2 : sử dụng các công cụ tạo khối để tạo lên các khối mình mong muốn
3.2.2.3 Thiết kế mô hình cho sản phẩm
Dựa trên các thiết bị có trong sản phẩm , chúng em thiết kế ra 1 vỏ hộp có
hình dạng như sau :
+ Đo kích thước các thiết bị cần thiết
+ Xác định vị trí đặt linh kiện cho hợp lý

Hình 22: Tổng quát về vỏ hộp

46
Hình 24: Nắp pin
Hình 23: Nắp hộp

-
Hình 25: Vị trí lắp Arduino

Hình 26: Vị trí lắp cảm biến DHT21

47
Hình 27: Vị trí lắp cảm biến UV

Hình 28: Vị trí lắp LED LCD 1602

3.3 Thiết lập in cho sản phẩm


Khi bạn đã vẽ mô hình hình 3D trên SolidWorks và muốn in nó bằng công
nghệ in 3D, bạn cần tuân theo các bước cơ bản sau đây:
1. Kiểm tra và chuẩn bị mô hình: Đảm bảo rằng mô hình của bạn đã hoàn
chỉnh và không có lỗi trong SolidWorks. Kiểm tra kích thước và tỷ lệ của mô
hình để đảm bảo rằng nó phù hợp với kích thước in 3D mà bạn mong muốn.
Chuyển đổi mô hình sang định dạng in 3D:
2. Sử dụng tính năng "Export" hoặc "Save As" trong SolidWorks để chuyển
đổi mô hình của bạn sang định dạng được hỗ trợ bởi phần mềm điều khiển máy
in 3D, chẳng hạn như STL hoặc OBJ.
* Mở phần mềm điều khiển máy in 3D:
1. Mở phần mềm điều khiển máy in 3D mà bạn sử dụng để chuẩn bị quá trình
in. Các phần mềm phổ biến bao gồm Ultimaker Cura, PrusaSlicer, …
2.Nhập và chuẩn bị mô hình: Trong phần mềm điều khiển máy in 3D, nhập
mô hình STL hoặc OBJ mà bạn đã chuyển đổi từ SolidWorks. Tại đây, bạn có thể

48
chỉnh sửa các thiết lập in như kích thước, tỷ lệ, độ phân giải, hướng in, và kiểu
vật liệu. Gửi tệp in 3D đến máy in: Kết nối máy tính của bạn với máy in 3D thông
qua cáp USB hoặc qua mạng (nếu máy in 3D hỗ trợ).
3. Trong phần mềm điều khiển máy in 3D, sau khi bạn đã hoàn thành các
thiết lập, gửi tệp in 3D đến máy in để bắt đầu quá trình in.
4. Theo dõi và hoàn thành in 3D:
Máy in 3D sẽ bắt đầu xây dựng mô hình từ các lớp vật liệu liên tiếp. Theo
dõi quá trình in để đảm bảo rằng nó diễn ra một cách bình thường và không có
vấn đề gì xảy ra.
Khi in hoàn thành, lấy mô hình in 3D ra khỏi máy in và làm sạch (nếu cần
thiết).

Hình 29: Sản phẩm sau khi hoàn thiện

49
CHƯƠNG 4 APP INVENTOR

4.1 Giới thiệu về App Inventor


MIT App Inventor dành cho Android là một ứng dụng web nguồn mở ban đầu được
cung cấp bởi Google và hiện tại được duy trì bởi Viện Công nghệ Massachusetts (MIT).
Nền tảng cho phép nhà lập trình tạo ra các ứng dụng phần mềm cho hệ điều hành Android
(OS). Bằng cách sử dụng giao diện đồ họa, nền tảng cho phép người dùng kéo và thả
các khối mã (blocks) để tạo ra các ứng dụng có thể chạy trên thiết bị Android. Đến thời
điểm hiện tại 07/2017, phiên bản IOS của nền tảng này đã bắt đầu được đưa vào thử
nghiệm bởi Thunkable, là một trong các hà cung cấp ứng dụng web cho ngôn ngữ này,

Nền tảng App Inventor được đưa ra thông qua yêu cầu vào ngày 12 tháng 7 năm 2010
và được phát hành công khai vào ngày 15 tháng 12 năm 2010. Nhóm App Inventor được
dẫn dắt bởi Hal Abelson và Mark Friedman. Trong nửa sau của năm 2011, Google công
bố mã nguồn, chấm dứt máy chủ và cung cấp tài trợ cho việc thành lập Trung tâm Nghiên
cứu Điện thoại Di động MIT, do Hal Abelson và các giáo sư Eric Klopfer và Mitchel
Resnick sáng lập để duy trì hoạt động của App Inventor. Phiên bản MIT được ra mắt
vào tháng 3 năm 2012.

Hiện nay, mỗi tháng MIT App Inventor có hơn 400.000 người dùng đến từ 195 quốc gia
và đã tạo ra gần 22 triệu ứng dụng, MIT App Inventor đang thay đổi cách thế giới tạo ra
các ứng dụng và cách mà học sinh nhỏ tuổi bắt đầu học về máy tính.

4.2 Các tính năng có trên MIT App Inventor


Cho phép xây dựng nhanh chóng những thành phần cơ bản (components) của một ứng
dụng Android: Nút bấm, nút lựa chọn, chọn ngày giờ, ảnh, văn bản, thông báo, kéo trượt,
trình duyệt web.

Sử dụng nhiều tính năng trên điện thoại: Chụp ảnh, quay phim, chọn ảnh, bật video hoặc
audio, thu âm, nhận diện giọng nói, chuyển lời thoại thành văn bản, dịch. Hỗ trợ xây
dựng game bằng Components: Ball, Canvas, ImageSprite,

Cảm biến: đo gia tốc, đọc mã vạch tính giờ, con quay hồi chuyển, xác định địa điểm, đo
tốc độ, đo khoảng cách xa gần với vật thể. Kết nối: Danh bạ, email, gọi điện, chia sẻ
thông qua các ứng dụng mạng xã hội khác
50
trên thiết bị, nhắn tin,sử dụng Twitter qua API, bật ứng dụng khác, Bluetooth, bật trình
duyệt.
Cảm biến: đo gia tốc (AccelerometerSensor), đọc mã vạch, tính giờ, con quay hồi
chuyển (gyroscopeSensor), xác định địa điểm (locationSensor), NFC, đo tốc độ
(pedometer), đo khoảng cách.
Lưu trữ: đọc hoặc lưu tập txt, esv, tạo cơ sở dữ liệu đơn giản trên điện thoại hoặc trên
đám mây thông qua server tự tạo hoặc Firebase. Điều khiển robot thông qua Lego
Mindstorms.
Và rất nhiều mở rộng do các nhà lập trình hoạt động riêng liên tục thêm vào như là: Mua
bán ứng dụng, báo thức, cảm biến ảnh sáng, ...
4.3 Hướng dẫn sử dụng App Inventor
Để sử dụng được App Inventor, ta truy cập vào địa chỉ http://ai2.appinventor mit.edu.
Sau đó tiến hành đăng nhập bằng tài khoản Google để mở trang quản lí dự án.

Hình 30: Trang quản lý dự án

51
4.4 Tạo phần mềm hiển thị cảm biến nhiệt độ,độ ẩm và tia uv gửi từ Bluetooth
bằng app Inventor
Bước 1: Tạo chương trình
Sau khi đăng nhập, tại cửa sổ chính (My Project), chọn Start new project sau đặt tên cho
chương trình muốn tạo

Hình 31: Tạo một trang quản lý mới

Bước 2 : Thiết kế giao diện phần mềm


Màn hình chương trình mới hiện ra với 4 cửa sổ chính: Palette, Viewer, Components,
Properties đây là 4 khung trong cửa sổ chính (Screen 1)

Hình 32: Cửa số giao tiếp với App Inventor.


52
• Palette: đây là khu vực chứa chức năng điều khiển chính bao gồm: User
Interface, Layout, Sensors, Social... để sử dụng ta chỉ cần kích thả các khối vào
phần Viewer.
• Viewer: đây là khu vực mô phỏng màn hình ứng dụng.
• Components: đây là khu vực quản lí các thành phần cấu trúc đã tạo ở phần
Viewer.
• Properties: Hiển thị thuộc tỉnh của component tương ứng được chọn.
Để tạo giao diện ứng dụng, ta kéo thả các Button, Label, List Picker... (chia trong User
Interface) đặt vào trong các Layout và đặt tên cho từng khối trong phần Text nằm bên
của so Properties.
Ứng dụng sau khi thiết kế xong sẽ có dạng như hình dưới. Bao gồm các thành phần
nhìn
thấy trên Screen và các thành phần chức năng không nhìn thấy trên Screen (non-visible)
là:
• Notifier1: Hiển thị các câu thông báo đến người dùng.
• Bluetooth Client1: Để giao tiếp với HC-05 được kết với Arduino và
Smartphone.

Hình 33: Thiết kế giao diện ứng dụng

53
Hình 34: Giao diện ứng dụng mô phỏng khi hoàn thành
Bước 3: Lập trình chức năng
Sau khi thiết kế đc giao diện ứng dụng như trên ta tiến hành lập chương trình cho giao
diện hoạt động trong phần Tab “Block” nằm bên phải màn hình

Hình 35: Cửa sổ tạo chương trình cho ứng dụng

54
Cửa số phần lập trình hiện lên, bên trái là các khối lệnh: Control, Logic, Math, Text...
và cá khối lệnh tương ứng với mỗi button. Để thực hiện một lệnh nào đó, ta kéo thả các
khối lệnh vào màn hình. Có 3 kiểu lệnh chính mà ta sử dụng là:
Thuộc tỉnh (properties):

Hình 36: Thuộc tính của block


Phương thức(Method):

Hình 37: Phương thức của block

55
Sự kiện(Event):

Hình 38: Sự kiện của Block

Code của chương trình app cảm biến nhiệt độ, độ ẩm và tia uv:
Hành động khi khởi chạy screen:
Tự động gọi Bluetooth khi thiết bị chưa bật, nếu bật rồi thì bắt đầu quét các địa chỉ
Bluetooth xung quanh và lưu trữ lại trong bộ nhớ ,với việc lưu lại như vậy sẽ giúp kiết
kiệm thời gian khi thoát app và mở lại lúc đó Bluetooth sẽ tự kết nối với địa chỉ trong
phần lưu trữ .

Hình 39: Hành động kết nối liên lục các bluetooth đã lưu

56
Hình 40: Hành động nút bấm chọn kết nối Bluetooth

Hình 41: Hành động kết nối Bluetooth cần chọn

57
Hình 42: Hành động kết nối hiển thị data từ buletooth

Bước 4: Biên dịch và thử nghiệm


Để biên dịch và thực thi chương trình viết trên MIT App Inventor có hai cách:
✓ Cách 1: Sử dụng phần mềm MIT Companion. Với cách này, bạn cần cài đặt phần
mềm MIT Companion trên điện thoại của bạn. Sau đó, kết nối với project của
bạn để tự động Download về và chạy bên trong phần mềm MIT Companion. Điều
này gây ra nhiều sự bất tiện và phụ thuộc.

58
✓ Cách 2: Biên dịch ra file apk và cài đặt, bao gồm tùy chọn download file apk về
máy tính sau đó sao chép sang điện thoại để cách đặt hoặc biên dịch và tải online
thông qua mã QR code
Để thực hiện, bạn chọn Build — App (provide QR code for .apk).Sau khi biên dịch xong
sẽ xuất hiện một mã QR code, bạn sử dụng phần mềm quét QR code trên điện thoại để
tải file apk về và cài đặt.

Hình 43: Cách cài đặt chương trình bằng mã quét QR và code

59
KẾT LUẬN VÀ KIẾN NGHỊ

Phần kết luận:


Trong đề tài "Thiết kế, chế tạo module đo các thông số nhiệt độ, độ ẩm, cường
độ UV có khả năng gửi dữ liệu lên Internet", sau khi thực hiện một loạt nghiên cứu và
thiết kế để phát triển một module đo các thông số môi trường và truyền dữ liệu lên
Internet. Kết quả nghiên cứu đã đạt được những đóng góp quan trọng và mang tính ứng
dụng cao trong các lĩnh vực khác nhau.
Đầu tiên, bài nghiên cứu đã thành công trong việc thiết kế một module nhỏ gọn
và tiện lợi, có khả năng đo đạc chính xác các thông số nhiệt độ, độ ẩm và cường độ UV.
Module này đã được tích hợp các cảm biến chất lượng cao và vi mạch xử lý thông tin,
đảm bảo sự chính xác và đáng tin cậy của dữ liệu thu thập được.
Thứ hai, phát triển giao thức truyền dữ liệu thông qua Internet, cho phép module
kết nối và gửi dữ liệu đo đạc lên các hệ thống mạng. Giao thức này đảm bảo tính bảo
mật và đáng tin cậy của dữ liệu, đồng thời cung cấp khả năng truy cập từ xa và giám sát
thông qua các thiết bị di động hoặc máy tính cá nhân.
Đánh giá các đóng góp mới của công trình/đề tài này, thấy được rằng module đo
các thông số nhiệt độ, độ ẩm, cường độ UV có khả năng gửi dữ liệu lên Internet đã mang
lại nhiều lợi ích đáng kể. Công trình này đáp ứng nhu cầu giám sát môi trường và thu
thập dữ liệu một cách tự động và hiệu quả. Nó cung cấp thông tin quan trọng để phân
tích và đưa ra quyết định trong các lĩnh vực như nông nghiệp, môi trường, y tế, và ngành
công nghiệp.
Phần kiến nghị:
Dựa trên kết quả nghiên cứu, nhóm nghiên cứu đề xuất một số hướng phát triển
tiếp theo. Đầu tiên, cần tiếp tục nghiên cứu và phát triển các tính năng mới cho module
đo, bao gồm việc tích hợp thêm các cảm biến và khả năng đo đạc các thông số môi
trường khác. Điều này sẽ mở rộng phạm vi ứng dụng của module và tăng tính linh hoạt
trong việc thu thập dữ liệu.
Thứ hai, cần nghiên cứu và cải tiến giao thức truyền dữ liệu để tăng cường khả
năng bảo mật và hiệu suất truyền. Việc nâng cấp giao thức giúp đảm bảo tính ổn định
và chất lượng của dữ liệu truyền tải, đồng thời bảo vệ quyền riêng tư và an ninh thông
tin.
60
Đối với ứng dụng thực tế và sản xuất, có thể đề xuất các biện pháp nhằm tối ưu
hóa quy trình triển khai và sử dụng module đo. Cần xây dựng các hướng dẫn và tài liệu
hỗ trợ chi tiết để người dùng có thể dễ dàng cài đặt, vận hành và duy trì module. Đồng
thời, đề xuất đưa ra các giải pháp tích hợp dữ liệu từ module vào hệ thống quản lý và
phân tích, giúp tối ưu hóa quy trình ra quyết định và tận dụng tối đa thông tin thu thập
được.
Tiếp đến, để đạt được kích thước nhỏ gọn và tích hợp tối đa, có thể đề xuất nghiên
cứu và phát triển mạch in đa lớp (multilayer PCB) hoặc mạch in linh hoạt (flexible PCB)
cho module. Mạch in này sẽ giúp giảm kích thước tổng thể và tăng tính linh hoạt trong
việc tích hợp các thành phần và cảm biến.

Cuối cùng, nhóm nghiên cứu khuyến nghị các cơ quan quản lý và chính phủ xem
xét việc tạo ra cơ chế và chính sách hỗ trợ phát triển và triển khai công nghệ này. Điều
này bao gồm việc thúc đẩy hợp tác giữa các đơn vị nghiên cứu, doanh nghiệp và tổ chức
quản lý để thúc đẩy sự ứng dụng và tận dụng tiềm năng của module đo trong các lĩnh
vực quan trọng.
Tóm lại, đề tài "Thiết kế, chế tạo module đo các thông số nhiệt độ, độ ẩm, cường
độ UV có khả năng gửi dữ liệu lên Internet" đã đạt được những kết quả đáng kể và có
tiềm năng ứng dụng rộng rãi. Các đóng góp mới của công trình này là cơ sở để tiếp tục
nghiên cứu và phát triển trong tương lai, cũng như đề xuất những biện pháp cần thiết để
ứng dụng kết quả nghiên cứu vào thực tiễn và đề xuất cơ chế, chính sách hỗ trợ phù hợp.

61
TÀI LIỆU THAM KHẢO:

Tiếng Anh:
- [1].Banzi.M, (2009), Getting Started with Arduino, O'Reilly Media.
- [2].Michael Margollis and Nicholas Weldin, (2011), Arduino Cookbook,
O'Reilly Media.
Tiếng Việt:
- [3] Arduino.vn
Trang wed:
- [4].Arduino.cc.
- [5].Arduino4projects.com.
- [6].Randomnerdtutorials.com.
- [7].Techshowvn.com.
- [8].rugged-circuits.com.
- [9].chat.openai.com.

62

You might also like