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.
Trang 1ALU Đơ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
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ị
A Hệ thống điều khiển giám sát và thu thập dữ liệu
SCK Xung đồng hồ kết hợp truyền dữ liệu
SPI Giao thức mà vi điều khiển sử dụng để giao tiếp với vi điều khiển
khác
VCC Dương nguồn
DANH MỤC CÁC KÝ HIỆU
Trang 2Số hiệu
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
DANH MỤC CÁC BẢNG
Trang 31.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)
DANH MỤC CÁC HÌNH
Trang 43.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
3.26 Lưu đồ thuật toán điều khiển cửa và rèm cửa của nhà thông minh
3.27 Lưu đồ thuật toán giám sát và điều khiển qua Internet
3.28 Lưu đồ thuật toán giám sát và điều khiển qua Smartphone
4.1 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ường4.8 Hệ thống điện chiếu sáng phòng khách ở chế độ tiếp khách4.9 Màn hình điều khiển trên Websever
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
Trang 5MỞ ĐẦ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ínhhay các bộ xử lý được thiết kế ngày một nhỏ gọn, tính năng thông minh, ưuviệ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 xungquanh Hiện nay các máy tính nhúng gần như đã được tích hợp vào cuộc sốnghà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ảnxuất những chiếc TV thông minh, chúng sử dụng máy tính nhúng được truyềnthô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ộtcá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ểncủ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 choriêng họ, Google đã mua lại Nest Labs để tạo ra bộ ổn nhiệt và bộ dò khóithông minh
Với xu thế phát triển công nghệ nhà thông minh như vậy, việc nghiêncứ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ữudụ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
5
Trang 62 Đố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ầnmềm Autocad, Proteus, Flowcode, Python3 trên Linux kết hợp với thuyếtminh, trình bày kết quả bằng Office và các phần mềm chuyên dụng khác
Trang 74 Ý 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 ứngdụ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.
Trang 8CHƯƠ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ếtkiệ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 quamạ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ớicá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ữngvấn đề thực sự quan trọng Hệ thống điều khiển không chỉ cho phép nhữngcả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ữ chokhô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ảnhthích hợp để xem một bộ phim với bộ điều khiển từ xa hoặc khóa cửa ở tầngdướ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ữngbứ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ácthực phẩm hết hạn sử dụng
Trang 9Mặc dù ý tưởng kỹ thuật rất có tương lai, tuy nhiên ngôi nhà thôngminh 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ủachú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ảnxuấ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ệmnă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 quantrọ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ănphòng Đến nay, thị trường nhà thông minh đã phát triển đủ lớn để có nhữnggiả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ốnké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ườngnhà 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ệcchú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ựngnhữ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ấttrong đề tài này bằng phương pháp từ trên xuống (top-down) Do xu hướngkinh tế toàn cầu và nhu cầu người sử dụng, trước hết chúng ta sẽ xác địnhgiao diện người dùng độc lập với hệ thống bên dưới Sau đó, chúng ta sẽ tìmcác cài đặt phần cứng thích hợp
Trang 101.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ôngminh, 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ệntại được sử dụng cho nhà thông minh, phân tích các vấn đề của chúng và cuốicù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 hailớ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ạicác đối tượng theo màu sắc để kiểm soát vấn đề Một lập trình viên có kinhnghiệ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 PCcho 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ư PLChoặ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átquá 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
Trang 11viê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ợpcho 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á caocho 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 ưucâ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 ánhsáng ở nhà, nhưng chúng ta có thể bỏ qua được Đáp ứng thời gian 100msthườ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ụngcô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ámsá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ôinhà 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
Trang 12đè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ảichạ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ẫnkhông biết về nó! Cô ấy hỏi con trai của mình, người khá có tay nghề vớimá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áchtí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ânviên lắp đặt khi họ đang cấu hình hệ thống Người con trai thành công trongviệ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ácchương trình phức tạp với nhiều biểu tượng mà anh ấy không thực sự chắcchắn về nó Anh ta không muốn tốn nhiều giờ để đọc một cuốn sổ tay và vẫncòn có nguy cơ rằng anh ta sẽ làm hỏng cả hệ thống Bây giờ họ phải đưa ralự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ấpphát triển phần mềm đặc biệt cho nhà thông minh, trong khi một số khác lạithí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 chungvớ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átnhấ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ểuvớ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ạpvớ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
Trang 13chứ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óachuyê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.
để thực hiện sở hữu ý tưởng mà không có nguy cơ làm hỏng các chức năngquan trọng Chúng ta cũng có thể thêm một thư viện chức năng cụ thể chonhà 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àocả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ùngSCADA, để 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ếtquả 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 nhucầ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
Trang 14- 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ĩnhvự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ứcnă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ớptrê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áytí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àobao
Trang 15gồ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
- 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êncù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ớptrên cùng, bao gồm:
Trang 16Không giống như ở các lớp thấp hơn, nhìn chung không có yêu cầu xácthự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ácthiế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ữngngườ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épngườ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ảncho 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ửalớ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
Trang 17Hình 1.2 Quan hệ dữ liệu của lớp giữa và lớp dưới
+ 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ố)
Trang 18• 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ácthiế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ứcnă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ằngcá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ảncủa mạch được sử dụng trong thiết kế hệ thống
Trang 19Hình 1.3 Sơ đồ khối hệ thống điều khiển
• Bộ nhớ (Đăng ký)
Trang 20Bộ 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
Trang 21- 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
Trang 22CHƯƠNG 2 NGHIÊN CỨU HỆ ĐIỀU HÀNH LINUX VÀ
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ảnUnix: chính thức của AT & T Unix, và BSD Unix miễn phí Thế hệ sau củaBSD như FreeBSD, OpenBSD, NetBSD, DragonFly BSD và PC-BSD vẫnphá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ủariê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ônngữ 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áchbiệ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ự ánGNU (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ư trongnhữ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ênLinux là các công cụ GNU
Trang 23• Thập niên 1990
Nineties đã bắt đầu với Linus Torvalds, một sinh viên Phần Lan nóitiếng Phần Lan, mua một máy tính 386 và viết một hạt nhân tuân thủ POSIXmớ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ủahạ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ăm2015) nhờ đóng góp của hàng ngàn nhà phát triển thanh toán bởi hàng trămcông ty thương mại bao gồm Red Hat, Intel, Samsung, Broadcom , TexasInstruments, IBM, Novell, Qualcomm, Nokia, Oracle, Google, AMD và thậmchí 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ácsả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
Trang 24(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ấymộ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áncá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êntheo 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à ScientificLinux 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ươngtrình khác Ubuntu được đặt tên dựa trên Ubuntu và do đó chia sẻ rất nhiềuvớ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
1 Red Hat Enterprise (RHEL) Quản lý và hỗ trợ tốt cho
người dùng
2 CentOS Quản lý tốt tuy nhiên ít hỗ
trợ hơn Ret hat
Trang 256 Ubuntu Rất phổ biến, dựa trên
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ụngDebian 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 (baogồ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ânvật trong bộ phim Toy Story Bản phát hành của Jessie chứa khoảng 36000gói
Bảng 2.2 Các phiên bản của Debian
Trang 26từ máy chủ DHCP cục bộ của mình.
2.2.4 Đặt tên máy chủ