Tải bản đầy đủ (.pdf) (105 trang)

(Đồ án hcmute) thiết kế và thi công mô hình giám sát chung cư thông qua internet

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 (5.37 MB, 105 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
NGÀNH ĐIỆN TỬ CÔNG NGHIỆP

ĐỒ ÁN TỐT NGHIỆP

THIẾT KẾ VÀ THI CÔNG MÔ HÌNH GIÁM SÁT CHUNG CƯ
THƠNG QUA INTERNET

GVHD
SVTH
MSSV
SVTH
MSSV

: TS. NGUYỄN THANH HẢI
: HUỲNH QUỐC HOÀNG
: 13141492
: HỒ NHÂN BẢO
: 13141454

SKL 0 0 4 9 7 1

Tp. Hồ Chí Minh, tháng 07/2017

do an


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH


KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
---------------------

ĐỒ ÁN TỐT NGHIỆP

Đề tài:

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT
CHUNG CƯ THÔNG QUA INTERNET

SVTH :
MSSV :
SVTH :
MSSV :
Khóa :
Ngành :
GVHD:

HUỲNH QUỐC HỒNG
13141492
HỒ NHÂN BẢO
13141454
2013
ĐIỆN TỬ CƠNG NGHIỆP
TS. NGUYỄN THANH HẢI

Tp. Hồ Chí Minh, tháng 7 năm 2017

do an



BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
---------------------

ĐỒ ÁN TỐT NGHIỆP

Đề tài:

THIẾT KẾ VÀ THI CÔNG HỆ MƠ HÌNH GIÁM SÁT
CHUNG CƯ THƠNG QUA INTERNET

SVTH :
MSSV :
SVTH :
MSSV :
Khóa :
Ngành :
GVHD:

HUỲNH QUỐC HỒNG
1314192
HỒ NHÂN BẢO
13141454
2013
ĐIỆN TỬ CƠNG NGHIỆP
TS. NGUYỄN THANH HẢI

Tp. Hồ Chí Minh, tháng 7 năm 2017


do an


i

do an


LỜI CẢM ƠN
Để hoàn thành đồ án tốt nghiệp này, lời đầu tiên chúng em xin bày tỏ lòng biết
ơn sâu sắc đến thầy TS. Nguyễn Thanh Hải, đã tận tình hướng dẫn trong suốt quá
trình chúng em thực hiện đồ án.
Chúng em cũng xin chân thành cảm ơn quý thầy, cô trường Đại Học Sư Phạm
Kỹ Thuật TP.HCM, đặc biệt là các thầy cô trong khoa Đào tạo chất lượng cao, đã
nhiệt tình giúp đỡ, truyền đạt kiến thức trong suốt q trình học tập của nhóm tại
trường. Vốn kiến thức được tiếp thu trong quá trình học tập khơng chỉ là nền tảng cho
q trình thực hiện đồ án tốt nghiệp mà còn là hành trang quý báu cho sự nghiệp của
nhóm sau này.
Bên cạnh đó, chúng tơi xin cảm ơn sự hỗ trợ và giúp đỡ của bạn bè trong thời
gian học tập tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh và trong
q trình hồn thành luận văn tốt nghiệp này.
Cuối cùng, chúng con chân thành cảm ơn sự động viên và hỗ trợ của gia đình
trong suốt thời gian học tập. Đặc biệt, chúng con xin gửi lời cảm ơn trân trọng nhất
đến cha mẹ, người đã sinh ra và nuôi dưỡng chúng con nên người. Sự quan tâm, lo
lắng và hy sinh lớn lao của cha mẹ luôn là động lực cho chúng con cố gắng phấn đấu
trên con đường học tập của mình.

Xin chân thành cảm ơn!


Người thực hiện đề tài
Huỳnh Quốc Hoàng
Hồ Nhân Bảo

iv

do an


TĨM TẮT
Hiện nay, điện thoại đi động thơng minh ( Smart Phone) đang ngày càng phát triển
và phổ biến trên thế giới. Việc áp dụng điện thoại thông minh trong việc quản lý chung
cư ở Việt Nam chưa phát triển mạnh; thêm vào đó việc lập trình ứng dụng trên điện
thoại vào các sản phâm IoTs ngày càng phổ biến và dễ tiếp cận hơn bao giờ hết.
Với mục đích muốn tiếp cận với công nghệ IoTs cũng như mảng lập trình ứng
dụng trên điện thoại di động chúng em mong muốn tự tạo một ứng dụng giúp người sử
dụng có thể nhận biết người quen đến nhà của mình, sử dụng các kiến thức đã học trên
mơn lập trình Android và dựa trên nền tảng của các mã nguồn mở lập trình ứng dụng,
em đã tạo thành cơng ứng dụng giám sát chung cư thơng qua Internet.
Trong q trình thực hiện đề tài Thiết kế và thi công mô hình giám sát chung
cư thơng qua Internet, mặc dù nhóm thực hiện đề tài đã cố gắng hoàn thành nhiệm vụ
đặt ra và đúng thời hạn nhưng do còn hạn chế về kiến thức nên chắc chắn sẽ không tránh
khỏi những thiếu sót, hạn chế, mong q Thầy/Cơ và các bạn sinh viên thơng cảm.
Nhóm rất biết ơn và mong nhận được những ý kiến đóng góp của q Thầy/Cơ và các
bạn sinh viên về đề tài này.

v

do an



MỤC LỤC
LỜI CẢM ƠN ............................................................................................................. IV
TÓM TẮT ..................................................................................................................... V
CHƯƠNG 1: TỔNG QUAN .........................................................................................1
1.1.

Đặt vấn đề: .........................................................................................................1

1.2.

Lý do chọn đề tài: ..............................................................................................1

1.3.

Mục tiêu: .............................................................................................................1

1.4.

Nội dung nghiên cứu: ........................................................................................2

1.5.

Giới hạn: .............................................................................................................2

1.6.

Bố cục: ................................................................................................................2

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .............................................................................4

2.1. Giới thiệu về Raspberry Pi: ...................................................................................4
2.1.1. Giới thiệu về bo mạch Raspberry Pi 3: .............................................................4
2.1.2. Cấu hình Raspberry Pi 3: ...................................................................................5
2.2. Tổng quan MQTT: .................................................................................................7
2.2.1. Giới thiệu MQTT: .............................................................................................7
2.2.2. Đặc điểm giao thức MQTT: ..............................................................................8
2.2.3. Cấu trúc giao thức MQTT: ................................................................................8
2.2.4. Tầng ứng dụng( qualities of server): .................................................................9
2.2.5. Bảo mật: .............................................................................................................9
2.3. Tổng quan M-JPEG: ............................................................................................10
2.3.1. Giới thiệu M-JPEG: .........................................................................................10
2.3.2. Đặc điểm M-JPEG:..........................................................................................10
2.3.3. Cấu trúc M-JPEG: ...........................................................................................10
2.4. Gstreamer: ............................................................................................................11
2.4.1. Giới thiệu Gstreamer: ......................................................................................11
2.4.2. Tính năng Gstreamer: ......................................................................................12
vi

do an


2.4.3. Cấu trúc Gstreamer: .........................................................................................12
2.5. Tổng quan ngôn ngữ lập trình Python: ..............................................................15
2.5.1. Giới thiệu ngơn ngữ Python: ...........................................................................15
2.5.2. Đặc điểm của ngôn ngữ Python: .....................................................................16
2.5.3. Đa luồng trong Python: ...................................................................................17
2.6. Android Studio: ....................................................................................................22
2.6.1: Giới thiệu về Android Studio: .........................................................................22
2.6.2. Cấu trúc Android Studio:.................................................................................23
2.6.3. Service trong Android: ....................................................................................27

2.6.3.1. Giới thiệu: .................................................................................................27
2.6.3.2. Tạo một dịch vụ cơ bản: ...........................................................................28
2.6.3.3. Quản lý vòng đời của một dịch vụ: ..........................................................29
2.6.4. Tạo một file trong project: ...............................................................................32
CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG .......................................36
3.1. Giới thiệu hệ thống: ..............................................................................................36
3.2. Sơ đồ khối tồn hệ thống: ....................................................................................36
3.3. Tính tốn và thiết kế hệ thống: ...........................................................................37
3.3.1. Khối thu thập dữ liệu: ......................................................................................37
3.3.1.1. Lựa chọn camera: .....................................................................................37
a. Giới thiệu Webcam E-Blue: ..........................................................................37
b. Cấu hình webcam E-Blue Lente: ...................................................................37
3.3.1.2. Keypad 4x4:..............................................................................................38
3.3.1.3. Thiết kế: ....................................................................................................39
3.3.2. Khối hiển thị và cảnh báo: ...............................................................................39
3.3.2.1. Giới thiệu LCD16x2: ................................................................................39
3.3.2.2. Thiết kế: ....................................................................................................40
3.3.3. Khối điều khiển trung tâm: ..............................................................................41
3.3.3.1. Phần cứng: ................................................................................................41
vii

do an


3.3.3.2. Phần mềm: ................................................................................................42
3.3.4. Khối nguồn: .....................................................................................................50
3.3.5. Khối nhận dữ liệu và điều khiển: ....................................................................51
3.3.6. Sơ đồ nguyên lý toàn mạch: ............................................................................52
3.4. Thiết kế mơ hình: ..................................................................................................53
3.5. Thi cơng PCB: .......................................................................................................53

3.6. Lưu đồ và chương trình vi xử lý: ........................................................................54
3.7. Lưu đồ và chương trình trên ứng dụng trên Android Studio: ........................56
3.7.1. Lưu đồ cho úng dụng giám sát chung cư: .......................................................56
3.7.2. Thiết kế ứng dụng giám sát chung cư: ............................................................57
CHƯƠNG 4: KẾT QUẢ NGHIÊN CỨU ..................................................................60
4.1. Ứng dụng giám sát chung cư trên SmartPhone: ...............................................60
4.2. Thiết kế mơ hình: ..................................................................................................61
4.3. Sơ đồ mạch in: ......................................................................................................63
4.4. Hoạt động của toàn hệ thống:..............................................................................65
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................68
5.1.

Kết luận: ...........................................................................................................68

5.2.

Hướng phát triển: ............................................................................................68

TÀI LIỆU THAM KHẢO...........................................................................................69
PHỤ LỤC 1: CODE PYTHON TRÊN RASPBERRY.............................................70
PHỤ LỤC 2: CODE ANDROID ................................................................................80
1.

CHƯƠNG TRÌNH CHÍNH: ...............................................................................80

2.

CHƯƠNG TRÌNH CON APP CHẠY NGẦM: ................................................86

viii


do an


DANH MỤC HÌNH ẢNH
Hình 2 - 1: Bo mạch Raspberry Pi 3................................................................................5
Hình 2 - 8: Cơ chế giao thức MQTT ...............................................................................8
Hình 2 - 9: Cấu trúc Gstreamer(*) ..................................................................................11
Hình 2 - 10: Element trong Gstreamer(*) .......................................................................12
Hình 2 - 11: Các trạng thái của elements ......................................................................13
Hình 2 - 12: Pads liên kết các element lại với nhau(*) ...................................................13
Hình 2 - 13: Mơ hình của Element, Bin và Pipeline .....................................................14
Hình 2 - 14: Cơ chế giao tiếp giữa các ứng dụng và pipeline(*) ....................................15
Hình 2 - 15: Tổ chức bộ nhớ trong Python(*).................................................................17
Hình 2 - 16: Giao diện làm việc của phần mềm Android Studio ..................................23
Hình 2 - 17: Vùng làm việc thứ 1 ..................................................................................24
Hình 2 - 18: Vùng làm việc thứ 2 ..................................................................................25
Hình 2 - 19: Vùng làm việc thứ 3 ..................................................................................25
Hình 2 - 20: Vùng làm việc số 4....................................................................................26
Hình 2 - 21: Vùng làm việc số 5....................................................................................26
Hình 2 - 22: Vùng làm việc thứ 6 ..................................................................................27
Hình 2 - 23: Vịng đời của Service ................................................................................30
Hình 2 - 24: Đặt tên cho Project trong Android studio .................................................32
Hình 2 - 25: Chọn phiên bản Android mà ứng dụng sẽ chạy ........................................33
Hình 2 - 26: Chọn loại Activity xuất hiện ban đầu .......................................................34
Hình 2 - 27: Đặt tên cho Activity và Layout .................................................................34
Hình 3 - 1: Sơ đồ khối của hệ thống ..............................................................................36
Hình 3 - 2: Bàn phím ma trận 4x4 .................................................................................38
Hình 3 - 3: Sơ đồ bàn phím ma trận ..............................................................................38
Hình 3 - 4: Sơ đồ ngun lý kết nối ma trận phím ........................................................39

Hình 3 - 5: LCD16x2 .....................................................................................................39
Hình 3 - 6: Sơ đồ kết nối LCD 16  2 .............................................................................40
Hình 3 - 7: Sơ đồ nguyên lý kết nối Raspberry Pi.........................................................41
Hình 3 - 8: Cập nhật phần mềm cho Raspberry Pi3 ......................................................42
Hình 3 - 9: Cài đặt xrdp cho Raspberry Pi3 ..................................................................42
Hình 3 - 10: Ứng dụng Remote Desktop .......................................................................43
Hình 3 - 11: Thơng báo truy cập được Raspberry Pi.....................................................43
Hình 3 - 12: Giao diện Raspberry Pi .............................................................................44
Hình 3 - 13:Download gói MQTT vè ............................................................................44
Hình 3 - 14: Giải nén gói tập tin MQTT .......................................................................45
ix

do an


Hình 3 - 15: Cài đặt MQTT ...........................................................................................45
Hình 3 - 16: Khởi động server MQTT ..........................................................................45
Hình 3 - 17: Cài đặt MQTT Client ................................................................................46
Hình 3 - 18: Cài đặt User và password để kết nối với server ........................................46
Hình 3 - 19: Cài đặt gói phần mềm Gstreamer cho Raspberry Pi .................................47
Hình 3 - 20: Cài đặt driver camera cho Raspberry Pi ...................................................47
Hình 3 - 21: Cấu hình file wpa.conf ..............................................................................48
Hình 3 - 22: Sửa file cấu hình network cho Raspberry Pi .............................................49
Hình 3 - 23: Khởi động kết nối wifi cho Raspberry Pi .................................................49
Hình 3 - 24: Kết nối wifi cho Raspberry Pi ...................................................................50
Hình 3 - 25: Cài đặt threading cho Pywhon3 trong Raspberry Pi .................................50
Hình 3 - 26: Adapter cho Raspberry Pi3 .......................................................................51
Hình 3 - 27: Sơ đồ nguyên lý tồn mạch ....................... Error! Bookmark not defined.
Hình 3 - 28: Chi tiết mơ hình.........................................................................................53
Hình 3 - 29: Chi tiết của mơ hình (2) ............................................................................53

Hình 3 - 30: Lưu đồ chương trình vi xử lý ....................................................................55
Hình 3 - 31: Lưu đồ chương trình android ....................................................................56
Hình 3 - 32: Thiết kế Layout cho ứng dụng ..................................................................57
Hình 3 - 33: Giao diện của ứng dụng sau khi thiết kế ...................................................57
Hình 3 - 34: Thư viện sử dụng ......................................................................................58
Hình 4 - 1: Giao diện giám sát chung cư .......................................................................60
Hình 4 - 2: Các thiết bị được sử dụng trong mơ hình ....................................................61
Hình 4 - 3: Phần mặt trước của mơ hình .......................................................................62
Hình 4 - 4: Phần mặt sau của mơ hình...........................................................................62
Hình 4 - 5: Sơ đồ mạch in lớp dưới ...............................................................................63
Hình 4 - 6: Sơ đồ mạch in lớp trên ................................................................................64
Hình 4 - 7: Sơ dồ mặt trên của mạch có gắn linh kiện ..................................................64
Hình 4 - 8: Điện thoại khi nhận được yêu cầu từ người đến chung cư .........................65
Hình 4 - 9: Bật camera qua sát để nhận biết khách đến ................................................65
Hình 4 - 10: Cho phép khách vào ..................................................................................66
Hình 4 - 11: Hệ thống không cho phép khách vào ........................................................66

x

do an


DANH MỤC BẢNG BIỂU
Bảng 2 - 1: Cấu hình phần cứng Raspberry Pi 3 .............................................................5
Bảng 2 - 2: Chân Raspberry Pi3 ......................................................................................6
Bảng 3 - 1: Thông số kỹ thuật webcam E-Blue lente……………………………… ..38
Bảng 3 - 2: Chức năng các chân LCD 16  2..................................................................40
Bảng 3 - 3: Các linh kiện sử dụng trong mạch vi xử lý.................................................53
Bảng 3 - 4: Các phương thức kết nối:............................................................................59
Bảng 4 - 1: Kết quá thực nghiệm đối với các mạng wifi khác nhau……………….. ..67


xi

do an


DANH MỤC TỪ VIẾT TẮT
MQTT: Message Queuing Telemetry Transport

xii

do an


CHƯƠNG 1. TỔNG QUAN

CHƯƠNG 1: TỔNG QUAN
1.1. Đặt vấn đề:
Ngày nay, những công nghệ tiên tiến giúp cho cuộc sống thuận tiện hơn, cùng với sự
phát triển của khoa học và công nghệ, các thiết bị điện tử thông minh được ứng dụng
ngày càng rộng rãi và mang lại hiệu quả trong hầu hết các lĩnh vực khoa học kỹ thuật
cũng như trong đời sống xã hội.
Bên cạnh đó, chung cư được xây dựng ngày càng nhiều do nhu cầu tiện lợi và an tồn
của mọi người, nhưng lại ít được áp dụng các công nghệ tự động để tiết kiệm thời gian
trong việc đưa đón người quen vào chung cư. Từ nhu cầu trên nhóm em đã bắt tay tìm
hiểu và thực hiện đề tài “Thiết kế và thi cơng mơ hình giám sát chung cư thơng qua
internet”.
1.2. Lý do chọn đề tài:
Ma ̣ng Internet ngày càng phát triể n rô ̣ng raĩ gắ n liề n với công viê ̣c và cuô ̣c số ng hằ ng
ngày của con người. Sử du ̣ng Internet đã và đang trở thành mô ̣t thói quen không thể

thiế u trong cuô ̣c số ng, từ ho ̣c tâ ̣p, công viê ̣c đế n giải tri.́ Với sự xuấ t hiê ̣n của các thiế t
bi thông
minh như smartphone, máy tính bảng viê ̣c truy câ ̣p Internet trở nên dễ dàng và
̣
tiê ̣n lơ ̣i hơn rấ t nhiề u.
Để thực hiện các tính năng tự động hóa thơng qua Internet giúp cho cuộc sống tiện
lợi hơn thì các KIT nhúng xuấ t hiê ̣n với nhiê ̣m vu ̣ hỗ trơ ̣ ho ̣c tâ ̣p, nghiên cứu ngày càng
nhiề u. Trong đó Raspbery Pi là một board mạch vi điều khiển với những tính năng mạnh
mẽ và cho phép người lập trình có thể dễ dàng tiếp cận internet thông qua wifi. Dùng
Raspbery Pi đưa các dữ liệu lên mạng sẽ dễ dàng hơn rất nhiều vì có kết nối mạng LAN
hoặc thu sóng wifi trực tiếp. Với nhu cầu tìm hiểu về lĩnh vực điều khiển từ xa thông
minh ứng dụng trong cuộc sống cùng với mong muốn tạo ra một sản phẩm có giá trị ứng
dụng cao, nhóm em xin thực hiện đề tài “Thiết kế và thi cơng mơ hình giám sát chung
cư thơng qua internet”.
1.3. Mục tiêu:
Thiết kế và thi công luận văn này sẽ cung cấp cho người sử dụng giao diện trên điện
thoại android để thấy người ra vào chung cư thông qua internet khi có yêu cầu. Giao
diện dễ sử dụng và thuận tiện trong việc cho phép người quen qua cửa an ninh của chung
cư mà không cần phải đưa đón. Hệ thống sử dụng module camera, LCD được điều khiển
bởi module Raspbery Pi.

1

do an


CHƯƠNG 1. TỔNG QUAN

1.4. Nội dung nghiên cứu:
- Tìm hiểu cách viết ứng dụng cho Raspberry pi và app android.

- Thiết kế giao diện giám sát và điều khiển trên điện thoại android bằng android
studio.
- Thiết kế, lập trình và thi công giao tiếp giữa Raspberry pi và module camera.
- Thiết kế, thi cơng và lập trình khối giao tiếp giữa Raspberry pi và wifi.
- Thiết kế, thi công và lập trình khối giao tiếp giữa app android với Raspberry qua
wifi.
- Thiết kế, thi cơng mơ hình giám sát chung cư qua camera.
- Lắp ráp các khối điều khiển vào mơ hình.
- Chạy thử nghiệm hệ thống giám sát nhà ở.
- Viết báo cáo kết quả đạt được sau khi thực hiện đồ án.
1.5. Giới hạn:
- Thiết kế mơ hình giám sát khách ra vào chung cư thông qua camera do người sử
dụng quan sát.
- Sử dụng module Raspberry Pi làm vi điều khiển trung tâm.
- Sử dụng module camera với độ phân giải 640x480p tối thiểu 28 khung hình/giây.
- Giám sát chung cư bằng điện thoại android.
- Điều khiển khiển cảnh báo thông qua tùy chỉnh trong app trên điện thoại android.
- Đề tài chỉ áp dụng ở nơi có kết nối wifi hoặc 3G.
1.6. Bố cục:
- Chương 1: Tổng quan đề tài: Trình bày về sự cần thiết đề tài, vai trò của đề tài
trong cuộc sống. Đồng thời nêu ra được các phương pháp tiếp cận và thực hiện đề
tài theo từng bước.
- Chương 2: Cơ sở lý thuyết liên quan. Nêu khái quát về công nghệ Internet, giới
thiệu kit Raspberry Pi 3 với hệ điều hành Rasbian. Nêu lên các đặc điểm, giao thức
truyền nhận dữ liệu, các thông số liên quan là cơ sở cho việc chọn thiết bị. giới
thiệu phần mềm lập trình cho Raspberry Pi và điện thoại Android.
- Chương 3: Thiết kế hệ thống. Trình bày về thiết kế ứng dụng giám sát chung cư
gồm sơ đồ khối, sơ đồ nguyên lý toàn hệ thống của module vi xử lý và trên điện
thoại. Đưa ra lưu đồ giải thuật cho ứng dụng và chương trình vi xử lý.
- Chương 4: Kết quả so sánh, thực nghiệm, phân tích, tổng hợp. Chương này đưa ra

các kết quả kiểm ra thực tế vào nhiều thời điểm trong ngày hoặc hoạt động trong
các môi trường khác nhau.

2

do an


CHƯƠNG 1. TỔNG QUAN

- Chương 5: Kết luận và hướng phát triển: Chương này sẽ đưa ra các kết quả đạt
được sau khi thực hiện đồ án, các hướng phát triển và mở rộng của đồ án.

3

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. Giới thiệu về Raspberry Pi:
Hiện tại ở Việt Nam và trên thế giới có rất nhiều KIT điện tử được sử dụng phổ biến
như: Raspberry Pi, Arduino, STM32F103, Mini 2440,... Trong đó, Raspberry Pi và
Arduino là 2 KIT được sử dụng phổ biến nhất với giá thành vừa phải và có thể đáp ứng
được yêu cầu đặt ra cho việc thực hiện điều khiển các thiết bị và truyền thông tin qua
Internet. Arduino thường áp dụng với hệ thống linh hoạt với các khả năng giao tiếp với
hầu hết các thiết bị đồng thời cũng là hệ thống lý tưởng để học tập lần đầu và nhiều dự
án nhỏ hơn. Raspberry Pi thích hợp cho những dự án lớn hơn với yêu cầu cần hiển thị
hay cần kết nối mạng. Với các chức năng tương tự như một máy tính mini chạy hệ điều

hành Linux, cùng với việc thực hiện được nhiều dự án lớn, Raspberry Pi sẽ là lựa chọn
hợp lý cho nhóm nghiên cứu để thực hiện đề tài “THIẾT KẾ VÀ THI CƠNG MƠ
HÌNH GIÁM SÁT CHUNG CƯ THÔNG QUA INTERNET”.
2.1.1. Giới thiệu về bo mạch Raspberry Pi 3:
Raspberry Pi – Chiếc máy tính mini bắt đầu được sản xuất bởi Quỹ Raspberry Pi vào
tháng 12/2011. Chiếc máy tính này chỉ có kích cỡ bằng một chiếc thẻ tín dụng với đầy
đủ các kết nối và tuỳ dung lượng RAM mà người mua lựa chọn. Được phát triển bởi
Raspberry Pi Foundation là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà
nhiều người có thể sử dụng được trong những cơng việc tùy biến khác nhau.
Raspberry Pi sản xuất bởi 3 OEM: Sony, Qsida, Egoman. Và được phân phối chính
bởi Element14, RS Components và Egoman.. Đặc tính của Raspberry Pi xây dựng xoay
quanh bộ xử lí SoC Broadcom BCM (là chip xử lí mobile mạnh mẽ có kích thước nhỏ
hay được dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử lí âm thanh /video,
và các tính năng khác… tất cả được tích hợp bên trong chip có điện năng thấp này.
Raspberry Pi khơng thay thế hồn tồn hệ thống để bàn hoặc máy xách tay. Không
thể chạy Windows trên Raspberry Pi vì BCM2837 dựa trên cấu trúc ARM nên khơng
hỗ trợ mã x86/x64, nhưng vẫn có thể chạy bằng Linux với các tiện ích như lướt web,
mơi trường Desktop và các nhiệm vụ khác. Tuy nhiên Raspberry Pi là một thiết bị đa
năng đáng ngạc nhiên với nhiều phần cứng có giá thành rẻ nhưng rất hồn hảo cho những
hệ thống điện tử, những dự án DIY, thiết lập hệ thống tính tốn rẻ tiền cho những bài
học trải nghiệm lập trình.

4

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

Hình 2 - 1: Bo mạch Raspberry Pi 3

2.1.2. Cấu hình Raspberry Pi 3:
Raspberry Pi 3 Model B là thế hệ thứ 3 và mới nhất tính đến thời điểm hiện tại
dịng Raspberry Pi, được ra đời vào tháng 2 năm 2016. Cấu hình Raspberry Pi 3:
Bảng 2 - 1: Cấu hình phần cứng Raspberry Pi 3
Stt

Chức năng

Phần cứng

1

CPU (Centra
Process Unit)

Broadcom BCM 2837 64bit ARMv8 Cortex A53
Quad Core, tốc độ 1.2GH

2

Bộ nhớ

microSD

3

RAM

1GB LPDDR2 (900 MHz)


4

GPU

Broadcom VideoCore IV 3D

6

Kết nối

7

Nguồn

4 USB 2.0, ngõ ra HDMI, ngõ ra RCA, 1 audio
3.5mm, Camera Serial Interface(CSI), 10/100
Ethernet, 2.4GHz 802.11n wireless, hỗ trợ Display
Serial Interface(DSI), Tích hợp Bluetooth 4.1, 40
GPIO,2 SPI BUS
5V qua cổng Micro USB – dòng 2500 mA (12.5 W)

5

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

Bảng 2 - 2: Chân Raspberry Pi3
Pin


Tên chân

1

3.3v DC Power

2

DC Power 5v

3

GPI002 (SDA1 , PC)

4

DC Power 5v

5

GPI003 (SCL1 , I2C)

6

Ground

7

GPI004 (GPIO_GCLK)


8

(TXDO) GPI014

9

Ground

10

(RXDO) GPI015

11

GPI017 (GPIO_GENO)

12

(GPI0_GEN1) GPI018

13

GPI027 (GPIO_GEN2)

14

Ground

15


GPI022 (GPIO_GEN3)

16

(GPIO_GEN4) GPI023

17

3.3v DC Power

18

(GPIO_GEN5) GPI024

19

GPIOIO (SPI_MOSI)

20

Ground

21

GPI009 (SPI_MISO)

22

(GPIO_GEN6) GPI025


23

GPIO11 (SPI_CLK)

24

(SPI_CE0_N) GPI008

6

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

25

Ground

26

(SPI_CE1_N) GPI007

27

ID_SD (I2C ID EEPROM)

28


(PC I2C EEPROM) ID_SC

29

GPI005

30

Ground

31

GPI006

32

GPI012

33

GPI013

34

Ground

35

GPI019


36

GPI016

37

GPI026

38

GPI020

39

Ground

40

GPI021

2.2. Tổng quan MQTT:
Để giao tiếp với Raspberry Pi qua Internet có rất nhiều cách, nhưng thơng dụng nhất
gồm có các giao thức và framework sau: MQTT, CoAP, WebblOPi. Trong đó MQTT là
1 giao thức đơn giản, sử dụng băng thơng thấp trong mơi trường có độ trễ cao và được
sử dụng trong môi trường không ổn định nên nó là một giao thức lý tưởng cho các ứng
dụng M2M.
2.2.1. Giới thiệu MQTT:
MQTT (Message Queuing Telemetry Transport) là một giao thức gởi dạng
publish/subscribe sử dụng cho các thiết bị Internet of Things, là một chuẩn giao thức
nhắn tin dựa trên tiêu chuẩn ISO (ISO / IEC PRF 20922). Nó được thiết kế cho các kết

nối với các địa điểm từ xa, nơi cần phải có một "dấu vết mã nhỏ" hoặc băng thông mạng
bị giới hạn.

7

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

2.2.2. Đặc điểm giao thức MQTT:
Đặc điểm MQTT:
-

Là các chuẩn mở
Phù hợp hơn HTTP đối với các môi trường bị hạn chế
Cung cấp cơ chế truyền tin không đồng bộ
Chạy trên IP (Internet Protocol)

2.2.3. Cấu trúc giao thức MQTT:
MQTT có mơ hình client/server, nơi mà mỗi cảm biến là một khác hàng (client) và
kết nối đến một máy chủ, có thể hiểu như một nhà môi giới (broker), thông qua giao
thức TCP (Transmission Control Protocol)
MQTT là giao thức định hướng bản tin. Mỗi bản tin là một đoạn rời rạc của tín hiệu
và broker khơng thể nhìn thấy.
Mỗi bản tin được publish một địa chỉ, có thể hiểu như một kênh. Client đăng kí vào
một vài kênh để nhận/gửi dữ liệu, gọi là đăng ký. Máy con có thể đăng ký vào nhiều
kênh. Mỗi máy con sẽ nhận được dữ liệu khi bất kì trạm nào khác gửi dữ liệu vào kênh
đã đăng kí. Khi một client gửi một bản tin đến một kênh vào đó, gọi là publish.
Ví dụ: một mạng đơn giản gồm 2 máy con, 1 điện thoại và một broker trung tâm.

Cả 3 mở kết nối TCP với Broker. Điện thoại đăng kí tới kênh của máy con 1 và 2
topic 1 và topic 2. Từ đó server sẽ thơng báo data từ máy con 1 và máy con 2 cho điện
thoại.

Hình 2 - 2: Cơ chế giao thức MQTT

8

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

2.2.4. Tầng ứng dụng( qualities of server):
Có 3 tùy chọn khi đăng kí kênh và gửi bản tin:
- “Delivered at least once”: Gửi ít nhất một lần: Cần ít nhất 1 lần xác nhận từ đầu
cuối tức là có thể có nhiều hơn một lần xác nhận đã nhận bản tin.
- “Delivered exactly once”: Chỉ gửi một lần: Đảm bào khi gửi bản tin, phía nhận
chỉ nhận được đúng 1 lần, quá trình này cần qua nhiều bước bắt tay
- “Fire and forget”: Gửi và quên: Broker/Client sẽ gửi dữ liệu đúng 1 lần, quá
trình gửi được xác nhận bởi giao thức TCP/IP.
Các client MQTT có thể đăng ký một bản tin tùy chỉnh được gửi bởi broker nếu các
client ngắt kết nối. Những bản tin này có thể được dùng để báo cho các Clients đã đăng
ký Subscriber khi một thiết bị ngắt kết nối.
Khả năng duy trì bản tin:
-

MQTT hỗ trợ lưu trữ các bản tin trong Broker để duy trì bản tin. Khi publish các
bản tin, các Client có thể yêu cầu broker duy trì các bản tin. Chỉ có các bản tin
mới nhất được lưu lại. Khi một Client đăng kí đến một kênh, bất kì bản tin nào

đã được đăng kí lưu trữ sẽ được gửi đến Client.

-

Khơng giống như một hàng đợi bản tin, broker của MQTT không cho phép duy
trì các bản tin để sao lưu vào máy chủ.

2.2.5. Bảo mật:
MQTT broker có thể yêu cầu tên người dùng và mật khẩu xác thực từ client để kết
nối. Để đảm bảo tính bảo mật, kết nối TCP có thể được mã hóa với SSL/TLS (Transport
Layer Security (TLS) protocol, Secure Sockets Layer (SSL) protocol).
Mặc dù MQTT được thiết kế gọn nhẹ, nó có hai nhược điểm làm hạn chế các thiết bị:
Mỗi client MQTT phải hỗ trợ TCP và thường sẽ giữ một kết nối mở đến broker ở mọi
thời điểm. Đối với một số môi trường mà xác suất mất bản tin cao hay khơng có sẵn
máy tính thì đây là cả một vấn đề.
Tên kênh MQTT thường là các chuỗi dài làm chúng không thỏa đáng với tiêu chuẩn
802.15.4
Cả hai thiếu sót được giải quyết bằng giao thức MQTT-SN, trong đó xác định một
ánh xạ UDP của MQTT và thêm khả năng lập chỉ mục (indexing) tên các kênh cho
broker.

9

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

2.3. Tổng quan M-JPEG:
Để stream video trong các KIT điện tử ta sẽ sử dụng các chuẩn nén ảnh như: M-JPEG,

H264, MPEG, MPEG-2, MPEG-4,… Nhưng yêu cầu với độ trễ thấp, số lượng khung
ảnh/giây cao khi stream và phần cứng trong mơ hình chỉ sử dụng camera hổ trợ tối đa
640x480 pixels, nên nhóm lựa chọn chuẫn MJPEG để stream hình ảnh từ camera.
2.3.1. Giới thiệu M-JPEG:
MJPEG (Motion JPEG) là chuẩn nén video mà trong đó mỗi khung hình video của
một chuỗi video kỹ thuật số được nén riêng như một hình ảnh JPEG. Được phát triển
cho các ứng dụng PC đa phương tiện, M-JPEG hiện đang được sử dụng bởi các thiết bị
bắt hình video như máy ảnh kỹ thuật số, camera IP, và webcam, cũng như các hệ thống
chỉnh sửa video không tuyến tính. Nó được hỗ trợ bởi QuickTime Player, giao diện điều
khiển PlayStation và các trình duyệt web như Safari, Google Chrome, Mozilla Firefox
và Microsoft Edge.2.
2.3.2. Đặc điểm M-JPEG:
M-JPEG thường được sử dụng trong các hệ thống chỉnh sửa video không tuyến tính.
Các CPU máy tính để bàn hiện đại đủ mạnh để làm việc với video độ nét cao, vì vậy
không cần phần cứng đặc biệt. M-JPEG lần lượt cung cấp truy cập ngẫu nhiên một cách
ngẫu nhiên vào một khung hình. Hỗ trợ M-JPEG cũng phổ biến rộng rãi trong thiết bị
chụp và chỉnh sửa video.
Một số tính năng của M-JPEG:
-

Độ trễ thấp khi xem trực tiếp.
Tốn ít tài ngun CPU máy tính khi xử lý hình ảnh.
Lưu được 30 FPS trở lên.
Chi phí phần cứng xử lý hình ảnh rẻ hơn các chuẩn khác.
Sử dụng băng thông cao.
Yêu cầu dung lượng lưu trữ cao.
Không hỗ trợ đồng bộ âm thanh.
Khả năng nén hình ảnh khơng cao.

2.3.3. Cấu trúc M-JPEG:

Các tệp JPEG Motion JPEG thơng thường có một tiêu đề APP0 (FF E0), với thẻ
'AVI1'. Cấu trúc của dữ liệu này có thể được xem như cấu trúc APP0 trong
filehandler.cpp, nhưng về cơ bản nó chỉ chứa các trường cho tồn bộ hình ảnh JPEG.

10

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

2.4. Gstreamer:
2.4.1. Giới thiệu Gstreamer:
Gstreamer là một framework được sử dụng để phát triển các ứng dụng streaming
media như xây dụng các các media player, hỗ trợ rất nhiều định dạng khác nhau như:
MP3, Ogg/Vorbis, MPED-1/2, AVI,… Và Gstreamer hoạt động như một khuôn khổ đa
phương tiện cho nhiều hệ thống GNU / Linux hoạt động, cũng như Android, OpenBSD,
Mac OS X, Microsoft Windows, và hệ điều hành Symbian.
Gstreamer cung cấp các API cho các ứng dụng media, các plugin, pipeline, các cơ
chế cho các media xử lý hoặc giao tiếp với nhau. Ngoài ra Gstreamer được hỗ trợ hơn
250 plugin và 1000 elements.

Hình 2 - 3: Cấu trúc Gstreamer(*)
(*): Tham khảo gstreamer.freedesktop.org
Gstreamer thiết lập streaming giữa 2 máy chủ với nhau:
 Phần gởi:
- Thu dữ liệu video
- Nén dữ liệu video
- Cắt dữ liệu thành các gói nhỏ hơn
- Gửi các gói dữ liệu qua mạng truyền tải

 Phần nhận:
11

do an


CHƯƠNG 2. CƠ SỞ LÝ THUYẾT

- Nhận các gói từ mạng truyền tải
- Lắp ráp lại các gói dữ liệu vào dữ liệu video
- Giải nén dữ liệu video và hiển thị video.
2.4.2. Tính năng Gstreamer:
Gstreamer cung cấp một giao diện cho:
 Người lập trình ứng dụng có thể dễ dàng tạo các pipelines mà khơng cần viết
nhiều dịng code.
 Người lập trình plugin: cung cấp các API để chúng có thể tự bổ sung lẫn
nhau, các cơ chế phát hiện lỗi tự tìm kiếm.
Hướng đối tượng: Gstreamer thừa hưởng từ Gobject, thư viện Glib 2.0.
Khả năng mở rộng: tất cả các plugins được chạy một cách tự động và nâng cấp độc
lập với nhau.
Hiệu suất cao khi sử dụng Gstreamer:






Sử dụng bộ cấp phát Glib Gslice.
Các plugins liên kết với nhau cực kỳ nhẹ.
Cung cấp cơ chế để làm việc trực tiếp trên vùng nhớ của board.

Tính tốn và hạn chế việc sử dụng memcpy.
Cho phép tăng tốc phần cứng nhở việc sử dụng các plugin có sẵn.

2.4.3. Cấu trúc Gstreamer:
Gstreamer được cấu thành từ:
 Elements: là đối tượng quan trọng nhất trong Gstreamer. Một element là một
thành phần cơ bản để xây dựng lên một khối truyền thông pipeline, một bộ giải
mã, mã hóa cho video và audio. Chúng được liên kết với nhau để dữ liệu có thể
đi qua chúng, một chuỗi Elements sẽ tạo thành pipeline.

Hình 2 - 4: Element trong Gstreamer(*)
(*): Tham khảo gstreamer.freedesktop.org

12

do an


×