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

Điều khiển các thiết bị điện trong nhà thông

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.3 MB, 53 trang )

DANH MỤC CÁC KÝ HIỆU

ALU

Đơn vị số học

C++

Ngôn ngữ lập trình cho vi điều khiển

CPU

Chip xử lý trung tâm

CU

Bộ điều khiển

DCS

Hệ thống phân tán

DHCP

Máy chủ cục bộ

GND

Âm nguồn

GUI



Giao diện người dùng đồ họa

I/O

Ngõ vào/ra

INT

Ngõ vào

IoT

Kết nối vạn vật

IP

Địa chỉ mạng

LCD

Màn hình

MISO

Chân phụ để chuyển dữ liệu vào chương trình chính

MOSI

Chân chính để chuyển dữ liệu đến các thiết bị


PC

Máy tính

PLC

Bộ điều khiển khả trình

Ram

Bộ nhớ

Rom

Bộ nhớ

SCAD
A
SCK
SPI
TV

VCC

Hệ thống điều khiển giám sát và thu thập dữ liệu
Xung đồng hồ kết hợp truyền dữ liệu
Giao thức mà vi điều khiển sử dụng để giao tiếp với vi điều khiển
khác
Tivi

Dương nguồn


DANH MỤC CÁC BẢNG
Số hiệu
bảng

Tên bảng

1.1

Danh mục môt số phần mềm lớp dưới của các
hãng công nghệ

2.1

Lựa chọn các phiên bản hệ điều hành Linux

2.2

Các phiên bản của Debian

3.1

Ký hiệu các chân tín hiệu của mô đun 8 rơ le

3.2

Ký hiệu các chân tín hiệu của mô đun 4 rơ le


Trang


DANH MỤC CÁC HÌNH

Số
Nội dung

hiệu
1.1

Cấu trúc giao diện người dùng cho hệ thống ba lớp

1.2

Quan hệ dữ liệu của lớp giữa và lớp dưới

1.3

Sơ đồ khối hệ thống điều khiển

1.4

Sơ đồ khối cấu trúc vi xử lý cơ bản

2.1

Giao diện cài đặt hệ điều hành Debian

2.2


Cấu trúc phần cứng Raspberry Pi 3

3.1

GPIO

3.2

Cấu trúc Arduino UNO R3

3.3

Sơ đồ GPIO Atmega16L

3.4

Sơ đồ khối mô đun cảm biến khí Gas

3.5

Sơ đồ kết nối cảm biến khí Gas với Arduino

3.6

Mô đun cảm biến ánh sáng

3.7

Mô đun cảm biến nhiệt độ DS18b20


3.8

Mô đun cảm biến chuyển động PIR

3.9

Sơ đồ chân của mô đun 8 rơle

3.10

Lưu đồ thuật toán tổng quát chương trình

3.11

Lưu đồ chương trình khai báo địa chỉ

3.12

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

3.13

Lưu đồ thuật toán khởi tạo chương trình con

3.14

Thuật toán kiểm tra trạng thái cờ thiết bị

3.15


Thuật toán kiểm tra trạng thái bật rơle

3.16

Thuật toán kiểm tra trạng thái tắt rơle

3.17

Thuật toán giao tiếp mạng internet

3.18

Thuật toán chương trình trễ (Delay)

Trang


3.19

Thuật toán giao tiếp cảm biến ánh sáng

3.20

Thuật toán giao tiếp cảm biến khí Gas

3.21

Thuật toán giao tiếp cảm biến DS18b20


3.22

Thuật toán giao tiếp cảm biến PIR

3.23

Lưu đồ thuật toán mạch đèn cầu thang

3.24

Mạch nguyên lý đèn cầu thang

3.25

Mạch cầu H

4.1

Lưu đồ thuật toán điều khiển cửa và rèm cửa của nhà
thông minh
Lưu đồ thuật toán giám sát và điều khiển qua Internet
Lưu đồ thuật toán giám sát và điều khiển qua
Smartphone
Tổng thể mô hình nhà thông minh

4.2

Bộ điều khiển trung tâm của nhà thông minh

4.3


Bộ điều khiển tự động của nhà thông minh

4.4

Bộ điều khiển bằng tay của nhà thông minh

4.5

Hệ thống điện phòng ngủ

4.6

Hệ thống đèn hành lang

4.7

Hệ thống điện chiếu sáng phòng khách ở chế độ bình thường

4.8

Hệ thống điện chiếu sáng phòng khách ở chế độ tiếp khách

4.9

Màn hình điều khiển trên Websever

4.10

Hệ thống điện phòng gara


4.11

Hệ thống điện phòng bếp

4.12

Hệ thống điện phòng WC

4.13

Hệ thống điện chiếu sáng đèn cầu thang

4.14

Hệ thống của và rèm cửa tự động

4.15

Hệ thống cửa gara tự động

4.16

Hệ thống cửa chính tự động

4.17

Phần mềm điều khiển My PI

4.18


Hiển thị thông tin nhiệt độ và khí gas lên LCD

4.19

Hiển thị thông tin nhiệt độ và khí gas lên Internet

3.26
3.27
3.28


5

MỞ ĐẦU
1. Lý do chọn đề tài
Cùng với sự phát triển bùng nổ của công nghệ thông tin, máy vi tính
hay các bộ xử lý được thiết kế ngày một nhỏ gọn, tính năng thông minh, ưu
việt hơn. Các bộ vi xử lý được thiết kế tinh xảo, tốc độ xử lý cao và chúng
được nhúng vào các thiết bị như một máy tính để sản xuất điện thoại, đồng
hồ, máy tính bảng… Chúng hỗ trợ con người giao tiếp với các vật dụng xung
quanh. Hiện nay các máy tính nhúng gần như đã được tích hợp vào cuộc sống
hàng ngày của chúng ta. Ngày càng nhiều thiết bị trải qua quá trình phát triển
để trở thành một thiết bị thông minh hơn. Ví dụ, nhiều hãng công nghệ đã sản
xuất những chiếc TV thông minh, chúng sử dụng máy tính nhúng được truyền
thông mạng để cung cấp cho người sử dụng nhiều tính năng tiên tiến hơn.
Các ứng dụng trên TV có thể chuyển sang điện thoại hoặc máy tính bảng một
cách rất dễ dàng.
Xu hướng tạo ra các thiết bị thông minh đã giúp thúc đẩy sự phát triển
của Internet of things (IoT), tạm dịch là “vạn vật kết nối”. Mục đích của IoT

là nâng cao chất lượng máy tính nhúng và cảm biến. Các hãng công nghệ lớn
đã nắm bắt được xu hướng ứng dụng IoT trong tương lai và đã vào cuộc để
phát triển công nghệ nhà thông minh. Ví dụ, Apple đã phát triển Homekit cho
riêng họ, Google đã mua lại Nest Labs để tạo ra bộ ổn nhiệt và bộ dò khói
thông minh.
Với xu thế phát triển công nghệ nhà thông minh như vậy, việc nghiên
cứu giải pháp điều khiển nhà thông minh là rất cần thiết. Mặc dù tính hữu
dụng của đề tài có thể chưa cao, tuy nhiên kết quả tích cực thu được liên quan
đến lĩnh vực điện thông minh hứa hẹn mang đến tiến bộ của ứng dụng nhà
thông minh chạy trên các thiết bị di động.


2. Đối tượng và phạm vi nghiên cứu
2.1. Đối tượng nghiên cứu
Các chức năng và tiện ích của một ngôi nhà thông minh
2.2. Phạm vi nghiên cứu
Phạm vi nghiên cứu của đề tài gồm các nội dung sau:
- Nghiên cứu hệ điều hành Android và IOS. Tìm hiểu ứng dụng nhà
thông minh phù hợp để triển khai thực tế. Sử dụng hệ điều hành linux
và Raspberry pi 3 để điều khiển phần cứng.
- Thiết kế phần mềm điều khiển thông minh ứng dụng nền tảng Android
và IOS. Đánh giá việc sử dụng điện thoại thông minh để điều khiển nhà
thông minh.
- Mô phỏng trên mô hình và đánh giá kết quả đạt được.
3. Phương pháp nghiên cứu
- Thu thập tài liệu, đề tài có liên quan đến các giải pháp điều khiển nhà thông
minh
- Nghiên cứu một số sản phẩm của các hãng công nghệ uy tín.
- Kết hợp với kiến thức chuyên ngành về vi xử lý, hệ cảm biến để phân tích,
lập trình và thiết kế vi mạch ứng dụng.

- Thiết kế mô hình nhà thông minh, điều khiển chạy thử và đánh giá kết
quả.
- Tìm hiểu các phần mềm được phát triển bởi Apple và Google trên
điện thoại thông minh và máy tính bảng.
- Lập trình phần mềm điều khiển, thiết kế phần cứng.
- Trình bày kết quả, nghiên cứu tính toán bằng cách thể hiện bản vẽ trên phần
mềm Autocad, Proteus, Flowcode, Python3 trên Linux kết hợp với thuyết
minh, trình bày kết quả bằng Office và các phần mềm chuyên dụng khác.


4. Ý nghĩa khoa học và thực tiễn của đề tài
- Đánh giá được sự khác biệt giữa hệ điều hành Android và hệ điều hành IOS.
- Kết quả được thể hiện trên mô hình nhà thông minh. Giải pháp điều khiển
được cụ thể hóa bằng bộ điều khiển và các bản vẽ thiết kế mô tả hệ thống ứng
dụng thực tế.
5. Cấu trúc đề tài
Ngoài phần mở đầu, trong luận văn còn có các chương kế tiếp sau:
Mở đầu
Chương 1. Tổng quan hệ thống điện nhà thông minh.
Chương 2. Nghiên cứu hệ điều hành Linux và ứng dụng máy tính
nhúng.
Chương 3. Thiết kế hệ thống điều khiển nhà thông minh.
Chương 4. Mô phỏng mô hình nhà thông minh và đánh giá kết quả
đạt được.
Mô phỏng.
Đánh giá kết quả đạt được.
Tài liệu tham khảo. Phụ lục.


CHƯƠNG 1. TỔNG QUAN HỆ THỐNG ĐIỆN NHÀ THÔNG

MINH
1.1. GIỚI THIỆU NHÀ THÔNG MINH VÀ CẤU TRÚC ĐIỀU KHIỂN
1.1.1. Giới thiệu
Nhà thông minh là sự tích hợp về điều khiển ánh sáng, an ninh, giải trí
đa phương tiện, điều hòa nhiệt độ và các hệ thống điện tử khác trong gia đình.
Đặc biệt tập trung vào không gian sống trong quy mô của một căn hộ. Mục
đích chính là làm cho cuộc sống hàng ngày trở nên thoải mái, an toàn và tiết
kiệm năng lượng.
Các thiết bị trong một ngôi nhà thông minh được kết nối với nhau qua
mạng và được kiểm soát bởi phần mềm chuyên dụng, hệ thống điều khiển.
Nó kết nối với các thiết bị, theo dõi trạng thái của chúng và phản ứng lại với
các sự kiện. Hệ thống kiểm soát thực hiện nhiều công việc liên quan đến hộ
gia đình thay con người, cho phép họ dành nhiều thời gian hơn cho những
vấn đề thực sự quan trọng. Hệ thống điều khiển không chỉ cho phép những
cảnh ánh sáng thoải mái, các chương trình giải trí hàng ngày hoặc truy cập từ
xa. Nó còn chăm sóc tối ưu cho điều hòa không khí và thông gió để giữ cho
không khí trong lành và nhiệt độ thoải mái và đảm bảo an toàn khi không có
người.
Một ví dụ cụ thể, chúng ta có thể chuyển cảnh ánh sáng tối sang cảnh
thích hợp để xem một bộ phim với bộ điều khiển từ xa hoặc khóa cửa ở tầng
dưới và tắt tất cả đèn bằng một nút trong phòng ngủ. Buổi sáng, thức dậy nhẹ
nhàng với giai điệu âm nhạc yêu thích, có nước sôi cho cà phê đã sẵn sàng.
Khi chúng ta rời khỏi nhà, tất cả các đèn và thiết bị tắt bằng một cú nhấp,
cánh cửa tự động khóa và hệ thống an ninh được kích hoạt. Nhà thông minh
có thể chạy các vòi phun nước theo dự báo thời tiết từ Internet, đưa những
bức ảnh kỹ thuật số mới của bạn bè lên khung hình LCD hoặc cảnh báo các
thực phẩm hết hạn sử dụng.


Mặc dù ý tưởng kỹ thuật rất có tương lai, tuy nhiên ngôi nhà thông

minh thực sự phải trực quan và đơn giản, dễ sử dụng để mọi người trong gia
đình thích sống ở đó. Nhà thông minh có thể đơn giản hóa cuộc sống của
chúng ta theo cách tự động như máy giặt đơn giản hóa việc giặt quần áo.
Trong tương lai, ngôi nhà thông minh có thể trở nên phổ biến như máy giặt.
Hiện tại, mỗi ngôi nhà mới ở Mỹ đều có một số loại cài đặt có cấu trúc và sản
xuất hàng loạt ngôi nhà thông minh đã bắt đầu ở Tây Âu. Với đa số dân số
sống trong khu vực, châu Á cũng có nhu cầu lớn về các giải pháp tiết kiệm
năng lượng trong các công trình xây dựng khổng lồ.
Từ những vấn đề nêu trên, việc nghiên cứu về nhà thông minh rất quan
trọng. Nhưng khoảng 10 năm gần đây, nó đã bị bỏ quên trong bóng tối của tự
động hóa công nghiệp và tự động hóa tòa nhà tập trung vào không gian văn
phòng. Đến nay, thị trường nhà thông minh đã phát triển đủ lớn để có những
giải pháp chuyên biệt. Các nhà cung cấp nhà thông minh nhỏ đã xuất hiện và
các hãng công nghệ khổng lồ đã bắt đầu nhận ra nhu cầu về các giải pháp phù
hợp cho việc sử dụng nhà. Tuy nhiên, các hệ thống được cung cấp thường tốn
kém, phức tạp và không linh hoạt. Mặt khác, các giải pháp thực sự dễ dàng và
giá cả phải chăng vẫn có chức năng rất hạn chế. Đó là lý do tại sao thị trường
nhà thông minh tụt lại phía sau so với kỳ vọng và khả năng phát triển. Việc
chúng ta cần làm là tìm ra giải pháp công nghệ và phần cứng để xây dựng
những ngôi nhà thông minh thành công về mặt thương mại mà ngày nay đang
có xu hướng phổ biến. Công nghệ, cốt lõi chỉ là vấn đề phần mềm tốt.
Một hệ thống điều khiển tối ưu cho nhà thông minh sẽ được đề xuất
trong đề tài này bằng phương pháp từ trên xuống (top-down). Do xu hướng
kinh tế toàn cầu và nhu cầu người sử dụng, trước hết chúng ta sẽ xác định
giao diện người dùng độc lập với hệ thống bên dưới. Sau đó, chúng ta sẽ tìm
các cài đặt phần cứng thích hợp.


1.1.2. Cấu trúc điều khiển
Phần mềm điều khiển là cả bộ não và trái tim của một ngôi nhà thông

minh, nó quyết định tính năng, tính thân thiện, tính ổn định, hiệu suất và do
đó quyết định sự thành công của việc điều khiển ngôi nhà. Chúng ta sẽ xác
định các lớp của hệ thống điều khiển, nhìn vào các hệ thống điều khiển hiện
tại được sử dụng cho nhà thông minh, phân tích các vấn đề của chúng và cuối
cùng hiểu được khái niệm hệ thống điều khiển ba lớp (three-layer) để có thể
giải quyết chúng như thế nào.
a. Hệ thống điều khiển truyền thống hai lớp (two - layer)
Đa số các hệ thống điều khiển hiện tại cho nhà thông minh bao gồm hai
lớp, mà chúng ta có thể đề cập đến như là một khái niệm truyền thống.
- Lớp dưới cùng (Bottom layer)
Lớp dưới cùng kết nối với quá trình vật lý, xác định và tổ chức các
điểm dữ liệu và thực hiện logic. Nó là cốt lõi của một hệ thống điều khiển,
nơi các thuật toán điều khiển được thực hiện. Nó thường là một ứng dụng tinh
vi có thể được sử dụng cho một loạt các nhiệm vụ tự động hóa từ phân loại
các đối tượng theo màu sắc để kiểm soát vấn đề. Một lập trình viên có kinh
nghiệm và hiểu được công nghệ điều khiển là cần thiết để cấu hình lớp này.
Trong hầu hết các hệ thống, luôn có một công cụ cấu hình dựa trên PC
cho chương trình lớp dưới cùng chạy trên một phần cứng dành riêng như PLC
hoặc trực tiếp trong các đơn vị trong các hệ thống phân tán DCS.
- Lớp trên cùng (Top layer)
Nhiệm vụ chính của lớp trên cùng thường là hình dung và kiểm soát
quá trình, chẳng hạn như sửa đổi các giá trị và thực hiện hành động được xác
định trước. Lớp này thường được gọi là SCADA (kiểm soát và thu thập dữ
liệu) cho thấy nó thường được sử dụng trong phòng điều khiển của giám sát


viên. SCADA thường có giao diện đồ họa và dễ sử dụng. Trong ngôi nhà
thông minh, ứng dụng lớp trên cùng thường dùng bảng cảm ứng.
- Vấn đề của hệ thống điều khiển hai lớp cho ngôi nhà thông minh
Khái niệm hệ thống hai lớp có nguồn gốc từ môi trường công nghiệp

và do đó phù hợp với nhu cầu của một nhà máy, nhưng lại không thích hợp
cho ngôi nhà thông minh.
Tăng tốc độ xử lý và sự làm việc ổn định của bộ điều khiển luôn luôn
là khoản đầu tư rất cao của công nghệ. Bởi vì trong công nghiệp, tốc độ và sự
ổn định là rất quan trọng, cùng một hệ thống có thể sẽ là giá thành quá cao
cho việc ứng dụng để điều khiển ngôi nhà. Điều này không có nghĩa là hệ
thống điều khiển ngôi nhà có thể rất chậm và không ổn định, nhưng tối ưu
cân bằng giữa hiệu suất và giá cả rất khác nhau cho cả hai lĩnh vực ứng dụng.
Thỉnh thoảng có sự chậm trễ 100ms giữa việc nhấn nút và chuyển đổi ánh
sáng ở nhà, nhưng chúng ta có thể bỏ qua được. Đáp ứng thời gian 100ms
thường phải được đảm bảo trong ngành tự động hóa. Giá thành cao hiện tại là
lý do chính làm cho đa số ngôi nhà vẫn không thông minh.
Các hệ thống điều khiển truyền thống được thiết kế cho người sử dụng
công nghiệp, tức là người có chuyên môn và được đào tạo, huấn luyện. Đó là
một chuyên gia hệ thống và lập trình, những người thực hiện và cập nhật tất
cả các thuật toán điều khiển và thiết kế SCADA trực quan. Một người giám
sát được đào tạo sử dụng lớp trên cùng để xem thông tin quan trọng về hệ
thống, kiểm tra báo động, thiết lập các giá trị biến và chạy các hành động
được xác định trước. Ngược lại, một điển hình về nhà thông minh là người sử
dụng không biết gì về các thuật toán điều khiển, lập trình và chưa nhận được
sự huấn luyện nào.
Một ví dụ cụ thể, một người phụ nữ với gia đình sống trong một ngôi
nhà thông minh với một hệ thống kiểm soát hai lớp. Một hôm cô mua một cái


đèn bàn mới và kết nối nguồn điện. Cô đã quen với nút "Leave the house"
tuyệt vời để tự động tắt đèn. Tiết kiệm được rất nhiều thời gian và không phải
chạy quanh nhà để kiểm tra mọi thứ khi rời khỏi nhà. Nhưng khi cô ấy quay
về thì bóng đèn đã không tắt. Tại sao lại như vậy, hệ thống kiểm soát vẫn
không biết về nó! Cô ấy hỏi con trai của mình, người khá có tay nghề với

máy vi tính, để nối đèn. Đầu tiên anh ta tìm kiếm menu màn hình cảm ứng,
nhưng không có tùy chọn để thêm một thiết bị mới. Sau đó, anh nhớ lại cách
tích hợp hệ thống bằng cách sử dụng một số phần mềm phức tạp khi hỏi nhân
viên lắp đặt khi họ đang cấu hình hệ thống. Người con trai thành công trong
việc thực hiện phần mềm này, nhưng lo sợ bởi các dòng mã lập trình và các
chương trình phức tạp với nhiều biểu tượng mà anh ấy không thực sự chắc
chắn về nó. Anh ta không muốn tốn nhiều giờ để đọc một cuốn sổ tay và vẫn
còn có nguy cơ rằng anh ta sẽ làm hỏng cả hệ thống. Bây giờ họ phải đưa ra
lựa chọn là điều khiển bóng đèn bằng tay hay gọi cho bộ phận chuyên nghiệp
mà chi phí sẽ nhiều hơn so với chính bóng đèn đó.
Giải pháp tổng thể so với giải pháp chuyên ngành, một số nhà cung cấp
phát triển phần mềm đặc biệt cho nhà thông minh, trong khi một số khác lại
thích dùng chung hệ thống điều khiển. Cả hai cách tiếp cận đều có ưu và
khuyết điểm.
Dễ dàng và tiết kiệm hơn để phát triển một môi trường kiểm soát chung
với nhiều tính năng có sẵn, chuyên biệt cho mỗi ứng dụng. Nhưng tổng quát
nhất thiết phải không làm cho hệ thống phức tạp hơn mà trở nên quá khó hiểu
với người dùng. Có bao nhiêu người thích một bộ điều khiển từ xa phức tạp
với 50 nút tùy chỉnh và khả năng ngôn ngữ khó hiểu? Tại sao các giao diện
điều khiển đơn giản của Apple đã trở nên thành công đến vậy?
Việc phát triển một hệ thống điều khiển chuyên dụng đòi hỏi nhiều nỗ
lực và hệ thống sẽ mất đi sự đơn giản hóa. Chúng ta có nên thực hiện một


chức năng chỉ được yêu cầu bởi một vài người sử dụng, nhưng sẽ làm cho hệ
thống phức tạp hơn cho phần còn lại? Phần lớn các phần mềm tự động hóa
chuyên biệt tại ngôi nhà hiện nay đều rất dễ sử dụng, nhưng cũng rất hạn chế,
hoặc có thể cấu hình với sự hỗ trợ có kịch bản và phức tạp.
- Phương pháp khả thi
Xét những vấn đề này ở khía cạnh kỹ thuật, có hai cách có thể điều

chỉnh hệ thống điều khiển để phù hợp với yêu cầu của nhà thông minh.
Một lựa chọn là tạo ra các quyền truy cập khác cho lập trình viên của
lớp dưới cùng và người dùng cuối chỉ muốn sửa đổi nhỏ. Chúng ta có thể
khóa các vòng điều khiển quan trọng và thậm chí ẩn thiết lập phức tạp cho
người dùng cuối để anh ta có thể sử dụng tất cả sức mạnh của lớp dưới cùng
để thực hiện sở hữu ý tưởng mà không có nguy cơ làm hỏng các chức năng
quan trọng. Chúng ta cũng có thể thêm một thư viện chức năng cụ thể cho
nhà thông minh. Một vấn đề vẫn là môi trường lập trình phức tạp như một rào
cản cho hầu hết người dùng cuối.
Một khả năng khác là thêm nhiều chức năng vào lớp trên cùng
SCADA, để người dùng có thể thêm và cấu hình các thiết bị hoặc thậm chí
thay đổi logic. Điều này dẫn đến một hệ SCADA khá phức tạp mà sẽ không
được trực quan cho nhiều người dùng không có kỹ năng. Chế độ xem đầu vào
và màn hình của lớp trên thường bị giới hạn và nó có thể khó khăn để hiển thị
tất cả các thông tin cần thiết cho cấu hình hệ thống trên một thiết bị.
Cả hai giải pháp đã nêu đều dẫn đến nhiều vấn đề hạn chế, dẫn đến kết
quả là giao diện người dùng không thực sự phù hợp cho bất kỳ ai. Do đó,
thêm một lớp vào hệ thống điều khiển dường như là một giải pháp thích hợp.
Lớp giữa (middle layer) sẽ thực hiện giao diện đặc biệt để giải quyết các nhu
cầu cụ thể của nhà thông minh và người sử dụng.
b. Cấu trúc ba lớp (Three - layer) cho hệ thống điều khiển


- Hệ thống điều khiển nhiều lớp (multi - layer)
Hệ thống điều khiển đa lớp đã được sử dụng thành công trong các lĩnh
vực ứng dụng khác nhau, chẳng hạn như kiểm soát giao thông, công nghệ
robot. Kiến trúc ba lớp được sử dụng khá phổ biến hiện nay. Thiết kế chức
năng và giao diện của mỗi lớp dựa trên kiểu người dùng mà nó phục vụ. Lớp
trên cùng phải dễ dàng vận hành bởi bất cứ ai, lớp giữa đòi hỏi kiến thức máy
tính tiên tiến và lớp dưới được thiết kế cho chuyên gia tự động hóa.


Hình 1.1. Cấu trúc giao diện người dùng cho hệ thống ba lớp
- Lớp dưới cùng trong hệ thống điều khiển ba lớp (bottom - layer)
Ứng dụng tương tự như lớp dưới cùng trong khái niệm truyền thống có
thể được sử dụng như một lớp dưới cùng trong khái niệm mới với những sửa
đổi nhỏ hơn, cần thiết cho việc liên lạc với lớp giữa. Nó là cốt lõi của hệ
thống điều khiển, có thể được sử dụng chung cho bất kỳ loại hệ thống nào
bao


gồm nhà máy hoặc nhà thông minh. Nhiều gói phần mềm loại này đã tồn tại,
điển hình được phát triển bởi các nhà sản xuất phần cứng điều khiển lớn.
Bảng 1.1. Danh mục môt số phần mềm lớp dưới của các hãng công
nghệ
Nhà sản xuất

Hệ thống điều khiển
SW
Siemens
Simatic Step 7
B&R
Automation studio
Domat
RcWare
Teco
Mosaic
Tất cả các giao tiếp với hệ thống vật lý được quản lý trong lớp này và
cấu trúc dữ liệu được hoàn thiện cho các lớp trên.
Người sử dụng điển hình của lớp này là một chuyên gia lập trình và am
hiểu công nghệ. Trong trường hợp nhà thông minh, đó là một chuyên gia

được đào tạo nghiêm túc, thực hiện tốt các hệ thống điều khiển. Họ kết nối hệ
thống điều khiển với hệ thống vật lý, định nghĩa các điểm dữ liệu và thực hiện
các vòng điều khiển chính, đặc biệt là HVAC. Không giống như trong trường
hợp của khái niệm truyền thống, họ không cần thiết cho việc sửa đổi logic và
cấu trúc nhỏ, bởi vì nó có thể được thực hiện ở tầng giữa.
- Lớp trên cùng trong hệ thống điều khiển ba lớp (Top - layer)
Lớp trên cùng trong hệ thống ba lớp có nhiệm vụ tương tự như lớp trên
cùng trong hệ thống hai lớp truyền thống. Tuy nhiên, do có nhiều nhiệm vụ
phức tạp được chuyển đến lớp giữa nên nó bớt phức tạp hơn và dễ dàng sử
dụng hơn.
Người dùng tương tác với hệ thống chủ yếu thông qua các thiết bị lớp
trên cùng, bao gồm:
+ Nút ấn, công tắc
+ Điều khiển từ xa
+ Bảng cảm ứng
+ Điện thoại thông minh


Không giống như ở các lớp thấp hơn, nhìn chung không có yêu cầu xác
thực nào ở lớp này vì ba lý do sau:
+ Các thiết bị lớp trên cùng thường ở cùng cấp với công tắc bật đèn cổ
điển. Bất kỳ ai cũng có thể sử dụng các ứng dụng lớp này để điều khiển các
thiết bị trong nhà.
+ Lớp trên cùng chỉ có các thao tác an toàn để không làm hỏng hệ
thống bởi một sai sót nào đó.
+ Lớp trên cùng được sử dụng thường xuyên vì vậy việc xác thực sẽ
lamg chậm lại quá trình điều khiển.
Việc điều khiển lớp trên cùng phải rất trực quan để ngay cả những
người dùng có khả năng sử dụng máy tính thấp nhất cũng có thể sử dụng nó
một cách dễ dàng. Trong ngôi nhà thông minh, người sử dụng có thể là trẻ em

và người cao tuổi.
- Lớp giữa trong hệ thống điều khiển ba lớp (Middle - layer)
Lớp giữa tạo nên sự khác biệt chính giữa khái niệm ba lớp được đề
xuất và khái niệm truyền thống. Mục đích chính của lớp này là để cho phép
người dùng có kiến thức về máy tính tiên tiến thực hiện các sửa đổi cơ bản
cho hệ thống mà không phải đối mặt với các vấn đề gây ra bởi việc chỉnh sửa
lớp dưới cùng.
Lớp giữa về cơ bản được đơn giản hoá phần mềm của lớp dưới cùng,
được sắp xếp hợp lý cho việc điều khiển nhà thông minh. Nó kết nối đến các
điểm dữ liệu trừu tượng và các chức năng được cung cấp bởi lớp dưới cùng,
tổ chức chúng thành một cấu trúc logic và kết nối chúng với logic đơn giản.
Một nhiệm vụ điển hình được thực hiện trong lớp giữa là thay đổi ngữ cảnh,
cài đặt thời gian hoặc kết nối thiết bị mới với hệ thống.


Hình 1.2. Quan hệ dữ liệu của lớp giữa và lớp dưới
Những lý do chính để thiết kế lớp giữa:
+ Cấu trúc ba lớp thể hiện cấu trúc người dùng tốt hơn nhiều so với hai
lớp.
+ Lớp giữa cung cấp cho người dùng một cơ hội tương đối an toàn để
thực hiện bảo trì cơ bản hệ thống của mình.
+ Tách các vòng điều khiển quan trọng để đảm bảo an toàn cho hệ
thống.
+ Các hệ thống đa lớp thường có tính linh hoạt hơn.
1.2. MÔ TẢ HỆ THỐNG NHÀ THÔNG MINH
1.2.1. Chức năng hệ thống điều khiển nhà thông minh
Hệ thống điều khiển nhà thông minh gồm các chức năng cơ bản sau:
• Bộ xử lý trung tâm thu thập dữ liệu gửi về.
• Xử lý tín hiệu Analog (chuyển đổi tín hiệu tương tự sang tín hiệu
số).



• Xử lý tín hiệu đầu vào
• Nhận và gửi dữ liệu thông qua mô đun Internet
• Thu thập và truyền nhận dữ liệu thông qua mô đun Internet
• Xử lý và xuất tín hiệu điều khiển ở đầu ra
• Gửi tín hiệu điều khiển đến các mô đun đầu ra
Phần mềm trên điện thoại thông minh cho phép chúng ta điều khiển các
thiết bị thông qua mạng không dây wifi, lệnh sẽ được bộ điều khiển nhận và
xuất tín hiệu điều khiển cho các rơ le ở ngõ ra. Ứng dụng trên điện thoại có
thể bật/ tắt đồng thời nhiều thiết bị như đèn chiếu sáng, rèm cửa, ti vi, hệ
thống âm thanh...
1.2.2. Sơ đồ khối hệ thống điều khiển nhà thông minh
Dựa trên các yêu cầu thiết kế và thông số kỹ thuật, biểu đồ khối hệ
thống thể hiện trong hình vẽ 2.1. Sơ đồ khối này xác định tất cả các chức
năng được thực hiện bởi hệ thống. Việc thiết kế hệ thống được tiếp cận bằng
cách giao tiếp các mô đun với vi điều khiển Arduino UNO R3 dựa trên bộ vi
xử lý Atmel328. Trong phần sau sẽ giải thích rõ hơn một số khái niệm cơ bản
của mạch được sử dụng trong thiết kế hệ thống.


Hình 1.3. Sơ đồ khối hệ thống điều khiển
1.2.3. Cấu trúc vi xử lý (Microprocessor)
Vi xử lý là một thiết bị hoạt động với thông tin nhị phân. Một bộ vi xử
lý điển hình bao gồm:
• Bộ xử lý trung tâm (CPU)
• Bộ nhớ (RAM và ROM)
• Cổng vào/ ra (I/O)
Tất cả các bộ phận này giao tiếp với nhau thông qua bus truyền thông
như hình vẽ 2.2.

- CPU:
CPU kết nối toàn bộ hệ thống với nhau. Các hàm chức năng thực hiện
bởi các phần tử được kiểm soát bởi CPU. Ngoài ra, tất cả các dữ liệu từ bộ
nhớ sẽ được tìm nạp bởi CPU. Một CPU điển hình có các bộ phận chức năng
kết nối với nhau như sau: (Hình 2.2)
• Bộ nhớ (Đăng ký)


Bộ nhớ lưu trữ tạm thời trong CPU
• Đơn vị số học / lôgic (ALU)
Các lõi chính của CPU. Tất cả các quy trình lôgic và số học về dữ liệu
nhị phân sẽ được xử lý bởi ALU
• Bộ điều khiển (Control Unit)
Sử dụng đầu vào đồng hồ, CU giữ tiến trình sắp xếp hợp lý cần thiết
cho tất cả các nhiệm vụ xử lý.
- Bộ nhớ:
Bộ vi xử lý cần lưu / khôi phục dữ liệu cho tất cả các chương trình xử
lý. RAM và ROM là hai loại bộ nhớ khác nhau trong hệ thống máy tính.
• RAM: (Random Access Memory)
Một loại bộ nhớ có thể đọc và ghi được bởi bộ vi xử lý. Mỗi khi hệ
thống điện tắt, bộ nhớ này sẽ xóa tất cả.
• ROM (Read Only Memory)
Đây không phải là loại bộ nhớ ghi được, do đó bộ xử lý chỉ có thể đọc
dữ liệu từ nó. Vì ROM là một bộ nhớ với dữ liệu cố định, mọi dữ liệu vẫn
được lưu lại khi mất điện.

Hình 1.4. Sơ đồ khối cấu trúc vi xử lý cơ bản


- Cổng vào/ ra (I/O):

Cổng đầu vào và đầu ra để truyền thông giữa tất cả các thành phần
khác nhau của vi xử lý với việc gửi / nhận dữ liệu hoặc tín hiệu.


CHƯƠNG 2. NGHIÊN CỨU HỆ ĐIỀU HÀNH LINUX VÀ
ỨNG DỤNG MÁY TÍNH NHÚNG
2.1.

TỔNG QUAN HỆ ĐIỀU HÀNH LINUX
2.1.1. Lịch sử phát triển
• Năm 1969
Tất cả các hệ điều hành hiện đại đều có nguồn gốc từ năm 1969 khi

Dennis Ritchie và Ken Thompson đã phát triển ngôn ngữ C và hệ điều hành
Unix tại AT & T Bell Labs. Họ chia sẻ mã nguồn của họ với phần còn lại của
thế giới, bao gồm cả những người hippies ở Berkeley California. Đến năm
1975, khi AT & T bắt đầu thương mại Unix, khoảng một nửa số mã nguồn
được viết bởi những người khác. Những người hippies không vui vì một công
ty thương mại đã bán phần mềm mà họ đã viết; kết quả là có hai phiên bản
Unix: chính thức của AT & T Unix, và BSD Unix miễn phí. Thế hệ sau của
BSD như FreeBSD, OpenBSD, NetBSD, DragonFly BSD và PC-BSD vẫn
phát triển và hoạt động cho đến ngày hôm nay.
• Thập niên 1980
Vào thập niên tám mươi, nhiều công ty bắt đầu phát triển Unix của
riêng mình. IBM đã tạo ra AIX, Sun SunOS (sau đó là Solaris), HP HP-UX và
khoảng một chục công ty khác cũng đã làm như vậy. Kết quả là nhiều ngôn
ngữ không chính thống được tạo ra cho Unix. Và đây là góc rễ đầu tiên thực
sự của Linux, khi Richard Stallman nhằm mục đích kết thúc giai đoạn tách
biệt Unix và mọi người lại phát minh ra vòng lặp bằng cách bắt đầu dự án
GNU (GNU is Not Unix). Mục tiêu của ông là tạo ra một hệ điều hành tự do

có sẵn cho mọi người, và nơi mọi người có thể làm việc cùng nhau (như trong
những năm 70). Nhiều công cụ dòng lệnh mà bạn sử dụng ngày hôm nay trên
Linux là các công cụ GNU.


• Thập niên 1990
Nineties đã bắt đầu với Linus Torvalds, một sinh viên Phần Lan nói
tiếng Phần Lan, mua một máy tính 386 và viết một hạt nhân tuân thủ POSIX
mới. Ông đặt mã nguồn trực tuyến, nghĩ rằng nó sẽ không bao giờ hỗ trợ bất
cứ điều gì từ phần cứng vi xử lý 386. Nhiều người chấp nhận sự kết hợp của
hạt nhân này với các công cụ GNU, và phần còn lại, như họ nói, là lịch sử.
• Năm 2015
Ngày nay hơn 97% các siêu máy tính trên thế giới (bao gồm cả top 10),
hơn 80 % điện thoại thông minh, hàng triệu máy tính để bàn, khoảng 70 %
các máy chủ web, một lượng lớn máy tính bảng và một số thiết bị dvdplayers,
máy giặt, modem dsl, bộ định tuyến, xe tự lái, máy tính bảng trạm không gian
...) chạy Linux. Linux là hệ điều hành được sử dụng phổ biến nhất trên thế
giới. Phiên bản kernel 4.0 đã được phát hành vào tháng 4 năm 2015. Mã
nguồn mở rộng hàng trăm nghìn dòng (so với phiên bản 3.19 từ tháng 2 năm
2015) nhờ đóng góp của hàng ngàn nhà phát triển thanh toán bởi hàng trăm
công ty thương mại bao gồm Red Hat, Intel, Samsung, Broadcom , Texas
Instruments, IBM, Novell, Qualcomm, Nokia, Oracle, Google, AMD và thậm
chí Microsoft (và nhiều hơn nữa).
2.1.2. Các phiên bản Linux phổ biến
a. Red Hat
Red Hat là một công ty thương mại Linux trị giá hàng tỷ đô la và đã nỗ
lực rất nhiều trong việc phát triển Linux. Họ có hàng trăm chuyên gia về
Linux và được biết đến với sự sáng tạo tuyệt vời của họ. Họ cung cấp cho các
sản phẩm của họ (Red Hat Enterprise Linux và Fedora) miễn phí.
b. Ubuntu

Canonical đã bắt đầu phát đĩa compact miễn phí với Ubuntu Linux vào
năm 2004 và chúng nhanh chóng trở nên phổ biến cho người dùng gia đình


(nhiều người chuyển đổi từ Microsoft Windows). Canonical muốn Ubuntu là
một máy tính để bàn dạng đồ hoạ dễ sử dụng mà không cần phải nhìn thấy
một dòng lệnh nào. Tất nhiên họ cũng muốn tạo ra lợi nhuận bằng cách bán
các phần mềm hỗ trợ cho Ubuntu.
c. Debian
Debian được xem là một trong những phiên bản Linux ổn định nhất.
Nó cũng là cơ sở của mỗi lần phát hành Ubuntu. Debian có ba phiên bản: ổn
định, thử nghiệm và không ổn định. Mỗi bản phát hành Debian được đặt tên
theo một nhân vật trong bộ phim Toy Story.
d. Một số phiên bản khác
Các phiên bản như CentOS, Oracle Enterprise Linux và Scientific
Linux dựa trên Red Hat Enterprise Linux và chia sẻ nhiều nguyên tắc, thư
mục và kỹ thuật quản trị hệ thống. Linux Mint, Edubuntu và nhiều chương
trình khác Ubuntu được đặt tên dựa trên Ubuntu và do đó chia sẻ rất nhiều
với Debian. Có hàng trăm phiên bản Linux khác nhau.
e. Lựa chọn phiên bản Linux
Dưới đây là một số ý kiến rất cá nhân về một số phiên bản Linux phổ
biến nhất.
Bảng 2.1. Lựa chọn các phiên bản hệ điều hành Linux
T
T

TÊN PHIÊN BẢN

1


Red Hat Enterprise (RHEL)

2

CentOS

3

Fedora

4

Linux Mint

5

Debian

TÍNH NĂNG
Quản lý và hỗ trợ tốt cho
người dùng
Quản lý tốt tuy nhiên ít
hỗ
trợ hơn Ret hat
Tích hợp Red Hat trên
máy
tính xách tay / máy tính
để bàn cá nhân
Phiên bản phù hợp để
thiết

kế đồ họa, trò chơi.
Phù hợp với tất cả các
thiết
bị máy tính


6

Ubuntu

7

Kali

8

Others

Rất phổ biến, dựa trên
Debian,
Có một giao diện hack đơn
giản
Người dùng cao cấp có thể
thích Arch, Gentoo, OpenSUSE,
Scientific, ...

Trong nội dung nghiên cứu đề tài này, chúng tôi lựa chọn phiên bản
Debian
2.2.


CÀI ĐẶT HỆ ĐIỀU HÀNH LINUX
Phần này mô tả từng bước cài đặt hệ điều hành Debian 8 (còn gọi là

Jessie).
2.2.1. Hệ điều hành Debian 8
Debian là một trong những phiên bản Linux lâu đời nhất. Tôi sử dụng
Debian làm hệ điều hành trên hầu hết các máy tính nhúng mà tôi sở hữu (bao
gồm raspbian trên Raspberry Pi).
Debian xuất hiện trong các bản phát hành được đặt tên theo các nhân
vật trong bộ phim Toy Story. Bản phát hành của Jessie chứa khoảng 36000
gói.
Bảng 2.2. Các phiên bản của Debian
Tên

Phiên bản

Năm

Woody

3.0

2002

Sarge

3.1

2005


Etch

4.0

2007

Lenny

5.0

2009

Squeeze

6.0

2011

Wheezy

7.0

2013

Jessie

80

2015



×