Bao Cao

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 46

Chương 1: Tổng quan về hệ thống.

1.1 Đặt vấn đề:

Các ứng dụng IoT đang ngày càng thúc đẩy sự phát triển của các nền tảng số,
tạo ra các hệ thống hỗ trợ cuộc sống, cung cấp các dịch vụ hỗ trợ trong nhiều hoạt
động hàng ngày, hoạt động tăng cường an toàn và an ninh, cũng như các hệ thống
giám sát sức khỏe, y tế.
Sử dụng rượu bia là một thói quen trong văn hóa truyền thống của nhiều quốc
gia, trong đó có Việt Nam. Ở Việt Nam, xu hướng sử dụng rượu bia và các loại đồ
uống có cồn khác trong sinh hoạt hằng ngày, trong những dịp lễ, hội, trong các quan
hệ công việc… đang ngày càng gia tăng. Thậm chí, Việt nam đã trở thành quốc gia có
mức tiêu thụ rượu bia vô cùng cao, đứng thứ 2 ở Đông Nam Á, chỉ sau Thái Lan.
Ngoài việc là nguyên nhân của nhiều mã bệnh, sử dụng rượu, bia cũng khi tham gia
giao thông cũng là nguyên nhân chính của các vụ tai nạn giao thông nghiêm trọng ở
nước ta hiện nay.
Do đó, chúng tôi thực hiện đề tài “Hệ thống theo dõi nồng độ cồn và xác định
vị trí của người điều khiển ô tô” nhằm mang lại những chức năng cần thiết để đảm
báo tính mạng và sức khỏe cũng như giúp người sử dụng rượu, bia nhận thức được sức
khỏe của bản thân trước khi tham gia giao thông.

1.2 Mục tiêu.

“Hệ thống theo dõi nồng độ cồn và xác định vị trí của người điều khiển ô
tô” là thiết bị giúp người dùng kiểm tra, ngăn không cho người sử dụng ô tô tham gia
giao thông khi nồng độ cồn trong hơi thở vượt quá nồng độ cho phép, cũng như cảnh
báo cho người thân biết các thông số về vị trí, nồng độ cồn thông qua giao diện Web
để có những giải pháp kịp thời, phòng tránh sự cố hiệu quả nhất. Đề tài sử dụng Board
32F411EDISCOVERY làm bộ xử lý trung tâm, các cảm biến nồng độ cồn MQ3, cảm
biến GPS Neo 6M sẽ đo các thông số cần thiết để truyền các tín hiệu về trung tâm xử
lý, kết hợp với module ESP8266 để nhận tín hiệu từ trung tâm sẽ đưa các thông số lên
Web để người thân có thể quan sát và kịp thời có những giải pháp phù hợp.
1.3 Nội dung nghiên cứu.

Ở đề tài “Hệ thống theo dõi nồng độ cồn và xác định vị trí của người điều
khiển ô tô” chúng tôi thực hiện nghiên cứu các nội dung sau:

 Nội dung 1: Phân tích, lựa chọn giải pháp cho đề tài.
 Nội dung 2: Thiết kế sơ đồ khối, lựa chọn linh kiện phù hợp cho đề tài.
 Nội dung 3: Thiết kế hệ thống điều khiển, giao diện Web.
 Nội dung 4: Nội dung đạt được và đánh giá.

1.4 Bố cục đề tài.

Trong bản báo cáo, nhóm nghiên cứu đã cố gắng trình bày một cách thật logic
để người đọc có thể hiểu rõ được kiến thức, phương thức cũng như cách thức hoạt
động của đề tài. Bố cục bản báo cáo được nhóm chia làm 3 chương như sau:

 Chương 1: Giới thiệu tổng quan về đề tài, mục tiêu nghiên cứu, nội dung
nghiên cứu, bố cục của đề tài.
 Chương 2: Thiết kế hệ thống. Chương này nói về sơ đồ khối, thuật toán
của hệ thống và những lý thuyết liên quan đến đề tài bao gốm kiến thức
về các linh kiện, thiết bị được sử dụng trong các hệ thống như mạch điều
khiển, các thiết bị ngoại vi, các cảm biến và đọc dữ liệu từ cảm biến.
 Chương 3: Giao diện Web, thực nghiệm và đánh giá. Chương này sẽ
trình bày kết quả thực nghiệm đồng thời đưa ra những nhận xét, đánh giá
và hướng phát triển đề tài.

Chương 2: Thiết kế hệ thống.

2.1 Sơ đồ khối của hệ thống:

Từ yêu cầu của đề tài, chúng tôi đã thiết kế sơ đồ hoàn chỉnh cho hệ thống,
được trình bày như hình sau:
Hình: Sơ đồ khối của hệ thống.

Giải thích các khối:

- Khối xử lý trung tâm: Gồm một board 32F411EDISCOVERY, có nhiệm vụ


nhận tín hiệu từ khối đo nồng độ cồn, khối xác định vị trí và khối theo dõi,
xử lý và gửi tín hiệu điều khiển sang khối động cơ và dữ liệu đến khối theo
dõi.
- Khối đo nồng độ cồn: Gồm một module MQ3, có nhiệm vụ đo nồng độ cồn
trong hơi thở và gửi tín hiệu về trung tâm xử lý.
- Khối xác định vị trí: Gồm một module GPS Neo 6M, thực hiện công việc
xác định tọa độ (vĩ độ và kinh độ) và thời gian, gửi tín hiệu về trung tâm xử
lý.
- Khối theo dõi: Gồm một board ESP8266 Node MCU V1.0, có nhiệm vụ
đưa các dữ liệu về nồng độ cồn, thời gian, tọa độ lên giao diện Web để quan
sát cũng như gửi yêu cầu điều khiển động cơ từ giao diện Web về khối xử lý
trung tâm.
- Khối động cơ: Gồm một động cơ , mô phỏng động cơ của ô tô.
- Khối nguồn: Cung cấp nguồn điện cho cả hệ thông hoạt động, gồm một bộ
nguồn chỉnh lưu 220VAC thành nguồn 12VDC-5A và một module điều
khiển động cơ L298n.
2.2 Cơ sở lý thuyết.

2.2.1 Bộ xử lý trung tâm:

2.2.1.1 Board 32F411DISCOVERY


Board 32F411EDISCOVERY là sản phẩm của công ty STMicroelectronics,
được thiết kế dựa trên vi điều khiển STM32F411VET6. Ngoài vi điều khiển
STM32F411VET6, board còn tích hợp một công cụ gỡ lỗi nhúng ST-Link V2, một
con quay hồi chuyển, một la bàn điện tử, micro kĩ thuật số, đầu nối OTG Micro-AB,
các đèn Led, nút nhấn,... Có thể thấy, Board 32F411E DISCOVERY giúp người dùng
có thể sử dụng và lập trình các bài toán một cách đơn giản và nhanh chóng nhất.

Hình: Board STM32F411E-DISCO.

Các thông số cụ thể của board:

- Lõi vi điều khiển: STM32F411VET6.


- 1 USB OTG FS.
- 1 con quay hồi chuyển kỹ thuật số 3 trục.
- 1 gia tốc kế tuyến tính kỹ thuật số 3D và cảm biến từ tính.
- 1 micro kĩ thuật số.
- 1 audio DAC tích hợp trình điều khiển loa class-D.
- 8 đèn LED:
+LD1 (đỏ/xanh lá): đèn báo giao tiếp USB.
+ LD2 (đỏ): Đèn báo nguồn 3.3V.
+ LD3 (cam), LD4 (xanh lá), LD5 (đỏ), LD6 (xanh dương): 4 đèn dành
cho người sử dụng.
+ LD7 (xanh lá) và LD8 (đỏ): hai đèn báo USB OTG ( LD7: báo giao
tiếp, LD8: báo quá dòng).
- 2 nút nhấn: 1 nút nhấn Reset và một nút nhấn dành cho người dùng (User
Button).
- Cổng kết nối:
+ 1 cổng USB OTG FS Micro-AB.
+ 1 cổng ST-LINK Mini-B USB.
+ 100 chân vào ra tần số cao.
- Nguồn cấp:
+ Cấp nguồn qua cổng ST-LINK USB.
+ Cấp nguồn 5VDC bên ngoài.

Hình: Các ngoại vi của board STM32F411E-DISCO.


2.2.1.2 Vi điều khiển STM32F411VET6
Vi điều khiển STM32F411VET6 được phát triển dựa trên lõi vi xử lý RISC 32-
bit ARM Cortex-M4 32-bit, một vi xử lý hiệu suất cao có tần số hoạt động tối đa lên
đến 100MHz và được sử dụng rộng rãi trong các thiết kế nhúng. Do có đặc điểm tiết
kiệm năng lượng, các bộ CPU ARM chiếm ưu thế lớn trong các sản phẩm điện tử di
động, những sản phẩm mà việc tiêu tán công suất thấp là một mục tiêu quan trọng.
Hiện nay, hơn 75% CPU nhúng 32-bit là thuộc họ ARM, điều này khiến ARM trở
thành cấu trúc 32-bit được sản xuất nhiều trên thế giới.

Hình: Vi điều khiển STM32F411VET6.

Thông số của vi điều khiển STM32F411VET6:

- Tiêu chuẩn đóng gói: LQFP100.


- Nguồn cấp: 1.7-3.6 VDC.
- Nhiệt độ hoạt động: - 40˚C đến 125 ˚C.
- Bộ nhớ Flash: 512 Kbytes.
- Bộ nhớ RAM: 128 Kbytes.
- Tần số hoạt động tối đa: 100 MHz.
- Nguồn cấp cho chân I/Os: 1.7 – 3.6 VDC.
- Nguồn dao động:
+ Bộ dao động tinh thể ( Thạch anh ) 4 – 26 MHz.
+ Bộ dao động RC nội 16MHz.
+ Bộ dao động RTC (Real Time Clock) 32kHz.
- 1 ADC 12-bit, 2.4 MSPS 16 kênh.
- Bộ DMA đa năng 16 luồng.
- Timer: 11 timer.
+ 6 Timer 16-bit, 2 Timer 32-bit với tần số tối đa 100MHz, có các chức
năng IC/OC/PWM/Encoder Mode/…
+ 2 Watchdog Timer (độc lập hoặc giám sát).
+ 1 SysTick Timer.
- Chân I/Os:
+ 81 chân vào ra với 5 port I/Os (A,B,C,D,E).
+ 75 chân vào ra tần số cao, lên đến 100MHz.
- Truyền thông:
+ 3 cổng giao tiếp I2C (SMBus và PMBus).
+ 3 giổng giao tiếp UART ( 2 cổng có tốc độ 12.5Mbit/s và 1 cổng có tốc
độ 6.25Mbit/s) theo tiêu chuẩn ISO 7816.
+ 5 cổng giao tiếp SPI/I2S tốc độ cao (tốc độ lên đến 50Mbit/s).
+ 1 giao diện SDIO.
+ Kết nối nâng cao: Chuẩn USB 2.0 tốc độ cao.
- Debug mode:
+ Serial wire debug (SWD) với giao diện JTAG.
+ Cortex®-M4 Embedded Trace Macrocell.
- Ngắt (Interrupt):
+ Nhiều chức năng ngắt: ngắt ngoài, ngắt Timer, ngắt UART, ngắt I2C,
ngắt ADC,…
+ 68 vector ngắt.
+ 16 mức ưu tiên ngắt.
+ Đỗ trễ thấp, xử lý nhanh, có tích hợp DMA trong ngắt.
+ Có các thanh ghi điều khiển ngắt và quản lý năng lượng cho vector
ngắt.

2.2.2 Cảm biến nồng độ cồn.

2.2.2.1 Họ cảm biến MQ:


Cảm biến họ MQ loại cảm biến Metal Oxide Semiconductor (MOS), còn được
gọi là Chemiresistors, bởi vì nó dựa trên “sự thay đổi điện trở” của vật liệu cảm biến
khi tiếp xúc với loại khí nhất định.
MQ là họ loại cảm biến “heater-driven”, tức nó phải tự làm nóng nó để hoạt
động. Do đó khi sử dụng, chúng ta cần có thời gian trễ để cảm biến làm nóng ( khoảng
1ph với Vcc=5 VDC và lớn hơn nếu Vcc<5 VDC).

 Cấu trúc cảm biến MQ:

- Được bao bọc trong lớp “lưới thép không gỉ”, được gọi là Anti-
Explosion Network, để đảm bảo bộ phận làm nóng bên trong cảm biến
không gây cháy nổ cũng như chặn các hạt bụi trong không khí.

Hình: Một số loại cảm biến MQ hiện nay.


- Cảm biến MQ có tất cả 6 chân:
+ 2 chân H là Heater Coil làm bằng “hợp kim Ni-Cr” có chức năng làm
nóng bộ phận “Sensing Element”.
+ 2 chân A và 2 chân B chỉ là dây dẫn làm bằng “Platinum” được kết nối
vào “Sensing Element” có chức năng truyền tín hiệu Output, dựa vào
những thay đổi nhỏ trong dòng điện đi qua phần tử cảm biến.

Hình: Sơ đồ chân của cảm biến MQ.


- Thành phần quan trọng nhất của cảm biến chính là “sensing element”.
Nó được cấu tạo từ một khối gốm Aluminum Oxide (AL2O3) và được
phủ một lớp Tin Dioxide (SnO2). Bên trong khối gốm là cuộn Heater
Coil, nó chỉ có chức năng giúp tăng hiệu quả gia nhiệt, đảm bảo cảm
biến được làm nóng liên tục ở nhiệt độ làm việc.
- Tóm lại, ta có thể hiểu:
+ Cuộn “hợp kim Ni-Cr” và khối gốm (AL2O3) là hệ thống làm
nóng cảm biến.
+ Dây dẫn “Platinum” và lớp phủ (SnO2) tạo thành một hệ thống cảm
biến.
 Nguyên lý hoạt động của họ cảm biến MQ:
- Đầu tiên lớp (SnO2) cần được nung nóng ở nhiệt độ cao (bộ phận làm
nóng chịu trách nhiệm việc này, khi mới cấp nguồn thường cần đợi
khoảng ~20s).
- Sau đó, nếu tiếp xúc với không khí thường, các phân tử trên bề mặt lớp
(SnO2) bị các phân tử Oxygen giữa lại → tạo 1 lớp rào cản có “điện trở
cao”, ngăn cản dòng điện chạy qua giữa 2 chân A và B.
- Tuy nhiên khi có xuất hiện các loại khí khác, mật độ các phân tử Oxygen
sẽ giảm do phản ứng với chúng, các phân tử lớp (SnO2) không bị giữ lại
→ lớp rào cản có “điện trở thấp”, dòng điện chạy qua giữa 2 chân A và
B dễ hơn.
 Sơ đồ kết nối cơ bản và cách sử dụng cảm biến MQ:

Hình: Sơ đồ kết nối cơ bản của các cảm biến MQ.


- Với mỗi loại cảm biến MQ, chúng được sản xuất với tỉ lệ lớp phủ
(SnO2) khác nhau. Sao cho nồng độ khí cần đo có sự thay đổi tương ứng
theo tỉ lệ điện trở RS.
- Từ tỉ lệ RS/RL (R2 là tên gọi thường dùng trong Schematic mạch thực
tế, còn trong datasheet thường được gọi là RL), ta có thể tính toán được
nồng độ khí cần đo.

2.2.2.2 Cảm biến MQ3:


Cảm biến MQ3 là một cảm biến họ MQ, có tác dụng phát hiện đo nồng độ cồn
có trong không khí. Về cơ bản, cảm biến MQ3 có cấu tạo và nguyên lý làm việc giống
như các cảm biến khác trong họ MQ.

Hình: Cảm biến MQ3.

2.2.2.3 Công thức tính toán nồng độ cồn từ cảm biến MQ3:
Để đọc được giá trị từ cảm biến MQ3, ta dựa vào tỉ lệ RS/R0 (ta gọi tỉ lệ này là
Ratio).
V cc −V out
Công thức tính điện trở R s: R s= ∗R L
V out

- Trong đó :
R s: Điện trở giữa hai đầu A-B.
V cc : Điện áp cung cấp cho module.
V out : Điện áp đầu ra cảm biến.
R0 : Điện trở giữa 2 đầu A-B tại không khí có nồng độ cồn là 0.4mg/L.

Giá trị điện trở R0 là giá trị cố định. Nếu không biết thông số cụ thể của điện trở
Rs
R0, ta có thể tính gần đúng bằng công thức: R0 =
70
- Với R s và 70 lần lượt là giá trị điện trở giữa hai đầu A-B và Ratio trong
không khí sạch.

Tỉ lệ Ratio sẽ tỉ lệ thuận với nồng độ cồn trong không khí.

Hình: Quan hệ giữa tỉ lệ RS/R0và nồng độ các chất trong không khí.

Có thể thấy, nồng độ cồn (alcohol) trong không khí sẽ tỉ lệ với Ratio theo hàm:

alcohol = a.Ratiob (1)


Ta sẽ tìm các hằng số a-b dựa vào hình và phương pháp bình phương bé nhất.
Từ hình , ta có bảng sau:

Ratio Nồng độ cồn (µg/L)

2.3 100

1.7 220

1 410

0.54 1010
0.4 1700

0.3 2600

0.2 4000

0.17 6000

0.14 8000

0.12 10000

Từ công thức (1), Logarit cơ số e hai vế của phương trình, ta được:


ln(alcohol) = ln(a) + b. ln(Ratio)
Đặt: Y = ln(alcohol) ; X = ln(Ratio) ; A = ln(a) ; B = b.
Vậy phương trình (1) sẽ có dạng: Y = A+ B.X.

A và B sẽ là nghiệm của hệ phương trình:

Vậy ta có bảng sau:

STT Xi Yi X 2i Xi.Yi

1 0.8329 4.6052 0.6937 3.8357

2 0.5306 5.3936 0.2816 2.8620

3 0 6.0162 0 0

4 -0.6161 6.9177 0.3797 -4.2626

5 -0.9163 7.4384 0.8393 -6.8157

6 -1.2040 7.8633 1.4496 -9.4672


7 -1.6094 8.2940 2.5903 -13.3488

8 -1.7720 8.6995 3.1398 -15.4152

9 -1.9661 8.9872 3.8656 -17.6698

10 -2.1203 9.2103 4.4955 -19.8099

Tổng -8.8407 73.4254 17.7351 -80.0915

Từ bảng trên, ta có hệ phương trình: {−8.8407


10. A−8.8407 . B=73.4254
. A +17.7351. B=−80.0915
Giải hệ phương trình trên, ta được: A = 5.9898; B = -1.5302
Từ đó suy ra: a = eA = e5.9898 = 399.3347 và b = B = -1.5302

Vậy: alcohol = 399.3347 *Ratio-1.5302

2.2.2.4 Module MQ3


Để dễ dàng sử dụng trong cách bài toán, thì module MQ3 được ra đời. Module
MQ3 gồm bộ phận chính là cảm biến MQ3 và các chân vào-ra cùng với đèn LED cảnh
báo,… Module MQ3 hiện nay được sử dụng rất phổ biến vì tính bền và ổn định, độ
nhạy cao cũng như chính xác của module này.

Hình: Module MQ3.

Các thông số kỹ thuật của module MQ3:

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


- Cảm biến chính: MQ3.
- Nồng độ phát hiện: 0.04 ~ 10 mg/L.
- Dòng định mức: 150mA.
- Nhiệt độ hoạt động: -10 ~ 70 ˚C.
- 4 chân:
+ VCC: Chân đầu vào dương.
+ GND: Chân đầu vào âm.
+ DO: Đầu ra tín hiệu số (0 hoặc 5VDC).
+ AO: Đầu ra tín hiệu tương tự (0 ~ 5VDC).
- 2 đèn LED:
+ Một đèn bảo nguồn.
+ Một đèn cảnh báo, tương ứng với tín hiệu đầu ra DO, có thể điều chỉnh
nồng độ phát hiện bằng biến trở gắn trên module.

2.2.3Cảm biến định vị.

2.2.3.1 Định vị GPS:


GPS là hệ thống định vị toàn cầu do Mỹ phát triển và vận hành, là tên viết tắt
của cụm từ “Global Positioning System”. Nó là một hệ thống bao gồm nhiều vệ tinh
bay trên quỹ đạo phía trên trái đất ở độ cao 20.200 km. GPS hoạt động trong mọi điều
kiện thời tiết, mọi nơi trên Trái Đất, liên tục suốt 24 giờ và hoàn toàn miễn phí đối với
một số dịch vụ.
Nguyên tắc hoạt động:

- Các vệ tinh GPS bay vòng quanh Trái Đất hai lần trong một ngày theo
một quỹ đạo rất chính xác và phát tín hiệu có thông tin xuống Trái Đất.
Các máy thu GPS nhận thông tin này và bằng phép tính lượng giác tính
được chính xác vị trí của người dùng. Về bản chất máy thu GPS so sánh
thời gian tín hiệu được phát đi từ vệ tinh với thời gian nhận được chúng.
Sai lệch về thời gian cho biết máy thu GPS ở cách vệ tinh bao xa. Rồi
với nhiều quãng cách đo được tới nhiều vệ tinh máy thu có thể tính được
vị trí của người dùng và hiển thị lên bản đồ điện tử của máy.
- Máy thu phải nhận được tín hiệu của ít nhất ba vệ tinh để tính ra vị trí
hai chiều (kinh độ và vĩ độ) và để theo dõi được chuyển động. Khi nhận
được tín hiệu của ít nhất 4 vệ tinh thì máy thu có thể tính được vị trí ba
chiều (kinh độ, vĩ độ và độ cao). Một khi vị trí người dùng đã tính được
thì máy thu GPS có thể tính các thông tin khác, như tốc độ, hướng
chuyển động, bám sát di chuyển, khoảng hành trình, quãng cách tới điểm
đến, thời gian Mặt Trời mọc, lặn và nhiều thứ khác nữa.

Hình: Mô phỏng cách thức hoạt động của hệ thống GPS.


- Các máy thu GPS ngày nay cực kì chính xác, nhờ vào thiết kế nhiều
kênh hoạt động song song của chúng. Các máy thu 12 kênh song song
(của Garmin) nhanh chóng khóa vào các quả vệ tinh khi mới bật lên và
chúng duy trì kết nối bền vững, thậm chí trong tán lá rậm rạp hoặc thành
phố với các toà nhà cao tầng. Trạng thái của khí quyển và các nguồn gây
sai số khác có thể ảnh hưởng tới độ chính xác của máy thu GPS. Các
máy thu GPS có độ chính xác trung bình trong vòng 15 mét.

2.2.3.2 Module NEO-6M GPS:


Là module định vị toàn cầu sử dụng hệ thống vệ tinh GPS của Mỹ. Module
GPS NEO-6M cho tốc độ xác định vị trí nhanh và chính xác, có nhiều mức năng lượng
hoạt động, phù hợp với các ứng dụng chạy pin.
Hình: Module GPS Neo-6M.

Module định vị GPS sử dụng board điều khiển kết nối của hãng U-BLOX đến
từ Thụy Sĩ có rất nhiều năm kinh nghiệm trong lĩnh vực sản xuất module định vị toàn
cầu.
Có thể sử dụng ứng dụng “U-Center” của hãng U-BLOX phát triển để đọc dữ
liệu từ Module GPS Neo-6M và thay đổi các thông số cài đặt của module.

Hình: Giao diện của ứng dụng U-Center.

Cấu tạo của Module GPS Neo-6M.

- Gồm một module được tích hợp cảm biến Neo-6M cùng các ngoại vi cần
thiết và một angten rời (có module tích hợp angten ngay trên board).
- Có 4 chân:
+ Chân VCC: Chân cấp nguồn.
+ Chân GND: Chân nối đất.
+ Chân RX: Chân nhận dữ liệu.
+ Chân TX: Chân truyền dữ liệu.

Thông số kĩ thuật:

- Nguồn cung cấp: 3.3 – 5 VDC.


- Điện áp giao tiếp: 3.3 VDC.
- Serial Port: có thể điều chỉnh bằng ứng dụng “U-Center”, tuy nhiên có
các thông số mặc định ban đầu như sau:
+ Tốc độ truyền: 9600.
+ Chế độ truyền 8 bit, không có parity bit, 1 stop bit.
+ Các chuỗi tin nhắn được truyền: GGA, GLL, GSA, GSV, RMC, VTG,
TXT.
+ Tần số truyền dữ liệu: 1Hz ( 1s gửi các chuỗi dữ liệu 1 lần).

2.2.3.3 Giao tiếp với Module GPS Neo-6M.


Để có thể đọc được dữ liệu từ Module GPS Neo-6M gửi về, ta chỉ cần cấp
nguồn và kết nối UART với module này. Các dữ liệu này được cách nhau bằng dấu
xuống dòng, được hiểu là các tin nhắn (message). Với UART0, module này trả về các
“message” gồm các chuỗi GGA, GLL, GSA, GSV, RMC, VTG và TXT. Mỗi chuỗi sẽ
chứa một số thông tin khác nhau và các thông tin này cách nhau bởi dấu “,”. Để có thể
xác định được vị trí cũng như thời gian thông qua module GPS Neo-6M, ta chú ý đến
2 chuỗi GGA và RMC.

- Chuỗi RMC: Chuỗi thông tin đơn giản nhất được đề xuất.
+ Cấu trúc của chuỗi RMC:

$GPRMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,ddmmyy,x.x,a
*hh
Trong đó có các thông tin quan trọng:
$GPRMC: Báo hiệu chuỗi RMC.
hhmmss.ss: Thời gian giờ/phút/giây tính theo UTC.
A: Trạng thái của chuỗi (A: chuỗi hợp lệ, V: chuỗi
thiếu).
llll.ll: Vĩ độ người sử dụng.
a: Hướng Bắc-Nam (N: North, S: South).
yyyyy.yy: Kinh độ của người sử dụng.
a: Hướng Đông-Tây (E: East, W: West).
ddmmyy: Ngày/tháng/năm tính theo UTC.
+ Ví dụ:
$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,191121,
020.3,E*68
Ta sẽ có các thông tin sau:
225446: Thời gian 22:54:46 UTC.
A: Chuỗi hợp lệ.

- Chuỗi GGA: Chuỗi vị trí đầy đủ.

Name Example Description


data

Định dạng chuỗi $GPGGA

Thời gian 170083 Thời gian tính theo UTC.

4124.8963, 41˚ 24.8963' N hay 41˚ 24' 54"


Vĩ độ
N N

08151.6838, 81˚51.6838' W hay 81d˚51'


Longitude
W 41" W

Giá trị sửa đổi:


0 = Invalid Dữ liệu từ GPS đã được sửa
1
1 = GPS fix đổi.
2 = DGPS fix

5 vệ tinh đã được kết nối với


Số lượng vệ tinh 05
module.

Sai số theo chiều Độ chính xác tương đối theo


1.5
ngang. chiều ngang là 1.5m.

Module đang ở độ cao so


Độ cao 280.2, M
280.3m với mực nước biển.

Bảng: Các thông số quan trọng của chuỗi GGA.

Bằng cách đọc chuỗi truyền từ UART và xử lý dữ liệu thu về, bộ điều khiển sẽ
thu được tất cả những thông tin quan trọng như vị trí, độ cao,… để có thể theo dõi.

2.2.4 Mạch thu phát Wifi.

2.2.4.1 Khái niệm về Wifi.


Wifi là viết tắt của Wireless Fidelity là hệ thống truy cập internet không dây.
Loại sóng vô tuyến này tương tự như sóng điện thoại, truyền hình và radio. Nó còn
được gọi là 802.11, là tiêu chuẩn IEEE của mạng cục bộ không dây (WLAN). Mạng
WiFi hoạt động ở dải tần số 2.4GHz và 5GHz không li-xăng (unlicensed), có nghĩa là
mạng này không gây nhiễu cho những mạng không dây lân cận khác hoạt động trên
cùng các tần số (hoặc băng thông) đó. Wifi là công cụ kết nối không thể thiếu trên điện
thoại, laptop, máy tính bảng cũng như các thiết bị IoT.
Cách thức hoạt động của Wifi:

- Mạng WiFi hiện đại hoạt động giống như kết nối mạng cục bộ Ethernet
có dây (LAN). Sự khác biệt duy nhất là chúng sử dụng các tần số phổ
không li-xăng để truyền dữ liệu trong khoảng cách ngắn với tốc độ cao,
giống như băng thông rộng di động đối với điện thoại cầm tay.
- Tiêu chuẩn WiFi được phát triển bởi Hội Kỹ sư Điện và Điện tử (IEEE)
để cung cấp khả năng truy cập không dây trong khu vực cục bộ, thường
là trong nhà hoặc tòa nhà văn phòng.
- Để WiFi hoạt động, phải có một điểm truy cập (trạm gốc) có kết nối có
dây để kết nối các thiết bị WiFi. Các thiết bị WiFi giao tiếp với điểm
truy cập bằng tín hiệu tần số vô tuyến (RF), giống như điện thoại không
dây.

Hình: Hệ thống Wifi.

Một số chuẩn kết nối Wifi phổ biến:

- Về bản chất kỹ thuật, tín hiệu WiFi hoạt động gửi và nhận dữ liệu ở tần
số 2.5GHz đến 5GHz, cao hơn khá nhiều so với tần số của điện thoại di
động, radio... do vậy tín hiệu WiFi có thể chứa nhiều dữ liệu nhưng lại bị
hạn chế ở phạm vi truyền - khoảng cách.
- Sóng Wifi sử dụng chuẩn kết nối 802.11 trong thư viện IEEE (Institute
of Electrical and Electronics Engineers), chuẩn này bao gồm 4 chuẩn nhỏ
hơn a/b/g/n (thường thấy các ký hiệu này trên các moderm, router):
+ Chuẩn 802.11b là phiên bản yếu nhất, hoạt động ở mức 2.4GHz và có
thể xử lý đến 11Mb/s.
+ Chuẩn 802.11g nhỉnh hơn đôi chút so với chuẩn b, tuy nó cũng hoạt
động ở tần số 2.4GHz nhưng có thể xử lý 54Mb/s.
+ Chuẩn 802.11a phát ở tần số cao hơn là 5GHz với tốc độ xử lý đạt
54Mb/s.
+ Cuối cùng là chuẩn 802.11n, hoạt động ở tần số 2.4GHz nhưng tốc độ
xử lý lên đến 300Mb/s.

2.2.4.2 Chip ESP8266.


ESP8266 là dòng chip tích hợp Wi-Fi 2.4Ghz có thể lập trình được, giá rẻ được
sản xuất bởi một công ty bán dẫn Trung Quốc: Espressif Systems.
Được phát hành đầu tiên vào tháng 8 năm 2014, đóng gói đưa ra thị trường
dạng Mô dun ESP-01, được sản xuất bởi bên thứ 3: AI-Thinker. Có khả năng kết nối
Internet qua mạng Wi-Fi một cách nhanh chóng và sử dụng rất ít linh kiện đi kèm. Với
giá cả có thể nói là rất rẻ so với tính năng và khả năng ESP8266 có thể làm được.
Sơ đồ chân:
Hình: Sơ đồ chân chip ESP8266 và lưu ý khi sử dụng.

Thông số kỹ thuật:

- 32-bit RISC CPU: Tensilica Xtensa LX106 chạy ở xung nhịp 80 MHz.
- Hỗ trợ Flash ngoài từ 512 KB đến 4MB.
- 64 Kbytes RAM thực thi lệnh.
- 96 Kbytes RAM dữ liệu.
- 64 Kbytes boot ROM.
- Chuẩn Wifi IEEE 802.11 b/g/n, Wifi 2.4GHz.
- Tích hợp TR switch, balun, LNA, khuếch đại công suất và matching
network.
- Hỗ trợ WEP, WPA/WPA2, Open Network.
- Tích hợp giao thức TCP/IP.
- Hỗ trợ nhiều loại angten.
- 16 chân GPIO.
- Hỗ trợ SDIO 2.0, UART, SPI, I2C, PWM, I2S với DMA.
- 1 ADC 10-bit.
- Dải nhiệt độ hoạt động: - 40˚C ~ 125 ˚C.
2.2.4.3 Board ESP8266 NodeMCU V1.0
Board ESP8266 NodeMCU V1.0 được phát triển dựa trên module wifi ESP-
12F dễ dàng kết nối WiFi với một vài thao tác đơn giản. Board được tích hợp IC giao
tiếp CP2102, giúp dễ dàng kết nối với máy tính thông qua Micro USB để nạp chương
trình và debug.Trên mạch có sẵn nút nhấn, đèn Led để tiện cho việc lập trình và theo
dõi board mạch.
Board có cả 3 chế độ hoạt động gồm: Client, Access Point, Both Client and
Access Point. Với kích thước nhỏ gọn, linh hoạt board dễ dàng liên kết với các thiết bị
ngoại vi để tạo thành project, sản phẩm mẫu một cách nhanh chóng.

Hình: Board ESP8266.


Sơ đồ chân:

Hình: Sơ đồ chân của board ESP NodeMCU V1.0

Thông số kỹ thuật:

- Chip: ESP8266EX SoC Wifi.


- Băng tần Wifi: 2.4GHz chuẩn 802.11 b/g/n.
- Phiên bản firmware: NodeMCU V1.0
- Điện áp hoạt động: 3.3 VDC.
- Điện áp vào: 5 VDC.
- Dòng tiêu thụ: Tối đa 320mA.
- Số chân I/Os: 11 chân (tất cả các chân I/Os đều có Interrupt/ PWM/ I2C/
One-wire, trừ chân D0).
- Số chân analog input: 1 (điện áp vào tối đa 3.3 VDC).
- Bộ nhớ Flash: 4MB.
- Chip giao tiếp UART: CP2102.
- Hỗ trợ cổng Micro USB.
- Hỗ trợ bảo mật: WPA/WPA2.
- Tích hợp giao thức TCP/IP.
2.2.5 LCD 20*4.

2.2.5.1 Màn hình LCD:


Màn hình tinh thể lỏng LCD (Liquid Crystal Display) được cấu tạo nên bởi các
tế bào (các điểm ảnh) chứa tinh thể lỏng với khả năng thay đổi tính phân cực của ánh
sáng và thay đổi cường độ ánh sáng truyền qua khi kết hợp với các loại kính lọc phân
cực. Nói một cách dễ hiểu hơn thì LCD chính là công nghệ dùng đèn nền để tạo ánh
sáng chứ không tự phát sáng được. Màn hình LCD hiển thị màu sắc nhờ vào những
điểm ảnh chứa tinh thể lỏng có thể thay đổi màu sắc và cường độ ánh sáng.
Cấu tạo màn hình LCD: gồm 6 lớp xếp chồng lên nhau:

- Kính lọc phân cực thẳng đứng có tác dụng lọc ánh sáng tự nhiên khi vào.
- Lớp kính có điện cực ITO.
- Lớp tinh thể lỏng.
- Lớp kính có điện cực ITO chung.
- Kính lọc phân cực nằm ngang.
- Gương phản xạ, có tác dụng phản xạ lại ánh sáng với người quan sát.

Hình: 6 lớp xếp chồng của màn hình LCD.

Màn hình LCD hoạt động dựa trên nguyên tắc ánh sáng nền, bao gồm một lớp
chất lỏng nằm giữa 2 lớp kiếng phân cực ánh sáng. Đèn nền có vai trò cung cấp nguồn
sáng phía sau màn hình. Ánh sáng này bị phân cực, hay có thể hiểu là chỉ một nửa ánh
sáng chiếu qua lớp tinh thể lỏng. Các tinh thể lỏng này được tạo thành từ một phần
chất rắn, một phần chất lỏng và có thể "xoắn" khi dòng điện chạy qua. Các tinh thể
lỏng sẽ chặn ánh sáng phân cực khi chúng tắt, nhưng lại phản xạ các loại ánh sáng đỏ,
lục hoặc lam khi được kích hoạt.

Hình: Nguyên tắc hoạt động của LCD.

2.2.5.2 Màn hình LCD 20*4:


LCD 20x4 là loại màn hình tinh thể lỏng nhỏ dùng để hiển thị chữ hoặc số trong
bảng mã ASCII. Mỗi ô của Text LCD bao gồm các chấm tinh thể lỏng, các chấm này
kết hợp với nhau theo trình tự “ẩn” hoặc “hiện” sẽ tạo nên các kí tự cần hiển thị và mỗi
ô chỉ hiển thị được một kí tự duy nhất. LCD 20x4 nghĩa là loại LCD có 4 dòng và mỗi
dòng chỉ hiển thị được 20 kí tự.
LCD 20*4 thực chất là 1 màn hình đi kèm IC điều khiển chuyên dụng. Việc
hiển thị lên LCD chẳng qua chỉ là việc giao tiếp với IC điều khiển đó, và IC sẽ tự đảm
nhiệm phần công việc đưa các dữ liệu hiển thị lên màn hình. Việc giao tiếp với LCD là
dạng giao tiếp song song. Có 2 chế độ giao tiếp 8-bit và 4-bit.
Hình: LCD 20*4.

Thông số kỹ thuật:

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


- Dòng điện tiêu thụ: 350uA – 600uA.
- Nhiệt độ hoạt động: - 30˚C ~ 75 ˚C.
- Số chân: 16 chân.
- Kích thước màn: 96 × 60 mm.
- Màu: Chữ đen, nền xanh.
- Đèn nền có thể điều khiển được bằng biến trở hoặc PWM.

Sơ đồ chân:
Hình: Sơ đồ chân của LCD 20*4.

LCD 20*4 có 16 chân bao gồm các chân:

- VSS : Nguồn âm của LCD.


- VCC : Nguồn dương của LCD.
- VEE : Điều chỉnh sáng của đèn nền.
- RS : Chọn thanh ghi lệnh hoặc thanh ghi dữ liệu.
- RW : Chọn đọc hay ghi dữ liệu lên LCD.
- E : Cho phép thao tác với LCD.
- D0 – D7 : Các chân dữ liệu.
- LED+ : Nguồn dương của đèn nền.
- LED+ : Nguồn âm của đèn nền.

2.2.5.3 Giao tiêp với màn hình LCD 20*4:


LCD 20*4 sử dụng giao tiếp song song và có thể giao tiếp được ở cả dạng 8-bit
hoặc 4-bit.
Chúng ta điều khiển LCD bằng VĐK thông qua các lệnh gửi qua các chân dữ
liệu. Có thể tra các lệnh trên datasheet của nó.
Một số lệnh cơ bản:

Mã lệnh Mô tả
(HEX)

0x01 Xóa hiển thị màn hình

0x02 Quay về vị trí home.

0x04 Giảm con trỏ (dịch con trỏ sang trái)

0x06 Tăng con trỏ (dịch con trỏ sang phải)

0x05 Dịch màn hình sang phải

0x07 Dịch màn hình sang trái

0x08 Tắt hiển thị, tắt con trỏ

0x0A Tắt hiển thị, bật con trỏ

0x0C Bật hiển thị, tắt con trỏ


0x0E Bật hiển thị, bật con trỏ

0x0F Bật hiển thị, nháy con trỏ

0x18 Dịch toàn bộ màn hình sang trái

0x1C Dịch toàn bộ màn hình sang phải

0x28 Chế độ 4-bit, 2 dòng, font 5*7

0x38 Chế độ 8-bit, 2 dòng, font 5*7

Bảng: Một số lệnh cơ bản với LCD.

2.2.5.4 Giao tiếp với LCD 20*4 qua chuẩn I2C:


Khi điều khiển LCD bằng VĐK, sẽ phải sử dụng ít nhất là 6 chân ( 2 chân điều
khiển và 4 chân tín hiệu). Việc này sẽ ảnh hưởng rất nhiều đến việc phân chia tài
nguyên của bài toán, nhất là đối với những dòng vi điều khiển có số lượng chân có
hạn.
Do đó, thay vì giao tiếp song song với vi điều khiển thì ta có thể giao tiếp với
LCD theo chuẩn giao tiếp I2C thông qua module chuyển đổi I2C cho LCD.

Hình: Module chuyển đổi I2C cho LCD.

Thông số kĩ thuật:

- Điện áp hoạt động: 2.5-6 VDC.


- Driver sử dụng: HD44780.
- Địa chỉ mặc định: 0x27 (có thể điều chỉnh bẳng cách ngắn mạch các
chân A0/A1/A2).
Sơ đồ chân:

Hình: Sơ đồ chân của module chuyển đổi I2C cho LCD.

2.2.6 Động cơ.

2.2.6.1 Động cơ servo:


Servo Motor (động cơ servo) là một bộ truyền động quay hoặc tuyến tính cung
cấp khả năng điều khiển vị trí chính xác nhanh chóng cho các ứng dụng điều khiển vị
trí vòng kín. Servo Motor thường được thiết kế với đường kình nhỏ và chiều dài roto
dài, tốc độ đáp ứng cao do quán tính thấp.
Động cơ servo được chia làm 2 loại là DC servo và AC servo.
Ưu nhược điểm của động cơ servo:

Động cơ AC Servo Động cơ DC Servo

Ưu + Điều khiển tốc độ tốt và + Kiểm soát tốc độ tốt.


điểm trơn tru trên toàn bộ vùng tốc + Nguyên tắc điều khiển đơn
độ, hầu như không bị dao giản, dễ sử dụng.
động. + Giá thành rẻ.
+ Hiệu suất cao (trên 90%), ít
nhiệt.
+ Điều khiển tốc độ, vị trí có
độ chính xác cao.
+ Momen xoắn thấp, quán
tính thấp, tiền ồn nhỏ.
+ Công suất lớn.

Nhược + Điều khiển phức tạp. + Chỉ sử dụng được trong


điểm các ứng dụng đơn giản vì
+ Các thông số ổ đĩa cần phải công suất nhỏ.
điều chỉnh các thông số PID. + Bị giới hạn tốc độ.
+ Giá thành đắt. + Tuổi thọ ngắn, dễ hư hỏng
chổi than.

Ứng dụng:

- Ứng dụng trong ngành điện - điện tử: Máy lắp là thiết bị lắp các linh kiện
điện tử ví dụ như các chip LSI lên trên bảng mạch, cần tới tốc độ cao và
độ chính xác cao.
- Ứng dụng trong ngành sản xuất thực phẩm, đồ uống: Nhu cầu về quy
trình thực phẩm chất lượng cao và an toàn hơn ngày càng tăng, vì vậy,
động cơ servo thường được sử dụng như là giải pháp cho nhiều lĩnh vực,
ngay cả đối với quy trình thực phẩm.
- Ứng dụng trong ngành may mặc, ngành giấy, bao bì: Trong việc điều
khiển các máy cuộn vải, giấy, bao bì để cắt hoặc in ấn…
- Ứng dụng về khuôn mẫu đùn trong ngành sản xuất nhựa: khuôn mẫu đùn
là thiết bị gia công các bộ phận nhựa. Vật liệu nhựa được ra nhiệt và tan
chảy, sau đó được đùn vào trong khuôn để gia công các bộ phận. Các
khuôn mẫu thông thường chủ yếu sử dụng điều khiển thủy lực, tuy nhiên
ngày này càng có nhiều khuôn mẫu sử dụng hệ thống servo để tiết kiệm
điện.
- Ứng dụng trong điều khiển vận chuyển: Thiết bị vận chuyển là các linh
kiện tuyệt đối không thể thiếu trong nhiều lĩnh vực, khi các ngành công
nghiệp trở nên tinh vi và tự động hóa. Một trong các ứng dụng điển hình
là việc di chuyển các thiết bị trong nhà kho qua hệ thống băng tải. Động
cơ servo giúp điều khiển tốc độ nhanh chậm theo mục đích sử dụng.

2.2.6.2 Động cơ DC servo:


Là động cơ sử dụng dòng điện một chiều để hoạt động.
Cấu tạo:

- Động cơ một chiều.


- Mạch encoder.
- Có thể có thêm hộp số, thắng từ,… tùy ứng dụng.

Hình: Cấu tạo của động cơ điện một chiều.

Stato là khung vỏ máy hình trụ có gắn các nam châm bên trong. Phía sau trục
roto người ta có thể gắn đầu dò để đo tốc độ động cơ.
Mạch đọc tốc độ (encoder) bao gồm một chiếc đĩa được đục lỗ gắn với trục
roto, khi động quay kéo theo đĩa quay làm thay đổi tín hiệu của các cảm biến quang.
Ta thu được vị trí và tốc độ động cơ dưới dạng các xung vuông.

\
Hình: Mạch đo tốc độ (encoder).
Encoder thường có 2 kênh A-B lệch nhau 90 độ để phản hồi tốc độ, chiều quay
của động cơ. Ngoài ra còn có các encoder có các đĩa quay đục lỗ một cách đặc biệt để
báo vị trí của động cơ (encoder tuyệt đối).

Hình: Xung ở 2 kênh A-B của encoder.

Hình: Đĩa quay của encoder tuyệt đối.


2.2.6.3 Động cơ DC Servo giảm tốc 25GA 12V

Hình: Động cơ DC Servo giảm tốc 25GA.

Thông số kĩ thuật:

- Điện áp hoạt động của động cơ: 3 – 12 VDC.


- Điện áp hoạt động của Encoder: 3.3 VDC.
- Độ phân giải: 11 ppr.
- Hai kênh A-B.
- Tỷ số truyền của hộp giảm tốc: 1:34.
- Số xung khi qua hộp giảm tốc: 374 ppr.
- Đường kính động cơ: 25mm.
- Đường kính trục: 4mm.
- Tốc độ không tải: 320 rpm.
- Dòng không tải: 80 mA.
- Tốc độ có tải: 284 rpm.
- Dòng có tải: 600 mA.
- Momen định mức: 1.88 kgf.cm
- Công suất định mức: 13.2 W.
- Dòng khi động cơ bị giữ: 2.29 A.
- Momen khi bị giữ: 7.96 kgf.cm

Sơ đồ chân:
Hình: Sơ đồ chân của động cơ 25GA.

2.2.6.4 Mạch điều khiển động cơ L298n.


Một động cơ DC có thể quay thuận hoặc quay nghịch tùy thuộc vào cách mắc
cực âm và dương cho motor đó. Ví dụ, động cơ DC có hai đầu A và B. Nếu bạn nối A
vào cực dương (+) và B vào cực âm (-) của nguồn thì động cơ quay theo chiều thuận
(giả sử cùng chiều kim đồng hồ). Bây giờ bạn nối ngược lại, A vào (-) và B vào (+),
động cơ sẽ quay nghịch ( giả sử ngược chiều kim đồng hồ).
Dựa trên nguyên lý đó, mạch cầu H – một mạch đơn giản để điều khiển động cơ
quay thuận-nghịch được ra đời.

Hình: Mạch nguyên lý của mạch cầu H.


Nguyên lý hoạt động của mạch rất đơn giản. Ta có thể thấy trên sơ đồ hình , gọi
cực dương của động cơ là A, gọi cực âm là B. Khi S1, S4 cùng đóng và S2, S3 cùng
mở thì cực A được nối với điện áp Vcc, cực B nối với GND, động cơ quay thuận.
Ngược lại, nếu S1, S4 mở và S2, S3 đóng thì cực A được nối với GND, cực B nối với
Vcc, động cơ quay nghịch. Dựa vào nguyên lý này, có nhiều mạch cầu H được cải tiến
sử dụng thyristor, transistor,…

Hình: Mạch cầu H sử dụng khóa transistor có bảo vệ ngược dòng bằng diode.

Ở đề tài này, chúng ta sử dụng module điều khiển động cơ L298n được phát
triển dựa trên nguyên lý của mạch cầu H. Module gồm một IC298 (IC 2 mạch cầu)
cùng các ngoại vi như điện trở, IC bảo vệ quá dòng, đèn Led, cánh tản nhiệt,… giúp
người dùng có thể sử dụng một cách dễ dàng và an toàn.

Hình: Mạch điều khiển động cơ L298n.


Thông số kĩ thuật của module L298n:

- IC chính: L298 – Dual Full Bridge Driver.


- Điện áp vào: 5 ~ 30 VDC.
- Công suất tối đa: cố định 25W trên mỗi cầu (đầu ra).
- Dòng tối đa mỗi cầu: 2A.
- Điện áp điều khiển: 0 – 5 VDC.
- 1 đèn LED báo dòng điện.

Sơ đồ chân và cách sử dụng module L298n.

- Cổng VCC, GND để cấp điện áp hoạt động.


- Cổng 5 VDC để đưa điện áp vào (Nếu sử dụng nguồn 5 VDC) hoặc lấy
điện áp 5 VDC ra (Nếu sử dụng nguồn >=5VDC).
- Các chân enA, IN1, IN2 điều khiển điện áp ra 2 cổng OUT1, OUT2. Các
chân enB, IN3, IN4 điều khiển điện áp ra 2 cổng OUT3, OUT4.

Hình: Sơ đồ chân module L298n.

Cách ghép nối và điều khiển tốc độ động cơ với module L298n:

- Nếu muốn điều khiển động cơ bằng 2 cổng OUT1 và OUT2, ta sử dụng
các chân enA, IN1 và IN2. Ngược lại, nếu muốn điều khiển bằng 2 cổng
OUT3 và OUT4 thì ta sử dụng các chân enB, IN3 và IN4.
Hình: Cách ghép nối module L298n với động cơ DC.
- Có 2 cách để điều chỉnh điện áp ra của mạch (từ đó điều khiển tốc độ
động cơ) gồm: điều khiển bằng chân enA hoặc điều khiển bằng 2 chân
IN1, IN2.
- Điều khiển bằng chân enA:
+ Hai chân 1,2 là các chân digital output, chân 3 là chân analog output
(hoặc PWM) của mạch điều khiển.
+ Hiệu điện thế của 2 chân OUT1 và OUT2 (0 – Vcc) tỉ lệ thuận với điện
thế chân enA ( 0 – 5 VDC).
+ Chiều dương âm của 2 chân OUT1 và OUT2 phụ thuộc vào mức chênh
lệch điện áp của 2 chân IN1 và IN2. Nếu U IN1 > UIN2 thì UOUT1 > UOUT2 và
ngược lại.
- Điều khiển bằng 2 chân IN1 và IN2:
+ Hai chân 1,2 là các chân analog output (hoặc PWM), chân 3 là chân
digital output của mạch điều khiển.
+ Hiệu điện thế của 2 chân OUT1 và OUT2 (0 – Vcc) tỉ lệ thuận với hiệu
điện thế 2 chân IN1 và IN2 ( 0 – 5 VDC). Nếu U IN1 > UIN2 thì điện thế hai
cổng ra UOUT1 > UOUT2 và ngược lại.
+ Muốn điều khiển bằng 2 chân IN1 và IN2 thì chân enA phải có mức
logic là 1 (3.5 ~ 5 VDC). Ngược lại, nếu chân enA có mức logic là 0 ( 0 ~
1.5 VDC) thì hiệu điện thế hai cổng ra OUT1 và OUT2 là Ura = 0 VDC.
2.2.7 Nguồn.

2.2.7.1 Khái niệm nguồn điện:


Nguồn điện là khái niệm được dùng để chỉ những vật, thiết bị có khả năng cung
cấp điện cho các thiết bị, máy móc sử dụng điện trong đời sống sinh hoạt cũng như
trong hoạt động sản xuất nông nghiệp, công nghiệp, nghiên cứu khoa học của con
người.
Dựa vào đặc điểm của điện áp đầu ra của nguồn, thì nguồn có thể chia làm 2
loại:

- Nguồn điện 1 chiều (DC- Direct Current): Là nguồn mà dòng điện đầu ra
chỉ chạy theo một chiều. Loại nguồn này sẽ có 2 cực Dương và Âm phân
biệt cụ thể. VD: pin, ắc-quy,…
- Nguồn điện xoay chiều (AC- Alternating Current): Là nguồn mà dòng
điện đầu ra có chiều và giá trị thay đổi theo thời gian và thường có một
chu kì nhất định. VD: điện từ máy phát điện, ổ cắm điện,…

Hình: Một số loại nguồn hiện nay.

Do các thiết bị trong hệ thống của bài toán đều sử dụng nguồn điện một chiều,
nên ta sẽ chọn nguồn sử dụng trong bài toán là nguồn một chiều.

2.2.7.2 Nguồn DC:


Hiện nay, đại đa số thiết bị điện, điện tử mà chúng ta sử dụng trong cuộc sống
hằng ngày đều là thiết bị sử dụng nguồn xoay chiều (AC), thường là 2 mức điện áp
220V và 110V. Nhưng thực tế, các linh kiện điện tử trong các thiết bị đấy đều sử dụng
nguồn điện xoay chiều, và sử dụng hiệu điện thế rất thấp (0-5 VDC). Do đó, mỗi thiết
bị đều có chứa một mạch để biến đổi dòng điện xoay chiều thành dòng điện một chiều,
gọi là bộ chỉnh lưu. Tùy thuộc vào yêu cầu mong muốn của dòng điện một chiều mà sẽ
có nhiều bộ chỉnh lưu khác nhau: chỉnh lưu cầu một pha, chỉnh lưu một pha nửa chu
kỳ,... Các bộ chỉnh lưu này thường kết hợp với các máy biến áp mini, ổn áp, bộ lọc để
tạo thành một mạch chỉnh lưu hoàn chỉnh.

Hình: Một mạch chỉnh lưu 5V trong thực tế.

Các loại nguồn DC hiện nay:

- Pin.
- Acquy.
- Adapter.
- Nguồn tổ ong.
- Nguồn DC có thể điều chỉnh điện áp ra.

Ở đề tài này, ta sử dụng nguồn Adapter 12V – 5A để thực hiện bài toán.

2.3 Lưu đồ thuật toán của hệ thống.

2.3.1 Phân chia tài nguyên bộ xử lý trung tâm.

Board STM32F411VEDISCO có lượng ngoại vi rất lớn, nên ta không mấy khó
khăn trong việc phân chia ngoại vi cho board. Cụ thể, các ngoại vi của board sẽ được
sử dụng gồm:
- Cổng UART2 (hai chân PA2 và PA3) sử dụng để đọc dữ liệu từ module
GPS Neo-6M.
- Cổng UART6 (hai chân PC6 và PC7) sử dụng để giao tiếp với module
ESP8266 NodeMCU.
- Cổng SPI1 (hai chân PB6 và PB7) sử dụng để kết nối với LCD 20*4.
- ADC1 (chân PC0) kênh 10 sử dụng đọc giá trị analog module đo nồng
độ cồn MQ3 gửi về.
- GPIO (hai chân PC10 và PC11) sử dụng để điều khiển bật/tắt động cơ.
- Timer 4 sử dụng để tạo định thời tách dữ liệu từ chuỗi GPGGA và gửi
dữ liệu quan sát sang module ESP8266.

2.3.2 Lưu đồ thuật toán của hệ thống:

2.3.2.1 Lưu đồ thuật toán của bộ xử lý trung tâm:


Để hệ thống có thể đáp ứng nhanh nhất các tác vụ, ta sẽ sử dụng các ngắt của
bộ xử lý trung tâm để xử lý dữ liệu. Các ngắt sẽ sử dụng bao gồm: ngắt uart (2 và 6),
ngắt ADC1, ngắt Timer 4.

Hình: Lưu đồ thuật toán chương trình chính.


Hình: Lưu đồ thuật toán chương trình con phục vụ ngắt ADC1.

Hình: Lưu đồ thuật toán 0 chương trình con phục vụ ngắt UART.
Hình: Lưu đồ thuật toán 1 trình con phục vụ ngắt UART.
Hình: Lưu đồ thuật toán 2 trình con phục vụ ngắt UART.
Hình: Lưu đồ thuật toán trình con phục vụ ngắt Timer.
2.3.2.2 Lưu đồ thuật toán ESP8266.

Hình: Lưu đồ thuật toán chính ESP8266.

Hình: Lưu đồ thuật toán xử lý request từ Web.

Chương 3: Giao diện Web, thực nghiệm và đánh giá.

3.1 Giao diện Web.

Giao diện Web để theo dõi thông tin và điều khiển động cơ được thiết kế như
hình sau:
Hình: Giao diện Web theo dõi dữ liệu và điều khiển động cơ.

Cách thức hoạt động của Web:

- Tọa độ vị trí của xe (vĩ độ, kinh độ) và nồng độ của xe sẽ được tự động
cập nhật mỗi 1s và hiển thị dữ liệu trên bảng.
- Nút gạt “Cho phép chạy” nếu được bật sẽ gửi tín hiệu để bật động cơ,
nếu tắt sẽ gửi tín hiệu tắt động cơ.
- Thông báo “Trạng thái” sẽ hiển thị trạng thái của việc gửi được tín hiệu
bật/tắt động cơ.

3.2 Thực nghiệm:

You might also like