You are on page 1of 48

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

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


*****  *****

BÁO CÁO ĐỒ ÁN 1
ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM
SÁT NHIỆT ĐỘ VÀ ĐỘ ẨM.

Giảng viên hướng dẫn : TS. Trần Quang Vinh


Sinh viên thực hiện : Nguyễn Hoàng Nam
Mã sinh viên : 20182694
Lớp : ĐTVT 06 K63

Hà Nội, 06/2021
ĐỒ ÁN THIẾT KẾ 1

MỤC LỤC
DANH MỤC HÌNH VẼ....................................................................................3

DANH MỤC BẢNG BIỂU...............................................................................4

LỜI MỞ ĐẦU...................................................................................................5

CHƯƠNG I: TỔNG QUAN.............................................................................6

1.1. Mục tiêu đề tài...................................................................................6

1.2. Nội dung nghiên cứu.........................................................................6

1.3. Bố cục đồ án.......................................................................................6

1.4. Xác lập dự án.....................................................................................7

CHƯƠNG II: CƠ SƠ LÝ THUYẾT...............................................................9

2.1. Giới thiệu về phần cứng....................................................................9

2.1.1. Tổng quan về module SIM800L....................................................9

2.1.2. Tổng quan về vi điều khiển STM32F103C8 bluepill.................11

2.1.3. Tổng quan về module cảm biến nhiệt độ và độ ẩm DHT11......14

2.1.4. Tổng quan về màn hình LCD 16x2.............................................17

2.1.5. Tổng quan về I2C Adapter Cho LCD 16x2................................22

2.1.6. Tổng quan về module hạ áp LM2596.........................................23

2.2. Giới thiệu chung về chuẩn giao tiếp UART...................................25

2.2.1. Giới thiệu giao tiếp UART...........................................................25

2.2.2. Cách thức hoạt động....................................................................25

2.3. Giới thiệu chung về chuẩn giao tiếp I2C.......................................27

2.3.1. Giới thiệu giao tiếp I2C...............................................................27

2.3.2. Cách thức hoạt động....................................................................27

CHƯƠNG III: TÍNH TOÁN VÀ THIẾT KẾ...............................................30

3.1. Giới thiệu tổng quan về đề tài........................................................30

NGUYỄN HOÀNG NAM 20182694 1


ĐỒ ÁN THIẾT KẾ 1

3.2. Thiết kế hệ thống.............................................................................30

3.2.1. Thiết kế sơ đồ khối hệ thống.......................................................30

3.2.2. Tính toán thiết kế.........................................................................31

3.2.3. Sơ đồ nguyên lý toàn mạch..........................................................34

CHƯƠNG IV: THI CÔ HỆ THỐNG............................................................35

4.1. Lập trình hệ thống..........................................................................35

4.1.1. Lưu đồ giải thuật..........................................................................35

4.1.2. Giới thiệu phần mềm lập trình hệ thống....................................37

CHƯƠNG V: KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ...................................41

5.1. Kết quả đạt được.............................................................................41

5.2. Nhận xét và đánh giá.......................................................................41

CHƯƠNG VI: KẾT LUẬN............................................................................42

TÀI LIỆU THAM KHẢO..............................................................................43

NGUYỄN HOÀNG NAM 20182694 2


ĐỒ ÁN THIẾT KẾ 1

DANH MỤC HÌNH VẼ


Hình 2.1. Sơ đồ chân module SIM800L.........................................................10
Hình 2.2 KIT STM32F103C8T6 Blue Pill.....................................................12
Hình 2.3 Sơ đồ, chức năng của từng chân.....................................................14
Hình 2.4 sơ đồ chân module Dht11................................................................15
Hình 2.5 Cách thức hoạt động.......................................................................16
Hình 2.6 Tín hiệu start....................................................................................16
Hình 2.7 Bit 0, Bit1..........................................................................................17
Hình 2.8 Hình ảnh thực tế LCD 16x2............................................................19
Hình 2.9 Bảng mã kí tự...................................................................................22
Hình 2.10 Mạch chuyển đổi I2C cho LCD....................................................25
Hình 2.11 Module LM2596............................................................................26
Hình 2.12 Sơ đồ nguyên lý module LM2596.................................................27
Hình 2.13 Giao tiếp UART.............................................................................28
Hình 2.14 Khung truyền UART.....................................................................28
Hình 2.15 Ví dụ về giao tiếp UART...............................................................29
Hình 2.16 Sơ đồ giao tiếp I2C........................................................................30
Hình 2.17 Giao thức I2C.................................................................................31
Hình 2.18 Quá trình truyền dữ liệu đến thiết bị I2C....................................31
Hình 2.19 Quá trình nhận dữ liệu từ thiết bị I2C.........................................32
Hình 3.1 Sơ đồ khối hệ thống.........................................................................33
Hình 3.2 Sơ đồ thiết kế SIM800L với STM32...............................................35
Hình 3.3 Sơ đồ thiết kế DHT11 với STM32..................................................36
Hình 3.4 Sơ đồ thiết kế khối hiển thị.............................................................37
Hình 4.1 Lưu đồ chương trình chính.............................................................38
Hình 4.2 Lưu đồ chương trình con kiểm tra tin nhắn..................................39
Hình 4.3 Lưu đồ chương trình con hiển thị LCD.........................................40
Hình 4.4 Giao diện tạo Project.......................................................................41
Hình 4.5 Giao diện trong STM32CubeMX...................................................42
Hình 4.6 Thư mục mã nguồn.........................................................................43

NGUYỄN HOÀNG NAM 20182694 3


ĐỒ ÁN THIẾT KẾ 1

Hình 4.7 Keil C V5..........................................................................................44

DANH MỤC BẢNG BIỂU


Bảng 1. Phân công công việc............................................................................8
Bảng 2. Tập lệnh AT điều khiển cuộc gọi......................................................11
Bảng 3. Tập lệnh AT điều khiển tin nhắn.....................................................11
Bảng 4. Chức năng các chân của LCD..........................................................19
Bảng 5. Chức năng chân RS và R/W theo mục đích sử dụng......................20
Bảng 6. Tập lệnh của LCD.............................................................................24

NGUYỄN HOÀNG NAM 20182694 4


ĐỒ ÁN THIẾT KẾ 1

LỜI MỞ ĐẦU
Ngày nay cùng với sự phát triển mạnh mẽ của các ngành khoa học kỹ thuật,
công nghệ kỹ thuật điện tử mà trong đó đặc biệt là kỹ thuật điều khiển tự động đóng
vai trò quan trọng trong mọi lĩnh vực khoa học kỹ thuật, quản lí, công nghiệp, cung
cấp thông tin... Do đó, là một sinh viên chuyên ngành Điện Tử - Viễn Thông chúng ta
phải biết nắm bắt xu hướng và vận dụng những kiến thức đã được học để phát triển nó
một cách có hiệu quả nhằm góp phần vào sự phát triển nền khoa học kỹ thuật thế giới
nói chung và trong sự phát triển kỹ thuật điện tử, truyền thông nói riêng. Bên cạnh đó
còn là sự thúc đẩy sự phát triển của nền kinh tế nước nhà.

Ngày nay công nghệ trở nên hiện đại, xu hướng mọi thứ điều sẽ được kết nối và
điều khiển giám sát thông qua mạng không dây. Với ý tưởng giải quyết những bất cập
của giám sát từ xa, em xin đưa ra đề tài: “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM.”. Hệ thống có khả năng nhận lệnh từ điện thoại
phát ra tín hiệu. Với đề tài này, nếu được điều chỉnh tốt, ý tưởng này kết hợp với ngôi
nhà thông minh, lĩnh vực thời tiết, chăn nuôi hay trồng trọt sẽ trở thành một hệ thống
lớn đáp ứng nhu cầu giám sát nâng cao đời sống tiện ích cho con người.

NGUYỄN HOÀNG NAM 20182694 5


ĐỒ ÁN THIẾT KẾ 1

CHƯƠNG I: TỔNG QUAN


1.1. Mục tiêu đề tài.
Đồ án được nghiên cứu, khảo sát và thực hiện với mục đích áp dụng các kiến
thức đã được học ở trường giúp cho những nhu cầu điều khiển và giám sát trở nên tiện
lợi hơn. Vì vậy em thiết kế “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT
NHIỆT ĐỘ, ĐỘ ẨM.” với mong muốn đem những kỹ thuật và công nghệ mới để làm
đơn giản hóa việc giám sát, có thể giám sát dù ở bất cứ nơi đâu. Thiết bị được tích hợp
module sim 800L, nhiệt độ và độ ẩm DHT11. Thiết bị được giám sát trực tiếp qua màn
hình LCD hoặc giám sát từ xa qua qua điện thoại nhờ tin nhắn SMS.

1.2. Nội dung nghiên cứu.


 Nội dung 1: Tìm hiểu về module sim 800L, nhiệt độ và độ ẩm DHT11.

 Nội dung 2: Tìm hiểu về STM32F103C8.

 Nội dung 3: Thiết kế và tính toán thiết kế mạch phần cứng.

 Nội dung 4: Thử nghiệm và hiệu chỉnh phần cứng.

 Nội dung 5: Đánh giá kết quả thực hiện của mô hình.

 Nội dung 6: Viết báo cáo thực hiện.

 Nội dung 7: Bảo vệ Đồ án.

1.3. Bố cục đồ án.


 Chương 1: Tổng Quan.

Chương này trình bày tổng quan, mục tiêu, nội dung nghiên cứu, các giới hạn
và bố cục đồ án.

 Chương 2: Cơ Sở Lý Thuyết.

Giới thiệu các linh kiện, thiết bị sử dụng thiết kế hệ thống.

 Chương 3: Tính Toán Và Thiết Kế Hệ Thống.

NGUYỄN HOÀNG NAM 20182694 6


ĐỒ ÁN THIẾT KẾ 1

Tính toán thiết kế, đưa ra sơ đồ nguyên lí của hệ thống.

 Chương 4: Thiết Kế Hệ Thống.

Thiết kế hệ thống, lưu đồ, đưa ra giải thuật và chương trình.

 Chương 5: Kết Quả, Nhận Xét, Đánh Giá.

Đưa ra kết quả đạt được sau một thời gian nghiên cứu, đưa ra những nhận xét,
đánh giá toàn bộ hệ thống.

 Chương 6: Kết Luận.

Trình bày những kết luận về hệ thống, đồng thời nếu ra hướng phát triển cho hệ
thống.

1.4. Xác lập dự án.


Phân công công việc và kế hoạch thực hiện dự án được trình bày trong Bảng 1.

Tuần/ngày Tên công việc Kết Trạng thái


quả

Tuần 6 Gặp GVHD để nghe phổ biến yêu cầu làm đồ án Hoàn thành
và tiến hành chọn đề tài.
Tuần 7 Tìm hiểu về Vi điều khiển STM32f103C8. Hoàn thành

Tuần 8 Tìm hiểu về module DHT11. Hoàn thành

Tuần 9 Tìm hiểu Về module SIM800L. Hoàn thành

Tuần 10 Tìm hiểu Về LCD16x2. Hoàn thành

Tuần 11 Tiến hành lập trình phần mềm cho hệ thống. Hoàn thành

Tuần 12 Tiến hành lập trình phần mềm cho hệ thống. Chưa hoàn
thành
Tuần 13 Mô phỏng mạch, kiểm tra và cân chỉnh mạch. Hoàn thành

NGUYỄN HOÀNG NAM 20182694 7


ĐỒ ÁN THIẾT KẾ 1

Tuần 14 Viết báo cáo những nội dung đã làm. Hoàn thành

Tuần 15 Hoàn thiện báo cáo và gửi cho GVHD để xem Chưa hoàn
xét góp ý lần cuối trước khi in và báo cáo. thành
Tuần 16 Bảo vệ Đồ án thiết kế 1. Chưa hoàn
thành
Tuần 17 Chưa hoàn
thành
Bảng 1. Phân công công việc.

NGUYỄN HOÀNG NAM 20182694 8


ĐỒ ÁN THIẾT KẾ 1

CHƯƠNG II: CƠ SƠ LÝ THUYẾT


2.1. Giới thiệu về phần cứng.
2.1.1. Tổng quan về module SIM800L.
 Giới thiệu sơ lược về module SIM800L.

Module SIM800L có khả năng nhắn tin SMS, nghe, gọi, GPRS, … như một
điện thoại nhưng có kích thước nhỏ nhất trong các loại module SIM (25 mm x 22
mm). Điều khiển module sử dụng bộ tập lệnh AT dễ dàng, chân kết nối dùng rào đực
thông dụng (male hearder) chuẩn 100 mil.

 Thông số kĩ thuật.

- Nguồn cấp: 3.7V đến 4.2V, có thể sử dụng với nguồn dòng thấp từ 500 mAh
trở lên (như cổng USB, nguồn từ board Arduino).

- Khe cắm sim: MICROSIM.

- Dòng khi ở chế độ chờ: 10 mA.

- Dòng khi hoạt động: 100 mA đến 1 A.

- Hỗ trợ 4 bằng tần: GSM 850MHz, EGSM 900MHz, DSC 1800MHz, PCS
1900MHz

Hình 2.0.1. Sơ đồ chân module SIM800L.


 Chức năng các chân của module SIM800L

NGUYỄN HOÀNG NAM 20182694 9


ĐỒ ÁN THIẾT KẾ 1

- Chân NET: lắp anten, có thể dùng anten đi kèm hoặc anten mở rộng.

- Chân VCC: chân nguồn dương 4.2V.

- Chân GND: chân nguồn âm 0V.

- Chân RST: chân reset sử dụng khi khởi động lại module sim.

- Chân TXD: chân truyền UART TX.

- Chân RXD: chân nhận UART RX.

- Chân DTR: chân UART DTR.

- Chân RING: báo có cuộc gọi đến

- Chân SPKP, SPKN: ngõ ra âm thanh, kết nối với loa để phát âm thanh.

- Chân MICP, MICN: ngõ vào âm thanh, gắn thêm mirco để thu âm thanh.

 Tập lệnh AT điều khiển cuộc gọi.

Lệnh Mô tả
AT+CLIP=1<CR><LF> Hiển thị thông tin cuộc gọi đến.
ATD[số_điện_thoại];<CR><LF
Lệnh thực hiện cuộc gọi.
>
Lệnh thực hiện kết thúc cuộc gọi hoặc cúp
ATH<CR><LF>
máy khi có cuộc gọi đến.
Lệnh thực hiện chấp nhận khi có cuộc gọi
ATA<CR><LF>
đến.
Bảng 2. Tập lệnh AT điều khiển cuộc gọi
 Tập lệnh AT điểu khiển tin nhắn.

Lệnh Mô tả

Lệnh đưa SMS về chế độ Text, phải có lệnh này


AT+CMGF=1<CR><LF>
mới gửi tin nhắn dạng Text.

NGUYỄN HOÀNG NAM 20182694 10


ĐỒ ÁN THIẾT KẾ 1

AT+CMGS=“Số_Điện_Thoại” Đợi đến khi có kí tự ‘>’ được gửi về thì đánh nội
<CR><LF> dung tin nhắn. Lệnh gửi tin nhắn.
x là địa chỉ tin nhắn cần đọc. Đọc một tin nhắn vừa
AT+CMGR=x<CR><LF> gửi đến, lệnh được trả về nội dung tin nhắn, thông
tin người gửi, thời gian gửi.
AT+CMGDA=“DEL
Xóa toàn bộ tin nhắn trong các hộp thư.
ALL”<CR><LF>
Hiển thị nội dung tin nhắn ngay khi có tin nhắn
AT+CNMI=2,2<CR><LF>
đến.
Bảng 3. Tập lệnh AT điều khiển tin nhắn
 Sau mỗi tập lệnh AT thường thấy <CR><LF> thực chất nó là hai mã điều khiển
<CR>tương ứng 0x0D (hexa), <LF> tương ứng 0x0A (hexa).

2.1.2. Tổng quan về vi điều khiển STM32F103C8 bluepill.


 Giới thiệu sơ lược về dòng Vi điều khiển STM32.

STM32 là một trong những dòng chip phổ biến của ST với nhiều họ thông dụng
như F0,F1,F2,F3,F4….. Stm32f103 thuộc họ F1 với lõi là ARM COTEX M3.
STM32F103 là vi điều khiển 32 bit, tốc độ tối đa là 72Mhz. Giá thành cũng khá rẻ so
với các loại vi điều khiển có chức năng tương tự. Mạch nạp cũng như công cụ lập trình
khá đa dạng và dễ sử dụng.

Một số ứng dụng chính: dùng cho driver để điều khiển ứng dụng, điều khiển
ứng dụng thông thường, thiết bị cầm tay và thuốc, máy tính và thiết bị ngoại vi chơi
game, GPS cơ bản, các ứng dụng trong công nghiệp, thiết bị lập trình PLC, biến tần,
máy in, máy quét, hệ thống cảnh báo, thiết bị liên lạc nội bộ…

NGUYỄN HOÀNG NAM 20182694 11


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.2. KIT STM32F103C8T6 Blue Pill.


 Thông số kĩ thuật:
- Vi điều khiển chính: STM32F103C8T6.
- Điện áp hoạt động: 3.3VDC.
- Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyển đổi thành 3.3VDC
qua IC nguồn và cấp cho Vi điều khiển chính.
- Tích hợp sẵn thạch anh 8Mhz.
- Tích hợp sẵn thạnh anh 32Khz cho các ứng dụng RTC.

NGUYỄN HOÀNG NAM 20182694 12


ĐỒ ÁN THIẾT KẾ 1

- Ra chân đầy đủ tất cả các GPIO và giao tiếp: CAN, I2C, SPI, UART,
USB,...
- Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset.
- Kích thước: 53.34 x 15.24mm.
- Mạch nạp: có khá nhiều loại mạch nạp như : ULINK, J-LINK , CMSIS-
DAP, STLINK… ở đây mình sử dụng Stlink vì giá thành khá rả và debug
lỗi cũng tốt.
 Nguồn cấp cho STM32F103C8T6.

Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyển đổi thành 3.3VDC
qua IC nguồn và cấp cho Vi điều khiển chính.

 Bộ nhớ.

Bộ nhớ Flash nhúng, Có sẵn 64 hoặc 128 Kbyte Flash nhúng để lưu trữ các
chương trình và dữ liệu.

Bộ nhớ RAM, 20 Kbyte SRAM nhúng được truy cập (đọc / ghi) ở tốc độ CPU
Clock với 0 trạng thái chờ.

 Các ngõ vào/ra (I/O pins) của vi điều khiển STM32F103C8 bluepill.

NGUYỄN HOÀNG NAM 20182694 13


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.3 Sơ đồ, chức năng của từng chân.


 Lập trình cho STM32F103C8.
- Phần mềm lập trình: có khá nhiều trình biên dịch cho STM32 như IAR
Embedded Workbench, Keil C… Ở đây mình sử dụng Keil C nên các bài
viết sau mình chỉ đề cập đến Keil C.
- Thư viện lập trình: có nhiều loại thư viện lập trình cho STM32 như:
STM32snippets, STM32Cube LL, STM32Cube HAL, Standard Peripheral
Libraries, Mbed core. Mỗi thư viện đều có ưu và khuyết điểm riêng, ở đây
mình xin phép sử dụng Standard Peripheral Libraries vì nó ra đời khá lâu và

NGUYỄN HOÀNG NAM 20182694 14


ĐỒ ÁN THIẾT KẾ 1

khá thông dụng, hỗ trợ nhiều ngoại vi và cũng dễ hiểu rõ bản chất của lập
trình.

2.1.3. Tổng quan về module cảm biến nhiệt độ và độ ẩm DHT11.


 Giới thiệu sơ lược về module.

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.

 Thông số kỹ thuật.

- Điện áp hoạt động: 3.3V đến 5V (DC).

- Dải nhiệt độ đo: 0°C ~ 50°C, sai số ± 2°C.

- Dải độ ẩm đo: 20% - 90% RH, sai số ± 5% RH.

- Tần số lấy mẫu: 1Hz, nghĩa là 1 giây DHT11 lấy mẫu một lần.

- Chuẩn giao tiếp: TTL, 1 – Wire.

- Dòng tối đa: 2.5mA.

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

Hình 2.0.4 sơ đồ chân module Dht11


 Chức năng các chân của DHT 11.

- Chân VCC: cực dương.

- Chân GND: cực âm.

NGUYỄN HOÀNG NAM 20182694 15


ĐỒ ÁN THIẾT KẾ 1

- Chân DATA: chân tín hiệu.

 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 tín hiệu muốn đo (Start) tới DHT11, sau đó DHT11 xác nhận lại.
 Khi đã giao tiếp với DHT11, cảm biến sẽ gửi lại 5 byte dữ liệu và nhiệt
độ đo được.

Hình 2.0.5 Cách thức hoạt động.


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

Hình 2.0.6 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. 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.

NGUYỄN HOÀNG NAM 20182694 16


ĐỒ ÁN THIẾT KẾ 1

 Sau khoảng thời gian là 20 - 40 µs, DHT11 sẽ kéo chân DATA xuống
thấp. Nếu > 40 µs mà chân DATA không được kéo xuống thấp nghĩa là
không giao tiếp được với DHT11.
 Chân DATA sẽ ở mức thấp 80 µs sau đó nó được DHT11 kéo lên cao
trong 80 µs. 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 không. 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 DHT11.

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 độ (°C).
 Byte 4: giá trị phần thập phân của nhiệt độ (°C).
 Byte 5: kiểm tra tổng.
 Nếu Byte 5 = (Byte 1 + Byte 2 + Byte 3 + Byte 4) 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.
 Ví dụ như ta nhận được 40 bit (5 Byte) dữ liệu như sau:

0011 0101 0000 0000 0001 1000 0000 0000 0100 1101

Tính toán:

8 Bit Checksum (Byte 5) = 0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 =
0100 1101

Độ ẩm: 0011 0101 = 35H = 53% RH (ở đây phần thập phân có giá trị 0000
0000, nên ta bỏ qua không tính phần thập phân)

Nhiệt độ: 0001 1000 = 18H = 24°C (ở đây phần thập phân có giá trị 0000 0000,
nên ta bỏ qua không tính phần thập phân)

NGUYỄN HOÀNG NAM 20182694 17


ĐỒ ÁN THIẾT KẾ 1

- Đọ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.

 Bit 0, Bit 1:

Hình 2.0.7 Bit 0, Bit1.


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

2.1.4. Tổng quan về màn hình LCD 16x2.


 Giới thiệu sơ lược về LCD.

Là kiểu màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong bảng mã
ASCII. Màn hình sử dụng là màn hình text LCD 16x2 xanh dương, có khả năng hiển
thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến, dễ sử dụng
thích hợp cho những người mới học và làm dự án.

 Thông số kỹ thuật.

- Điện áp hoạt động: 5V.


- Kích thước: 80 x 36 x 12.5 mm.
- Chữ trắng, nền xanh dương.
- Khoảng cách giửa hai chân 0.1 inch.
- Nhiệt độ hoạt động: -20 đến +70°C.
- Hiển thị: 16 ký tự x 2 dòng.

NGUYỄN HOÀNG NAM 20182694 18


ĐỒ ÁN THIẾT KẾ 1

- Ngõ giao tiếp: 16 chân.

Hình 2.0.8 Hình ảnh thực tế LCD 16x2


Chân số Tên Chức năng
1 VSS Chân nối đất cho LCD.
2 VDD Chân cấp nguồn cho LCD, VCC=5V.
3 Vee Chân này dùng để điều chỉnh độ tương phản của LCD.
Chân chọn thanh ghi (Register select).
4 RS + Logic “0”: Thanh ghi lệnh.
+ Logic “1”: Thanh ghi dữ liệu.
Chân chọn chế độ đọc/ghi (Read/Write).
5 R/W + Logic “0”: Ghi vào LCD.
+ Logic “1”: Đọc vào LCD.
Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus
DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép
6 E của chân E. Dữ liệu ở bus sẽ được LCD chuyển vào(chấp nhận)
thanh ghi bên trong nó khi phát hiện một xung (high-to-low
transition) của tín hiệu chân E.
8 đường của bus dữ liệu. Có 2 chế độ sử dụng 8 đường bus này:
DB0-
7-14 + Chế độ 8 bit : Dữ liệu được truyền trên 8 đường.
DB7
+ Chế độ 4 bit : Dữ liệu được truyền trên 4 đường từ DB4 tới DB7.
15 A Cực dương led nền.
16 K Cực âm led nền.
Bảng 4. Chức năng các chân của LCD
 Các thanh ghi

NGUYỄN HOÀNG NAM 20182694 19


ĐỒ ÁN THIẾT KẾ 1

Chip HD44780 có 2 thanh ghi 8 bit quan trọng: thanh ghi lệnh IR (Instructor
Register) và thanh ghi dữ liệu DR (Data Register)

- Thanh ghi IR: để điều khiển LCD, người dùng phải ra lệnh thông qua 8 đường
bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD đánh địa chỉ rõ ràng. Người dùng
chỉ việc cung cấp địa chỉ lệnh bằng cách nạp vào thanh ghi IR. Nghĩa là, khi ta nạp
vào thanh ghi IR một chuỗi 8 bit, chip HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà
IR cung cấp và thực hiện lệnh đó.

- Thanh ghi DR: thanh ghi DR dung để chứa dữ liệu 8 bit để ghi vào vùng
RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng
RAM này gởi ra MPU (ở chế độ đọc). Nghĩa là, khi MPU ghi thông tin vào DR,
mạch nội bên trong chíp sẽ tự động ghi thông tin này vảo DDRAM hoặc CGRAM.
Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng
RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU.

 Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữa 2 thanh
ghi này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối với hai
chân RS và R/W theo mục đích giao tiếp.

RS R/W Chức năng


0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD
0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6
1 0 Ghi vào thanh ghi DR
1 1 Đọc dữ liệu từ DR
Bảng 5. Chức năng chân RS và R/W theo mục đích sử dụng
 Cờ báo bận (Busy Flag).

Khi thực hiện các hoạt động bên trong chip, mạch nội bên trong cần 1 khoảng
thời gian để hoàn tất. Khi đang thực thi các hoạt động bên trong chip như thế, LCD bỏ
qua mọi giao tiếp với bên ngoài và bật cờ BF lên để báo cho MPU biết nó đang bận.
Dĩ nhiên, khi xong việc, nó sẽ đặt cờ BF lại mức 0.

NGUYỄN HOÀNG NAM 20182694 20


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.9 Bảng mã kí tự.


 Tập lệnh của LCD.

Tên lệnh Hoạt động t exe


(max)
Clear Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
Display DBx = 0 0 0 0 0 0 0 1

NGUYỄN HOÀNG NAM 20182694 21


ĐỒ ÁN THIẾT KẾ 1

Lệnh Clear Display (xóa hiển thị) sẽ ghi một khoảng trống-
blank (mã hiển kí tự 20H) vào tất cả ô nhớ trong DDRAM, sau
đó trả bộ đếm địa AC=0, trả lại kiểu hiện thị gốc nếu nó bị thay
đổi.
Return Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1.52
home DBx = 0 0 0 0 0 0 1 * ms
Lệnh Return home trả bộ đếm địa chỉ AC về 0, trả lại kiểu
hiển thị gốc nếu nó bị thay đổi.
Entry Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37 uS
mode set DBx = 0 0 0 0 0 1 [I/D] [S]
I/D: Tăng (I/D=1) hoặc giảm (I/D=0) bộ đếm địa chỉ hiển thị
AC 1 đơn vị mỗi khi có hành động ghi hoặc đọc vùng DDRAM.
Vị trí con trỏ cũng di chuyển theo sự tăng giảm này.
S: Khi S=1 toàn bộ nội dung hiển thị bị dịch sang phải (I/D=0)
hoặc sang trái (I/D=1) mỗi khi có hành động ghi vùng DDRAM.
Khi S=0: không dịch nội dung hiển thị. Nội dung hiển thị không
dịch khi đọc DDRAM hoặc đọc/ghi vùng CGRAM.
Display Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
on/off DBx = 0 0 0 0 1 [D] [C] [B]
control D: Hiển thị màn hình khi D=1 và ngược lại.
C: Hiển thị con trỏ khi C=1 và ngược lại.
B: Nhấp nháy kí tự tại vị trí con trỏ khi B=1 và ngược lại.
Cursor Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
or DBx = 0 0 0 1 [S/C] [R/L] * *
display S/
shift R/L Hoạt động
C
Dịch vị trí con trỏ sang trái (Nghĩa là giảm AC
0 0
một đơn vị).
Dịch vị trí con trỏ sang phải (Tăng AC lên 1 đơn
0 1
vị).
Dịch toàn bộ nội dung hiển thị sang trái, con trỏ
1 0
cũng dịch theo.
Dịch toàn bộ nội dung hiển thị sang phải, con trỏ
1 1
cũng dịch theo.
Table 0.1 Hoạt động lệnh Cursor or display shift
Function Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
set DBx = 0 0 0 [DL] [N] [F] * *
DL: Khi DL=1, LCD giao tiếp với MPU bằng giao thức 8 bit.
Ngược lại, giao thức giao tiếp là 4 bit.
N: Thiết lập hàng hiển thị.
F: Thiết lập kiểu kí tự.
Set Mã lệnh: DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
CGRA DBx = 0 1 [ACG][ACG][ACG][ACG][ACG]

NGUYỄN HOÀNG NAM 20182694 22


ĐỒ ÁN THIẾT KẾ 1

M [ACG]
address Lệnh này ghi vào AC địa chỉ của CGRAM. Kí hiệu [AGG]
chỉ 1 bit của chuỗi dữ liệu 6 bit. Ngay sau lệnh này là lệnh
đọc/ghi dữ liệu từ CGRAM tại địa chỉ đã được chỉ định.
Set Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
DDRAM DBx = 1 [AD] [AD] [AD] [AD] [AD] [AD] [AD]
address Lệnh này ghi vào AC địa chỉ của DDRAM, dùng khi cần thiết
lập tọa độ hiển thị mong muốn.
Read BF Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0uS
and DBx = [BF] [AC] [AC] [AC] [AC] [AC] [AC] [AC]
address (RS=0, R/W=1)
Như đã đề cập trước đây, khi cờ BF bật, LCD đang làm việc
và lệnh tiếp theo (nếu có) sẽ bị bỏ qua nếu cờ BF chưa về mức
thấp. Cho nên, khi lập trình điều khiển, bạn phải kiểm tra cờ BF
trước khi ghi dữ liệu vào LCD.
Khi đọc cờ BF, giá trị của AC cũng được xuất ra các bit [AC].
Nó là địa chỉ của CG hay DDRAM là tùy thuộc vào lệnh trước
đó.
Write Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
data to DBx = [Write data] (RS=1, R/W=0) tADD
CG or Khi thiết lập RS=1, R/W=0, dữ liệu cần ghi được đưa vào các 4uS
DDRAM chân DBx từ mạch ngoài sẽ được chuyển vào trong LCD tại địa
chỉ được xác định từ lệnh ghi địa chỉ trước đó.
Read Mã lệnh : DBx = DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 37uS
data DBx = [Read data] (RS=1, R/W=1) tADD
from CG Khi thiết lập RS=1, R/W=1,dữ liệu từ CG/DDRAM được 4uS
or chuyển ra MPU thông qua các chân DBx (địa chỉ và vùng RAM
DDRAM đã được xác định bằng lệnh ghi địa chỉ trước đó).
Sau khi đọc, AC tự động tăng/giảm 1 tùy theo thiết lập Entry
mode, tuy nhiên nội dung hiển thị không bị dịch bất chấp chế độ
Entry mode.
Bảng 6. Tập lệnh của LCD

2.1.5. Tổng quan về I2C Adapter Cho LCD 16x2.


LCD có quá nhiều chân gây khó khăn trong quá trình kết nối và chiếm dụng
nhiều chân của vi điều khiển? Module chuyển đổi I2C cho LCD sẽ giúp chúng ta tiết
kiệm tối đa số chân I/O, thay vì sử dụng tối thiểu 6 chân của vi điều khiển để kết nối
với LCD (RS, EN, D7, D6, D5 và D4) thì với module chuyển đổi bạn chỉ cần sử dụng
2 chân (SCL, SDA) để kết nối. Module chuyển đổi I2C hỗ trợ các loại LCD sử dụng
driver HD44780(LCD 1602, LCD 2004, … ), kết nối với vi điều khiển thông qua giao
tiếp I2C, tương thích với hầu hết các vi điều khiển hiện nay.

NGUYỄN HOÀNG NAM 20182694 23


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.10 Mạch chuyển đổi I2C cho LCD.


 Thông số kĩ thuật.
- Điện áp hoạt động: 2.5-6V DC
- Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)
- Giao tiếp: I2C
- Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân
A0/A1/A2)
- Kích thước: 41.5mm(L)x19mm(W)x15.3mm(H)
- Trọng lượng: 5g
- Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt
- Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

2.1.6. Tổng quan về module hạ áp LM2596.


Mạch giảm áp DC LM2596 4.5-50VDC 3A chịu đựng được điện áp đầu vào
cao hơn so với dòng LM2596 thông thường. Mạch nhỏ gọn, dễ dàng sử dụng khi chỉ

NGUYỄN HOÀNG NAM 20182694 24


ĐỒ ÁN THIẾT KẾ 1

cần 2 chân ngõ vào và 2 chân ngõ ra. Chỉ cần cấp nguồn vào 2 chân input+, input- và
nhận nguồn ra từ 2 chân output+ và output- và có thể điều chỉnh điện áp đầu ra tùy ý
qua biến trở tinh chỉnh.

Hình 2.0.11 Module LM2596


 Thông số kỹ thuật:

- Điện áp đầu vào: 4.5 → 50V.

- Điện áp đầu ra: 3 → 30V.

- Dòng điện ngõ ra: max 3A.

- Hiệu suất đầu ra: 92%.

- Dòng tĩnh: 6mA.

- Công suất đầu ra: 15W.

- Kích thước: 43.6 x 21.5 x 13.5mm.

NGUYỄN HOÀNG NAM 20182694 25


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.12 Sơ đồ nguyên lý module LM2596


Khi cấp điện vào chân DC Input, dòng điện sẽ được đưa qua các tụ lọc nhiễu,
sau đó được đưa qua IC LM2596. Thông qua biến trở điều chỉnh ngõ vào của chân
Feedback, IC sẽ tạo điện áp tương ứng phụ thuộc vào giá trị biến trở và đưa điện áp ra
chân Output đưa ra ngoài.

2.2. Giới thiệu chung về chuẩn giao tiếp UART.


2.2.1. Giới thiệu giao tiếp UART.
UART tiếng anh là Universal Asynchronous Reciver/Transmister một chuẩn
giao tiếp không đồng bộ cho MCU và các thiết bị ngoại vi. Chuẩn UART là chuẩn
giao tiếp điểm và điểm, nghĩa là trong mạng chỉ có hai thiết bị đóng vai trò là
transmister hoặc reciver.

NGUYỄN HOÀNG NAM 20182694 26


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.13 Giao tiếp UART.

2.2.2. Cách thức hoạt động.


UART là giao thức truyền thông không đồng bộ, nghĩa là không có xung Clock,
các thiết bị có thể hiểu được nhau nếu các Setting giống nhau.

UART là truyền thông song công(Full duplex) nghĩa là tại một thời điểm có thể
truyền và nhận đồng thời.

Trong đó quan trọng nhất là Baund rate (tốc độ Baund) là khoảng thời gian
dành cho 1 bit được truyền. Phải được cài đặt giống nhau ở gửi và nhận.

Sau đó là định dạng gói tin:

NGUYỄN HOÀNG NAM 20182694 27


ĐỒ ÁN THIẾT KẾ 1

Hình 2.0.14 Khung truyền UART.


- Baud rate (tốc độ baud): số bit truyền nhận trong 1s, tốc độ hay sử dụng phải
là bội của 8 thường là 2400, 4800, 9600, 19200, 38400, 56000, 115200… cả 2 thiết bị
truyền nhận cho nhau phải cùng 1 tốc độ baud.

- Frame (khung truyền ): Khung truyền quy định về số bit trong mỗi lần truyền.
Thông thường chúng ta sẽ chọn khung truyền 8 bit .

- Start bit : là bit đầu tiên được truyền trong 1 Frame. Báo hiệu cho thiết bị
nhận có một gói dữ liệu sắp được truyền đến. Bit bắt buộc.

- Data : dữ liệu cần truyền. Bit có trọng số nhỏ nhất LSB được truyền trước sau
đó đến bit MSB.

- Parity bit : bit kiểm tra chẵn lẻ.

- Stop bit : là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong.
Thiết bị nhận sẽ tiến hành kiểm tra khung truyền nhằm đảm bảo tính đúng đắn của dữ
liệu. Bit bắt buộc.

NGUYỄN HOÀNG NAM 20182694 28


ĐỒ ÁN THIẾT KẾ 1

 Ví dụ: Giả sử ta cần truyền 1 byte, 0x93;

0x93 = 1001 0011.

Hình 2.0.15 Ví dụ về giao tiếp UART.

2.3. Giới thiệu chung về chuẩn giao tiếp I2C.


2.3.1. Giới thiệu giao tiếp I2C.
I2C là tên viết tắt của cụm từ tiếng anh “Inter – Integrated Circuit”. Nó là một
giao thức giao tiếp được phát triển bởi Philips Semiconductors để truyền dữ liệu giữa
một bộ xử lý trung tâm với nhiều IC trên cùng một board mạch chỉ sử dụng hai đường
truyền tín hiệu.

Đây là một giao thức giao tiếp nối tiếp đồng bộ. Nó có nghĩa là các bit dữ liệu
được truyền từng bit một theo các khoảng thời gian đều đặn được thiết lập bởi một tín
hiệu đồng hồ tham chiếu.

NGUYỄN HOÀNG NAM 20182694 29


ĐỒ ÁN THIẾT KẾ 1

2.3.2. Cách thức hoạt động.

Hình 2.0.16 Sơ đồ giao tiếp I2C.


 I2C sử dụng 2 đường truyền tín hiệu:
- SCL - Serial Clock Line : Tạo xung nhịp đồng hồ do Master phát đi.
- SDA - Serial Data Line : Đường truyền nhận dữ liệu.

Hình 2.0.17 Giao thức I2C.


 Quá trình truyền dữ liệu đến thiết bị I2C.

Bước 1: Master gửi tín hiệu start I2C


Bước 2: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Write (bit 0);
Bước 3: Master gửi địa chỉ của thanh ghi dữ liệu của Slave muốn ghi giá trị.
Bước 4: Master gửi giá trị mà muốn ghi vào thành ghi ở bước 3.

NGUYỄN HOÀNG NAM 20182694 30


ĐỒ ÁN THIẾT KẾ 1

Bước 5: Master tạo tín hiệu stop.

Hình 2.0.18 Quá trình truyền dữ liệu đến thiết bị I2C.


 Quá trình nhận dữ liệu từ thiết bị I2C.
Bước 1: Master gửi tín hiệu start I2C.
Bước 2: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Write (bit 0);
Bước 3: Master gửi đia chỉ thanh ghi của Slave mà muốn đọc dữ liệu.
Bước 4: Master gửi tín hiệu Repeated Start.
Bước 5: Master gửi địa chỉ của thiết bị I2C (7 bit) kèm bit Read (bit 1);
Bước 6: Master đọc dữ liệu chứa trong thanh ghi ở bước 3 từ Slave gửi về.
Bước 7: Master tạo tín hiệu Stop.

Hình 2.0.19 Quá trình nhận dữ liệu từ thiết bị I2C.

NGUYỄN HOÀNG NAM 20182694 31


ĐỒ ÁN THIẾT KẾ 1

CHƯƠNG III: TÍNH TOÁN VÀ THIẾT KẾ

3.1. Giới thiệu tổng quan về đề tài.


Đề tài nảy yêu cầu thiết kế hệ thống giám sát nhiệt độ, độ ẩm. Khi soạn tin nhắn
được đưa đến vi xử lý, thực hiện các lệnh. Cũng như từ vi xử lý đưa dữ liệu sang điện
thoại qua tin nhắn SMS và hiển thị dữ liệu lên màn hình LCD. Ở chương này, sẽ tập
trung tính toán thiết kế các khối cho hệ thống, dựa vào yêu cầu của đề tài từ đó tính
toán và lựa chọn các linh kiện và thiết bị phù hợp.

NGUYỄN HOÀNG NAM 20182694 32


ĐỒ ÁN THIẾT KẾ 1

3.2. Thiết kế hệ thống.


3.2.1. Thiết kế sơ đồ khối hệ thống.

Hình 3.0.20 Sơ đồ khối hệ thống

Các khối sử dụng trong mạch:

Khối nguồn: cung cấp cho toàn mạch, trong đề tài này sử dụng 3 nguồn:
3.7VDC – 4.2VDC cấp cho khối truyền và nhận, 3.3VDC cấp cho khối xử lý trung
tâm, 5VDC cấp cho khối thu thập, khối hiển thị.

Khối xử lý trung tâm: điều khiển mọi sự hoạt động của hệ thống theo chương
trình đã nạp sẵn. Nhận dữ liệu từ khối thu thập, xử lý rồi gửi tín hiệu đến khối hiển thị
và khối truyền và nhận nếu có yêu cầu.

NGUYỄN HOÀNG NAM 20182694 33


ĐỒ ÁN THIẾT KẾ 1

Khối truyền và nhận: nhận dữ liệu từ tin nhắn của điện thoại để đưa đến khối
xử lý trung tâm sau đó khối xử lý trung tâm sẽ xử lý và gửi dữ liệu đến điện thoại
thông qua khối truyền và nhận.

Khối hiển thị: là màn hình LCD. Khối xử lý trung tâm sẽ gửi dữ liệu để hiển
thị ra khối hiển thi.

Khối thu thập: thu thập dữ liệu từ các cảm biến nhiệt độ, độ ẩm đến khối xử lý
trung tâm.

3.2.2. Tính toán thiết kế.


a) Khối nguồn.

 Khối xử lý trung tâm STM32: Sử dụng nguồn 3.3V trực tiếp từ mạch nạp STlink
V2.

 Khối truyền và nhận module sim 800l: Lấy nguồn 5V mắc qua module hạ áp
LM2596 để hạ xuống 3.7VDC – 4.2VDC.

 Khối hiển thị LCD, Khối thu thập DHT11: Sử dụng nguồn 5v từ mạch nạp
STlink V2.

b) Khối xử lý trung tâm.

Sau quá trình tìm hiểu về các thiết bị điều khiển cho hệ thống xử lý trung tâm
cùng với sự tư vấn và hỗ trợ của giáo viên hướng dẫn nên nhóm thực hiện đã quyết
định chọn Vi điều khiển STM32F103C8 để làm bộ xử lý trung tâm cho đề tài này. Với
đặc điểm có thể tích hợp nhiều ngoại vi với các chân I/O cần thiết cho đề tài.

c) Khối truyền và nhận.

Ở khối truyền và nhận em sử dụng module SIM800L. Module đáp ứng được
nhiều nhu cầu hiện nay như: nhắn tin, nghe, gọi, … Một số thông số cơ bản của
module là:

- Nguồn cấp: 3.7V đến 4.2 VDC.

NGUYỄN HOÀNG NAM 20182694 34


ĐỒ ÁN THIẾT KẾ 1

- Khe cắm sim: MICROSIM.

- Dòng khi ở chế độ chờ: 10 mA.

- Dòng khi hoạt động: 100 mA đến 1 A.

Hình 3.0.21 Sơ đồ thiết kế SIM800L với STM32


d) Khối thu thập.

Dùng cảm biến thường dùng đo được nhiệt độ và độ ẩm như DHT11. Cảm biến
theo chuẩn truyền One – Wire, gửi và nhận trên 1 dây. Các thông số cơ bản của cảm
biến là:

- Điện áp hoạt động: 3.3V đến 5V (DC).

- Dòng điện: 2.5mA.

- Dải nhiệt độ đo: 0°C ~ 50°C, sai số ± 2°C.

- Dải độ ẩm đo: 20% - 90% RH, sai số ± 5% RH.

- Tần số lấy mẫu: 1Hz, nghĩa là 1 giây DHT11 lấy mẫu một lần.

NGUYỄN HOÀNG NAM 20182694 35


ĐỒ ÁN THIẾT KẾ 1

Hình 3.0.22 Sơ đồ thiết kế DHT11 với STM32


e) Khối hiển thị.

Để quan sát trực tiếp được các giá trị từ các cảm biến của hệ thống, ta sử dụng
màn hình LCD.

NGUYỄN HOÀNG NAM 20182694 36


ĐỒ ÁN THIẾT KẾ 1

Hình 3.0.23 Sơ đồ thiết kế khối hiển thị

NGUYỄN HOÀNG NAM 20182694 37


ĐỒ ÁN THIẾT KẾ 1

3.2.3. Sơ đồ nguyên lý toàn mạch.

Hình 0.24 Sơ đồ nguyên lý toàn mạch

CHƯƠNG IV: THI CÔ HỆ THỐNG.


4.1. Lập trình hệ thống.
4.1.1. Lưu đồ giải thuật.
 Lưu đồ chương trình chính.

Dựa vào lưu đồ ta thấy hoạt động của hệ thống hoạt động rõ ràng. Khi bắt đầu
quá trình hoạt động thì sẽ thực hiện việc khởi tạo hệ thống. Kiểm tra hệ thống có được
thiết lập hay chưa.

Bộ xử lý trung tâm sẽ nhận giá trị của các cảm biến để đưa tới bộ hiển thị. Cũng
như nhận và xử lý tín hiệu từ điện thoại.

NGUYỄN HOÀNG NAM 20182694 38


ĐỒ ÁN THIẾT KẾ 1

Hình 4.0.25 Lưu đồ chương trình chính


Sau khi bắt đầu chương trình sẽ cấu hình và thiết lập cho hệ thống. Tiếp theo
chương trình con kiểm tra tin nhắn có nhiệm vụ chính kiểm tra xem có tin nhắn và
đúng cú pháp không, nếu có thì gửi giá trị cảm biến đến điện thoại qua tin nhắn. Thực
hiện tiếp các lệnh đọc giá trị cảm biến trong chương trình chính. Sau khi đọc đủ các
giá trị cảm biến, và so sánh các giá trị cảm biến thay đổi hay không, nếu có thì xóa
màn hình LCD và gán các biến giá trị so sánh bằng các giá trị vừa đọc để so sánh cho
lần tiếp theo, chương trình con hiển thị LCD có nhiệm vụ hiển thị nội dung cứng
không thay đổi. Tiếp đó lệnh hiển thị các giá trị cảm biến chức năng hiển thị các giá trị
đọc được của cảm biến: nhiệt độ, độ ẩm ra màn hình LCD.

 Lưu đồ chương trình con kiểm tra tin nhắn.

NGUYỄN HOÀNG NAM 20182694 39


ĐỒ ÁN THIẾT KẾ 1

Hình 4.0.26 Lưu đồ chương trình con kiểm tra tin nhắn
Ban đầu ta sẽ khai kháo kiểu dữ liệu và đọc giá trị từ cảm biến. Sau khi đã đọc
giá trị cảm biến tiếp tục kiểm tra xem tin nhắn có gửi đến không và có đúng như cú
pháp hay không, nếu không thì chương trình kết thúc và ngược lại nếu tin nhắn đến và

NGUYỄN HOÀNG NAM 20182694 40


ĐỒ ÁN THIẾT KẾ 1

đúng cú pháp ta sẽ chuyển đổi kiểu dữ liệu cảm biến để gán cho các biến ta khai báo
ban đầu và gửi dữ liệu đến điện thoại sau đó chương trình kết thúc.

 Lưu đồ chương trình con hiển thị LCD.

Hình 4.0.27 Lưu đồ chương trình con hiển thị LCD


Nhìn vào lưu đồ, để hiển thị được nội dung LCD trước tiên ta cần tìm vị trí hiển
thị và nội dung hiển thị ở vị trí đấy. Vào chương trình thì sau khi xác định vị trí cần
hiển thị là hàng 1 và nội dung cần hiển thị nhiệt độ thì ta tiếp tục xác định vị trí hàng 2
và nội dung là độ ẩm.

4.1.2. Giới thiệu phần mềm lập trình hệ thống.


 STM32CubeMX

STM32CubeMX là công cụ giúp khởi tạo phần cứng, ngoại vi, xung nhịp…
cho vi điều khiển (MCU) STM32 một cách nhanh chóng.

Sử dụng phần mềm này đã giúp mình có tốc độ tiếp cận với dòng vi điều khiển
này phải nói là rất nhanh. Hầu như mình không cần phải nhớ bất cứ thanh ghi hay thiết
lập từng bit, các API được hỗ trợ sẵn từ nhà sản xuất thực sự dễ dùng, và dễ tiếp cận.

NGUYỄN HOÀNG NAM 20182694 41


ĐỒ ÁN THIẾT KẾ 1

o Tạo Project: Mở phần mềm STM32CubeMX lên, nhấn vào File chọn New
Project để bắt đầu tạo project mới.

Cửa sổ hiện ra với các thiết lập:

 Part Number: Tìm kiếm MCU.


 Series: Chọn họ MCU bạn sử dụng.
 Lines: Chọn dòng MCU bạn sử dụng.
 Package: Chọn kiểu đóng gói của MCU.
 Chọn loại MCU chính xác trong phần MCUs List

Hình 4.0.28 Giao diện tạo Project


o Chọn ngoại vi: Sau khi đã lựa chọn xong MCU, tiến hành chọn ngoại vi cần dùng
tại thẻ PinOut & Configuaration:
 Trong danh sách Peripheral được liệt kê bên trái có cách ngoại vi mà MCU
hỗ trợ, sử dụng ngoại vi nào thì Enable ngoại vi đó lên.
 Tại hình MCU trong khung bên phải, bạn có thể trực tiếp cấu hình trực quan
từng chân của MCU theo các tính năng GPIO mà MCU hỗ trợ bằng cách
click vào chân MCU và chọn chức năng cần thiết.

NGUYỄN HOÀNG NAM 20182694 42


ĐỒ ÁN THIẾT KẾ 1

Hình 4.0.29 Giao diện trong STM32CubeMX


o Điều chỉnh xung nhịp: Sau khi đã lựa chọn ngoại vi cần thiết, tiến hành cấu hình
xung đồng hồ cho ngoại vi tại thẻ Clock Configuration.
o Xuất mã nguồn đã cấu hình: Sau khi đã điều chỉnh, cấu hình những ngoại vi cần
thiết, chúng ta tiến hành xuất mã nguồn để import vào các trình biên dịch như IAR,
KeilC bằng cách chọn GENERATE CODE rồi ấn OK.
o Thư mục mã nguồn:
 Driver, Library, Source cần thiết cho Firmware.

NGUYỄN HOÀNG NAM 20182694 43


ĐỒ ÁN THIẾT KẾ 1

 Thư mục Project tương ứng với Toolchain/IDE mà bạn đã chọn.

Hình 4.0.30 Thư mục mã nguồn


 Keil C V5

Keil C là một phần mềm hỗ trợ cho người dùng trong việc lập trình cho vi điều
khiển các dòng khác nhau (Atmel, AVR, PIC..). Keil C giúp người dùng soạn thảo và
biên dịch chương trình C hay cả ASM thành ngôn ngữ máy để nạp vào vi điều khiển
giúp chúng ta tương tác giữa vi điều khiển và người lập trình.

NGUYỄN HOÀNG NAM 20182694 44


ĐỒ ÁN THIẾT KẾ 1

Hình 4.0.31 Keil C V5

CHƯƠNG V: KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ


5.1. Kết quả đạt được.
Sau khi tìm hiểu nghiên cứu các tài liệu chuyên ngành, tìm hiểu qua mạng
Internet, cũng như được sự hướng dẫn của thầy TS. Trần Quang Vinh. Em cũng hoàn
thành được đồ án Thiết kế 1 với đề tài “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
GIÁM SÁT NHIỆT ĐỘ VÀ ĐỘ ẨM”

Sau đề tài này đồ án này, em đã nghiên cứu và tích lũy được thêm nhiều hiểu
biết, kiến thức mới như, tăng khả năng vận dụng lý thuyết vào thực tế, hiểu biết hơn
các tính năng của STM32F103C8, cảm biến DHT11, module SIM800L, module
LCD…

5.2. Nhận xét và đánh giá.


Sau thời gian nghiên cứu và thi công đồ án Thiết kế 1 với đề tài “THIẾT KẾ
VÀ THI CÔNG HỆ THỐNG GIÁM SÁT NHIỆT ĐỘ VÀ ĐỘ ẨM” đã hoàn thiện.

NGUYỄN HOÀNG NAM 20182694 45


ĐỒ ÁN THIẾT KẾ 1

Sản phầm hoạt động phụ thuộc vào mạng điện thoại. Vùng phủ sóng càng mạnh
thì thiết bị hoạt động càng tốt.

Tuy nhiên, do sự hạn chế về kiến thức cũng như thời gian, nguồn tham khảo
chủ yếu là thông qua mạng Internet cũng như sự cản trở của dịch bệnh COVID 19 hiện
nay tại nước ta nên em chứa hoàn thành được phần cứng của đề tài.

 Hệ thống đáp ứng được các tính năng, nội dung và mục tiêu như sau:

- Giao tiếp và truyền dữ liệu giữa Vi điều khiển STM32F103C8 với các module
DHT11, SIM800L, LCD.

- Hiển thị nhiệt độ, độ ẩm, cường độ sáng trên LCD cũng như trên điện thoại
thông qua tin nhắn.

 Các hạn chế:

- Độ chính xác cảm biến, module chưa cao.

- Sản phẩm chỉ gửi dữ liệu qua tin nhắn.

CHƯƠNG VI: KẾT LUẬN


Sau thời gian nghiên cứu và tìm hiểu, em đã hoàn thành sản phẩm đồ án Thiết kế
1 với đề tài “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT NHIỆT ĐỘ
VÀ ĐỘ ẨM”. Thiết bị đo nhiệt độ và độ ẩm từ môi trường và hiển thị trên màn hình
LCD 16x2 với vi điều khiển STM32F103C8T6 (BLUE PILL). Cùng với Module Sim
800L sản phẩm đã đạt được những yêu cầu cơ bản là cho phép người dùng gửi tin
nhăn để điều khiển thiết bị và nhận tin nhắn về nhiệt độ, độ ẩm hiện tại.

Thông qua việc thực hiện đề tài “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
GIÁM SÁT NHIỆT ĐỘ VÀ ĐỘ ẨM”, em đã tính lũy rất nhiều kiến thức thực tế về
chuyên ngành điện tử viễn thông, thầy TS. Trần Quang Vinh đã tạo cho chúng em
niềm say mê học tập, tìm tòi kiến thức mới. Ngoài những kiến thức trên giảng đường,
em cũng học them được những kinh nghiệm, kỹ năng thiết thực giúp ích cho chúng em

NGUYỄN HOÀNG NAM 20182694 46


ĐỒ ÁN THIẾT KẾ 1

thực hiện tốt hơn những nhiệm vụ, bài tập của mình như là kĩ năng mềm, kĩ năng làm
việc nhóm.

Trong quá trình thực hiện đề tài này, dù rất cố gắng nhưng do vốn kiến thức hạn
hẹp nên không thể tránh khỏi những sai sót. Em rất mong nhận được những đóng góp,
phê bình, chia sẻ của thầy để các đề tài tiếp theo sẽ hoàn thiện hơn.

Em xin chân thành cảm ơn thầy!

TÀI LIỆU THAM KHẢO


[1] STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx
advanced Arm®-based 32-bit MCUs - Reference manual.
[2] SIM800 Series_AT Command Manual_v1.01.
[3] Temperature and Humidity Module DHT11 Product Manual - www.aosong.com.
[4] LCD HD44780 - Giao Tiếp Và Lập Trình Điều Khiển - Trietnguyen, SPKT, 30/6/2007.
[5] https://tailieu.vn/doc/do-an-tot-nghiep-thiet-ke-va-thi-cong-mo-hinh-khoa-dien-tu-co-
giam-sat-tu-xa-su-dung-gsm-va-rfid-2187257.html.
[6] “Keil”, [Online] https://www.keil.com/dd/docs/datashts/atmel/at89s52_ds.pdf.
[7] https://www.electronicwings.com/8051/sim900a-gsm-interfacing-with-8051

NGUYỄN HOÀNG NAM 20182694 47

You might also like