Tải bản đầy đủ (.docx) (51 trang)

Thiết kế hệ thống nhúng đề tài cửa khoá số điện tử tìm trên google

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.23 MB, 51 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA KĨ THUẬT ĐIỆN TỬ I
----- -----

BÁO CÁO ĐỒ ÁN
MÔN HỌC: ĐỒ ÁN THIẾT KẾ HỆ THỐNG NHÚNG
ĐỀ TÀI: THIẾT KẾ HỆ THỐNG QUẢN LÝ
KHO THÔNG MINH

GIẢNG VIÊN : NGUYỄN NGỌC MINH

1


MỤC LỤC
ĐỒ ÁN..........................................................................................................................1
Chương 1: Tổng quang về hệ thống quản lý kho thơng minh.......................................3
I.

Tổng quan về mơ hình của hệ thống quản lý kho.............................................3
1.

Giới thiệu tổng quan hệ thống.......................................................................3

2.

Chức năng cơ bản của hệ thống....................................................................3

II.

Sơ đồ nguyên lý hoạt động của mạch hệ thống................................................4


1.

Sơ đồ tổng quát của hệ thống.........................................................................4

2.

Sơ đồ chi tiết của các khối hệ thống............................................................15

Chương 2: Thực hiện mục tiêu đặt ra..........................................................................17
Sơ đồ logic cách hoạt động của hệ thống................................................................17
I.

Giao tiếp I2C...................................................................................................18
1.

Giới thiệu chung..........................................................................................18

2.

Một số thanh ghi quan trọng........................................................................21

II.

LCD 16x2 và giao tiếp I2C với LCD..............................................................23
1.

LCD 16x2....................................................................................................23

2.


Giao tiếp LCD với module I2C...................................................................26

III. RFID...............................................................................................................27
IV. Cảm biến độ ẩm DHT11.................................................................................28
V.

ESP8266..........................................................................................................32

VI. STM32F103C8T6...........................................................................................33
1.

Timer............................................................................................................33

2.

Giao tiếp UART...........................................................................................37

VII.

Khối ứng dụng.............................................................................................39

VIII. Thiết kế mạch in cho khối vật lý.................................................................40
IX. Thiết kế mơ hình thực nghiệm........................................................................41
1.

Mơ hình thực nghiệm...................................................................................41

2.

Hệ thống giám sát và điều khiển..................................................................42


Chương 3: Kết quả đạt được và đánh giá....................................................................43
I.

Kết quả đạt được của hệ thống........................................................................43

II.

Đánh giá hệ thống...........................................................................................46
2


Chương 1: Tổng quang về hệ thống quản lý kho thơng minh
I.

Tổng quan về mơ hình của hệ thống quản lý kho
1. Giới thiệu tổng quan hệ thống
Hệ thống có ứng dụng hỗ trợ việc nhập và bán hàng của kho. Xuất phát
từ việc ngày nay các kho hàng lớn trong nước đã có hỗ trợ cho việc quản lý
kho rất thông minh bao gồm cả việc xuất nhập kho và kiểm sốt các thơng số
của kho hàng, nhưng với những hộ kinh doanh nhỏ lẻ, họ có những kho hàng
không đủ lớn hay chỉ là những hộ kinh doanh gia đình thì việc triển khai những
hệ thống lớn như vậy là một điều khá bất lợi về mặt chi phí cũng như khả năng
lắp đặt.
Chính vì vậy nhóm chúng em có đề ra một hệ thống sử dụng các vi mạch
nhỏ nhẹ và hơn hết là giá cả phù hợp với nhu cầu của hộ kinh doanh. Hơn nữa
còn cắt giảm được sử dụng giấy tờ trong việc ghi lại các thông số của mỗi đơn
hàng nhằm tăng sự tiện lợi cho khách hàng và người bán.

2. Chức năng cơ bản của hệ thống

Hệ thống này bao gồm sự tiện lợi và nhỏ nhẹ nên sẽ gồm các chức năng
chính như sau:
 Hiển thị nhiệt độ và độ ẩm trên thiết bị phần cứng như LCD sẽ
được nêu ra ở phần sau.
 Tính năng nhập và xuất hàng khỏi kho được quản lý theo tagID sẽ
được nêu ở phần sau.
 Giao diện quản lý kho hàng cho người bán dễ dàng quan sát các
thông số từ cơ sở dữ liệu (database) sẽ được nêu ra ở phần sau.
3


II.

Sơ đồ nguyên lý hoạt động của mạch hệ thống
1. Sơ đồ tổng quát của hệ thống
Hệ thống bao gồm hai phần là phấn khối mạch vật lý và khối ứng dụng
là server và database:

Khối ứng dụng

Khối mạch vật lý

Như chúng ta có thể thấy, phần đồ án thiết kế gồm có hai khối cơ bản,
hai khối này có thể giao tiếp qua lại với nhau, chi tiết của các khối sẽ được nói
chi tiết trong phần sau.

4


a. Khối mạch vật lý

Khối vật lý là khối sử dụng các kết nối vật lý, các vi mạch điều khiển và
các phần cứng. Phần mạch bao gồm các linh kiện điện tử như sau:

- STM32F103C8T6
Hình 1. STM32F103C8T6

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,…. Stm32f103 thuộc họ F1 với lõi là ARM
COTEX M3. STM32F103 là vi điều khiển 32bit, 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à rất thông dụng trong thị trường
5


hiện

nay.
Ứng dụng: 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, 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ộ…

- ESP8266

Hình 2. ESP8266

ESP8266 là một mạch vi điều khiển có thể giúp chúng ta điều khiển các
thiết bị điện tử. Thêm vào đó nó được tích hợp wi-fi 2.4GHz có thể dùng cho
lập trình. Với khả năng tích hợp khả năng kết nối Wi-fi thì ESP8266 là một

trong những vi mạch không thể thiếu đối với các ứng dụng IOT (Internet kết
nối vạn vật) như nhà thông minh Smart home hay các thiết bị thông minh khác.

6


Ứng dụng: Điều khiển công tắc bật/tắt Led, đọc nhiệt độ trên cảm biến
DHT11, điều khiển bật/tắt Led bằng giọng nói...

- RFID

Hình 3. RFID RDM6300

Radio Frequency Identification (RFID) là cơng nghệ nhận dạng đối
tượng bằng sóng vơ tuyến. Một thiết bị hay một hệ thống RFID được cấu tạo
bởi hai thành phần chính là thiết bị đọc (RFDI reader) và thiết bị phát sóng
RFID có gắn chip hay cịn gọi là tag.
Ứng dụng công nghệ RFID trong thực tế: RFID có thể đùng để nhận
diện khách hàng cho các trung tâm chăm sóc sức khỏe, động vật trong những
7


hệ thống quản lý sinh vật sống, sinh viên sử dụng tủ đựng đồ để cần giữ tài sản
và taxi yêu cầu quyền ra vào khu vực đón khách tại sân bay.

- LCD 16x2

Hình 4. LCD 16x2

8



LCD 16x2: Màn hình LCD được sử dụng để hiển thị trạng thái hoặc
thông số trong các hệ thống nhúng. LCD 16x2 là thiết bị 16 pin có 8 chân dữ
liệu (D0-D7) và 3 chốt điều khiển (RS,RW,EN). 5 chân còn lại là để cung cấp
và đèn nền cho màn hình LCD. LCD 16x2 có thể được sử dụng ở chế độ 4 bit
hoặc chế độ 8 bit tuỳ thuộc vào yêu cầu của ứng dụng.
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.
Do tính đơn giản của nó nên loại giao thức này được sử dụng rộng rãi
cho giao tiếp giữa vi điều khiển và mảng cảm biến, các thiết bị hiển thị, thiết bị
IoT, EEPROMs, v.v …
Đây là một loại 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

- Button

9


Hình 5. Button

Button là nút bấm, bạn có thể tìm thấy nó ở mọi thứ trong cuộc sống,
chẳng hạn như cái nút trong bàn phím của bạn.

b. Khối ứng dụng
Khối này được cấu thành từ các ứng dụng có mục đích tạo nên các

database (cơ sở dữ liệu), tạo nên các server (máy chủ) để truy cập, hiển thị dữ
liệu để quan sát. Trong hệ thống này, chúng ta sẽ sử dụng các ứng dụng như
sau:

10


- MySQL

Hình 6. MySQL

MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở
(RDBMS) dựa trên ngơn ngữ truy vấn có cấu trúc
(SQL) được phát triển, phân phối và hỗ trợ bởi tập đoàn Oracle. MySQL
chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux , UNIX và Windows.
MySQL thường được kết hợp với các ứng dụng web.
SQL là ngôn ngữ phổ biến nhất để thêm, truy cập và quản lý nội dung
trong cơ sở dữ liệu. Nó được chú ý nhất vì khả năng xử lý nhanh, độ tin cậy đã
được chứng minh, dễ sử dụng và linh hoạt. MySQL là một phần thiết yếu của
hầu hết mọi ứng dụng PHP mã nguồn mở.

11


- NodeJS

Hình 7. NodeJS

Nodejs là một nền tảng (Platform) phát triển độc lập được xây dựng ở
trên Javascript Runtime của Chrome mà chúng ta có thể xây dựng được các

ứng dụng mạng một cách nhanh chóng và dễ dàng mở rộng.
Nodejs tạo ra được các ứng dụng có tốc độ xử lý nhanh, realtime thời
gian thực. Nodejs áp dụng cho các sản phẩm có lượng truy cập lớn, cần mở
rộng nhanh, cần đổi mới công nghệ, hoặc tạo ra các dự án Startup nhanh nhất
có thể.

12


- Python

Hình 8. Python

13


Python là ngơn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được
tạo ra bởi Guido van Rossum. Nó dễ dàng để tìm hiểu và đang nổi lên như một
trong những ngơn ngữ lập trình nhập mơn tốt nhất cho người lần đầu tiếp xúc
với ngơn ngữ lập trình. Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp
phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp
cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp lệnh
của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh
động làm cho nó nhanh chóng trở thành một ngơn ngữ lý tưởng để viết script
và phát triển ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.

- MQTT

Hình 9. MQTT


MQTT (Message Queuing Telemetry Transport) là giao thức
truyền thơng điệp (message) theo mơ hình publish/subscribe (cung cấp /
14


thuê bao), được sử dụng cho các thiết bị IoT với băng thông thấp, độ tin
cậy cao và khả năng được sử dụng trong mạng lưới khơng ổn định. Nó
dựa trên một Broker (tạm dịch là “Máy chủ môi giới”) “nhẹ” (khá ít xử
lý) và được thiết kế có tính mở (tức là không đặc trưng cho ứng dụng cụ
thể nào), đơn giản và dễ cài đặt.
MQTT được phát minh bởi Andy Stanford - Clark (IBM) và Arlen
Nipper (EUROTECH) cuối năm 1999 khi mà nhiệm vụ của họ là tạo ra
một giao thức sao cho sự hao phí năng lượng và băng thông là thấp nhất
để kết nối đến đường ống dẫn dầu thông qua sự kết nối của vệ tinh.
Một số ưu điểm nổi bật của MQTT như: băng thơng thấp, độ tin
cậy cao và có thể sử dụng ngay cả khi hệ thống mạng không ổn định, tốn
rất ít byte cho việc kết nối với server và connection có thể giữ trạng thái
open xuyên suốt, có thể kết nối nhiều thiết bị (MQTT client) thông qua
một MQTT server (broker). Bởi vì giao thức này sử dụng băng thơng
thấp trong mơi trường có độ trễ cao nên nó là một giao thức lý tưởng cho
các ứng dụng IoT.
Giao thức MQTT này hoạt động với các thiết bị có kết nối mạng
như ESP8266 có thể tạo nên các thiết bị thơng minh được sử dụng rất
nhiều trong IOT.
MQTT có các giao thức như publish và subcribe như sau:
Các thiết bị kết nối tới một Broker MQTT dưới dạng các client và dữ
liệu sẽ được gửi giữa các client và Broker như sau:

15



Hình 20. MQTT và cách hoạt động

MQTT có các giao thức như publish và subcribe như sau:
Các thiết bị kết nối tới một Broker MQTT dưới dạng các client và dữ
liệu sẽ được gửi giữa các client và Broker như sau:
Như hình trên Broker sẽ là điểm trung gian truyền và nhận các gói
tin từ các thiết bị client kết nối tới. Mỗi khi có một client publish một gói
tin mà các thiết bị khác subscribe thì gói tin sẽ được vận chuyển tới thiết
bị subscribe đó thơng qua Broker. Đó chính là cách hoạt động của
MQTT.

2. Sơ đồ chi tiết của các khối hệ thống

16


a. Khối vật lý

RFID
RDM6300

I2C

U
A
R
T

I2C


STM32

ESP8266

LCD 16x2

1 wire

DHT11

UART

b. Khối ứng dụng

NodeJS

17


Đọc

ghi

MySQL

Ghi

MQTT


Bắt gói tin

Python

Chương 2: Thực hiện mục tiêu đặt ra

Theo yêu cầu và mục đích đặt ra ở chương, hệ thống sẽ bao gồm hai hướng
chính được rẽ nhánh trong chương trình, 1 nhánh hiển thị nhiệt độ và độ ẩm, 1 nhánh
giúp chúng ta quản lý việc nhập và xuất hàng trong kho. Dưới đây sẽ là sơ đồ logic
của hệ thống.

18


Sơ đồ logic cách hoạt động của hệ thống

I.

Giao tiếp I2C
Yêu cầu đặt ra của hệ thống là giao tiếp giữa vi xử lý và LCD 16x2 bằng giao

tiếp I2C, để thực hiện yêu cầu bài toán chúng ta sử dụng module I2C như Hình 10
dưới đây:

19


Hình 10. Module I2C LCD

1. Giới thiệu chung

Inter- Intergrated Circuit (I2C) là chuẩn truyền thông 2 dây gồm 1 dây Clock
và 1 dây Data dùng chung cho quá trình truyền nhận được phát minh bởi Philips.
Chuẩn I2C cũng trở nên thông dụng với nhiều module, IC sử dụng như: IC
nhớ(24LCxxx), cảm biến góc nghiêng(MPU6050), module giao tiếp LCD(dùng IC
PCF8574), IC thời gian thực(DS1307), IC chuyển đổi tín hiệu số, tương tự… So với
UART tốc độ của I2C có vẻ nhỉnh hơn 1 chút, ở mức thông thường là 100Khz. Ở
mode cịn lại thì tốc độ cao hơn. Khi giao tiếp I2C với 1 IC nào đó cần chú ý : địa chỉ
của Ic đó để giao tiếp, giao tiếp với tốc độ bao nhiêu, bao nhiêu bit.

20



×