Professional Documents
Culture Documents
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.
Hà Nội, 06/2021
ĐỒ ÁN THIẾT KẾ 1
MỤC LỤC
DANH MỤC HÌNH VẼ....................................................................................3
LỜI MỞ ĐẦU...................................................................................................5
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.
Nội dung 5: Đánh giá kết quả thực hiện của mô hình.
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.
Đư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.
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.
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 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
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.
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).
- Hỗ trợ 4 bằng tần: GSM 850MHz, EGSM 900MHz, DSC 1800MHz, PCS
1900MHz
- Chân NET: lắp anten, có thể dùng anten đi kèm hoặc anten mở rộng.
- Chân RST: chân reset sử dụng khi khởi động lại module sim.
- 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.
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ả
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).
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ộ…
- 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.
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.
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.
- Tần số lấy mẫu: 1Hz, nghĩa là 1 giây DHT11 lấy mẫu một lần.
Để 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.
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.
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.
- 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)
- Đọ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:
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.
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.
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.
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]
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
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.
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.
- 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.
- 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.
Đâ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.
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.
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.
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.
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.
Ở 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à:
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à:
- Tần số lấy mẫu: 1Hz, nghĩa là 1 giây DHT11 lấy mẫu một lần.
Để 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.
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.
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à
đú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.
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.
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.
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.
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…
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.
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
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.