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

ĐỒ ÁN TỐT NGHIỆP THU THẬP DỮ LIỆU QUA MẠNG INTERNET TRÊN cơ sở NGÔN NGỮ PYTHON và RASPBERRY PI

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 (1.4 MB, 96 trang )

TRƯỜNG ĐẠI HỌC VINH
VIỆN KỸ THUẬT VÀ CÔNG NGHỆ
____________________________________________________

ĐỒ ÁN

TỐT NGHIỆP ĐẠI HỌC
Đề tài:

THU THẬP DỮ LIỆU QUA MẠNG INTERNET
TRÊN CƠ SỞ NGÔN NGỮ PYTHON VÀ
RASPBERRY PI

SV thực hiện: NGUYỄN NGỌC LĨNH
Lớp:
53K2 ĐTTT
GV hướng dẫn: ThS. HỒ SỸ PHƯƠNG

NGHỆ AN - 2017


LỜI MỞ ĐẦU
Xã hội ngày càng phát triển với những công nghệ hiện đại và
gần gũi với con người. Với mức sống và nhu cầu của con người
ngày càng cao, đòi hỏi nền kỹ thuật phải luôn thay đổi, hoàn thiện
để đáp ứng và nâng cao chất lượng cuộc sống. Trong đó ngành
điện tử góp phần lớn và quan trọng mang lại những thành tựu to
lớn đó.

Với đặc thù của ngành là luôn đón đầu công nghệ,


ngành điện tử luôn cho ra các sản phẩm mới để phục vụ con
người, không chỉ trong cuộc sống mà còn trong khoa học, quân sự,
y tế,… Điều đó không chỉ góp phần thúc đẩy chất lượng cuộc sống
ngày càng tốt hơn, mà còn mở ra nhiều hướng đi mới hỗ trợ con
người nhiều hơn trong tương lai.
Kỹ thuật điện tử kết hợp với sự phát triển của công nghệ
thông tin đã, đang và sẽ tiếp tục cho ra những sản phẩm công
nghệ mới, không những đa chức năng, đa ứng dụng mà kích thước
cũng ngày càng nhỏ hơn, tiện lợi hơn. Một trong những sản phẩm
ấy chính là sự ra đời và phát triển của dòng sản phẩm Raspberry
Pi. Kích thước nhỏ gọn cộng với những tính năng như một máy tính
tí hon, Raspberry Pi là một công cụ tuyệt vời giúp con người dễ
dàng tiếp cận thế giới công nghệ hơn với những ứng dụng, sáng
tạo gần gũi với cuộc sống. Là một nước đang phát triển và trong
giai đoạn “Công nghiệp hóa, hiện đại hóa”, Việt Nam rất cần tiếp
cận với những thiết bị khoa học kỹ thuật để đáp ứng và hoàn
thành chiến lược đặt ra. Vì thế, Việt Nam đã và đang đầu tư nhiều
vào nguồn nhân lực để có thể nắm bắt và dần làm chủ được công
nghệ. Với sự ra đời và phát triển của Raspberry Pi cộng với việc
sản phẩm đã du nhập về Việt Nam, đây là cơ hội để đội ngũ kỹ
thuật vừa có cơ hội tiếp cận với nền kỹ thuật tiên tiến của thế giới,
vừa góp phần sáng tạo thêm những ứng dụng mới để đưa vào đời

1


sống, nhằm cải thiện và nâng cao chất lượng cuộc sống ngày càng
tốt đẹp hơn.
Việc thu thập dữ liệu của các thiết bị, máy móc, động cơ… là
điều cần thiết để đảm bảo tính hoạt động ổn định, liên tục, giảm

sự cố từ đó tối ưu năng suất sản xuất. Vì thế mà khâu quản lý bảo
trì rất được chú trọng tại các đơn vị sản xuất, tùy vào từng điều
kiện hoàn cảnh sẽ có phương pháp công nghệ khác nhau để thu
thập dữ liệu.
Việc nghiên cứu và ứng dụng Raspberry Pi vào thực tế cuộc
sống là một điều rất mới mẻ và cũng rất cần thiết cho những người
đam mê ngành kỹ thuật nói chung và ngành điện tử nói riêng
trong vai trò làm chủ công nghệ hiện nay. Python là một ngôn ngữ
hỗ trợ mẫu đa lập trình bao gồm lập trình hướng đối tượng, lập
trình hàm và mệnh lệnh. Python là ngôn ngữ lập trình chính và
được cài đặt sẵn trên Raspberrry Pi và có vai trò rất quan trọng
không những trên Raspberry Pi, Python không chỉ làm việc trên
lĩnh vực đặc biệt như lập trình web, và đó là lí do tại sao ngôn ngữ
này là đa mục đích bởi vì nó có thể được sử dụng với web,
enterprise, 3D CAD…
Để góp phần tạo nên nền tảng ban đầu vững chắc cho việc
học tập, tìm hiểu kỹ thuật vi xử lý và quen với lập trình bằng ngôn
ngữ cấp cao, em đã tập trung nghiên cứu đề tài: “Thu thập dữ
liệu qua mạng Internet trên cơ sở ngôn ngữ Python và
Raspberry Pi”.
Những kiến thức, năng lực đạt được trong quá trình học tập ở
trường sẽ được đánh giá qua đợt bảo vệ đồ án cuối khóa. Vì vậy
em sẽ cố gắng tận dụng những kiến thức đã học ở trường cùng với
sự tìm tòi, nghiên cứu, dưới sự hướng dẫn tận tình của giáo viên
hướng dẫn cùng thầy cô thuộc Viện Kỹ thuật và Công Nghệ để có
thể hoàn thành tốt đồ án này.

2



Mặc dù đã cố gắng hoàn thành nhiệm vụ của đề tài đặt ra và
đúng thời hạn nhưng chắc chắn sẽ không tránh khỏi những thiếu
sót, mong quý thầy cô và các bạn sinh viên thông cảm. Em mong
nhận được những ý kiến đóng góp của quý thầy cô và các bạn sinh
viên.
Em xin chân thành gửi lời cảm ơn đến Thầy giáo ThS. Hồ Sỹ
Phương đã trực tiếp hướng dẫn và tận tình giúp đỡ, tạo điều kiện
để em hoàn thành tốt đề tài.
Bên cạnh đó, em cũng xin chân thành gửi lời cảm ơn đến các
quý thầy cô trong trường Đại học Vinh nói chung và Viện Kỹ
thuật và Công nghệ nói riêng đã truyền đạt những kiến thức quý
báu, tạo dựng nền móng đầu tiên cho em thực hiện có cơ sở cũng
như nền tảng kiến thức cần thiết để em hoàn thành tốt đề tài Đồ
Án Tốt nghiệp cũng như định hướng nghề nghiệp tương lai sau này.
Em cũng xin chân thành gửi lời đồng cảm ơn đến các bạn
sinh viên cùng lớp 53K2-108 đã chia sẻ, trao đổi những kiến thức
cũng như những kinh nghiệm quý báu của mình để góp phần giúp
em thực hiện hoàn thành đề tài tốt hơn.
Xin chân thành cảm ơn!
Nghệ An, ngày 22 tháng 7 năm
2017
Sinh viên thực hiện

Nguyễn Ngọc Lĩnh

3


TÓM TẮT ĐỒ ÁN


Trong đồ án này cho thấy rằng trong nhiều trường hợp, bạn
cần phải tìm ra câu trả lời để tìm khu vực nóng và ẩm của tủ lưu
trữ. Một khi chỉ số vượt qua con số báo động mà chính bạn không
biết, chi phí duy trì hoặc thay thế thiết bị lưu trữ là rất lớn. Vì vậy,
luận án này chúng tôi nghiên cứu, thiết kế, lắp ráp các tủ để cảnh
báo nhiệt độ và độ ẩm. Raspberry Pi là một thiết bị giám sát có
quyền truy cập vào cơ sở dữ liệu SQL và lấy dữ liệu từ các cảm
biến tích hợp. Màn hình hiển thị nhiệt độ với biểu đồ giao diện web,
qua đó cho phép dễ dàng đọc dữ liệu và lưu trữ kết quả đến một
cơ sở dữ liệu hiệu quả về chi phí để bảo trì hoặc thay thế các dịch
vụ cho thiết bị an ninh.
ABSTRACT
In this thesis shows us that in many cases, you need to find
the answer to finding the hot and humid area of the storage
cabinets. Once the index overcomes the alarming number that
yourself do not know, the cost of maintaining or replacing the
stored equipment is very significant. So this thesis we researches,
designs, assembles the cabinets to alert the temperature and
humidity. Raspberry Pi is as a monitoring device with access to the
SQL database and retrieves data from integrated sensors. The
display monitors the temperature with the web interface graph,
thereby allowing for easy reading of data and storing results to a
cost-effective database for maintenance or replacement services
for a security appliance.

4


MỤC LỤC
LỜI MỞ ĐẦU............................................................................................................i

TÓM TẮT ĐỒ ÁN...................................................................................................iv
MỤC LỤC................................................................................................................. v
DANH MỤC HÌNH................................................................................................vii
DANH MỤC BẢNG..............................................................................................viii
PHẦN MỞ ĐẦU......................................................................................................ix
CHƯƠNG 1 TỔNG QUAN VỀ THU THẬP DỮ LIỆU DÙNG RASPBERRY PI..1
1.1. Tổng quan về thu thập dữ liệu......................................................................1
1.1.1 Các phương pháp thu thập dữ liệu........................................................1
1.1.2 Ứng dụng trong thực tiễn......................................................................3
1.2 Thu thập dữ liệu dùng Raspberry Pi..............................................................3
1.2.1 Raspberry Pi.........................................................................................3
1.2.2 Cảm biến DHT22...............................................................................15
1.2.3 Web server..........................................................................................20
1.2 Kết luận chương 1.......................................................................................23
CHƯƠNG 2 PYTHON VÀ ỨNG DỤNG PYTHON TRONG RASPBERRY PI. . .24
2.1 Tổng quan về ngôn ngữ lập trình Python.....................................................24
2.1.1 Giới thệu về ngôn ngữ lập trình Python..............................................24
2.1.2 Lịch sử phát triển Python....................................................................24
2.1.3 Đặc điểm Python................................................................................26
2.1.4 Cú pháp Python..................................................................................33
2.1.5 Ứng dụng Python................................................................................36
2.2 Python trên Raspberry Pi và ứng dụng........................................................38
2.2.1 Python trên Raspberry Pi....................................................................38
2.2.2 Ứng dụng Python trên Raspberry Pi...................................................51
2.3 Kết luận chương 2.......................................................................................52
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG THU THẬP DỮ LIỆU QUA MẠNG
INTERNET TRÊN CƠ SỞ NGÔN NGỮ PYTHON VÀ RASPBERRY PI............53
3.1 Thiết kế phần cứng cho hệ thống.................................................................53
5



3.2 Lập trình cho hệ thống sử dụng ngôn ngữ Python và HTML......................54
3.2.1 Lập trình ngôn ngữ Python.................................................................54
3.2.2 Lập trình ngôn ngữ HTML.................................................................64
3.3 Kết quả nghiên cứu......................................................................................66
3.3.1 Kết quả phần cứng..............................................................................66
3.3.2 Kết quả xây dựng web server.............................................................66
3.3.3 Kết quả tổng quát hệ thống thu thập dữ liệu.......................................67
3.4 Kết luận chương 3.......................................................................................67
KẾT LUẬN.............................................................................................................68
TÀI LIỆU THAM KHẢO.......................................................................................69
PHỤ LỤC................................................................................................................ 70

6


DANH MỤC HÌNH
Hình 1.1 Hình ảnh thực tế Raspberry Pi 3.................................................................4
Hình 1.2 Cấu tạo của Raspberry Pi............................................................................8
Hình 1.3 Sơ đồ chân GPIO của Raspberry Pi..........................................................10
Hình 1.4 Phụ kiện kèm theo với Raspberry Pi.........................................................12
Hình 1.5 Một số ứng dụng của Raspberry Pi...........................................................14
Hình 1.6 Cảm biến nhiệt độ, độ ẩm DHT22............................................................15
Hình 1.7 Kích thước thực tế của cảm biến DHT22 (đơn vị mm).............................17
Hình 1.8 Cảm biến DHT22 kết nối với vi xử lý......................................................17
Hình 1.9 Quá trình gửi tín hiệu của vi xử lí.............................................................18
Hình 1.10 Dữ liệu bit 0 nhận đươc từ DHT22.........................................................19
Hình 1.11 Dữ liệu bit 1 nhận được từ DHT22.........................................................19
Hình 1.12 Web Server.............................................................................................20
Hình 2.1 Bảng xếp hạng sử dụng ngôn ngữ lập trình trên thế giới (năm 2016)......36

Hình 2.2 Biểu đồ thống kê việc giảng dạy ngôn ngữ lập trình.................................37
Hình 2.3 Truy nhập Python từ Menu.......................................................................39
Hình 3.1 Sơ đồ khối hệ thống thu thập dữ liệu dùng Raspberry Pi..........................53
Hình 3.2 Hình ảnh thực tế phần cứng hệ thống thu thập dữ liệu..............................66
Hình 3.3 Hình ảnh thực tế giao diện web thu thập dữ liệu.......................................66
Hình 3.4 Biểu đồ thể hiện giá trị nhiệt độ và độ ẩm theo thời gian..........................67
Hình 3.5 Chương trình nhậ dữ liệu trên Raspberry Pi.............................................67

7


DANH MỤC BẢNG
Bảng 1.1 Các thông số kỹ thuật của cảm biến DHT22............................................16
Bảng 2.1 Các từ khóa trong Python.........................................................................28
Bảng 2.2 Chức năng tích hơp trên Python...............................................................39
Bảng 3.1 Một số thư viện trên cần quan tâm với người dùng Raspberry Pi.............60

8


PHẦN MỞ ĐẦU
Thu thập dữ liệu của các thiết bị, máy móc, động cơ… là điều
cần thiết để đảm bảo tính hoạt động ổn định, liên tục, giảm sự cố
từ đó tối ưu năng suất sản xuất. Vì thế mà khâu quản lý bảo trì rất
được chú trọng tại các đơn vị sản xuất, tùy vào từng điều kiện
hoàn cảnh sẽ có phương pháp công nghệ khác nhau để thu thập
dữ liệu.
Đề tài “Thu thập dữ liệu qua mạng Internet trên cơ sở ngôn
ngữ Python và Raspberry Pi” được nghiên cứu nhằm tìm hiểu về
các phương pháp thu thập dữ liệu, tìm hiểu về Raspberry Pi và thu

thập dữ liệu dùng Raspberry Pi và ngôn ngữ lập trình Python.
Cấu trúc của đồ án được trình bày trong 3 chương:
Chương 1 Tổng quan về thu thập dữu liệu dùng
Raspberry Pi
Giới thiệu tổng quan về thu thập dữ liệu, các phương pháp
thu thập dữ liệu, ứng dụng của thu thập dữ liệu trong thực tiễn và
thu thập dữ liệu dùng Raspberry Pi.
Chương 2 Python và ứng dụng của Python trong
Raspberry Pi
Trong chương này giới thiệu về ngôn ngữ lập trình Python và
ứng dụng Python trên Raspberry Pi
Chương 3 Thiết kế hệ thống thu thập dữ liệu qua mạng
Internet trên cơ sở ngôn ngữ Python và Raspberry Pi
Chương này thực hiện đi vào thiết kế hệ thống thu thập dữ
liệu và lập trình cho chương trình thu thập dữ liệu bằng hai ngôn
ngữ Python tích hợp HTML.

9


CHƯƠNG 1 TỔNG QUAN VỀ THU THẬP DỮ LIỆU
DÙNG RASPBERRY PI
Giới thiệu tổng quan về thu thập dữ liệu, các phương pháp
thu thập dữ liệu, ứng dụng của thu thập dữ liệu trong thực tiễn và
thu thập dữ liệu dùng Raspberry Pi.
1.1. Tổng quan về thu thập dữ liệu
Thu thập dữ liệu là quá trình thu thập và xử lý thông tin cần
quan tâm một cách có hệ thống nhằm kiểm tra, nắm bắt tình
trạng, phân tích để đưa ra kết quả của vấn đề nghiên cứu. Từ đó
cho phép xây dựng một hệ thống thu thập dữ liệu hoàn chỉnh và

đáng tin cậy phù hợp với yêu cầu thay đổi cho từng mục đích cụ
thể được đặt ra. Thu thập dữ liệu là công việc quan trọng và cần
thiết trong nhiều lĩnh vực bao gồm khoa học tự nhiên và xã hội,
sản xuất và kinh doanh…
Quá trình thu thập dữ liệu đòi hỏi sự chính xác và mang tính
đáp ứng linh hoạt, đồng thời phải bao quát tất cả các khả năng xảy
ra sự thay đổi của thông tin cần nghiên cứu. Bởi vì thông tin sai sót
sẽ dẫn đến lãng phí nguồn nhân lực, gây nhầm lẫn cho các nhà
nghiên cứu, gây thiệt hại trong sản xuất kinh doanh…
1.1.1

Các phương pháp thu thập dữ liệu

Trong quá trình thu thập dữ liệu thường sử dụng các phương
pháp cơ bản sau để thu thập thông tin:
- Phương pháp nghiên cứu tài liệu: là phương pháp thu thập
thông tin hoàn toàn gián tiếp, không tiếp xúc với đối tượng khảo
sát.
Ví dụ: Khi cần biết thông tin cấu tạo, lịch sử hoạt động và bảo
trì của một chiếc máy bay, người nghiên cứu sẽ rất khó có điều
kiện quan sát, tiếp xúc với đối tượng mà thường phải thu thập
thông tin qua các tài liệu chuyên ngành, các ghi chép của người
trực tiếp vận hành, bảo trì.
1


Ưu điểm: không cần phải tiếp xúc trực tiếp với đối tượng.
Nhược điểm: khó khăn trong việc tìm kiếm tài liệu, không cập
nhật được tình trạng tức thời của đối tượng.
- Phương pháp phi thực nghiệm: là phương pháp thu thập

thông tin trực tiếp trên đối tượng khảo sát nhưng không tác động
lên đối tượng khảo sát.
Ví dụ: Muốn biết các thông số vận hành của 1 thiết bị máy
móc, động cơ thì người thu thập có thể trực tiếp quan sát, tiếp xúc
với đối tượng hoặc thông qua các thiết bị đo để thu thập thông tin
chỉ cho phép lấy được thông tin tại nơi đặt thiết bị đo.
Đặc biệt người thu thập có thể lấy thông tin từ thiết bị đo mà
không cần có mặt tại nơi đặt thiết bị và máy đo. Thông tin từ thiết
bị và máy đo thông qua môi trường GPRS truyền đến điện thoại
hoặc thông qua môi trường internet truyền đến một web server để
người thu thập truy cập vào lấy thông tin.
Ưu điểm: dữ liệu được cập nhật liên tục, độ chính xác tương
đối cao.
Nhược điểm: chi phí đầu tư cao.
- Phương pháp thực nghiệm: là phương pháp thu thập thông
tin trực tiếp, có tác động gây biến đổi đối tượng khảo sát và môi
trường xung quanh đối tượng khảo sát.
Ví dụ: Khi cần thu thập dữ liệu địa chất thì người khảo sát địa
chất phải thực hiện công việc đào, lấy mẫu, đo đạc. Từ đó phân
tích, thống kê các dữ liệu có được.
Ưu điểm: độ chính xác cao, nắm bắt cặn kẽ thông tin.
Nhược điểm: tốn nhiều thời gian và công sức.
- Phương pháp trắc nghiệm: Trong nghiên cứu công nghệ gọi
là thử nghiệm. Là phương pháp thu thập thông tin có tác động gây
biến đổi các biến của môi trường khảo sát. Không gây tác động
nào làm biến đổi các thông số trạng thái của bản thân đối tượng
khảo sát.
2



Ví dụ: Trong cuộc điều tra ý kiến của người dân để kiểm tra
phản ứng của dư luận về quy định đi xe chính chủ, người thu thập
thông tin sẽ lập ra một bảng liệt kê các câu hỏi để lấy ý kiến của
người dân. Sau đó sẽ xử lý và thống kê các ý kiến để có được
thông tin cần thiết.
Ưu điểm: Ít tốn chi phí nhất trong tất cả các phương pháp.
Nhược điểm: Mức độ phức tạp của thông tin gây khó khăn
trong việc phân tích và đưa ra kết luận.
Ở đồ án này sử dụng phương pháp thu thập dữ liệu phi thực
nghiệm, thông qua thiết bị đo, gửi thông tin qua môi trường truyền
dữ liệu, có hai môi trường truyền thông dụng là GPRS và Internet.
GPRS là dịch vụ vô tuyến gói tổng hợp dành cho những người
dùng hệ thống thông tin di động toàn cầu GSM và điện thoại di
động IS-136. Nó cung cấp dữ liệu ở tốc độ từ 56 đến 114 Kb/s. Hạn
chế của GPRS là tốc độ và băng thông thấp.
Internet là một hệ thống thông tin toàn cầu có thể được truy
nhập công cộng gồm các máy tính được liên kết với nhau, có tốc
độ truyền nhận dữ liệu cao (Mb/s), ứng dụng rộng rãi.
Vì nhu cầu truyền nhận dữ liệu lớn và tính tiện lợi cho người
sử dụng nên đồ án này sử dụng môi trường truyền Internet.
1.1.2 Ứng dụng trong thực tiễn
Thu thập dữ liệu là công việc cần thiết và quan trọng, được
ứng dụng rộng rãi trong nhiều lĩnh vực ngành nghề.
- Trong khoa học tự nhiên: thu thập các số liệu, mẫu vật trong
nghiên cứu khoa học.
- Trong xã hội: điều tra dân số, khảo sát chất lượng cuộc
sống, thu thập số liệu trên hiện trường, vụ án để phục vụ cho quá
trình điều tra tìm kiếm nguyên nhân và tội phạm…
- Trong sản xuất: thu thập các số liệu của máy móc, sản
phẩm trong dây chuyền sản xuất, giám sát tình trạng hoạt động

của thiết bị máy móc…
3


- Trong kinh doanh: khảo sát nhu cầu tiêu dùng của khách
hàng, điều tra hoạt động các đối thủ cạnh tranh để có phương án
cạnh tranh thích hợp…
Một ứng dụng thực tiễn là trong kinh doanh của công ty sản
xuất thiết bị điện công nghiệp ABB, các nhân viên quản lý sẽ cập
nhật thông tin về số lượng, chủng loại, giá thành, các thông số kỹ
thuật của các mặt hàng kinh doanh từ các giấy tờ nhập hàng và
cập nhật dữ liệu đo đếm từ các thiết bị đo trong quá trình sản xuất
lên trang chủ của công ty.
1.2 Thu thập dữ liệu dùng Raspberry Pi
Đề tài này thực hiện việc thu thập dữ liệu về nhiệt độ và độ
ẩm liệu dùng Raspberry Pi
1.2.1 Raspberry Pi
Giới thiệu về Raspberry Pi
Raspberry Pi là một chiếc máy tính tí hon giá chỉ 35$ chạy hệ
điều hành Linux ra mắt vào tháng 2 năm 2012. Ban đầu Raspberry
Pi được phát triển dựa trên ý tưởng tiến sĩ Eben Upton tại đại học
Cambridge muốn tạo ra một chiếc máy tính giá rẻ để học sinh có
thể dễ dàng tiếp cận và khám phá thế giới tin học. Dự định khiêm
tốn của ông đến cuối đời là có thể bán được tổng cộng 1000 bo
mạch cho các trường học. Vậy thì điều gì đã làm nên thành công
ngoài sức tưởng tượng của Raspberry Pi khi đã bán được hơn một
triệu bo mạch chỉ trong vòng chưa đầy một năm?

4



Hình 1.1 Hình ảnh thực tế Raspberry Pi 3
Một số ưu điểm của Raspberry Pi:
- Raspberry Pi có mức giá hấp dẫn: 35$ cho một chiếc bo
mạch có thể làm được hầu như mọi ứng dụng hằng ngày như lướt
web, học lập trình, xem phim HD đến những ý tưởng không ngờ
đến như điều khiển robot, nhà thông minh…
- Raspberry Pi chạy hệ điều hành Linux: 99% những thứ làm
trên máy tính Windows đều có thể thực hiện được trên Linux và
quan trọng là tất cả đều miễn phí.
- Raspberry Pi có 8 ngõ GPIO: có thể kết nối và điều khiển
các thiết bị trong cuộc sống thực tế như đèn, động cơ, GPS… Rất
nhiều ứng dụng nhà thông minh đã sử dụng Raspberry Pi làm bộ
điều khiển trung tâm.
- Raspberry Pi có kích thước tí hon: chỉ tương đương một
chiếc thẻ ATM và nặng khoảng 50 gram. Gắn với chiếc tivi,
Raspberry có thể biến thành một thiết bị giải trí thông minh trong
phòng khách. Gắn với màn hình và bàn phím, chuột, Raspberry có
thể biến thành một chiếc máy tính đúng nghĩa. Nhỏ gọn và tiện lợi.
- Cộng đồng Raspberry Pi phát triển rất nhanh trên thế
giới: hầu hết những thắc mắc của người dùng đều được giải đáp
rất nhanh và còn hơn thế nữa người dùng có thể tìm thấy hàng
ngàn dự án đã thực hiện và vô số ý tưởng độc đáo.
5


Với những ưu điểm độc đáo trên, Raspberry Pi đã vượt ra khỏi
biên giới của trường học và trở thành thiết bị ưa thích của rất
nhiều người đam mê điện tử và lập trình. Sự thành công của nó đã
mở ra một bước phát triển mới cho tin học, đem máy tính và cảm

hứng lập trình đến gần mọi người hơn bao giờ hết.
Raspberry Pi có 3 mẫu chính đó là:
- Raspberry Pi model A
- Raspberry Pi model B
- Raspberry Pi model B+
Về cơ bản, phần lớn cấu trúc của 3 mẫu này giống nhau. Tuy
nhiên, mỗi mẫu Raspberry Pi lại có một số điểm khác biệt:
- RPi model A: RAM chỉ có dung lượng 256MB, chỉ có một
cổng USB, không có cổng Ethernet (dùng để kết nối dây cáp
mạng), có 26 chân GPIO.
- RPi model B: Có 2 cổng USB và một cổng Ethernet (kết nối
mạng LAN), có 26 chân GPIO. Model B lại có 2 phiên bản khác
nhau. Về cơ bản, 2 phiên bản này giống nhau, chỉ khác ở dung
lượng bộ nhớ RAM
Raspberry Pi model B v1: RAM có dung lượng 256MB
Raspberry Pi model B v2: RAM có dung lượng 512MB.
- Raspberry Pi model B+: Có sự cải tiến về cổng kết nối cũng
như số lượng chân GPIO. Ở mẫu B+ này, Raspberry Pi có 4 cổng
USB (nhiều hơn model B 2 cổng, nhiều hơn model A 3 cổng) giúp
tăng khả năng kết nối thiết bị ngoại vi, có đến 40 chân GPIO (nhiều
hơn 13 chân so với model A và model B). Ngoài ra, mẫu B+, ngõ
video và ngõ audio được tích hợp thành một cổng duy nhất (thay
vì hai cổng riêng biệt như model A và model B)
Lịch sử phát triển của Raspberry Pi
Vào năm 2006, Eben Upton cùng các đồng nghiệp làm việc
tại phòng thí nghiệm máy tính đại học Cambridge bắt đầu cảm
thấy quan ngại về việc trình độ đầu vào của các tân sinh viên ngày
6



càng giảm. Vào thời điểm những năm 90, các sinh viên khi mới
nhập học ngành khoa học máy tính đều đã có những kinh nghiệm
nhất định về lập trình; nhưng mọi chuyện rất khác vào những năm
2000, khi mà ngay cả những sinh viên khá nhất cũng chỉ biết đôi
chút về lập trình web.
Có điều gì đó đã thay đổi cái cách mà trẻ em tương tác với
máy tính. Một vài nguyên nhân được tìm ra như: những chứng chỉ
thông dụng hay mà trẻ em bây giờ hay phải học là về Word và
Exel; sự đi xuống của kỉ nguyên dot-com (.com); và sự phát triển
như vũ bão của video game cũng như game pc đã thế chỗ cho
Amigas, BBC Micros 63 hay là Spectrum ZX những công cụ mà thế
hệ trước dùng để lập trình (bởi thế các bậc phụ huynh có xu hướng
cấm đoán con em với máy tính dù cho bọn trẻ có làm những việc
có ích hơn là chơi game, như học lập trình chẳng hạn).
Eben Upton và các đồng nghiệp muốn làm điều gì đó để thay
đổi thực trạng này. Họ nảy ra ý tưởng về những chiếc máy tính
mini, giá rẻ và có khả năng lập trình được dành cho trẻ em. Họ dự
tính vào ngày mở của đại học Cambridge sẽ trao chúng cho các
em học sinh có đam mê với khoa học máy tính; rồi sau đó vài
tháng họ sẽ liên lạc để tìm hiểu xem bọn trẻ đã làm được gì với
những mini pc này. Như vậy,

những thiết kế đầu tiên của

Raspberry Pi ra đời vào năm 2006.
Đến năm 2008, Eben Upton vào làm việc tại Broadcom với
vai trò thiết kế chip. Công việc này giúp ông có nhiều điều kiện tốt
hơn để phát triển Raspberry Pi. Ông đã sử dụng các linh kiện và
chip điện tử có hiệu năng cao (nhưng giá thành rẻ gấp nhiều lần
ngoài thị trường) ở chính công ty ông làm việc để hoàn thiện sản

phẩm của mình. Ông cùng các cộng tác của mình cũng chọn Linux
sẽ là hệ điều hành cho Raspberry Pi bởi đặc điểm đòi hỏi cấu hình
pc thấp, “nguồn mở” và quan trọng nhất là nó có “tính lập trình”
cao hơn so với Windows. Với những nỗ lực của Eben Upton và đồng
7


nghiệp, đến năm 2011, Raspberry Pi Model B, phiên bản hoàn
thiện của Raspberry Pi, đã chính thức được tung ra thị trường với
giá chỉ 35$.
Về nguồn gốc của cái tên Raspberry Pi, phòng thí nghiệm
máy tính của đại học Cambridge thường đặt tên các sản phẩm của
mình bằng tên các loại trái cây, “Raspberry” nghĩa là “quả dâu”
còn “Pi” là ám chỉ “python” ngôn ngữ lập trình chính thức của
Raspberry Pi.
Làm việc với Raspberry Pi qua máy tính
Trong nhiều ứng dụng có không gian hạn chế chẳng hạn như
dùng Raspberry Pi để điều khiển cửa tự động thì người ta thường
không muốn kết nối rườm rà màn hình, bàn phím, chuột lên
Raspberry Pi mà vẫn có thể khiển được nó. Khi đó ta có thể sử
dụng 2 công nghệ phổ biến để điều khiển Raspberry Pi từ xa bằng
một máy tính khác là SSH và Remote Desktop Connection. Mỗi
công nghệ có đặc điểm riêng phù hợp với từng ứng dụng trên
Raspberry Pi.
Giao tiếp Raspberry Pi bằng SSH:
SSH (viết tắt của từ Secure Socket Shell) là một giao thức
mạng được sử dụng để đăng nhập vào một máy tính từ xa. Chẳng
hạn bạn có một máy tính ở nhà cài Linux có cài SSH thì bạn có thể
đăng nhập vào máy tính đó từ xa để quản lý dữ liệu. Các dữ liệu
mà bạn gửi đi hoặc nhận thông qua giao thức SSH sẽ đều được mã

hóa lại để bảo mật thông tin an toàn hơn. Để sử dụng SSH ta phải
cài đặt trên cả Raspberry Pi lẫn máy tính
Giao tiếp với Raspberry bằng Remote Desktop Connection:
Remote Desktop Connection là công nghệ cho phép máy tính
truy cập vào môi trường desktop lẫn bàn phím và chuột của một
máy tính khác. Để sử dụng thì ta cần cài đặt Remote Desktop
Connection lên máy tính được điều khiển. Trong trường hợp này

8


muốn điều khiển Raspberry Pi từ xa thì ta cài Remote Desktop
Connection lên Raspberry Pi.
Nguồn điện cung cấp cho Raspberry Pi
Nguồn điện cung cấp cho Raspberry Pi là một yếu tố rất quan
trọng trong quá trình sử dụng. Việc dung nguồn điện không đảm
bảo công suất, chất lượng có thể dẫn đến tình trạng hỏng mạch
Nguồn điện cung cấp cho Raspberry Pi thông qua cổng Micro
USB hàn chết trên board mạch, hiệu điện thế 5.1V. Ngoài nguồn
chính hãng, có thể dùng nguồn ZEQI 5V-2.5A hoặc nguồn của các
thiết bị có sẵn như điện thoại, máy tính bảng…
Dòng điện cung cấp cho Raspberry Pi phụ thuộc vào một số
thiết bị ngoại vi kết nối đến nó. Nếu chỉ có riêng mỗi Raspberry Pi
mà không có kết nối với bất kỳ thiết bị nào hết thì dòng model B
chỉ cần 700mA đến 1000mA là có thể hoạt động được, với dòng
sản phẩm model A thì có thể thấp hơn, dòng này chỉ cần 500mA là
hoạt động được. Tuy nhiên, khác với các phiên bản trước,
Raspberry Pi3 sử dụng CPU có xung nhịp 1.2GHz nên tiêu tốn điện
năng hơn vì vậy nên sử dụng dòng 2.5A. Khi sử dụng Raspberry Pi
cần lưu ý đến dòng điện như:

- Các chân GIPO mỗi chân dòng an toàn ở mức 16mA, toàn
bộ chân an toàn ở mức 50mA
- Cổng HDMI sử dụng ở mức 50mA
- Bàn phím và chuột sử dụng từ 100mA đến 1000mA…
Các hệ điều hành trên Raspberry Pi
Raspberry Pi có rất nhiều hệ điều hành hỗ trợ, trong đó có
Raspbian là hệ điều hành thông dụng và là hệ điều hành chính
thức của Raspberry Pi Foundation, ngoài ra có 7 hệ điều hành khác
được xác nhận hỗ trợ hệ điều hành do các nhà phát triển tự tối ưu.
Một số hệ điều hành thông dụng cho Raspberry Pi:
- Raspbian
- Ubuntu Mate
9


- Snappy Core Ubuntu
- Windows 10 loT Core
- OSMC
- OpenELEC
- PiNet
- RiscOS
Trong đồ án này tôi lựa chọn hệ điều hành Raspbian, một hệ
điều hành cơ bản, phổ biến nhất và do chính Raspberry Pi
Foundation cung cấp. Nó cũng được hãng khuyến cáo sử dụng, nhất
là cho người mới bắt đầu làm quen với Raspberry Pi.
Cấu tạo Raspberry Pi
Phần cứng

Hình 1.2 Cấu tạo của Raspberry Pi
- Trái tim của Raspberry Pi là chip SOC (System-OnChip) Broadcom BCM2837 chipset chạy ở tốc độ 1.2GHz. Chip này

tương đương với nhiều loại được sử dụng trong smartphone phổ
thông hiện nay, và có thể chạy được hệ điều hành Linux. Tích hợp
trên chip này là nhân đồ họa (GPU) Broadcom VideoCore IV. GPU
này đủ mạnh để có thể chơi 1 số game phổ thông và phát video
chuẩn full HD.
- Có 40 chân ngõ GPIO (General Purpose Input Output): đúng
như tên gọi của nó, chúng ta có thể kết nối và điều khiển rất nhiều
thiết bị điện tử/cơ khí khác.
10


- Ngõ HDMI: dùng để kết nối Raspberry Pi với màn hình máy
tính hay tivi có hỗ trợ cổng HDMI.
- Ngõ RCA Video (analog): khi thiết kế Raspberry Pi người ta
cũng tính đến trường hợp người sử dụng ở các nước đang phát
triển không có điều kiện sắm một chiếc tivi đời mới tích hợp cổng
HDMI. Vì vậy cổng video analog này được thêm vào, giúp người
dùng có thể kết nối với chiếc tivi đời cũ mà không phải lo lắng.
- Ngõ audio 3.5mm: kết nối dễ dàng với loa ngoài hay
headphone.
- Cổng HDMI hỗ trợ full HDMI, nếu kết nối với tivi ngõ âm
thanh được tích hợp theo đường tín hiệu HDMI nên không cần sử
dụng ngõ audio
- Cổng USB: Có thể mở rộng phạm vi ứng dụng nhờ vào việc
tích hợp 4 cổng USB 2.0 để có thể kết nối với bàn phím, chuột hay
webcam, bộ thu GPS… Vì Raspberry Pi chạy Linux nên hầu hết
thiết bị chỉ cần cắm-và-chạy (Plug-&-Play) mà không cần cài driver
phức tạp.
- Cổng Ethernet: cho phép kết nối Internet tốc độ tối đa
100Mbps

- Khe cắm thẻ SD: Raspberry Pi không tích hợp ổ cứng. Thay
vào đó nó dùng thẻ SD để lưu trữ dữ liệu. Toàn bộ hệ điều hành
Linux sẽ hoạt động trên thẻ SD này vì vậy nó cần kích thước thẻ
nhớ tối thiểu 4 GB và dung lượng hỗ trợ tối đa là 32GB. Khe gắn
Micro SD card được hàn chết trên board theo kiểu Push-Pull (nghĩa
là bạn muốn gắn vào thì đẩy thẻ vào, lấy ra thì kéo ra), theo như
hãng giải thích sẽ tốt hơn kiểu Push-Push trước kia.
- Đèn LED: trên Pi có 5 đèn LED để hiển thị tình trạng hoạt
động.
- Jack nguồn micro USB 5V, tối thiểu 700mA: nhờ thiết kế này
mà chúng ta có thể tận dụng hầu hết các sạc điện thoại di động
trên thị trường để cấp nguồn điện cho Raspberry Pi.
Sơ đồ các chân ngõ vào/ra trên Raspberry Pi
11


Hình 1.3 Sơ đồ chân GPIO của Raspberry Pi
- Đặc tính điện của các chân GPIO:
Có tổng cộng 40 chân được chia thành 2 hàng.
Các chân GPIO có điện áp ngõ ra là 3V3 hoặc 5V
Dòng điện ngõ ra max trên các chân GPIO là 50 mA.
Các chân có nhiều chức năng bao gồm:
I2C Bus
Pin 3 = I2C SDA
Pin 5 = I2C SCL
Serial port
Pin 8 = UART1 TXD
Pin 10 = UART1 RXD
SPI bus


12


Pin 19 = SPI0 MOSI
Pin 21 = SPI0 MISO
Pin 23 = SPI0 SCLK
Pin 24 = SPI0 CE0
Pin 26 = SPI0 CE1
Phần mềm
- Tích hợp sẵn Wifi, bluetooth BLE tiết kiệm điện
- Vi xử lý hình ảnh VideoCore IV 3D
- Hỗ trợ hiển thị DSI
- Bộ nhớ RAM 1G
- Giao tiếp Camera qua CSI
Phụ kiện hỗ trợ kèm theo Raspberry Pi
Raspberry Pi được bán dưới dạng một board mạch đơn lẻ
không đi kèm phụ kiện nhằm giảm chi phí sản xuất, vì vậy người
sử dụng có thể tự lựa chọn phụ kiện tùy theo mục đích sử dụng.
Sau đây sẽ là tổng hợp một số phụ kiện hữu ích cho Raspberry Pi.
Phụ kiện cơ bản:
- Nguồn: loại có jack micro USB, 5V, tối thiểu 700mA.
- Thẻ nhớ SD: đây là nơi lưu trữ toàn bộ hệ điều hành của
Raspberry Pi và cả dữ liệu do đó nên đầu tư thẻ nhớ thật tốt, tốc
độ từ class 6 trở lên. Pi hoạt động trên thẻ nhớ có dung lượng ít
nhất là 4 GB.
- Bàn phím và chuột: là hai thành phần nhập liệu cơ bản của
máy tính.
- Cáp mạng: để kết nối Internet hoặc kết nối với máy tính. Chỉ
cần cáp RJ45 bình thường, bắt chéo hay không đều được
- Cáp màn hình: tùy theo loại màn hình sử dụng mà tương

thích với cáp HDMI-HDMI hoặc HDMI-DVI hoặc HDMI-VGA hay RCA
Video.
13


- Case bảo vệ: để tránh vô tình chạm vào mạch điện của
Raspberry Pi hoặc bảo vệ Raspberry Pi khi đặt ở ngoài trời thì case
bảo vệ là rất cần thiết.

Hình 1.4 Phụ kiện kèm theo với Raspberry Pi
Phụ kiện mở rộng:
Webcam hoặc Pi camera module (25$): cả hai đều hoạt động
tốt trên Raspberry Pi. Điểm khác biệt là webcam kết nối qua USB
còn camera module sử dụng khe cắm CSI có sẵn trên Raspberry Pi.
Chất lượng của camera module được đánh giá rất tốt so với giá
tiền và quan trọng hơn là nó có thể tận dụng sức mạnh của bộ xử
lý đồ họa Video Core IV trên Pi mà webcam không truy cập được.
Ngoài ra thì webcam được bán dưới dạng sản phẩm đóng gói hoàn
chỉnh còn camera module thì dưới dạng board module nên người
dùng phải sử dụng cẩn thận hơn.
Wifi USB dongle: Raspberry Pi hỗ trợ dùng thiết bị wifi dongle
để kết nối Pi với mạng wifi thông qua qua cổng USB. Hai sản phẩm
được sử dụng phổ biến là Edimax EW-7811Un và Ralink RT5370 vì
14


rất nhỏ gọn, giá thành rẻ (khoảng 10$) và hoạt động tốt trên Pi.
Riêng loại Ralink thì còn có thể kiêm luôn chức năng hot spot phát
wifi.
Màn hình cảm ứng: gắn lên Raspberry Pi thay cho bàn phím

và chuột giá bán khoảng 30$.
Ứng dụng của Raspberry Pi
Raspberry Pi không chỉ là một nền tảng phần cứng thú vị để
ứng dụng cho các dự án IoT (Internet of Things) mà còn là công cụ
giúp các nhà phát triển học hỏi và hoàn thiện kĩ năng Internet kết
nối vạn vật. IoT được cho là chủ đề nóng nhất trong lĩnh vực công
nghệ thông tin hiện nay. Mọi tổ chức muốn tham gia vào xu hướng
IoT thì luôn đòi hỏi các chuyên gia công nghệ thông tin phải được
trang bị các kỹ năng, kinh nghiệm cho các dự án của mình. Có rất
nhiều tùy chọn cho việc học về IoT, nhưng không có gì tốt hơn
ngoài những kinh nghiệm thực tế. Một trong những nền tảng quan
trọng cho việc học IoT là mạch tính toán nhỏ và đơn giản, nhắm
đến khả năng tạo một máy tính nhỏ gọn, giá rẻ phục vụ cho công
tác học tập, nghiên cứu và thử nghiệm. Nhưng cùng với đó, chiếc
máy tính giá 35 USD này lại có một mảng ứng dụng khác rất có giá
trị trong ngành công nghệ thông tin truyền thống và doanh
nghiệp. Trong thực tế, phần khó khăn nhất của việc sử dụng
Raspberry Pi để học về IoT là lựa chọn các dự án phù hợp để bắt
đầu. Trên Internet, chúng ta có thể tìm thấy hàng ngàn dự án dựa
trên Raspberry Pi. Một số trong đó chứa đầy tham vọng, một số
khác thì khá vô bổ nhưng hầu hết đều là những ví dụ tuyệt vời cho
việc tương tác với Raspberry Pi cũng như nguồn thông tin hữu ích
cho IoT. Điều gì làm cho dự án trải nghiệm IoT thành công? Đầu
tiên là việc sử dụng nhiều loại cảm biến hoặc các hệ thống điều
khiển phổ biến. Phần cứng có thể được tùy chỉnh theo sở thích
từng người nhưng đối với một dự án nghiêm túc thì mọi thứ cần có

15



×