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

Ứng dụng Board Raspberry-pi điều khiển thiết bị trong nhà thông minh

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.39 MB, 83 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

TRỊNH QUANG LƯƠNG

ỨNG DỤNG BOARD RASPBERRY-PI ĐIỀU KHIỂN THIẾT BỊ
TRONG NHÀ THÔNG MINH

LUẬN VĂN THẠC SĨ KỸ THUẬT

TP. HỒ CHÍ MINH – NĂM 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

TRỊNH QUANG LƯƠNG

ỨNG DỤNG BOARD RASPBERRY-PI ĐIỀU KHIỂN THIẾT BỊ
TRONG NHÀ THÔNG MINH

CHUYÊN NGÀNH

: KỸ THUẬT VIỄN THÔNG

MÃ SỐ

: 60.52.02.08

LUẬN VĂN THẠC SĨ KỸ THUẬT


NGƯỜI HƯỚNG DẪN KHOA HỌC:

TS. CHUNG TẤN LÂM

TP. HỒ CHÍ MINH – NĂM 2016


i

LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung đã được đề cập trong luận văn được viết
dựa trên kết quả thực hiện và nghiên cứu của bản thân, dưới sự hướng dẫn trực tiếp
của Thầy - TS. Chung Tấn Lâm.
Mọi thông tin và số liệu tham khảo đều được trích dẫn đầy đủ nguồn và sử
dụng đúng luật bản quyền quy định.
Tôi xin chịu trách nhiệm về nội dung của cuốn luận văn.
TP.HCM, ngày …….. tháng ….. năm 2016
Tác giả luận văn

Trịnh Quang Lương


ii

LỜI CẢM ƠN
Lời đầu tiên Em xin gửi lời cảm ơn đến toàn thể các Thầy, Cô giảng viên
Học viện Công nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời
gian học tập tại Nhà trường.
Em xin được bày tỏ lòng biết ơn chân thành với Thầy - TS. Chung Tấn Lâm,
Người đã trực tiếp hướng dẫn và góp ý tận tình cho em trong suốt thời gian làm

luận văn tốt nghiệp.
Bên cạnh đó, để hoàn thành luận văn này, em cũng đã nhận được rất nhiều sự
giúp đỡ, những lời động viên quý báu của các bạn bè, gia đình và đồng nghiệp. Em
xin chân thành cảm ơn.
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc
rằng luận văn không tránh khỏi những thiếu sót. Em rất mong nhận được sự thông
cảm và chỉ bảo tận tình của Quý Thầy Cô và sự góp ý của các bạn.
Em xin chân thành cám ơn!
TP.HCM, ngày …….. tháng ….. năm 2016
Tác giả luận văn

Trịnh Quang Lương


iii

MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................i
LỜI CẢM ƠN ........................................................................................................... ii
MỤC LỤC ................................................................................................................ iii
DANH SÁCH CÁC BẢNG .......................................................................................v
DANH SÁCH CÁC HÌNH.......................................................................................vi
LỜI MỞ ĐẦU ............................................................................................................1
CHƯƠNG 1 - NGHIÊN CỨU TỔNG QUAN ........................................................2
1.1. Khảo sát về board Raspberry-pi: .................................................................2
1.1.1. Khái quát chung về board Raspberry-pi: ..........................................2
1.1.2. Các hệ điều hành sử dụng trên board mạch Raspberry-pi: ..............6
1.1.3. Các module gắn ngoài: ......................................................................8
1.2. Tổng quan về giao tiếp người dùng – thiết bị: ..........................................15
1.3. Các thành phần của nhà thông minh: ........................................................17

CHƯƠNG 2 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG ........................................19
2.1. Phân tích thiết kế hệ thống chiếu sáng: .....................................................19
2.2. Phân tích thiết kế điều khiển các thiết bị trong nhà: .................................22
2.3. Phân tích thiết kế thu nhận dữ liệu cảm biến nhiệt độ và độ ẩm:..............26
2.4. Thiết kế điều khiển theo kịch bản: ............................................................ 28
2.5. Thiết kế thủ tục truyền thông và cơ sở dữ liệu: .........................................29
2.6. Thiết kế giao diện người dùng: .................................................................31
2.6.1. Thiết kế giao diện theo phòng: ........................................................34
2.6.2. Thiết kế giao diện theo chức năng chuyên dùng: ............................ 34
CHƯƠNG 3 - CÀI ĐẶT HỆ THỐNG ...................................................................38
3.1. Cài đặt điều khiển cấp cao – Web Server: ................................................38
3.2. Cài đặt điều khiển cấp thấp - Board Raspberry-pi: ...................................40
3.2.1. Điều khiển chiếu sáng: ....................................................................40
3.2.2. Điều khiển thiết bị máy lạnh, tivi và quạt:.......................................41
3.2.3. Thu nhận dữ liệu cảm biến nhiệt độ và độ ẩm: ............................... 42


iv

3.2.4. Điều khiển theo kịch bản: ................................................................ 43
3.3. Thi công Demokit hệ thống điều khiển nhà thông minh: ..........................45
3.4. Xây dựng hệ thống thu thập dữ liệu và đánh giá năng lượng tiêu thụ: .....46
CHƯƠNG 4 - HOÀN THIỆN HỆ THỐNG VÀ ĐÁNH GIÁ ............................. 49
4.1. Hoàn thiện hệ thống: .................................................................................49
4.2. Kết quả thu được và đánh giá: ...................................................................51
4.2.1. Kết quả thu được: ............................................................................51
4.2.2. Đánh giá kết quả: ............................................................................53
KẾT LUẬN VÀ KIẾN NGHỊ ................................................................................56
PHỤ LỤC .................................................................................................................57
DANH MỤC CÁC TÀI LIỆU THAM KHẢO .....................................................74



v

DANH SÁCH CÁC BẢNG

Bảng 1.1: Các thông số kỹ thuật của Raspberry-pi model A và model B ..................5
Bảng 1.2: Các thông số của Raspberry-pi2 và Raspberry-pi3 ....................................6
Bảng 1.3: Các thông số kỹ thuật của cảm biến DHT11 ............................................12
Bảng 2.1: Bảng lưu trữ thông tin thiết bị ..................................................................29
Bảng 2.2: Bảng lưu trữ thông tin sử dụng của đèn chính (DC) ................................ 30
Bảng 2.3: Bảng lưu trữ thông tin sử dụng của phụ (DP) ..........................................30
Bảng 2.4: Bảng lưu trữ thông tin sử dụng của máy lạnh (ML) .................................30
Bảng 2.5: Bảng lưu trữ thông tin sử dụng của quạt (QUAT) ...................................30
Bảng 2.6: Bảng lưu trữ thông tin sử dụng của tivi (TV) ...........................................30
Bảng 2.7: Bảng lưu trữ thông số môi trường ............................................................ 30
Bảng 2.8: Đặc tính kỹ thuật của TSOP 1838 (ở nhiệt độ 250C) ............................... 36
Bảng 3.1: Bảng thống kê các bước thực hiện cài đặt Web-server ............................ 38
Bảng 3.2: Nội dung chỉnh sửa file vsftpd.conf .........................................................39
Bảng 3.3: Các bước thực hiện cài đặt thư viện GPIO cho Raspberry-pi ..................40
Bảng 3.4: Bảng hướng dẫn cài đặt thư viện DHT11 trên Raspberry-pi ...................43
Bảng 4.1: Bảng tổng hợp thời gian sử dụng thiết bị .................................................52
Bảng 4.2: Bảng chi tiết thời gian sử dụng thiết bị ....................................................52
Bảng 4.3: Bảng so sánh nhà thông minh dùng Raspberry – pi với các nhà thông
minh hiện hữu............................................................................................................54


vi

DANH SÁCH CÁC HÌNH

Hình 1.1: Sơ đồ khối chức năng của board Raspberry-pi ...........................................2
Hình 1.2: Các thành phần của raspberry-pi.................................................................3
Hình 1.3: Raspberry-pi model A và model B .............................................................4
Hình 1.4: 2 phiên bản nâng cấp của Raspberry-pi ......................................................5
Hình 1.5: Sơ đồ chân GPIO của board RPi ............................................................... 10
Hình 1.6: Raspberry-pi và các thiết bị kết nối ..........................................................11
Hình 1.7: Hình dạng thực tế cảm biến DHT11 .........................................................11
Hình 1.8: Sơ đồ kết nối cảm biến DHT11 với MCU ................................................12
Hình 1.9: Hình ảnh thực tế của module relay 8 cổng với opto cách ly.....................14
Hình 1.10: Sơ đồ khối các thành phần của nhà thông minh .....................................17
Hình 2.1: Lưu đồ giải thuật điều khiển bật đèn chính/phụ .......................................19
Hình 2.2: Lưu đồ giải thuật điều khiển tắt đèn chính/phụ ........................................21
Hình 2.3: Lưu đồ giải thuật điều khiển bật thiết bị ...................................................23
Hình 2.4: Lưu đồ giải thuật điều khiển tắt thiết bị ....................................................25
Hình 2.5: Lưu đồ giải thuật thu thập dữ liệu nhiệt độ, độ ẩm ...................................27
Hình 2.6: Giao diện đăng nhập PUTTY ...................................................................31
Hình 2.7: Giao diện cửa sổ dòng lệnh terminal ........................................................32
Hình 2.8: Giao diện GUI của raspbian ......................................................................32
Hình 2.9: Giao diện website tương tác người dùng – thiết bị ...................................33
Hình 2.10: Giao diện người dùng theo phòng ...........................................................34
Hình 2.11: Giao diện remote điều khiển tivi ............................................................. 35
Hình 2.12: Hình dạng thực tế TSOP 1838 ................................................................ 35
Hình 2.13: Led phát hồng ngoại 3mm ......................................................................35
Hình 2.14: Tín hiệu thu được của cảm biến với khoảng cách tín hiệu 20ms............36
Hình 2.15: Sơ đồ kết nối TSOP với board Raspberry-pi ..........................................36
Hình 3.1: Raspberry-pi webserver sau khi được cài đặt xong ..................................39
Hình 3.2: Giao diện đồ họa điều khiển thiết bị .........................................................42


vii


Hình 3.3: Giao diện phím chức năng điều khiển theo kịch bản ................................ 45
Hình 3.4: Thống kê thời gian sử dụng của từng thiết bị ...........................................48
Hình 4.1: Giao diện điều khiển các thiết bị trong phòng khách ............................... 49
Hình 4.2: Giao diện điều khiển phòng ngủ ............................................................... 50
Hình 4.3: Bảng thống kê thời gian sử dụng thiết bị ..................................................50
Hình 4.4: Giao diện remote điều khiển tivi ............................................................... 50


1

LỜI MỞ ĐẦU
Cùng với sự tiến bộ của khoa học kỹ thuật và công nghệ, các thiết bị điện
tử hay nói cách khác là các board mạch tích hợp đã và đang được ứng dụng
ngày càng rộng rãi và mang lại hiệu quả cao trong mọi mặt của đời sống con
người.
Với nhịp sống hiện đại ngày càng năng động, con người chúng ta luôn có
xu hướng tìm kiếm những điều thoải mái nhất sau những ngày làm việc mệt
mỏi và căng thẳng. Và ngôi nhà là địa điểm lý tưởng nhất để thực hiện điều này.
Chính vì vậy, đã có rất nhiều sản phẩm ứng dụng được các công ty, nhà phát
triển nghiên cứu ra nhằm mục đích tạo sự tiện dụng nhất, tốt nhất cho cuộc sống
sinh hoạt của con người. Và việc này được thực hiện qua các board mạch tích
hợp xử lý dữ liệu và điều khiển.
Với mục tiêu xây dựng hệ thống điều khiển có khả năng đáp ứng cao,
thao tác dễ dàng, đảm bảo giá thành rẻ, dễ sử dụng và giúp người dùng có thể
quản lý được năng lượng tiêu thụ từ các thiết bị, em tiến hành thực hiện đề tài
luận văn: “Ứng dụng board Raspberry-pi điều khiển thiết bị trong nhà thông
minh”
Luận văn được chia làm 4 Chương:
Chương 1: Nghiên cứu tổng quan.

Chương 2: Phân tích thiết kế hệ thống.
Chương 3: Cài đặt hệ thống.
Chương 4: Hoàn thiện hệ thống và đánh giá
Hệ thống đã được hoàn thiện với đủ các mục tiêu nêu ở đầu cuốn luận
văn, nhưng do hạn chế về kiến thức, nên cuốn luận văn “Ứng dụng board
raspberry-pi điều khiển thiết bị trong nhà thông minh” vẫn còn nhiều thiếu sót.
Rất mong được sự góp ý chân thành từ Quý Thầy, Cô và các bạn.


2

CHƯƠNG 1 - NGHIÊN CỨU TỔNG QUAN
1.1. Khảo sát về board Raspberry-pi:
1.1.1. Khái quát chung về board Raspberry-pi:
Raspberry-pi là một chiếc máy tính tí hon nhỏ bằng chiếc thẻ ATM 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 của 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 board mạch cho các trường học. Nhưng khi được phát hành, nó
đã được sự đón tiếp nhiệt tình từ cộng đồng và đã bán được hơn 1 triệu board.
Vậy raspberry-pi có những điểm gì nỗi bật.
Với Raspberry-pi (RPi), chỉ cần 1 bàn phím, 1 tivi hoặc 1 màn hình có
cổng HDMI/DVI, 1 nguồn USB 5V và 1 dây micro USB là đã có thể sử dụng
RPi như 1 máy tính bình thường. Có thể sử dụng các ứng dụng văn phòng, nghe
nhạc, xem phim độ nét cao (tới 1024p)...
RAM
I/O

CPU/GPU


ETHERNET

USB HUB

4x USB

Hình 1.1: Sơ đồ khối chức năng của board Raspberry-pi

Trái tim của RPi (thế hệ đầu) là vi xử lý Broadcom BCM2835 chạy ở tốc
độ 700mHz. Đây là vi xử lý SoC (system-on-chip) tức là hầu hết mọi thành
phần của hệ thống gồm CPU, GPU cũng như audio, communication chip đều
được tích hợp trong một. Chip SoC này nằm ngay bên dưới chip memory Hynix
512 MB màu đen ở giữa board.


3

Hình 1.2: Các thành phần của Raspberry-pi

Bởi vì RAM được tích hợp sẵn trong đế chip nên không thể nâng cấp
RAM cho RPi. CPU BMC2835 sử dụng nhân ARM1176JZFS (ARM11) cho
hiệu năng cao và giá thành thấp. SoC này khác với CPU ở trong PC thông
thường ở chỗ nó được chế tạo dựa trên kiến trúc tập lệnh (Instruction Set
Architect – ISA) là ARM chứ không phải kiến trúc x86 như của Intel. ARM có
ISA dạng rút gọn RISC và tiêu thụ điện năng rất thấp nên phù hợp với thiết bị di
động.
ARM dẫn đầu trong mảng thiết bị di động. Lấy ví dụ như chip ARM trên
Raspberry-pi: toàn bộ mạch hoạt động với nguồn 5V, 700mA tức là chỉ tiêu
hao 3.5W mỗi giờ trong khi một laptop cũng ngốn ít nhất vài chục Watt. Thiết

kế này bảo đảm Raspberry-pi hoạt động với sức mạnh vừa phải trong khi vẫn
giữ được hình dáng nhỏ gọn do không cần quạt tản nhiệt và do đó, ARM có mặt
trong hầu hết điện thoại di động thời nay.
Ngoài ra chip BCM2835 dùng thế hệ ARM11 thuộc phiên bản ARMv6.
ARMv6 hoạt động hiệu quả và tiết kiệm năng lượng nhưng mặc định lại không
tương thích phần mềm với thế hệ ARMv7. Tuy nhiên, điều này có thể giải


4

quyết bằng cách chuyển đổi phần mềm để đạt sự tương thích. Nói như vậy
không có nghĩa là lập trình Raspberry-pi sẽ gặp nhiều khó khăn. Ngược
lại, cộng đồng Raspberry-pi phát triển rất nhanh trên thế giới là nguồn tài
nguyên còn phong phú hơn nhiều: hàng loạt dự án, phần mềm được phát triển
cho RPi sẽ làm chúng ta hài lòng.
Kết nối RPi vào cổng USB của máy tính có thể cấp nguồn cho RPi hoạt
động ở mức bình thường, không sử dụng các kết nối internet như LAN và wifi.
Raspberry-pi bản thân là một chiếc máy tính, để máy tính này hoạt động
bạn cần cài đặt hệ điều hành. Trong thế giới nguồn mở linux, có rất nhiều phiên
bản hệ điều hành tùy biến (distro) khác nhau. Tùy theo nhu cầu và mục đích,
cũng như khả năng học hỏi mà bạn sẽ sử dụng distro phù hợp với mình.
Ứng dụng của RPi: Có nhiều ứng dụng từ đơn giản đến phức tạp có thể
kể đến như: dùng RPi làm trung tâm giải trí đa phương tiện, internet tv,
datacenter, kết hợp với webcam làm hệ thống phát hiện chuyển động, nhận diện
khuôn mặt, điều khiển robot, nhận và gửi tin nhắn với usb 3g, điều khiển tắt/mở
đèn trong nhà, và còn rất nhiều ứng dụng khác...
Các phiên bản của Raspberry-pi:

Hình 1.3: Raspberry-pi model A và model B



5

Hai phiên bản ban đầu của Raspberry-pi là Model A và Model B như
hình 1.3, Model A có giá 25$ và Model B có giá 35$. Các thông số kỹ thuật
của chúng được cho theo bảng 1.1.
Bảng 1.1: Các thông số kỹ thuật của Raspberry-pi model A và model B

Model A

- SoC

700MHz

Model B
với

512MB

RAM .

- SoC

700MHz

với

256MB

RAM .


- 1 cổng HDMI cho đầu ra âm
thanh / video số .

- 1 cổng HDMI cho đầu ra âm
thanh / video số .

- 1 cổng video RCA cho đầu ra
video Analog .

- 1 cổng video RCA cho đầu ra
video Analog .

- Jack Headphone Stereo 3.5mm

- Jack Headphone Stereo 3.5mm

cho đầu ra âm thanh Analog .

cho đầu ra âm thanh Analog .

- 02 cổng USB .

- 01 cổng USB .

- 01 đầu đọc thẻ nhớ SD

- 01 đầu đọc thẻ nhớ SD

- 01 cổng Ethernet LAN.

- 08

cổng GPIO (General
Purpose Input/Output) .

- 08

cổng GPIO (General
Purpose Input/Output) .

(Nguồn: wikipedia tiếng việt – tháng 5/2016)

Hình 1.4: 2 phiên bản nâng cấp của Raspberry-pi


6

Cũng giống như các model trước, 2 phiên bản nâng cấp là A+(tháng
11/2014) và B+(tháng 7/2014) thay đổi về số cổng kết nối GPIO lên 17 cổng, ở
phiên bản A+ vẫn không được trang bị cổng kết nối Ethernet. Riêng với model
B+ số cổng kết nối USB được tăng lên thành 4 cổng kết nối cho phép mở rộng
kết nối với nhiều thiết bị hơn.
Phiên bản Raspberry-pi2 (tháng 2/2015) và pi3 (tháng 2/2016) chú trọng
vào việc nâng cấp chip xử lý và dung lượng RAM. Các thông số kỹ thuật khác
được cho theo bảng 1.2
Bảng 1.2: Các thông số của Raspberry-pi2 và Raspberry-pi3

Raspberry-pi2

Raspberry-pi3


Operating system

Same as for Raspberry Pi 1
plusWindows 10 IoT Core
and additional distributions
of Linux such as Ubuntu

Same as for Raspberry Pi 1
plusWindows 10 IoT Core
and additional distributions of
Linux such as Ubuntu

CPU

900 MHz quad-core ARM 1200 MHz quad-core ARM
Cortex-A7
Cortex-A53

Memory

1 GB RAM

1 GB RAM

Storage

MicroSDHC slot

MicroSDHC slot


Graphics

Broadcom VideoCore IV

Broadcom VideoCore IV at
higher clock frequencies than
previous that run at 250 MHz

Power

4.0 W

4.0 W
(Nguồn: wikipedia– tháng 5/2016)

1.1.2. Các hệ điều hành sử dụng trên board mạch Raspberry-pi:
Hiện nay có rất nhiều phiên bản hệ điều hành sử dụng cho board
Raspberry-pi vì đây là hệ điều hành mở, nhưng phổ biến nhất vẫn là những loại
sau:
Raspbian: Raspbian là một hệ điều hành dễ sử dụng và được sự hỗ trợ
tốt từ cộng đồng trên thế giới. Hơn thế nữa, Raspbian là phiên bản không chính
thức của Debian Wheezy – một phiên bản Linux được sử dụng rất rộng rãi.


7

Raspbian rất đơn giản và quen thuộc. Nó là nền tảng rất tốt cho những người
mới bắt đầu làm quen với Raspberry-pi nói riêng và Linux nói chung. Giống
như một chiếc máy tính Windows, Raspbian bao gồm các ứng dụng đa phương

tiện và đồ họa (xem ảnh, xem phim, soạn thảo notepad), và có thể cài thêm các
gói phần mềm khác như trình duyệt internet, nhắn tin, bộ phần mềm văn phòng,
v.v… để sử dụng thêm cho các nhu cầu cá nhân.
Ubuntu MATE: Ubuntu MATE có một cộng đồng rất tích cực. Họ đã
phát hành một phiên bản của Ubuntu MATE cho Raspberry-pi2, đó là Ubuntu
15.04. Đây là phiên bản chính thức đầu tiên hỗ trợ Raspberry-pi2 mới nhất. Các
phiên bản Ubuntu 15.04 còn được gọi với tên mã: Vivid Vervet. Vivid Vervet
cung cấp rất nhiều tính năng thú vị và các cải tiến trong kernel để đáp ứng nhu
cầu Video HD.
Tương tự Raspbian, Ubuntu Mate có giao diện Desktop và nó biến
Raspberry Pi thành máy tính để bàn có giao diện trực quan với nhiều phần mềm
được khuyên dùng bởi chính Raspbian. Bạn sẽ có ứng dụng xem ảnh Shotwell,
trình email Mozilla Thunderbird và trình duyệt web Mozilla Firefox, phần mềm
văn phòng LibreOffice, phần mềm nhắn tin đa năng Pidgin, trình nghe nhạc
Rhythmbox, hoặc Transmission để tải Torrent.
OSMC: OSMC là sự kết hợp thành công của nền tảng Media trước đó và
các dịch vụ khác. Điển hình là PlayOn Media Server, hỗ trợ streaming video từ
các ứng dụng trên máy chủ đến tv như Netflix, Hulu và Amazon, qua đó khắc
phục vấn đề liên quan đến DRM và hỗ trợ các dịch vụ này trên RPi. OSMC
(Open Source Media Center) dựa trên phần mềm Kodi, trước đây là XBMC.
Pidora: tạo nên từ phiên bản hệ điều hành Fedora của linux, cũng hỗ trợ
tốt về giao diện, mạng và giao tiếp vào ra.
RaspBMC: tạo ra để chuyên dùng giải trí, sử dụng giao diện XBMC
media center, giao diện thường thấy trong các smart-tivi hiện nay.
OpenELEC: một phiên bản dùng giao diện XBMC Media-center khác,
hổ trợ nhanh và thân thiện với người sử dụng.


8


RISC OS: phiên bản hệ điều hành rút gọn với tính năng hoạt động nhanh
nhất trong các hệ điều hành.
Arch: phiên bản hệ điều hành phát triển riêng cho các dòng kit dùng chip
ARM.
Giới thiệu ngôn ngữ lập trình Python:
Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo
ra năm 1990. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ
tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python
được phát triển trong một dự án mã nguồn mở do tổ chức phi lợi nhuận Python
Software Foundation quản lý.
Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo
thời gian, nó đã “bành trướng” sang mọi hệ điều hành từ MS-DOS đến Mac OS,
OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự
phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van
Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai trò chủ chốt
trong việc quyết định hướng phát triển của Python.
Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ
đọc, bố cục trực quan, dễ hiểu, được sự đánh giá cao của cộng đồng và được rất
nhiều người sử dụng nó trong việc lập trình các dự án cá nhân.

1.1.3. Các module gắn ngoài:
Các module gắn ngoài board Raspberry-pi khá đa dạng, và được thiết kế
theo nhu cầu của người dùng, trong đó, các module cơ bản như theo hình 1.6.
Khe cắm thẻ nhớ: sử dụng loại thẻ miniSD, đây là nơi lưu trữ hệ điều
hành và tất cả các dữ liệu hoạt động của Raspberry-pi. Dung lượng của thẻ nhớ
phải từ 2GB trở lên để đảm bảo cho hệ thống hoạt động tốt.
Nguồn nuôi (Micro USB Power): RPi sử dụng cổng micro USB kết nối
từ nguồn nuôi vào board. RPi có thể sử dụng đến 700mA tại mức áp 5V khi sử
dụng nhiều thiết bị USB và cổng LAN. Do đó để RPi hoạt động ổn định, nên sử
dụng bộ nguồn USB 5V-1A. Điện áp quá mức 5V cấp trực tiếp vào GPIO có



9

thể gây hư hỏng các thiết bị cắm vào cổng USB, chip quản lý USB và LAN.
Vậy nên tốt nhất là sử dụng 1 nguồn nuôi 5V sẵn hoặc sử dụng mạch nguồn IC
LM7805.
Khe cắm màn hình hiển thị (Screen - cảm ứng hoặc không): để hiển thị
giao diện sử dụng Raspberry-pi một cách trực quan nhất (có thể là cửa sổ
comand hoặc giao diện đồ họa GUI) có thể sử dụng chuột và bàn phím để thực
hiện các thao tác điều khiển.
Khe cắm camera (Camera expansion): khe cắm modem camera vào
board Raspberry-pi. Board RPi hỗ trợ khe cắm camera ngoài, có thể mua phụ
kiện kèm theo. Chúng ta có thể chụp hình, quay phim, ... làm việc tất cả các tác
vụ như trên một camera bình thường.
Cổng HDMI: Dùng để kết nối với các thiết bị có hỗ trợ chuẩn kết nối
HDMI, nếu thiết bị không hỗ trợ HDMI mà chỉ hỗ trợ VGA thì phải sử dụng
cable chuyển đổi từ HDMI sang VGA. Thường thì cổng này dùng để kết nối ra
màn hình, tivi, máy chiếu, .... để hiển thị giao diện của hệ điều hành.
Cổng kết nối Ethenet: dùng để kết nối internet, mạng Lan, truy cập
SSH,...
Cổng USB: dùng để kết nối với chuột, bàn phím, usb, usb 3g, usb wifi và
các thiết bị có hỗ trợ cổng USB.
STEREO AUDIO: dùng để kết nối với tai nghe, loa, và các thiết bị âm
thanh có sử dụng jack 3.5mm.
GPIO: Raspberry-pi cung cấp nhiều cổng GPIO, giao tiếp SPI, I2C,
Serial. Các cổng GPIO được sử dụng để xuất/nhận giá trị 0/1 từ bên ngoài. Giao
tiếp SPI,I2C, Serial có thể được dùng để kết nối trực tiếp với các vi điều khiển
khác. Đặc biệt phù hợp cho những người cần điều khiển các thiết bị điện tử
ngoại vi.



10

Hình 1.5: Sơ đồ chân GPIO của board Raspberry - pi

Đặc tính 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.
- Dòng điện ngõ ra cực đại trên các chân GPIO là 50 mA.
- Chân nguồn VCC (5 volt): 2, 4
- Chân nguồn VCC (3,3 volt): 1, 17
- Chân mass: 6, 9, 14, 20, 25, 30, 34, 39
- Các chân GPIO 2-27 đều có thể sử dụng để xuất/nhận giá trị 0/1
ra/vào từ bên ngoài. Riêng chân GPIO 14, 15 ban đầu khi mới khởi động, các
chân 8 (GPIO14 – TXD) và 10 (GPIO15 – RXD) được đặt sẵn cho chức năng
UART0 và có thể chuyển trở lại thành GPIO.

- 2 chân dành riêng cho EEPROM: 27, 28
- Các cổng dành riêng cho giao tiếp SPI: 19, 21, 23, 24, 26
- Cổng dành cho giao tiếp I2C: 3, 5


11

Hình 1.6: Raspberry-pi và các thiết bị kết nối

Cảm biến nhiệt độ, độ ẩm DHT 11:
Hình dáng:


Hình 1.7: Hình dạng thực tế cảm biến DHT11

Thông số kỹ thuật:

- Power supply: DC 3.5 ~5.5V
- Supply Current: measurement 0.3mA standby 60μA
- Sampling period: more than 2 seconds


12

Bảng 1.3: Các thông số kỹ thuật của cảm biến DHT11

Humidity

Temperature

Resolution: 16Bit

Resolution: 16Bit

Repeatability: ±1% RH

Repeatability: ±0.2℃

Accuracy: At 25℃ ±5% RH

Range: At 25℃ ±2℃


Interchangeability: fully interchangeable
Response time: 1 / e (63%) of 25℃ 6s 1m / Response time: 1 / e (63%) 10S
s air 6s
Hysteresis: <± 0.3% RH
Long-term stability: <± 0.5% RH / yr in
(Nguồn: www.datasheetspdf.com – tháng 5/2016)

Sơ đồ kết nối:

Hình 1.8: Sơ đồ kết nối cảm biến DHT11 với MCU

Nguyên lý hoạt động:
Quá trình thực hiện giao tiếp giữa MCU (Microcontroller Unit hay
Single chip Computer) và DHT11 được thực hiện qua 3 giai đoạn:

- Gửi yêu cầu
- Đáp ứng
- Đọc dữ liệu
Gửi yêu cầu: Để cảm biến có thể gửi dữ liệu cho MCU, ban đầu MCU
phải gửi 1 yêu cầu đến cảm biến DHT11, MCU thiết lập chân DATA là Output,


13

kéo chân DATA xuống 0 trong khoảng thời gian >18ms. Khi đó DHT11 sẽ hiểu
MCU muốn đo giá trị nhiệt độ và độ ẩm.
Đáp ứng:

- MCU đưa chân DATA lên 1, sau đó thiết lập lại là chân đầu vào.
- Sau khoảng 20-40μs, DHT11 sẽ kéo chân DATA xuống thấp. Nếu

>40μs mà chân DATA ko được kéo xuống thấp nghĩa là ko giao tiếp được với
DHT11.

- Chân DATA sẽ ở mức thấp 80μs sau đó nó được DHT11 kéo nên cao
trong 80μs. Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp
được với DHT11 ko. Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thiện
quá trình giao tiếp của MCU với DHT.
Đọc dữ liệu trên DHT11:

- DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte. Trong đó:
+ Byte 1: giá trị phần nguyên của độ ẩm (RH%)
+ Byte 2: giá trị phần thập phân của độ ẩm (RH%)
+ Byte 3: giá trị phần nguyên của nhiệt độ (TC)
+ Byte 4 : giá trị phần thập phân của nhiệt độ (TC)
+ Byte 5 : kiểm tra tổng.
+ Nếu Byte 5 = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) thì giá trị độ ẩm và
nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa.
Sau khi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1 về
MCU, tương ứng chia thành 5 byte kết quả của nhiệt độ và độ ẩm.
Sau khi tín hiệu được đưa về 0, ta đợi chân DATA của MCU được
DHT11 kéo lên 1. Nếu chân DATA là 1 trong khoảng 26-28 μs thì là 0, còn nếu
tồn tại 70μs là 1. Do đó trong lập trình ta bắt sườn lên của chân DATA, sau đó
delay 50μs. Nếu giá trị đo được là 0 thì ta đọc được bit 0, nếu giá trị đo được là
1 thì giá trị đo được là 1. Cứ như thế ta đọc các bit tiếp theo. Thư viện cảm biến
DHT11 đã được Adafruit hỗ trợ, nên bước này chúng ta có thể bỏ qua.


14

Module 8 cổng relay với opto cách ly (5VDC):

Module 8 relay thích hợp cho các ứng dụng đóng ngắt điện thế cao AC
hoặc DC, các thiết bị tiêu thụ dòng lớn. Module thiết kế nhỏ gọn, có opto và
transitor cách ly, kích đóng bằng mức thấp (0V) phù hợp cho mọi loại MCU và
thiết kế có thể sử dụng nguồn ngoài giúp cho việc sử dụng trở nên linh hoạt
Hình dạng thực tế:

Hình 1.9: Hình ảnh thực tế của module relay 8 cổng với opto cách ly

Thông số kỹ thuật:

- Sử dụng điện áp nuôi 5 (VDC).
- 8 Relay đóng ngắt ở điện thế kích bằng 0V nên có thể sử dụng cho cả
tín hiệu 5V hay 3V3 (cần cấp nguồn ngoài), mỗi relay tiêu thụ dòng khoảng
80mA.

- Điện thế đóng ngắt tối đa: AC250C-10A hoặc DC30V-10A.
- Có đèn báo đóng/ngắt trên mỗi Relay.
Và với đề tài luận văn này, Em sử dụng model Raspberry-pi2 hoạt động trên
hệ điều hành Raspbian đóng vai trò là trung tâm điều khiển cũng như webserver
giao tiếp giữa website và các thiết bị điện sinh hoạt, đồng thời nó cũng lưu trữ
dữ liệu thông tin sử dụng của các thiết bị để phục vụ cho công tác theo dõi quá
trình sử dụng.


15

1.2. Tổng quan về giao tiếp người dùng – thiết bị:
Việc tương tác giữa người dùng – thiết bị được thực hiện thông thường
qua 2 cách thức: cửa sổ command và GUI (Graphic Users Interface) – Giao
diện đồ họa người dùng. Trong đó cửa sổ command thường được sử dụng cho

các lập trình viên, bởi phải có sự hiểu biết nhất định về các dòng lệnh và cú
pháp lệnh. Giao diện GUI lại phổ biến hơn bởi tính tiện lợi và trực quan hơn với
người dùng mà không cần thiết phải am hiểu về cấu trúc dòng lệnh.
Giao diện đồ họa người dùng trong tiếng Anh gọi tắt là GUI
(Graphical User Interface) là một thuật ngữ trong ngành công nghiệp máy tính.
Đó là một cách giao tiếp với máy tính hay các thiết bị điện tử bằng hình ảnh và
chữ viết thay vì chỉ là các dòng lệnh đơn thuần. GUI được sử dụng phổ biến
trong máy tính, các thiết bị cầm tay, các thiết bị đa phương tiện, hoặc các linh
kiện điện tử trong văn phòng, nhà ở...
Phạm vi sử dụng thuật ngữ GUI hầu như chỉ được giới hạn trong các
thiết bị có màn hình 2 chiều. Nó ít được sử dụng trong các thiết bị với giao diện
có độ phân giải cao như một số thiết bị chơi game (HUD được sử dụng nhiều
hơn).
GUI được các nhà nghiên cứu tại Xerox PARC phát triển trong thập niên
1970. Ngày nay hầu hết các hệ điều hành máy tính nhiều người dùng đều sử
dụng giao diện này.
Tiền thân của GUI được khai sinh bởi những nhà nghiên cứu tại
Standford Research Institute - được dẫn đầu bởi Douglas Engelbart. Khi đó, họ
phát triển việc sử dụng những siêu liên kết (hyperlinks) dựa trên chữ cho hệ
thống On-Line (One-Line System), trong đó các liên kết được thao tác với
chuột máy tính. Khái niệm siêu liên kết sau đó đã được các nhà nghiên cứu tại
Xerox PARC mở rộng sang phạm vi đồ họa. 1963, Sketchpad, một hệ thống
dựa trên con trỏ (pointer) được phát triển bởi Ivan Sutherland. Hệ thống này sử
dụng một cây bút phát sáng để thực hiện việc tạo và thao tác với các đối tượng
trong các bản vẽ kỹ thuật.


16

Giao diện người dùng PARC gồm các thành phần đồ họa như cửa sổ

(windows), (menus), (radio buttons), (check boxs) và các biểu tượng (icons).
Dựa trên hệ thống tiền thân, lần lượt các hệ thống đồ họa được ra đời.
Năm 1981, mô hình điều hành máy tính dựa trên GUI đầu tiên được ra đời là
Xerox 8010 Star Information System. Tiếp theo đó là Apple Lisa năm 1983,
Macintosh 128K của Apple năm 1984, Atari ST và Commodore Amiga năm
1985. Việc điều khiển đồ họa bằng lệnh (command) được khai sinh khi IBM
cho ra đời Common User Access(1987), trong đó các chuỗi lệnh khác nhau sẽ
được áp dụng cho các chương trình khác nhau như: phím F3 sẽ kích hoạt chế độ
hỗ trợ trong WordPerfect, nhưng nó sẽ đóng chương trình trong các ứng dụng
khác của IBM.
Các hệ thống GUI phổ biến ngày nay là Microsoft Windows, Mac OS X,
Window System trên các PC (Personal Computer), laptop. Ngoài ra còn có sự
góp mặt của các thiết bị di động như Symbian, BlackBerry OS, Android, iOS.
Các hệ thống này đều được phát triển dựa trên những ý tưởng ban đầu của
Xerox, cho nên chúng gần như có các khái niệm tương tự nhau (như buttons,
radio buttons, menus, icons, ...)
Một hệ thống GUI là sự kết hợp của các công nghệ, thiết bị để cung cấp
cho người dùng một nền tảng cho phép người sử dụng có thể tương tác với nó.
Một chuỗi các thành phần của GUI tuân theo một ngôn ngữ trực quan
(visual language) để biểu diễn thông tin được lưu trữ trong các máy tính. Thông
dụng nhất khi kể đến sự kết hợp các thành phần như vậy là mô hình WIMP
(window, icon, menu, pointing device) trong các máy tính cá nhân.


×