DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT AES Advanced Encryption Standard Tiểu chuẩn mã hóa tiên tiến ATT Attribute Protocol Giao thức phần tử dữ liệu BLE Bluetooth Low Energy Bluetooth năng lượn
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HN
-
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc -
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ và tên sinh viên: Số hiệu sinhviên:
Khóa:
Khoa/Viện: Ngành:
1 Đầu đề thiết kế:
2 Các số liệu ban đầu:
3 Nội dung các phần thuyết minh và tính toán:
4 Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
Trang 3
5 Họ tên cán bộ hướng dẫn:
6 Ngày giao nhiệm vụ đồ án:
7 Ngày hoàn thành đồ án:
Ngày tháng năm … Trưởng bộ môn
Trang 4MỤC LỤC
DANH MỤC HÌNH VẼ ii
DANH MỤC BẢNG BIỂU iii
DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT iii
LỜI NÓI ĐẦU 2
Chương 1 3
TỔNG QUAN 3
1.1 Giới thiệu đề tài 3
1.1.1 Ý tưởng đề tài 3
1.1.2 Tóm tắt đề tài 3
1.1.3 Phương pháp nghiên cứu 4
1.1.4 Đối tượng nghiên cứu 4
1.1.5 Tiêu chí thiết kế cho đề tài 4
1.1.6 Sơ đồ tổng quan của hệ thống 5
Chương 2 22
CÔNG NGHỆ BLUETOOTH 4.0 22
2.1 Công Nghệ Bluetooth 22
2.1.1 Khái niệm 22
2.1.2 Đặc điểm của Bluetooth 22
2.1.3 Lịch sử phát triển Bluetooth 23
2.2 Kiến trúc giao thức Bluetooth 4.0 24
2.2.1 Giới thiệu chung 24
2.2.2 Cấu trúc cơ bản của giao thức 24
2.2.3 Lớp Vật lý (Physical Layer) 25
2.2.4 Lớp liên kết (Link Layer) 25
2.2.5 Lớp HCI (host control interface) 25
2.2.6 Lớp L2CAP (link logical control and adaption protocol) 25
2.2.7 Lớp ATT ( Attribute Protocol) 26
2.2.8 Lớp SM (Security Manager) 26
2.2.9 Lớp GATT (Generic Attribute Profile) 26
2.2.10 Lớp GAP ( Generic Access Profile) 28
Hình 2.4 Sơ đồ các trang thái của GAP 29
Chương 3 22
Thiết Kế Mạch Điều Khiển 22
3.1.Thiết kế phần cứng 22
Trang 53.1.1 Sơ đồ khối 22
3.1.2 CC2541 System on chip 23
3.1.3 Khối điều khiển và truyền thông 24
3.1.4 Khối mạch lái cho Relay 25
3.1.5 Khối nguồn 3,3V 27
3.1.6 Nguồn 220V-5VDC 27
3.1.7 Khối cảm biến nhiệt độ, còi báo, led báo và nút bấm 28
3.2 Thiết kế phần mềm 31
3.2.1.Thiết lập service cho lớp GATT server 31
3.2.2.Thiết lập các thông số hoạt động cho lớp GAP 32
3.2.3.Viết các hàm để cấu hình và sử dụng các ngoại vi 32
CHƯƠNG 4 34
THIẾT KẾ ỨNG DỤNG ĐIỀU KHIỂN TRÊN ANDROID 34
4.1 Tổng quan về hệ điều hành android 34
4.1.1 Kiến trúc của Android 34
4.1.2 Các ứng dụng (Applications) 35
4.1.3 Khung ứng dụng (Application farmework) 36
4.1.4 Thư viện và các giao diện lập trình ( Libraries ) 36
4.1.5 Chu kỳ ứng dụng android 37
4.2 Thiết kế ứng dụng trên thiết bị di động 41
4.2.1 Tiêu chí thiết kế 41
4.2.2 Chương trình thiết kế 41
4.2.3 Thiết kế giao diện ứng dụng 42
4.2.4 Hệ thống của ứng dụng 42
4.3 Cách thức hoạt động của ứng dụng “ điều khiển thiết bị BLE” 43
KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 45
TÀI LIỆU THAM KHẢO 46
PHỤ LỤC 47
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1 Sơ đồ tổng quan của hệ thống 5
Hình 2.1 Cấu trúc của giao thức Bluetooth Low Energy 24
Hình 2.2 Vai trò của từng GATT ứng với central và peripheral 27
Hình 2.3 Sự phân cấp dữ liệu trong một GATT Server 27
Hình 3.1 Sơ đồ khối mạch điều khiển 22
Hình 3.2 Sơ đồ chân CC2541 23
Hình 3.3 Khối điều khiển và truyền thông 24
Hình 3.4 Sơ đồ mạch nguyên lý khối điều khiển relay với khối chấp hành 25
Hình 3.5 Sơ đồ mạch của một kênh bên trong IC ULC2003a 26
Hình 3.6 Ảnh minh họa relay 26
Hình 3.7 Khối nguồn 3,3V 27
Hình 3.8 Hình ảnh minh họa LM1117 27
Hình 3.9 Module nguồn 220V-5VDC 28
Hình 3.10 Khối cảm biến, báo hiệu, mạch nạp 28
Hình 3.11 Sơ nguyên lý của bo mạch 29
Hình 3.12 Hình ảnh mạch thật 30
Hình 3.13 Lưu đồ thuật toán cho mạch điều khiển 33
Hình 4.1 Cấu trúc hệ thống Android 35
Hình 4.2: Activity Stack 38
Hình 4.3 Vòng đời Activity 39
Trang 7DANH MỤC BẢNG BIỂU
Bảng 3.1 Phân phối các đầu vào ra cho module CC2541 25Bảng 3.2 Bảng liệt kê các service và characteristic bên trong profile của GATT
server 31
Trang 8DANH MỤC KÍ HIỆU VÀ TỪ VIẾT TẮT
AES Advanced Encryption Standard Tiểu chuẩn mã hóa tiên tiến
ATT Attribute Protocol Giao thức phần tử dữ liệu
BLE Bluetooth Low Energy Bluetooth năng lượng thấp
DMA Direct memory access Bộ nhớ truy cập trực tiếp
GATT Generic Attribute Profile
HCI Host-Controller Interface Lớp giao diện Host-Control
L2CAP Link Logical Control and
Adaption Protocol
Lớp điều khiển liên kết logic và giao thức thích ứng
RAM Random Access Memory Bộ nhớ truy cập ngẫu nhiên
SDK Software Development Kit Bộ phát triển phần mềm
UART Universal asynchronous receiver/
transmitter
Truyền thông có dây không đồ bộ
Trang 9LỜI NÓI ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, cuộc sống của chúng ta đang ngày một thay đổi, văn minh và hiện đại hơn Khái niệm nhà thông minh ra đời để áp ứng những nhu cầu cuộc sống của con người Một ngôi nhà thông minh là giải pháp điều khiển tích hợp các thiết bị điện tử, nghe nhìn, truyền thông thành một hệ thống hoàn chỉnh và hợp nhất
Nhận thức được tầm ứng dụng thực tiễn của ngôi nhà thông minh, và sự quan trong của truyền thông trong hệ thống nhà thông minh là cơ sở để chúng em chọn đề
tài đồ án tốt nghiệp là “Thiết kế hệ thống điều khiển thiết bị điện trong gia đình
từ xa qua truyền thông không dây” Trong suốt thời gian hoàn thành đồ án, chúng
em đã tìm hiểu về vi điều khiển, các chế độ truyền thông, cảm biến đo, cơ cấu chấp hành, cách kết nối Bluetooth, điều khiển qua điện thoại thông minh
Dưới sự hướng dẫn, chỉ bảo của thầy Vũ Vân Hà cùng với sự cố gắng nỗ lực của các thành viên trong nhóm, chúng em đã hoàn thành đồ án đúng thời hạn cho phép Tuy nhiên do thời gian hạn chế, cùng lượng kiến thức rất lớn nên chúng em không thể tránh những thiếu xót Vì vậy trong đề tài này chúng em tập trung giải quyết các vấn đề chính sau:
Thiết kế phần cứng điều khiển thiết bị thông qua module CC2541
Điều khiển bật/tắt và hiện thị trạng thái thiết bị trên ứng dụng của điện thoại
Em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện
Lê Thiện Đức Cao Văn Hoàng
Nguyễn Thị Minh Giang
Trang 10Chương 1 TỔNG QUAN 1.1 Giới thiệu đề tài
1.1.1 Ý tưởng đề tài
Hiện nay, điều khiển từ xa các thiết bị trong nhà qua truyền thông không dây
đã trở nên rất phổ biến trong sinh hoạt gia đình hàng ngày Cụ thể như: Tivi, Antena, Máy điều hòa, đầu DVD, quạt, … Nhưng đó chỉ là điều khiển riêng lẻ Trong tương lai con người hướng đến việc điều khiển tất cả các thiết bị chỉ dùng một bộ điều khiển để phục vụ cho cuộc sống tiện lợi hơn
Trong những năm gần đây công nghệ truyền nhận dữ liệu không dây đang có những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh Hiện nay, có khá nhiều công nghệ truyền nhận dữ liệu không dây như RF, Wifi, Bluetooth, NFC,… Trong đó, Bluetooth là một trong những công nghệ được phát triển từ lâu và luôn được cải tiến để nâng cao tốc độ cũng như khả năng bảo mật Trên thị trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bị không dây, đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao Việc nghiên cứu và thiết kế một bộ sản phẩm điều khiển thiết bị không dây có một ý nghĩa lớn, giúp tăng thêm sự lựa chọn cho người sử dụng, sản phẩm được sản xuất trong nước nên giá thành rẻ và góp phần phát triển các hệ thống điều khiển thông minh Do đó,
chúng tôi quyết định thực hiện đề tài: “Thiết kế hệ thống điều khiển các thiết bị
điện trong nhà từ xa qua truyền thông không dây” Đề tài ứng dụng công nghệ
Bluetooth phổ biến trên nhiều thiết bị, đặc biệt điểm mới của đề tài so với các sản phẩm hiện có là điều khiển thông qua hệ điều hành Android giúp tận dụng những thiết bị sử dụng hệ điều hành Android có sẵn của người dùng giúp giảm giá thành sản phẩm, ngoài ra với màn hình hiển thị lớn của điện thoại cho phép hiển thị nhiều thông tin hơn
1.1.2 Tóm tắt đề tài
Hiện nay điện thoại thông minh ngày càng phổ biến, hệ điều hành Android được xây dựng và phát triển liên tục với các chia sẻ về mã nguồn mở, việc sử dụng
Trang 11SmartPhone để điều khiển, giám sát là một xu hướng Chúng em quyết định thực hiện tìm hiểu và nghiên cứu về hệ điều hành Android, cách thức giao tiếp, điều khiển và thu thập dữ liệu từ các thiết bị điện qua Bluetooth Từ đó chúng em xây dựng phần mềm điều khiển chạy trên điện thoại hệ điều hành Android Đồng thời chúng em cũng thiết kế một phần cứng là bộ điều khiển có thể điều khiển 4 thiết bị điện 220V khác nhau Các module này có thể kết hợp với nhau để mở rộng đối tượng điều khiển và được xây dựng trên nền tảng vi điều khiển 8051 Kết quả của
đề tài mang lại là một hệ thống điều khiển hoàn hiện gồm phần mềm và phần cứng
có thể sử dụng trong hộ gia đình, văn phòng
1.1.3 Phương pháp nghiên cứu
Do điều kiện về môi trường nghiên cứu còn nhiều hạn chế nên phương pháp
nghiên cứu chú yếu là:
Tham khảo tài liệu: các đề tài liên quan, giáo trình các môn học, tìm kiếm
thông tin trên Internet;
Sử dụng kit được hỗ trợ và viết phần mềm theo các yêu cầu đặt ra (dựa vào
nhu cầu sử dụng các thiết bị)
1.1.4 Đối tượng nghiên cứu
Sau khi tìm hiểu thông tin về đề tài, cùng với những hiểu biết sẵn có và tìm
kiếm thông tin liên quan, chúng em xác các định đối tượng cần nghiên cứu là:
Công nghệ Blutooth: khái niệm, các đặc điểm, liên kết vật lý của Bluetooth, các chế độ kết nối, cách thức hoạt động Nghiên cứu Module Bluetooth 4.0 MH-10, các thông số kỹ thuật, nguyên lý hoạt động;
Viết ứng dụng trên hệ điều hành Android: cấu trúc, chu kỳ sống các ứng dụng chạy trên hệ điều hành Adroid, phần mềm hỗ trợ lập trình Android Studio, ngôn ngữ lập trình Java, viết phần mềm ứng dụng;
IC CC2541: đặc điểm, các tính năng và cấu trúc xử lí bên trong
1.1.5 Tiêu chí thiết kế cho đề tài
Thiết kế nhỏ gọn, thẩm mỹ
Trang 12 Điều khiển ngõ ra bằng nút nhấn trên bộ điều khiển hoặc bằng ứng dụng trên điện thoại
Ngõ ra nối với các thiết bị cần điều khiển có điện áp 220 VAC, công suất tối đa…
Có cầu chì bảo vệ thiết bị khi xảy ra sự cố
Lưu lịch sử điều khiển thiết bị khi không kết nối với điện thoại và cập nhật khi kết nối với điện thoại
An toàn cho người sử dụng
1.1.6 Sơ đồ tổng quan của hệ thống
Hoạt động của hệ thống được thể hiện như hình 1.1
Hình 1.1 Sơ đồ tổng quan của hệ thống
Mô tả hoạt động của hệ thống:
Phần phát tín hiệu điều khiển: Sau khi đã kết nối thành công, khi người dùng on/off các cổng, thể hiện trên giao diện điều khiển của phần mềm Tín hiệu điều khiển tương ứng với từng cổng sẽ được chuyển đến phần Bluetooth của điện thoại và phần Bluetooth này sẽ bức xạ tín hiệu ra ngoài
Phần thu tín hiệu điều khiển: Bên thu sau khi đã kết nối thành công đến bên phát sẽ nhận được dữ liệu điều khiển, sau đó phân tích dữ liệu điều khiển
và thực hiện điều khiển ON/OFF các cổng tương ứng với dữ liệu sau khi phân
Trang 13tích được đồng thời lưu lại trạng thái của 4 cổng Phòng trường hợp mất điện,
bộ điều khiển vẫn có thể nhớ trạng thái của từng cổng và ON/OFF chúng khi
có điện như lúc trước khi mất điện
Trang 14Chương 2 CÔNG NGHỆ BLUETOOTH 4.0 2.1 Công Nghệ Bluetooth
2.1.1 Khái niệm
Công nghệ Bluetooth là một công nghệ dựa trên tần số vô tuyến và bất cứ một thiết bị nào có tích hợp bên trong công nghệ này đều có thể truyền thông với các thiết bị khác với một khoảng cách nhất định về cự ly để đảm bảo công suất cho việc phát và nhận sóng Công nghệ này thường được sử dụng để truyền thông giữa hai loại thiết bị khác nhau
Ví dụ: Bạn có thể hoạt động trên máy tính với một bàn phím không dây, sử dụng bộ tai nghe không dây để nói chuyện trên điện thoại di động của bạn hoặc bổ sung thêm một cuộc hẹn vào lịch biểu PDA của một người bạn từ PDA của bạn
2.1.2 Đặc điểm của Bluetooth
Ưu điểm:
- Tiêu thụ năng lượng thấp, ứng dụng được nhiều loại thiết bị
- Giá thành rẻ và đang ngày một giảm
- Khoảng cách giao tiếp cho phép giữa hai thiết bị kết nối có thể lên đến 100m
- Tốc độ truyền dữ liệu tối đa có thể đạt 1-3 Mbps
- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng này với một ứng dụng khác thông qua chuẩn Bluetooth, do đó có thể độc lập
về phần cứng cũng như hệ điều hành sử dụng.Được dùng trong giao tiếp dữ liệu tiếng nói
- An toàn và bảo mật cao
- Tính tương thích cao nên được nhiều nhà sản xuất phần cứng và phần mềm hỗ trợ
Nhược điểm:
Trang 15- Khoảng các kết nối còn ngắn so với các công nghệ kết nối không dây khác
- Chỉ kết nối được 2 thiết bị với nhau, không kết nối thành mạng
2.1.3 Lịch sử phát triển Bluetooth
Bluetooth 1.0 (7/1999): Phiên bản đầu tiên được đưa ra thị trường với tốc
độ kết nối ban đầu là 1Mbps Tuy nhiên, trên thực tế tốc độ kết nối của thế hệ này chưa bao giờ đạt quá mức 700Kbps
Bluetooth 1.1 (2001): Đánh dấu bước phát triển mới của công nghệ Bluetooth trên nhiều lĩnh vực khác nhau với sự quan tâm của nhiều nhà sản xuất mới
Bluetooth 1.2 (11/2003): Bắt đầu có nhiều tiến bộ đáng kể Chuẩn này hoạt động dựa trên băng tần 2.4GHz và tăng cường kết nối thoại
Bluetooth 2.0+ERD (2004): Bắt đầu nâng cao tốc độ và giảm thiểu một nửa năng lượng tiêu thụ so với trước đây Tốc độ của chuẩn Bluetooth lên đến 2.1Mbps với chế độ cải thiện kết nối truyền tải–ERD (Enhanced data rate)
Bluetooth 2.1+ERD (2004): Đây chính là thế hệ nâng cấp của Bluetooth 2.0 có hiệu năng cao hơn và tiết kiệm năng lượng hơn
Bluetooth 3.0+HS (2008): Có tốc độ truyền dữ liệu đạt mức 24Mbps – bằng sóng Bluetooth – High Speed, tương đương chuẩn Wifi thế hệ đầu tiên, phạm vi hiệu quả nhất chỉ trong vòng 10m
Bluetooth 4.0 (30/06/2010): Chuẩn Bluetooth mới nhất hiện nay,được gọi nhiều bằng tên Bluetooth Low Enery (BLE) hay Bluetooth Smart Bluetooth 4.0 là phiên bản tối ưu hóa của chuẩn Bluetooth trước đó, cho phép truyền tải tốc độ cao và tiêu tốn năng lượng thấp hơn Phiên bản này là sự phối hợp các đặc tính tiến tiến của chuẩn Wi-Fi thông thường với những yếu tố cốt lõi của công nghệ Bluetooth
Trang 162.2 Kiến trúc giao thức Bluetooth 4.0
2.2.1 Giới thiệu chung
Bluetooth 4.0 được tạo ra nhằm mục đích truyền những gói dữ liệu vô cùng nhỏ, trong khi đó năng lượng tiêu thụ lại thấp hơn các thiết bị bluetooth khác trong cùng một thời gian truyền
2.2.2 Cấu trúc cơ bản của giao thức
- Generic Access Profile (GAP)
- Generic Attribute Profile (GATT)
- Logical Link Control and Adaptation Protocol (L2CAP)
- Attribute Protocol (ATT)
- Security Manager (SM)
- Host Controller Interface (HCI), bên phần Host
Controller
Trang 17Bao gồm các lớp sau:
- Host Controller Interface (HCI), bên phần Controller
- Link Layer (LL: lớp liên kết)
- Physical Layer (PHY: lớp vật lý)
2.2.3 Lớp Vật lý (Physical Layer)
Lớp vật lý là lớp phần cứng bao gồm mạch truyền thông analog, có khả năng
điều chế và tách tín hiệu analog và chuyển đổi chúng về tín hiệu vật lý
Tần số radio sử dụng là 2.4 GHz và được chia làm 40 kênh từ 2.4000 GHz to
2.4835GHz Trong đó 3 kênh 37, 38 và 39 dùng để advertising cho các kênh từ đó
kết nối và gửi dữ liệu đến thiết bị khác
2.2.4 Lớp liên kết (Link Layer)
Lớp liên kết quản lý các trạng thái của thiết bị, thiết bị cơ thể bắt đầu với 1 trong 5 trạng thái sau: Stanbdy, advertising, scanning, initating, hoặc connected
Lớp liên kết thường được thực thi như một sự phối hợp của phần cứng và phần mềm
2.2.5 Lớp HCI (host control interface)
Lớp HCI tạo ra một giao diện để cho Host và Controller có thể truyền thông được với nhau Lớp HCI có thể hoạt động thông qua software API hoặc các giao diện phần cứng như UART, SPI, USB
2.2.6 Lớp L2CAP (link logical control and adaption protocol)
Lớp L2CAP cung cấp các gói dữ liệu phục vụ cho các lớp trên Ngoài ra, nó còn có thể phá vỡ hoặc tổng hợp các gói dữ liệu lớn từ các lớp trên rồi tách chúng thành các khúc dữ liệu sau đó lắp khớp chúng vào các gói dữ liệu BLE trên mặt truyền dữ liệu ( có 2 mặt truyền và nhận dữ liệu) Trên mặt nhận dữ liệu, L2CAP nhận rất nhiều gói dữ liệu lớn vừa được phá vỡ rồi tổng hợp lại chúng vào một gói
dữ liệu, gói dữ liệu lớn này sẽ được gửi ngược lại đến bộ phận thích hợp của các lớp trên trong Host
Trang 182.2.7 Lớp ATT ( Attribute Protocol)
Lớp ATT là một phương thức truyền thông mới được gọi là Attribute Protocol Nhiệm vụ chính của nó là thực hiện việc trao đổi thông tin giữa Client với Server,
Do lớp GATT điều khiển và chỉ làm việc với các Attribute Để trao đổi giữ liệu, ta phải có 2 thiết bị, một thiết có vai trò là client thiết bị còn lại làm Server
2.2.8 Lớp SM (Security Manager)
Security Manager vừa là một giao thức vừa là một thuật toán bảo mật được thiết kế để đảm bảo an toàn cho BLE protocol stack cùng với khả năng tạo và thay đổi các mã bảo mật, cho phép các thiết bị có thể giao tiếp với nhau một cách an toàn hơn trên một liên kết được mã hóa
2.2.9 Lớp GATT (Generic Attribute Profile)
GATT được thiết kế để thực hiện việc trao đổi dữ liệu giữa hai thiết bị BLE sau khi được kết nối GATT sử dụng giao thức ATT như một giao thức vận chuyển
để trao đổi dữ liệu giữa hai thiết bị Như vậy, GATT được xây dựng trên nền ATT nhưng ở mức cao hơn ATT chỉ hoạt động với attribute và cung cấp một loạt các giao thức chính xác để client có thể truy cập tới các attribute trên Server Nhưng GATT còn hơn thế, nó thiết lập và phân cấp dư liệu rất chặt chẽ, cho phép truy cập
và truy hồi thông tin giữa client và server
Vai trò của GATT:
Ứng với Server: GATT đóng vai trò là GATT server, nó chứa cơ sở dữ liệu (các characteristic ) chúng có thể được đọc và ghi bởi GATT client Thông thường sau khi kết nối peripheral sẽ trở thành GATT server
Trang 19
Hình 2.2 Vai trò của từng GATT ứng với central và peripheral
Ứng với Client: GATT đóng vai trò là GATT client, nó không phải là cơ sở dữa liệu, nó có thể đọc và ghi dữ liệu từ GATT Server
GATT Server và Sự phân cấp dữ liệu của các Attribute bên trong
GATT Server chứa nhiều profile bên trong cơ sở dữ liệu của nó, mỗi profile lại được chia thành nhiều service khác nhau, các service được chia thành nhiều characteristic
Dữ liệu được phân bố thành nhiều khúc theo thứ bậc từ như sau:
Hình 2.3 Sự phân cấp dữ liệu trong một GATT Server
Trang 20Dữ liệu bên trong GATT Server thực chất là một tập hợp các attribute Vì thế
để phân cấp được dữ liệu như trên GATT dùng Attribute type để định danh các loại attribute đặc biệt, Các mã UUID này do hiệp hội Bluetooth SIG quy định
GATT dùng các attribute đặc biệt này để quy định điểm đầu của mỗi service hay characteristic Attribute đánh giấu điểm đầu của một service được gọi là Primary Service Declaration, Attribute này luôn có kiểu (Attribute Type) là UUID = 0x2800 Tương tự mỗi characteristic đều có một Attribute đặc biệt để xác định điểm đầu, Attribute có tên là Characteristic declaration và luôn có kiểu (Attribute Type)
là UUID = 0x2803 Khi nào có một Primary Service Declaration hoặc Characteristic declaration tiếp theo có nghĩa là có một Service/Characteristic mới và Service/ Characteristic trước đó đã kết thúc
Một Characteristic sẽ có ít nhất hai characteristic là characteristic declaration attribute và characteristic value attribute, ngoài ra trong một vài trường hợp khác characteristic value có thể đi kèm các Characteristic Descriptors…
Mỗi Characteristic đều có một Attribute chính chứa dữ liệu của người sử dụng gọi là characteristic value attribute, nó cho phép truy cập tới giá trị hiện tại được lưu trữ trong cơ sở dữ liệu của characteristic tương ứng.Vì Vậy, khi ta đọc/ ghi một giá trị từ/lên một Characteristic có nghĩa là ta đang đọc và ghi lên Characteristic Value của characteristic đó
- Characteristic declaration attribute:
Đây là attribute mở đầu của mọi Characteristic, nó có thông tin về handle chứa characteristic value, mã UUID của characteristic và thông tin về những gì ta
có thể làm đối với characteristic đó nhưng chỉ cho phép đọc Mọi Characteristic declaration attribute đều sử dụng một mã UUID chung là 0x2803, đây là mã UUID duy nhất dành riêng để chỉ rõ điểm đầu của một characteristic
- Characteristic value attribute:
Đây là attribute chứa dữ liệu người dùng, client có thể đọc hoặc ghi vào nó để thay đổi thông tin Mã UUID của nó được lấy trong Characteristic declaration attribute value (trong một số trường hợp không cần mã UUID này)
2.2.10 Lớp GAP ( Generic Access Profile)
Trang 21GAP là lớp được thiết kế nhằm mụac đích tạo ra một giao thức cho phép thiết
bị BLE có thể tương tác với nhau trong các quá trình tìm kiếm, kết nối, tạo liên kết, ngắt kết nối, khởi tạo tính năng bảo mật và cấu hình thiết bị
2.2.10.1 Các loại thiết bị
Bluetooth 4.0 có 4 loại thiết bị, mỗi thiết bị lại có phương thức hoạt động khác nhau Sự khác nhau đó thể hiện ở vai trò hoạt động của lớp GAP và GATT trong từng thiết bị Cụ thể lớp GAP sẽ hoạt động ở 4 vai trò sau:
Broadcaster: ở vai trò này GAP chỉ thực hiện quá trình quảng cáo (advertisement) và không thể kết nối
Observe: ở vai trò này GAP chỉ thực hiện quét các sự quảng cáo và không thể khởi tạo kết nối
Peripheral: ở vai trò này GAP thực hiện phát các bảng tin quảng cáo và có khả năng kết nối với một thiết bị central ( thiết bị central sẽ được trình bày ngay bên dưới)
Central: ở vai trò này GAP thực hiện quét các sự quảng cáo từ các advertiser
và có thể thực hiện khởi tạo kết nối với các peripheral
Như vậy để phân biệt các loại thiết bị, ta dựa vào vai trò của lớp GAP trong thiết bị đó Do đó vấn đề chọn vai trò của thiết bị trong một dự án rất quan trong
2.2.10.2 Sự thay đổi trạng thái của GAP
Hình 2.4 Sơ đồ các trang thái của GAP
Trang 22 Standby: là trạng thái ban đầu chuẩn bị được thiết lập lại
Advertiser: Thiết bị đóng vai trò là thiết bị quảng cáo ( advertiser) cùng những
dữ liệu đặc biệt ( tên thiết bị, địa chỉ của thiết bị….) cho các thiết bị khác biết rằng
nó có khả năng kết nối
Scanner: Thiết bị thực hiện việc quét và nhận dữa liệu sung danh từ các advertiser, khi tìm thấy thiết bị muốc kết nối Sacnner sẽ gửi yêu cầu tới advertiser Advertiser phản hồi yêu cầu từ các scanner
Initiator: Khi khởi tạo, thiết bị khởi tạo cần xác định địa chỉ của thiết bị nó muốn truyền dữ liệu để kết nối Nếu một advertiser nhận được dữ liệu khớp với địa chỉ của thiết bị cần trao đổi, thiết bị khởi tạo sẽ gửi yêu cầu đến thiết bị đó cùng với các thông số kết nối rồi thiết lập một liên kết với thiết bị advertiser
Slave/Master: Khi một kết nối được hình thành, thiết bị advertiser sẽ trở thành Slave và Scanner sẽ trở thành Master
Trang 23Chương 3 Thiết Kế Mạch Điều Khiển 3.1.Thiết kế phần cứng
3.1.1 Sơ đồ khối
Với mục đích thiết kế mạch điều khiển bât tắt relay, nhận tín hiệu điều khiển
từ điện thoại qua Bluetooth 4.0 Sơ đồ khối của mạch điều khiển được biểu diễn trên hình 3.1
Hình 3.1 Sơ đồ khối mạch điều khiển
Sơ đồ khối mạch được được đưa ra gồm 7 phần chính:
Khối nguồn đầu vào 220VAC đầu ra 5VDC, công suất ra 2W, sử dụng module có sẵn Module nguồn này được chọn vì có công suất đầu ra phù hợp, khối này có chức năng làm nguồn nuôi cho toàn bộ mạch
Khối nguồn sử dụng IC ổn áp AMS11117 3.3V sản xuất bởi hãng Advanced Monolithic Systems dùng để chuyển đổi áp vài trong khoảng 4.8V – 15.3V thành điện áp ra 3.3V, dòng ra tối đa 1A, khối này có chức năng ổn định nguồn nuôi cho Module CC2541, giúp cho IC hoạt động ổn định và chính xác, bên cạnh đó nó có kích thước nhỏ gọn giúp tối ưu kích thước mạch
Khối cổng mở rộng giao tiếp I2C được dùng để giao tiếp với module mở rộng số cổng điều khiển
Trang 24 Khối xử lý – Module CC2541 là phần trung tâm của thiết kế Khối này vừa có nhiệm vụ/chức năng giống với 1 vi điều khiển 8051, vừa thực hiện việc truyền /nhận dữa liệu qua Bluetooth với bộ điều chế và bộ tạo dao động tích hợp ngay bên trong con chip CC2541 trên module
Khối điều khiển relay sử dụng IC ULN2003a sản xuất bởi hãng Texas Instrument, được dùng để làm mạch lái cho relay
Khối chấp hành là bốn relay với điện áp kích cuộn hút là 5VDC, sử dụng
để đóng cắt các thiết bị điện chạy trên điện lưới 1 pha 220VAC
Khối nút nhấn được sử dụng để đặt các chế độ cho bộ điều khiển
3.1.2 CC2541 System on chip
CC2541 là một hệ SoC ( system on chip) gồm một vi điều khiển 8051 và bộ thu phát RF chạy trên tần số 2.4Ghz, được TI thiết kế dành cho các ứng dụng yêu cầu kết nối không dây sử dụng giao thức BLE Hãng hỗ trợ bộ thư viện BLE stack được viết bằng ngôn ngữ C giúp cho việc lập trình trở nên đơn giản hơn
Sơ đồ chân CC2541
Hình 3.2 Sơ đồ chân CC2541
Trang 25+ 5 Kênh DMA, một timer 16-Bit và hai timer 8-Bit
+ Hỗ trợ các module truyền thông UART, I2C và SPI
+ Tích hợp bộ mã hóa theo tiêu chuẩn mã hóa tiên tiến AES
+ ADC 12-Bit với 8 kênh
+ 23 chân I/O (21 chân chịu dòng tối đa 4mA và 2 chân chịu được dòng 20mA)
+ Watchdog Timer
3.1.3 Khối điều khiển và truyền thông
Hình 3.3 Khối điều khiển và truyền thông
Trang 26 Phần phối chức năng các chân của CC251 được sử dụng trong thiết kế
Bảng 3.1 Phân phối các đầu vào ra cho module CC2541
1 P0_0 DK_RL1 Điều khiển relay 1
2 P0_1 DK_RL2 Điều khiển relay 2
3 P0_2 DK_RL3 Điều khiển relay 3
4 P0_3 DK_RL4 Điều khiển relay 4
5 P0_4 Temp Đọc dữ liệu đo từ cảm biến nhiệt độ
3.1.4 Khối mạch lái cho Relay
Hình 3.4 Sơ đồ mạch nguyên lý khối điều khiển relay với khối chấp hành
Mạch driver sử dụng IC diver ULN2003a, với các đặc điểm sau:
- Điệp áp ra max : 50V
- Điện áp Vào điều khiển: 3.3V hoặc 5V
- Số kênh : 7
- Dòng điện ra : 20mA – 300mA
- Mỗi kênh đều có một mạch Trans NPN mắc theo kiểu Darlington chịu dòng lên tới 500mA, cho phép hoạt động trực tiếp với các mạch TTL và CMOS với điện áp vào 5V hoặc 3.3V
Trang 27Hình 3.5 Sơ đồ mạch của một kênh bên trong IC ULC2003a
Rơle
Hình ảnh Relay được minh họa dưới hình 3.6
Hình 3.6 Ảnh minh họa relay Khối chấp hành là 4 relay với thông số thuật sau:
- Cuộn dây:
Điện áp : 5 VDC Dòng điện: 71.4 mA Điện trở : 70 ohm
- Tiếp điểm: 250V AC 10 Amp, 30V DC 10 Amp
Trang 28 Dòng tải max 800 mA
Dùng các tụ hóa khác nhau để lọc điện áp ra
3.1.6 Nguồn 220V-5VDC
Sử dụng module nguồn 220V-5VDC
Trang 293.1.7 Khối cảm biến nhiệt độ, còi báo, led báo và nút bấm
Hình 3.10 Khối cảm biến, báo hiệu, mạch nạp
Dùng cảm biến đo nhiệt độ DS18S20
Dùng còi để báo hiệu
Trang 30 Mạch nguyên lý và bo mạch được thiết kế bằng phần mềm Altium Toàn bộ
sơ đồ nguyên lý và mạch in được trình bày trong Phụ lục Sơ đồ bố trí linh kiện, cổng vào ra và hình ảnh mạch thật được minh họa trên hình 3.11 và hình 3.12
Hình 3.11 Sơ nguyên lý của bo mạch