15 Cấu trúc này là một dạng đặc biệt của cấu trúc mắt lưới, trong đó đa số thiết bị là FFD và một RFD có thể kết nối vào mạng hình cây như một nốt rời rạc ở điểm cuối của nhánh cây.. Mục
Trang 1NGHIÊN CỨU, THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH
SỬ DỤNG PIN NĂNG LƯỢNG MẶT TRỜI ĐỘC LẬP
LUẬN VĂN THẠC SĨ KĨ THUẬT
CƠ ĐIỆN TỬ
Hà Nội – 2017
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
-
PHẠM NGỌC BẮC
NGHIÊN CỨU, THIẾT KẾ MÔ HÌNH NHÀ THÔNG MINH
SỬ DỤNG PIN NĂNG LƯỢNG MẶT TRỜI ĐỘC LẬP
Chuyên ngành : CƠ ĐIỆN TỬ
Trang 3I
LỜI CAM ĐOAN
Trong thời gian học tập, nghiên cứu tại trường Đại học Bách khoa Hà Nội, trong chương trình học cao học ngành Cơ – điện tử Được sự dạy bảo, giúp đỡ tận tình của các thầy cô giảng dạy và đặc biệt là sự chỉ bảo, hướng dẫn của Thầy hướng dẫn TS Đặng Thái Việt Đến nay, tôi đã hoàn thành chương trình học, luận văn đúng hạn và đã đạt được những kết quả đã đề ra
Tôi xin cam đoan, toàn bộ những nội dung nghiên cứu trong luận văn mà tôi đã thực hiện là trung thực và không sao chép của ai
Hà nội, Ngày 20 tháng 4 năm 2017
Người cam đoan
Trang 4II
LỜI CẢM ƠN
Lời đầu tiên cho em được gửi lời cảm ơn chân thành Thầy giáo TS Đặng Thái Việt, người đã trực tiếp hướng dẫn, chỉ bảo tận tình, truyền đạt cho em nhiều kiến thức cũng như kinh nghiệm quý báu Qua đây cho em được bày tỏ lòng biết ơn sâu sắc tới Thầy, em kính chúc Thầy và gia đình mạnh khỏe, hành phúc và công tác tốt
Em cũng xin được gửi lời cảm ơn đến các Thầy/ Cô trong Viện Cơ Khí đã nhiệt tình tryền đạt cho em những kiến thức chuyên môn và kinh nghiệm quý báu Em xin gửi lời cảm ơn đến Ban giám hiệu, Lãnh đạo Viện Cơ Khí, Viện Đào tạo sau đại học Trường Đại học Bách khoa hà Nội đã tạo điều kiện cho em được học tập, nghiên cứu
và hoàn thành chương trình học
Cuối cùng, cho em được gửi lời cảm ơn đến toàn thể gia đình, đồng nghiệp và bạn bè đã luôn bên cạnh động viên, khích lệ và giúp đỡ em hoàn thành luận văn và chương trình học
Học viên
Phạm Ngọc Bắc
Trang 5III
MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN II MỤC LỤC III DANH MỤC HÌNH VẼ V DANH MỤC CÁC TỪ VIẾT TẮT VIII
MỞ ĐẦU IX
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1
1.1 Khái quát về Arduino 1
1.1.1 Giới thiệu chung 1
1.1.2 Cấu trúc phần cứng 2
1.1.3 Lập trình Arduino 4
1.1.4 Ứng dụng của Arduino 9
1.2 Ứng dụng truyền thông mạng cảm biến trong nhà thông minh 11
1.2.1 Zigbee 11
1.2.2 Đặc điểm 11
1.2.3 Thuật toán định tuyến theo yêu cầu AODV 15
1.2.4 Tổng quan về Xbee ZB24 24
1.3 Cơ sở lý thuyết về dàn xoay nặng lượng mặt trời tự định tâm 29
1.3.1 Ứng dụng của mặt trời và dàn thu năng lượng mặt trời 29
1.3.2 Ứng dụng của dàn thu năng lượng mặt trời trong hệ tiết kiệm năng lượng 31
1.3.3 Hiệu quả khai thác năng lượng mặt trời bằng dàn xoay 34
1.4 Các nguyên tắc xoay dàn 36
1.4.1 Dàn xoay bị động 36
1.4.2 Dàn xoay chủ động 37
1.4.2.1 Hệ thống dùng vi xử lý và cảm biến 38
1.4.2.2 Hệ thống điều khiển theo lịch lập sẵn 38
1.5 Các loại dàn xoay 39
1.5.1 Các dàn xoay một trục 39
1.5.2 Các dàn xoay hai trục 41
1.5.3 Đánh giá hai loại dàn 43
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG NHÀ THÔNG MINH 44
2.1 Phân tích hệ thống 44
2.1.1 Tìm hiểu về ngôi nhà thông minh 44
2.1.2 Yêu cầu và giải quyết vấn đề 46
2.2 Thiết kế phần cứng 46
2.2.1 Mô hình hệ thống 46
2.2.2 Sơ đồ khối của nút cảm biến kết nối internet 47
Trang 6IV
2.2.2 Sơ đồ nguyên lý nút cảm biến kết nối qua sóng RFID 47
2.3 Sản phẩm và đánh giá kết quả thực nghiệm 48
2.3.1 Sản phầm phần cứng hệ thống 48
2.3.2 Sản phầm phần mềm và kết nối hệ thống 51
2.3.3 Đánh giá kết quả thực nghiệm thiết kế mô hình nhà thông minh 55
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG DÀN NĂNG LƯỢNG MẶT TRỜI VỚI GIÁ TỰ XOAY THEO 2 TRỤC 56
3.1 Hệ thống pin năng lượng mặt trời ( PV system ) 56
3.1.1 Tấm pin năng lượng mặt trời – PV panel 56
3.1.2 Bộ chuyển đổi DC 56
3.1.2 Bộ lưu điện ( Pin, Acquy) 56
3.1.4 Bộ chuyển đổi AC/DC 57
3.1.4 Máy biến áp 57
3.2 Lựa chọn hệ thống dàn gá PV system 57
3.3 Nguyên lý bám điểm công suất cực đại - MPPT 58
3.3.1 Đặc tính P - V của solar sell 58
3.3.2 DC convector 60
3.3.3 Thuật toán bám điểm cực đại ( MPPT ) 63
3.4 Thiết kế hệ thống dàn xoay 63
3.4.1 Thiết kế và mô phỏng Simulink 63
3.4.2 Thiết kế sơ đồ khối và các cụm chức năng với Altium 71
3.5 Thiết kế hệ thống nguyên lý cảm biến quang và điều khiển động cơ 74
3.5.1 Phần cứng dẫn động trong hệ thống 74
3.5.2 Kết quả 76
3.6 Thiết kế bộ điều khiển hệ thống MPPT 77
3.6.1 Phần cứng điều khiển trong hệ thống 77
3.6.2 Kết quả thật của hệ thống 79
3.7 Đánh giá kết quả thực nghiệm hệ thống 80
KẾT LUẬN 83
TÀI LIỆU THAM KHẢO 84
PHỤ LỤC 85
Trang 7V
DANH MỤC HÌNH VẼ
Hình1.1 Board cơ bản Arduino Uno 2
Hình 1.2 Hình mặt trên của Arduino Uno 2
Hình 1.3 Sơ đồ nguyên lý Arduino 3
Hình 1.4 Link download phần mềm Arduino 5
Hình 1.5 Hình ảnh khi bật giao diện arduino 5
Hình 1.6 Giao diện lập trình Arduino 5
Hình 1.7 Sử dụng giao diện lập trình 6
Hình 1.8 Ví dụ có sẵn trong Arduino 6
Hình 1.9 Ví dụ điều khiển led 7
Hình 1.10 Gửi dữ liệu ra cổng truyền thông nối tiếp 8
Hình 1.11 Kết quả truyền thông về máy tính 8
Hình 1.12 ết nối cảm biến I với rduino 8
Hình 1.13 o nhiệt độ b n cảm biến nhiệt 35 9
Hình 1.14 Máy in 3D 9
Hình 1.15 Robot 10
Hình 1.16 áy bay khôn n ười lái 10
Hình 1.17 Lập tình ame tươn tác 10
Hình 1.18 iều khiển hiệu ứng ánh sáng 11
Hình 1.19: Cấu trúc liên kết mạng cấu trúc liên kết mạng hình sao 13
Hình 1.20: Cấu trúc mạng hình sao 13
Hình 1.21: Cấu trúc mạng mesh 14
Hình 1.22: Cấu trúc mạng hình cây 14
Hình 1.23: ịnh dạng tuyến đường trong giao thức AODV 17
Hình 1.24: Quá trình chọn nốt gốc (CH) 18
Hình 1.25: Thiết lập kết nối giữa CH và nốt thành viên 19
Hình 1.26: Quá trình hình thành nhánh nhiều bậc 19
Hình 1.27: Gán địa chỉ nhóm trực tiếp 21
Hình 1.28 Gán địa chỉ nhóm qua nốt trung gian 21
Hình 1.29 Gán địa chỉ nhóm qua nốt gốc 22
Hình 1.30 Gán địa chỉ nhóm qua nốt gốc và nốt trung gian 22
Hình 1.31: Mạng cây đa nhánh và các nốt trung gian 23
Hình 1.32 Hình ảnh Xbee ZB24 24
Hình 1.33 Hoạt động truyền thông RF 25
Hình 1.34 Khung truyền UART 25
Hình 1.35 Cấu trúc khung API chế độ 1 26
Hình 1.35 Khung API ở chế độ 2 26
Hình 1.36 Cấu trúc cụ thể khung API 27
Hình 1.37 API truyền 64 bít địa chỉ 27
Trang 8VI
Hình 1.38 API truyền 16 bít địa chỉ 28
Hình 1.39 Khung trạng thái truyền 28
Hình 1.40 Khung nhận 64 bít địa chỉ 28
Hình 1.41 Khung nhận 16 bít địa chỉ 28
Hình 1.42 Năn lượng sạch từ gió và thủy triều 30
Hình 1.43 Nhà máy năn lượng mặt trời 30
Hình 1.44 Nhà máy năn lượng mặt trời 31
Hình 1.45 Góc tia nắng chiếu lên mặt phẳn thu năn lượng 34
Hình 1.46 Nguyên lý hoạt động của một dàn xoay bị động 36
Hình 1.47 Dàn thu năn lượng kiểu Hologram 37
Hình 1.48 N uyên lý điều khiển b ng cảm biến quang (Photo sensor) 38
Hình 1.49 Mô phỏng dàn xoay 1 trục thẳn đứng 40
Hình 1.50 Nguyên lý hoạt động của dàn xoay một trục đặt nghiêng 40
Hình 1.51 Mô hình dàn một trục n m ngang 41
Hình 1.52 Nguyên lý làm việc của dàn hai trục, gá nghiêng 42
Hình 1.53 Nguyên lý hoạt động của dàn hai trục phươn vị-cao độ 42
Hình 2.1 Ngôi nhà thông minh 44
Hình 2.2 Mô hình hệ thống 46
Hình 2.3 Sơ đồ khối nút cảm biến 47
Hình 2.4 Sơ đồ mạch kết nối cảm biến 48
Hình 2.5 Sơ đồ mạch kết nối điều khiển 48
Hình 2.6 Nút cảm biến gắn cơ cấu chấp hành 49
Hình 2.7 Module Xbee 49
Hình 2.8 Cảm biến khí gas 50
Hình 2.9 Cảm biến ánh sáng 50
Hình 2.10 Cảm biến chuyển động 50
Hình 2.11 Hệ thốn đầy đủ 51
Hình 2.12 Phần mềm quản lý và điều khiển trên máy tính 51
Hình 2.13 Hình ảnh thật hệ thống kết nối các cảm biến 52
Hình 2.14 Hình ảnh thiết bị giám sát chuyển độn và báo động 53
Hình 2.15 Hình ảnh kết nối hệ thống thiết bị điện 53
Hình 2.16 Hình ảnh đèn bật khi độ sáng quá yếu 54
Hình 2.18 Hình ảnh hiển thị trên màn hình máy tính 54
Hình 3.1 Hệ thống PV 56
Hình 3.2 ạc điểm nạp và xả pin 57
Hình 3.3: Hệ thống 2 trục độc lập 57
Hình 3.4: Bức xạ trực tếp 58
Hình 4.5: Bức xạ khuếch tán 58
Hình 3.6: Mạch tươn đươn của một tế bào quan điện mặt trời 58
Hình 3.7: ồ thị đặc tính P-V của một PV panel 59
Trang 9VII
Hình 3.8: ặc tính P-V của một tế bào quan điện với các bức xạ khác nhau 60
Hình 3.9: ặc tính P-V của một tế bào quan điện với các nhiệt độ khác nhau 60
Hình 3.10: Mạch tươn đươn của hai trạng thái 60
Hình 3.11 iện áp và dòn điện dạng sóng cho chuyển đổi 61
Hình 3.12 Mạch tươn đươn khi côn tắc Switch đón 61
Hình 3.13 ồ thị điện áp theo thời gian 61
Hình 3.14 Dòn điện theo thời gian 62
Hình 3.15 Dòng Ic theo thời gian 62
Hình 3.16 Mạch tươn đươn khi côn tắc Switch mở 62
Hình 3.17 Dòng Ic theo thời gian 62
Hình 3.18 iện áp thay đổi theo thời gian 62
Hình 3.20 Mô hình Simulink của hệ thống PV với thuật toán MPPT 64
Hình 3.21 Vòng quay thực hiện, điện áp, dòn điện và năn lượng của hệ thống 65
Hình 3.22 : ồ thị I-V và các điểm P-V (đỏ, đườn nét đứt), 66
thay đổi độ dốc và năn lượng trong quá trình mô phòng mô phỏng 66
Hình 3.23 Vòng quay thực hiện, điện áp, dòn điện và năn lượng của hệ thống 67
Hình 3.24 : ồ thị I-V và các điểm P-V (đỏ, đườn nét đứt), 68
thay đổi độ dốc và năn lượng trong quá trình mô phòng mô phỏng 68
Hình 3.25 Vòng quay thực hiện, điện áp, dòn điện và năn lượng của hệ thống 69
Hình 3.26 : ồ thị I-V và các điểm P-V (đỏ, đườn nét đứt), 70
thay đổi độ dốc và năn lượng trong quá trình mô phòng mô phỏng 70
Hình 3.27 Theo dõi điểm công suất tối đa với I-V trong mô phỏng 71
(đỏ, đườn đứt nét) 71
Hình 3.28 Sơ đồ mạch thiết kế hệ thống 72
Hình 3.29 Thiết kế mạch với Altium 73
Hình 3.30 (a) Kết nối với Arduino 74
Hình 3.30 (b) Kết nối với Arduino 74
Hình 3.31 Gắn cảm biến ánh sáng trên hệ thốn iá năn lượng mặt trời tự xoay 75
Hình 3.33 iều khiển động cơ trên hệ thống 76
Hình 3.34 Hệ thống phần cứn dàn pin năn lượng mặt trời tự xoay 76
Hình 3.35 Mô phỏng phần cứng hệ thống DC converter 77
Hình 3.36 DC/DC Converter 78
Hình 3.67 LCD hiển thị và mạch kết nối 78
Hình 3.38 Sơ đồ mạch kết nối 79
Hình 3.39 Hình hệ thống thực tế 79
Hình 3.40 Kết quả ghi lại thực tế của hệ thống 80
Hình 3.41 Kết quả ghi công suất đầu ra của tấm pin năn lượng mặt trời 80
Hình 3.42 Kết quả hi điện áp đầu ra của tấm pin năn lượng mặt trời 81
Hình 3.43 Kết quả hi cườn độ dòn điện đầu ra 81
của tấm pin năn lượng mặt trời 81
Trang 10VIII
DANH MỤC CÁC TỪ VIẾT TẮT
IEEE Institute of Electrical and Electronics Engineers
IP Internet Protocol
MTTP Maximum power point tracking
PHY Physical layer
RF Radio frequency
WLAN Wireless Local Area Network
WPAN Wireless Personal Area Network
WSN Wireless Sensor Network
PV Photovoltaics
LCD Liquid Crystal Display
PAN Personal Area Network
API Application Programming Interface
RSSI Received Signal Strength Indicator
AODV Ad- hoc On – demand Distance Vector
BLE Bluetooth Low Energy
ZLL Zigbee Light Link
EIB Ẻuopean Installation Bus
ZCL Zigbee Cluster Library
Trang 11đã trình bày thiết kế cấu tạo của môđun nhà thông minh điều khiển và giám sát qua mạng mạng cảm biến không dây tích hợp hệ thống pin mặt trời tự động bám tâm mặt trời để nâng cao hiệu suất của tấm solar panel Hệ thống cho phép kết nối dễ dàng và vận hành tất cả các nguồn điện kể cả nguồn điện phân tán là điện mặt trời làm cho hệ thống vận hành hiệu quả và tiết kiệm điện hơn Các kết quả kiểm nghiệm trên modun
đã chỉ ra hiệu suất hấp thụ của hệ thống pin tự đông định tâm mặt trời được nâng lên 1,57 lần so với dàn năng lượng mặt trời cố định truyền thống Đồng thời đó, trong quá trình tính toán và đo đạc, áp dụng năng lượng mặt trời vào nhà thông minh trong việc quản lý, giám sát và tắt bật các thiết bị điện hợp lý cũng giúp tiết kiệm năng lượng điện trong gia đình lên đến hơn 30% năng lượng tiêu thụ
Với sự phát triển của công nghệ chế tạo pin mặt trời tại Việt nam và nhu cầu cấp thiết của việc thay thế các nguồn năng lượng hóa thạch bằng năng lượng tái tạo, chính phủ Việt nam đã thực hiện nhiều chính sách khuyến khích phát triển nguồn năng lượng sạch và với diện tích trải dài từ Bắc xuống Nam nằm trong vùng cận Xích đạo, nước ta là một nươc tiềm năng trong việc sử dụng năng lượng sạch như năng lượng gió, năng lượng mặt trời
Chính vì vậy, tập trung nghiên cứu, ứng dụng công nghệ truyền thông không dây trong hệ thống điều khiển chiếu sáng và giám sát nhà ứng dụng với hệ thống nâng cao hiệu suất xử dụng pin năng lượng mặt trời là một xu hướng cấp thiết
Mục đích của đề tài
Tập trung nghiên cứu công giám sát nhà thông minh và chiếu sang ứng dụng công nghệ không, them vào đó kết hợp với bộ điều khiển dàn năng lượng mặt trời tự xoay để nâng cao hiệu suất xử dụng Từ cơ sở đó, phân tích, thiết kế, chế tạo mô hình
hệ thống điều khiển chiếu sáng trong nhà
Bố cục của luận văn
Những nội dung chính của luận văn được trình bày trong 3 chương:
Trang 12X
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Giới thiệu tông quan về bộ kít Arduino và nguyên lý, cách sử dụng ứng dụng Kit Arduino để thiết kế hệ thống nhà thông minh và ứng dụng thiết kế dàn pin năng lượng mặt trời với giá tự xoay
Giới thiệu tổng quát và phân tích về những chuẩn truyền thông có dây, không dây ứng dụng trong hệ thống điều khiển, giám sát và chiếu sáng tòa nhà Có những so sánh tương đối về những chuẩn đó và kết luận về hướng phát triển
Cơ sở lý thuyết của dàn xoay năng lượng mặt trời và nguyên lý tự định tâm của
hệ thống cũng như phương pháp lựa chọn, thiết kế các hệ thống theo ứng dụng thực tế
Phân tích những đặc điểm, yêu cầu của mô hình hệ thống dàn năng lượng mặt trời với các nghiên cứu trước, xem xét đánh giá các dàn năng lượng mặt trời hiện có và định hướng thiết kế hệ thống ứng dụng trong đề tài
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG NHÀ THÔNG MINH
Giới thiệu về những đặc điểm và tính năng tính năng cơ bản của một ngôi nhà thông minh cần phải có, đồng thời đưa ra thiết kế và hệ thống chiếu sáng, giám sát đối với ứng dụng của đề tài
CHƯƠNG 3: THIẾT KẾ HỆ THỐNG DÀN NĂNG ƯỢNG MẶT TRỜI VỚI GIÁ TỰ XOAY THEO 2 TRỤC
Thiết kế hệ thống dàn năng lượng mặt trời với giá tự xoay theo hai trục, đồng thời xây dựng và mô phỏng hệ thống trên maslab simuling để kiểm tra khả năng làm việc của hệ thống trên thiết kế
Hệ thống thực tế của dàn năng lượng mặt trời tự xoay với giá tự xoay hai trục độc lập, xây dựng mô hình và đánh giá hệ thống cũng như hình ảnh các kết quả đạt được
Đánh giá kết quả hệ thống và đưa ra các hướng phát triển của đề tài với việc áp dụng thực tế
Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý luận: Tìm hiểu, tổng hợp những tài liệu kỹ thuật liên quan đến nội dung của đề tài Tập trung nghiên cứu, phân tích, đánh giá để giải quyết những vấn đề mà đề tài đặt ra
- Phương pháp thực nghiệm: Khảo sát, phân tích thiết kế, chế tạo mô hình hệ thống Từ kết quả thực nghiệm, kết hợp với kết quả của phương pháp nghiên cứu lý luận đưa ra những đánh giá tổng quan về nội dung của đề tài
Trang 131
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái quát về Arduino
1.1.1 Giới thiệu chung
Môi trường Arduino được thiết kế đơn giản cho người mới bắt đầu sử dụng Không phải phần mềm hoặc các thiết bị điện tử thực nghiệm, với Arduino bạn có thể xây dựng một dự án đáp ứng được các yêu cầu về điều khiển ánh sáng, âm thành, chuyển động… Arduino được sử dụng để tạo ta rất nhiều thứ tuyệt vời như nhạc cụ, robot, điêu khắc ánh sáng, trò chơi, đồ nội thất tương tác thậm chí là quần áo thông minh có khả năng tương tác với cơ thể
Arduino được sử dụng rất nhiều trong các chương trình giáo dục trên toàn thế giới, đặc biệt đối với các nhà thiết kế và nghệ sĩ những người muốn tạo ra những cái mới độc mà không cần am hiểu sâu về vấn đề của kỹ thuật của những thứ mà họ đã sáng tạo ra Bởi vì Arduino được thiết kế sử dụng cho những người không am hiểu về
kỹ thuật, phần mềm Arduino có rất nhiều ví dụ được cung cấp bởi nhà phát triển nên rất dễ dàng để tiếp cận và sử dụng
Mặc dù dễ dàng sử dụng nhưng Arduino có phần cứng được thiết kế rất tinh tế
nên các kỹ sư có thể dễ dàng nhúng nó vào trong các ứng dụng nhúng Người đã sử
dụng và phát triển các ứng dụng nhúng bằng vi điều khiển cũng bị thu hút bởi Arduino
do khả năng phần cứng tốt và và phần mềm tiện dụng dễ dàng cho việc giải quyết các
ý tưởng
Arduino được biết đến nhiều nhất là phần cứng của nó, nhưng phải có phần mềm để lập trình phần cứng Cả phần cứng và phần mềm gọi chung là “Arduino‟‟ Sự kết hợp đó cho phép bạn tạo ra các dự án có ý nghĩa và kiểm soát thế giới vật chất Các phần mềm là tự do, mã nguồn mở thông qua một nền tảng Các board bạn có thể mua với giá rẻ hoặc bạn có thể tự thiết kế với mã nguồn schematic mở Ngoài ra, có một số hoạt động liên quan tới Arduino được giải đáp bởi diễn đàn Arduino trên toàn thế giới
và Wikimedia gọi chung là sân chơi Arduino
Phần mềm Arduino: được gọi là sketches, được tạo ra trên máy tính có tích hợp môi
trường phát triển(IDE) IDE cho phép bạn viết, chỉnh sửa code và chuyển đổi sao cho phần cứng có thể hiểu IDE dung để biên dịch và nạp vào Arduino ( quá trình sử lý này gọi là UPLOAD)
Phần cứng Arduino: là các board Arduino nơi thực thi các chương trình lập trình
Các board này có thể điều khiển hoặc đáp trả các tín hiệu điện, vì vậy các thành phần được ghép trực tiếp vào nó để tương tác với thế giới thực để cảm nhận hoặc truyền thông Ví dụ các cảm biến bao gồm các thiết bị chuyển mạch, cảm biến siêu âm, gia tốc Các thiết bị truyền động bao gồm đèn , motor, loa và các thiết bị hiển thị
Hầu hết các board Arduino sử dụng kết nối kiểu USB dùng để cấp nguồn và upload dữ liệu cho board Arduino
Trang 142
Hình1.1 Board cơ bản Arduino Uno
Arduino Uno sử dụng 2 vi điều khiển trên board để xử lý tất cả các kết nối USB Chíp dán nhỏ (ATmega8U2) nằm gần cổng cắm dây kết nối kiểu USB Cho phép nạp chương trình và quản lý các thiết bị USB khác cắm vào Chíp ATMega328 chứa chương trình nạp để thực thi chương trình đã được lập trình Trên hầu hết các board Arduino đều sử dụng 1 chip FTDI cung cấp giải pháp cho vấn đề kết nối với cổng nối tiếp của máy tính Ngoài Arduino Uno ra nhà sản xuất cung cấp nhiều board khác như: Arduino Fio Arduino Nano, Arduino Mega 2560 Với tùy vào ứng dụng có thể chọn các loại board nhỏ hoặc board hỗ trợ nhiều chân TX và RX như Arduino
2560
1.1.2 Cấu trúc phần cứng
a Thông số kỹ thuật
Hình 1.2 Hình mặt trên của Arduino Uno
Trên board có cổng USB connector để cắm vào máy tính,, đèn báo nguồn màu xanh Có công tắc Reset Các pin giao tiếp LED ở chân 13 và các led báo truyền nhận nối tiếp Ngoài ra còn có các cổng đọc tín hiệu số và tín hiệu tương tự và các chân chức năng PWM và truyền nhận dữ liệu nối tiếp Và các chân giao tiếp I2C phục vụ giao tiếp hai dây SDA và SCL
- Vi điều khiển ATMega328
- Điện áp hoạt động 5V
- Đầu vào diện áp 7-12V
Trang 153
- Điện áp đầu vào tới hạn 6-20V
- Chân vào ra số là 14 chân( trong đó có 6 chân băm xung PWM)
- Chân đầu vào tương tự có 6 chân
- Dòng DC vào ra trên chân là 40mA
- Dòng đầu ra ở chân 3.3V là 50mA
- Bộ nhớ Flash 32KB(ATMega328) trong đó 0.5KB sử dụng cho bootloader
- SRAM là 2KB(ATMega328)
- EEPROM là 1KB(ATMega328)
- Tần số 16MHz
Hình 1.3 Sơ đồ nguyên lý Arduino
Trong mạch sử dụng 2 chíp vi điều khiển là ATMega328 và ATMega16U2 với các chức năng ATMega16U2, được kết nối với cổng ICSP nối qua USB để nạp chương trình Thạch anh sử dụng là thạch anh 16MHz Kết nối các Jump để tích hợp cho Board sử dụng, Nguồn sử dụng phải qua ic chuyền đổi xuống 5V cho ATMega hoạt động
Trang 16 Chân 5V: Cung cấp nguồn vi điều khiển và các bộ phận khác trên bo mạch và cung cấp nguồn cho các thiết bị ngoại vi khi kết nối tới bo mạch
Chân 3V3: Cung cấp nguồn cho các thiết bị cảm biến
Chân GND : Chân nối đất
c Chân giao tiếp đầu vào và đầu ra
Trong số 14 chân tín hiêu số chúng ta có thể cấu hình để làm chân nhận dữ liệu vào
từ các thiết bị ngoại vi hoặc làm chân để truyền tín hiêu ra các thiết bị ngoại vi Bằng cách sử dụng các chức năng pinMode(), digitalWrite() và digitalRead() hoạt động ở điện áp 5V Mỗi chân có thể cung cấp hoặc nhận một dòng điện tối đa 50mA và có một điện trở kéo nội (ngắt kết nối theo mặc định) 20-50 kOhms Ngoài ra có một số chân có chức năng khác
Chân 0 (Rx) : Chân được dùng để nhận dữ liệu
Chân 1 (Tx) : Chân được dùng để truyền dữ liệu
Chân 2 và 3: Chân ngắt ngoài dùng để dừng một chương trình thực hiện chương trình khác khi một ngắt bên ngoài xảy ra
Chân 3, 5, 6, 9, 10 và 11: Chân để điều chế độ rộng xung
Chuẩn giao tiếp SPI: Sử dụng chân 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
Chuẩn giao tiếp I2C: Sử dụng chân đầu vào tương tự A4 (SDA) và A5 (SCL)
Chân Aref : Tham chiếu điện áp đầu vào analog
1.1.3 Lập trình Arduino
a Giới thiệu môi trường lập trình
Để có môi trường lập trình Arduino thì bước đầu tiên các bạn phải có file.rar do nhà sản xuất Arduino cung cấp được download tại trang chủ theo link sau http://arduino.cc/en/Main/Software
Trang 175
Hình 1.4 Link download phần mềm Arduino
Sau khi giải nén chạy Arduino.exe như sau:
Hình 1.5 Hình ảnh khi bật giao diện arduino
Và đây là giao diện lập trình:
Hình 1.6 Giao diện lập trình Arduino
b Sử dụng môi trường lập trình
Khi muốn lập trình bạn phải khởi động giao diện lập trình trên giao diện có các chức năng được mô tả như sau:
Trang 186
Hình 1.7 Sử dụng giao diện lập trình
Trong giao diện lập trình căn bản khi lập trình cần chú ý các bước:
Bước 1: Tạo file biên dịch mới
Bước 2: Lưu file code
Bước 3: Lập trình code điều khiển
Bước 4: Biên dịch file để kiểm tra lỗi
Bước 5: Nạp chương trình vào Board
Trong Arduino hỗ trợ các thư viện và ví dụ mở với các chủ đề khác nhau, muốn dùng
ví dụ nào có thể thao tác như hình bên dưới:
Hình 1.8 Ví dụ có sẵn trong Arduino
Nạp chương trình và chạy ứng dụng
Cắm cáp nạp USB vào Board và máy tính kiểm tra trạng thái có cổng kết nối chưa tại phần Tools>Serial Port để chọn cổng com kết nối và Tool> Board để chọn board Arduino sử dụng Sau đó nhấn Upload chương trình được nạp vào và chạy ứng dụng
Cấu trúc của một chương trình lập trình Arduino
Trang 19c Một số ví dụ lập trình các ứng dụng
Trong Arduino hỗ trợ rất nhiều ví dụ với các thư viện mở, có thể sử dụng tùy vào mục đích mà điều chỉnh cho phù hợp
- Lập trình Điều khiển led
Hình 1.9 Ví dụ điều khiển led
Trong hình trên led được kết nối tới chân 13 của arduino board, với hiệu ứng nhấp nháy cách nhau 1 giây Chương trình lập trình như sau:
int led = 13; // khoi tao chan led la 13
- Lập trình gửi dữ liệu ra cổng truyền thông nối tiếp
Trang 208
Hình 1.10 Gửi dữ liệu ra cổng truyền thông nối tiếp
Ta có thể gửi text hoặc data từ Arduino và có thể hiển thị trên máy tính như sau:
Chương trình gửi lần lần lượt các số từ Arduino tới máy tính, hiển thị trên Serial Monitor:
Kết nối Arduino với máy tính, upload ví dụ này ta được kết quả:
Hình 1.11 Kết quả truyền thông về máy tính
- Phát hiện chuyển động (Tích hợp máy dò hồng ngoại thụ động PIR)
Chúng ta muốn phát hiện khi có người đang chuyên động Sử dụng một cảm biến chuyển động như một bộ cảm biến thụ động (PIR) hồng ngoại để thay đổi giá trị tín hiệu trên chân tín hiệu số khi ai đó di chuyển gần đó.Cảm biến dễ dàng kết nối với chân Arduino như hình vẽ
Hình 1.12 ết nối cảm biến I với rduino
- Đo nhiệt độ bằng cảm biến nhiệt độ
Muốn hiển thị nhiệt độ hoặc sử dụng giá trị để kiểm soát một thiết bị Ví dụ, để chuyển đổi một cái gì đó khi nhiệt độ đạt đến một ngưỡng Chương trình hiển thị nhiệt
Trang 21là xử lý máy in 3D
Hình 1.14 Máy in 3D
Một cuộc cách mạng khác cũng đang âm thầm định hình nhờ vào Arduino, đó
là sự phát triển máy in 3D nguồn mở Reprap Máy in 3D là công cụ giúp tạo ra các vật thể thực trực tiếp từ các file CAD 3D Công nghệ này hứa hẹn nhiều ứng dụng rất thú
vị trong đó có cách mạng hóa việc sản xuất cá nhân Máy in 3D là sự tổng hòa của kỹ thuật và công nghệ để làm cho cuộc sống trở nên đẹp hơn nhờ các ứng dụng của nó
Trang 2210
Hình 1.15 Robot
Trong hình trên Robot được lập trình bởi Arduino với chức năng quay camera
dò đường và truyền thông về máy tính Trên máy tính sẽ quản lý và điều chỉnh hướng của Robot Ứng dụng này cũng rất hay, có thể ứng dụng trong công nghiệp, dân dụng hoặc quân sự làm robot do thám
Hình 1.16 áy bay khôn n ười lái
UAV là một ứng dụng đặc biệt thíchhợp với Arduino do chúng có khả năng xử
lý nhiều loại cảm biến như Gyro, accelerometer, GPS…; điều khiển động cơ servo và
cả khả năng truyền tín hiệu từ xa
Hình 1.17 Lập tình ame tươn tác
Việc đọc cảm biến và tương tác với PC là một nhiệm vụ rất đơn giản đối với Arduino Do đó rất nhiều ứng dụng game tương tác có sử dụng Arduino Trong hình trên game được tương tác với Arduino ngưới dùng có thể điều khiển cần chơi game ,
Trang 2311
trên màn hình LCD cũng hiển thị các chức năng bấm và máy tính là giao diện tương tác người dùng
Hình 1.18 iều khiển hiệu ứng ánh sáng
Các tác vụ điều khiển đơn giản như đóng ngắt đèn LED hay phức tạp như điều khiển ánh sáng theo nhạc hoặc tương tác với ánh sáng laser đều có thể thực hiện với Arduino
1.2 Ứng dụng truyền thông mạng cảm biến trong nhà thông minh
1.2.1 Zigbee
Cái tên ZigBee được xuất phát từ cách mà các con ong mật truyền những thông tin quan trọng với các thành viên khác trong tổ ong Đó là kiểu liên lạc “Zig-Zag” của loài ong “honeyBee” Và nguyên lý ZigBee được hình thành từ việc ghép hai chữ cái đầu với nhau Việc công nghệ này ra đời chính là sự giải quyết cho vấn đề các thiết bị tách rời có thể làm việc cùng nhau để giải quyết một vấn đề nào đó
có thời gian sống từ vài tháng đến vài năm mà không yêu cầu cao về tốc độ truyền tin như Bluetooth Một điều nổi bật là ZigBee có thể dùng được trong các mạng mắt lưới (mesh network) rộng hơn là sử dụng công nghệ Bluetooth Các thiết bị không dây sử dụng công nghệ ZigBee có thể dễ dàng truyền tin trong khoảng cách 10-75m tùy thuộc và môi trường truyền và mức công suất phát được yêu cầu với mỗi ứng dụng, Tốc độ dữ liệu là 250kbps ở dải tần 2.4GHz (toàn cầu), 40kbps ở dải tần 915MHz (Mỹ + Nhật) và 20kbps ở dải tần 868MHz (Châu Âu)
Các nhóm nghiên cứu Zigbee và tổ chức IEEE đã làm việc cùng nhau để chỉ rõ toàn bộ các khối giao thức của công nghệ này IEEE 802.15.4 tập trung nghiên cứu vào 2 tầng thấp của giao thức (tầng vật lý và tầng liên kết dữ liệu) Zigbee còn thiết
Trang 2412
lập cơ sở cho những tầng cao hơn trong giao thức (từ tầng mạng đến tầng ứng dụng)
về bảo mật, dữ liệu, chuẩn phát triển để đảm bảo chắc chắn rằng các khách hàng dù mua sản phẩm từ các hãng sản xuất khác nhau nhưng vẫn theo một chuẩn riêng để làm việc cùng nhau được mà không tương tác lẫn nhau
Hiện nay thì IEEE 802.15.4 tập trung vào các chi tiết kỹ thuật của tầng vật lý PHY và tầng điều khiển truy cập MAC ứng với mỗi loại mạng khác nhau (mạng hình sao, mạng hình cây, mạng mắt lưới) Các phương pháp định tuyến được thiết kế sao cho năng lượng được bảo toàn và độ trễ trong truyền tin là ở mức thấp nhất có thể bằng cách dùng các khe thời gian bảo đảm (GTSs_guaranteed time slots) Tính năng nổi bật chỉ có ở tầng mạng Zigbee là giảm thiểu được sự hỏng hóc dẫn đến gián đoạn kết nối tại một nút mạng trong mạng mesh Nhiệm vụ đặc trưng của tầng PHY gồm có phát hiện chất lượng của đường truyền (LQI) và năng lượng truyền (ED), đánh giá kênh truyền (CCA), giúp nâng cao khả năng chung sống với các loại mạng không dây khác Một hệ thống ZigBee/IEEE802.15.4 gồm nhiều phần tạo nên Phần cơ bản nhất tạo nên một mạng là thiết bị có tên là FFD (full-function device), thiết bị này đảm nhận tất cả các chức năng trong mạng và hoạt động như một bộ điều phối mạng PAN, ngoài ra còn có một số thiết bị đảm nhận một số chức năng hạn chế có tên là RFD (reduced-function device) Một mạng tối thiểu phải có 1 thiết bị FFD, thiết bị này hoạt động như một bộ điều phối mạng PAN
FFD có thể hoạt động trong ba trạng thái: là điều phối viên của toàn mạng PAN (personal area network), hay là điều phối viên của một mạng con, hoặc đơn giản chỉ
là một thành viên trong mạng RFD được dùng cho các ứng dụng đơn giản, không yêu cầu gửi lựợng lớn dữ liệu Một FFD có thể làm việc với nhiều RFD hay nhiều FFD, trong khi một RFD chỉ có thể làm việc với một FFD
Kiến trúc liên kết mạng
Hiện nay Zigbee và tổ chức chuẩn IEEE đã đưa ra một số cấu trúc liên kết mạng cho công nghệ Zigbee Các node mạng trong một mạng Zigbee có thể liên kết với nhau theo cấu trúc mạng hình sao (star) cấu trúc mạng hình lưới (Mesh) cấu trúc bó cụm hình cây Sự đa rạng về cấu trúc mạng này cho phép công nghệ Zigbee được ứng dụng một cách rộng rãi Hình 1 cho ta thấy ba loại mạng mà ZigBee cung cấp: tôpô sao, tôpô mắt lưới, tôpô cây
Trang 25Cấu trúc liên kết mạng mắt lưới (mesh)
Trang 2614
Hình 1.21: Cấu trúc mạng mesh
Kiểu cấu trúc mạng này cũng có một bộ điều phối mạng PAN (PAN coordinator) Thực chất đây là kết hợp của 2 kiểu cấu trúc mạng hình sao và mạng ngang hàng, ở cấu trúc mạng này thì một thiết bị A có thể tạo kết nối với bất kỳ thiết nào khác miễn
là thiết bị đó nằm trong phạm vi phủ sóng của thiết bị A Các ứng dụng của cấu trúc này có thể áp dụng trong đo lường và điều khiển, mạng cảm biến không dây, theo dõi cảnh báo và kiểm kê (cảnh báo cháy rừng….)
Cấu trúc liên kết mạng hình cây
Hình 1.22: Cấu trúc mạng hình cây
Trang 2715
Cấu trúc này là một dạng đặc biệt của cấu trúc mắt lưới, trong đó đa số thiết bị là FFD
và một RFD có thể kết nối vào mạng hình cây như một nốt rời rạc ở điểm cuối của nhánh cây Bất kỳ một FFD nào cũng có thể hoạt động như là một coordinator và cung cấp tín hiệu đồng bộ cho các thiết bị và các coordinator khác vì thế mà cấu trúc mạng kiểu này có qui mô phủ sóng và khả năng mở rộng cao Trong loại cấu hình này mặc dù có thể có nhiều coordinator nhưng chỉ có duy nhất một bộ điều phối mạng PAN (PAN coordinator)
Bộ điều phối mạng PAN coordinator này tạo ra nhóm đầu tiên cách tự bầu ra người lãnh đạo cho mạng của mình, và gán cho người lãnh đạo đó một chỉ số nhận dạng cá nhân đặc biệt gọi là là CID-0 bằng cách tự thành lập CLH (cluster head) bằng CID-0 (cluster identifier), nó chọn một PAN identifier rỗi và phát khung tin quảng bá nhận dạng tới các thiết bị lân cận Thiết bị nào nhận được khung tin này có thể yêu cầu kết nối vào mạng với CLH Nếu bộ điều phối mạng PAN (PAN coordinator) đồng ý cho thiết bị đó kết nối thì nó sẽ ghi tên thiết bị đó vào danh sách
Cứ thế thiết bị mới kết nối này lại trở thành CLH của nhánh cây mới và bắt đầu phát quảng bá định kỳ để các thiết bị khác có thể kết nối vào mạng Từ đó có thể hình thành được các CLH1, CLH2 …
1.2.3 Thuật toán định tuyến theo yêu cầu AODV
AODV (Ad hoc On Demand Distance Vector) đơn thuần chỉ là thuật toán tìm đường theo yêu cầu trong mạng ad hoc (một mạng tự tổ chức) Có thể hiểu như sau, những nốt trong mạng khi mà không nằm trong tuyến đường truyền tin thì không duy trì thông tin nào về tuyến đường truyền và cũng không tham gia vào quá trình định tuyến theo chu kỳ Nói kỹ hơn nữa, một nốt mạng không có chức năng tự định tuyến
và lưu trữ tuyến đường tói một nốt mạng khác cho đến khi cả hai nốt mạng trên liên lạc với nhau, trừ trường hợp những nốt mạng cũ đề nghị dich vụ như là một trạm chuyển tiếp để giữ liên lạc giữa hai nốt mạng khác
Mục đích đầu tiên của thuật toán là chỉ phát quảng bá các gói tin dò đường khi cần thiết hoặc khi có yêu cầu, việc làm này để phân biệt giữa việc quản lý liên lạc cục bộ với việc bảo quản giao thức liên lạc chung và để phát quảng bá thông tin về sự thay đổi trong liên kết cục bộ tới những nốt di động lân cận (là những nốt cần thông tin để cập nhật) Khi một nốt nguồn cần để kết nối tới nốt khác, mà nốt nguồn không chứa thông tin về thông tin tuyến đường tới nốt đó, như vậy một quá trình tìm đường được thiết lập
Để thiết lập quá trình tìm đường này thì mỗi nốt mạng đều lưu hai bộ đếm độc lập: sequence number và broadcast ID Để bắt đầu quá trình tìm đường, nốt nguồn sẽ khởi tạo một gói tin tìm đường (RREQ) và phát quảng bá gói tin này tới tất cả các nốt mạng lân cận, gói tin RREQ này chứa các thông tin về địa chỉ nguồn (source addr), số chuỗi nguồn (source sequence number), số id quảng bá (broadcast id), địa chỉ đích (dest addr), số chuỗi đích (dest sequence number), số đếm bước truyền (hop cnt)
Trang 2816
Bởi mỗi khi nốt mạng nguồn phát ra một gói tìn RREQ mới thì số id quảng bá sẽ tăng lên, nên trong mỗi gói tin RREQ thì cặp địa chỉ nguồn và số id quảng bá luôn luôn
là duy nhất Khi nốt mạng trung gian nhận được một gói tin RREQ mới, nó sẽ đem
so sánh địa chỉ nguồn và số ID quảng bá với gói tin RREQ trước đó, nếu giống nhau nốt mạng trung gian này sẽ tự động xóa RREQ dư thừa này và dừng việc phát gói tin này lại Nhưng nếu so sánh thấy khác nhau thí nốt mạng này sẽ tự động tăng số đếm bước truyền (hop cnt) lện và tiếp tục phát quảng bá gói tin RREQ này tới các nốt lân cận để tiếp tục quá trình tìm đường Trong mỗi một nốt mạng đều lưu trữ các thông tin về địa chỉ IP đích, địa chỉ IP nguồn, số id quảng bá, số chuỗi nốt nguồn, và thời gian thời gian hạn định cho phép gói tin mang thông tin xác nhận được gửi trả lại nơi phát
Khi gói tin RREQ được truyền trên mạng từ nguồn tới đích, nó sẽ tự động thiết lập con đường ngựơc lại từ các nốt mạng này quay trở lại nốt nguồn Để thiết lập tuyến đường ngược chiều, mỗi nốt phải lưu giữ bảng địa chỉ của các nốt bên cạnh mà nó sao chép được trong gói tin RREQ đầu tiên Tuyến đường ngược chiều được giữ trong thời gian tối thiểu để gói tin RREQ này vượt qua mạng và trở về nơi xuất phát ban đầu Khi RREQ tới một nốt nào đấy mà có thể nốt mạng này là đích đến của nó, hoặc nốt này nằm trên tuyến đường truyền từ nguồn tới đích, nốt nhận tin này đầu tiên sẽ kiểm tra xem gói tin RREQ vừa nhận qua kết nối hai chiều Nếu nốt mạng này chưa phải là nốt mạng đích nhưng có lưu giữ tuyến đường tới nốt đích, khi đó nó sẽ quyết định xem xem tuyến đường này có chính xác không bằng cách so sánh số chuỗi nguồn chứa bên trong gói tin RREQ này với số chuỗi nguồn trong bảng định tuyến của nốt mạng đó Nếu số chuỗi đích của RREQ lớn hơn số chuỗi đích trong các nốt trung gian, thì nốt trung gian đó không không nằm trên tuyến đừơng truyến ứng với gói tin RREQ này
Nếu tuyến đường này có số chuỗi đích lớn hơn hoặc bằng với số chuỗi đích trong RREQ nhưng có số bước truyền nhỏ hơn, thì nó có thể phát một gói tin RREP (route reply packet) trở lại nốt mạng đã phát RREQ cho nó Một gói tin RREP gồm có các trường thông tin sau: trườngđịa chỉ nguồn, trường địa chỉ đích, số chuỗi đích, số đếm bước truyền và thời gian sống Khi mà gói tin RREP quay trở lại đựơc nốt nguồn, các nốt mạng dọc theo tuyến đường của RREP sẽ thiết lập con chỏ hướng tới nốt mạng RREP vừa đến, cập nhật thông tin timeout (timeout là khoảng thời gian mà một nốt không còn hoạt động nữa và nằm trong trạng thái chờ) của nó cho bảng định tuyến đường tới nguồn và đích, đồng thời sao lưu lại số chuỗi đích cuối của nốt đích cần tới Những nốt mạng nằm dọc theo tuyến đường xác định bởi RREP sẽ “chết” sau khi hết thời gian yêu cầu định tuyến và con trỏ đảo bị xóa khi chúng không còn nằm trên tuyến đường truyền từ nguồn tới đích Thời gian “chết” này phụ thuộc vào kích cỡ của mạng
Trang 2917
Hình 1.23: ịnh dạng tuyến đường trong giao thức AODV
Nốt nguồn có thể phát dữ liệu ngay khi nó nhận được gói tin RREP đầu tiên, đồng thời cũng luôn cập nhật thông tin về tuyến đừơng nếu phát hiện ra tuyến đường tối ưu hơn Mỗi bảng định tuyến gồm các trường thông tin sau: trường thông tin về đích đến, bước truyền kế tiếp, số bước truyền, số chuỗi đích, nút lân cận tích cực thuộc tuyến đường, thời gian chết cho nhập liệu vào bảng định tuyến
Để duy trì đường truyền, mỗi nốt mạng luôn phải có địa chỉ của các nốt mạng tích cực lân cận (một nốt mạng được coi là tích cực nếu nó có chức năng khởi phát hoặc chuyển tiếp tối thiểu một gói tin đến đích trong thời gian cho phép) Khi mà bước truyền kế tiếp nằm trong tuyến đường từ nguồn tới đích này không thực hiện đựơc (tức là thông tin yêu cầu không được nhận trong một khoảng thời gian nào đó, thông tin yêu cầu này đảm bảo rằng chỉ có những nốt mạng nào liên lạc hai chiều mới được coi là nốt mạng lân cận) Quá trình này cứ tiếp diễn đến khi tất cả các nốt nguồn tích cực được thông báo Nhờ vào việc nhận những thông báo về gián đoạn đường truyền,
mà các nốt nguồn có thể khởi động lại quá trình tìm đường nếu chúng vẫn cần một tuyến đường tới đích cũ Nếu nốt nguồn lựa chọn việc xây dựng lại tuyến đường mới
từ nguồn tới đích, nó cần phải phân phát một gói tin RREQ mới với sô chuỗi đích mới lớn hơn số chuỗi đích cũ
Thuật toán hình cây
Giao thức hình cây là giao thức của tầng mạng và tầng datalink, giao thức này sử dụng gói tin “trạng thái kết nối” để định dạng một mạng hình cây đơn, cũng như một mạng hình cây mở rộng Loại mạng này cơ bản là một loại mạng có tính chất tự tổ chức và tự hỗ trợ để hạn chế lỗi mạng một mức độ lỗi cho phép, đặc biệt hơn do đây
là một loại mạng có tính chất tự tổ chức nên nó cũng có thể tự sửa chữa khi gặp sự cố
ở một nốt mạng nào đó Các nốt mạng chọn một nốt làm gốc cây và tạo các nhánh cây một cách tự do Sau đó cách nhánh cây tự phát triển kết nối tới những nhánh cây khác nhờ vào thiết bị gốc (DD- Designated Deviece)
Thuật toán hình cây đơn nhánh
Trang 30Hình 1.24: Quá trình chọn nốt gốc (CH)
Sau khi trở thành nốt gốc, nó sẽ phát quảng bá gói tin Hello_Message theo chu kỳ, gói tin Hello_Message này gồm một phần địa chỉ MAC và địa chỉ ID của nốt gốc Những nốt mạng nhận đựợc gói tin này sẽ gửi trả lời lại bằng gói tin yêu cầu kết nối (REQ) tới nốt gốc (nơi vừa phát đi) Khi nốt gốc nhận đựợc gói tin yêu cầu kết nối, nó
sẽ ngay lập tức gửi trả lại gói tin vừa đưa ra yêu cầu bằng một gói tin khác CONNECTION_RESPONSE gói tin này chứa địa chỉ ID cho nốt thành viên (nốt B), địa chỉ ID này do nốt gốc qui định Để xác nhận thông tin thì nốt thành viên B này sẽ gửi lại nốt gốc gói tin Ack Quá trình trao đổi tin này đựơc mô tả qua hình2.2
Trang 3119
Hình 1.25: Thiết lập kết nối giữa CH và nốt thành viên
Nếu tất cả các nốt đều ở trong phạm vi phủ song của nốt gốc thì kiến trúc mạng là kiến trúc hình sao, tất cả các nốt thành viên sẽ liên lạc trực tiếp với nốt gốc qua một bước truyền (onehop) Một nhánh có thể phát triển thành cấu trúc mạng liên lạc qua nhiều bước truyền (multihop)
Tất nhiên nốt gốc chỉ có thể quản lý được một số hữu hạn các nốt, và các nhánh của mạng cũng chỉ có thể vươn tới những khoảng cách hạn chế Chính vị thế mà có lúc nốt mạng cũng cần phải từ chối kết nối của những nốt mới Việc từ chối này được thực hiện nhờ vào việc chỉ định một ID đặc biệt cho nốt này Bảng danh sách các nốt lân cận và tuyến đường luôn luôn được cập nhật mới thông qua gói tin HELLO_MESSAGE Trong một thời gian nhất định, nếu vì một lý do nào đó mà một nốt không đựợc cập nhật các thông tin trên thì nó sẽ bị loại bỏ
Hình 1.26: Quá trình hình thành nhánh nhiều bậc
Trang 3220
Tất nhiên trong một mạng có tính chất tự do, tự tổ chức như loại mạng này thì không thể tránh khỏi việc một nốt mạng thuộc nhánh này lại nhận đựợc gói tin HELLO_MESSAGE của nhánh khác Vậy trong trường hợp này nốt mạng này sẽ tự động thêm địa chỉ ID của nhánh mới này (CID) vào danh sách các nốt lân cận và gửi
nó tới nốt gốc (CH) thông qua gói tin báo cáo tình trạng đường truyền, để từ đó nốt gốc (CH) có thể biết được nhánh mạng nào tranh chấp để xử lý
Bản tin báo cáo tình trạng kết nối cũng chứa danh sách ID nốt lân cận của nốt đó, điều này giúp cho nốt gốc biết đựợc trọn vẹn cấu trúc mạng để có thể đưa ra cấu trúc tối
ưu Khi cấu trúc mạng cần thay đổi, nốt gốc (CH) sẽ phát đi bản tin cập nhật tới các nốt thành viên Nốt thành viện nào nhận đựợc bản tin cập nhật này lập tức thay đổi các thông tin về nốt gốc như trong bản tin này, đồng thời cũng tiếp tục gửi đến các nốt ở cấp thấp hơn trong nhánh cây tại thời điểm đó
Khi một nốt thành viên có vấn đề, không thể kết nối được thì nốt gốc phải định dạng lại tuyến đường Thông qua bản tin báo cáo tình trạng đường truyền được gửi theo chu kỳ thì nốt gốc có thể biết được vấn đề của nốt mạng đó Nhưng khi nốt gốc gặp phải vấn đề trong liên lạc thì việc phát bản tin HELLO_MESSAGE theo chu kỳ sẽ
bị gián đoạn, khi đó các nốt thành viên sẽ mất đi nốt gốc, và nhánh đó sẽ phải tự định dạng lại từ đầu theo cách tương tự như quá trình định dạng nhánh cây
Thuật toán hình cây đa nhánh
Để tạo định dạng lên loại mạng này thì cần phải sử dụng thiết bị gốc (DD) Thiết bị này có trách nhiệm gán địa chỉ ID nhóm (địa chỉ này là duy nhất) cho các nốt gốc (CH) Địa chỉ ID nhóm này kết hợp với địa chỉ ID nốt (là địa chỉ NID mà nốt gốc gán cho các nốt thành viên trong nhánh của mình) tạo ra địa chỉ logic và đựợc sử dụng trong các gói tin tìm đường Một vai trò quan trọng nữa của thiết bị gốc DD là tính toán quãng đường ngắn nhất từ nhánh mạng tới DD và thông báo nó tới tất cả các nốt mạng
Trang 3321
Hình 1.27: Gán địa chỉ nhóm trực tiếp
Khi thiết bị gốc DD tham gia vào mạng, nó sẽ hoạt động như một nốt gốc của nhánh số 0 (CID 0) và bắt đầu phát quảng bá HELLO_MESSAGE tới các nốt lân cận Nếu một nốt gốc (CH) nhận được bản tin này, nó sẽ gửi bản tin yêu cầu kết nối tới DD
để tham gia vào CID 0, sau đó nốt gốc này sẽ yêu cầu DD gán cho nó một ID nhánh (CID) Như vậy thì nốt gốc này có hai địa chỉ logic, một là thành viên của CID 0, thứ hai là địa chỉ của nốt gốc Khi nốt gốc tạo ra một nhánh mới, (một CID mới), nó sẽ thông báo đến các nốt thành viên của nó bằng bản tin HELLO_MESSAGE
Hình 1.28 Gán địa chỉ nhóm qua nốt trung gian
Trang 3422
Khi một thành viên nhận đựợc bản tin HELLO_MESSAGE từ thiết bị DD, nó sẽ thêm địa chỉ ID của CID 0 vào danh sách thành viên rồi thông báo cho nốt gốc Nốt gốc đựợc thông báo này sẽ chọn nốt thành viên này như là một nốt trung gian giữa nó với nốt gốc của nó, rồi gửi bản tin yêu cầu kết nối mạng tới các nốt thành viên để thiết lập kết nối với thiết bị DD Nốt trung gian này yêu cầu một kết nối và tham gia vào thành viên của nhóm số 0 Sau đó nó sẽ gửi bản tin yêu cầu CID tới thiết bị DD Đến khi nhận đựợc đáp ứng CID, nốt trung gian này gửi bản tin đáp ứng liên kết mạng này tới nốt CH, bản tin này chứa các thông tin về địa chỉ ID nhánh mới cho nốt gốc CH Sau khi nốt gốc có đựợc CID mới, thì cách thành viên trong nhánh của nốt gốc cũng sẽ nhận đựợc thông qua HELLO_MESSAGE
Hình 1.29 Gán địa chỉ nhóm qua nốt gốc
Hình 1.30 Gán địa chỉ nhóm qua nốt gốc và nốt trung gian
Trang 3523
Trong mạng này thì việc tự tổ chức mạng là một tính chất khá mạnh mẽ, và mềm dẻo
Cứ nhánh mạng liền trước sẽ có nhiệm vụ gán CID cho nhánh mạng sau
Mỗi một nốt thành viên của nhánh phải ghi lại thông tin về nhánh gốc và các nhánh con của nó, hoặc cả ID của nốt trung gian nếu có Thiết bị gốc phải có trách nhiệm lưu giữ toàn bộ thông tin về cấu trúc cây mạng của các nhánh
Cũng giống như các nốt thành viên của nhánh thì các nốt gốc CH cũng là thành viên của thiết bị gốc và như vậy chúng cũng phải có trách nhiệm thông báo tình trạng đường truyền đến DD Để thực hiện thì nốt gốc phải gửi định kỳ bản tin thông báo tình trạng đường truyền trong mạng tới DD, bản tin này chứa danh sách CID lân cận
DD sau khi xử lý thông tin sẽ tính toán, chọn lựa ra đường truyền tối ưu nhất rồi thông báo định kỳ tới các nhánh của nó thông qua bản tin cập nhật
Như trên ta có thể thấy vai trò của thiết bị gốc này là rất quan trọng, chính vì thế luôn cần có những thiết bị gốc dự phòng (BDD) sẵn sang thay thế thiết bị chính khi gặp
sự cố
Hình 2.9 mô tả việc liên lạc trong nhánh Các nốt trung gian vừa liên kết các nhánh mạng, vừa chuyển tiếp các gói tin giữa các nhánh mạng Khi nốt trung gian nhận đựợc một gói tin, nó sẽ kiểm tra địa chỉ đích của gói tin đó, sau đó sẽ chuyển tới địa chỉ đích của nó nếu địa chỉ đích nằm trong nhánh này hoặc là chuyển tiếp tới nốt trung gian tiếp theo của nhánh liền kề nếu địa chỉ đích không nằm trong nhánh của nó
Hình 1.31: Mạng cây đa nhánh và các nốt trung gian
Chỉ duy nhất thiết bị gốc mới có thể gửi bản tin tới tất cả các nốt trong mạng, bản tin này đựợc chuyển dọc theo tuyến đường của các nhánh Các nốt trung gian thì chuyển tiếp các gói tin quảng bá từ nhánh gốc đến các nhánh con
Trang 3624
1.2.4 Tổng quan về Xbee ZB24
Thông số kỹ thuật
Hình 1.32 Hình ảnh Xbee ZB24
Cự ly truyền thông trong nhà lên tới 30m
Cự ly truyền ngoài trời lên tới 90m
Công suất truyền đi là 1mW(dBm)
Tốc độ truyền dữ liệu RF là 250.000 bps
Tốc độ dữ liệu giao tiếp nhận nối tiếp là 1200 bps-250 kps
Độ nhạy thu là -92dBm(1% tỷ lệ gói lỗi)
Nguồn cung cấp 2.8-3.4V
Dòng truyền 45mA – 3.3V
Sử dụng dải tần 2.4 GHz
Mạng hỗ trợ: Point to Point, Point to MultiPoint, peer to peer
Dải nhiệt độ hoạt động -40-85 độ C
2 DOUT Output Đầu ra UART
3 DIN Input Đầu vào UART
4 D08 output Đầu ra chân số 8
5 Reset input Khởi tạo trạng thái của Xbee
6 PWM0/RSSI output Chân băm xung, chỉ số độ
dài tín hiệu Rx
7 PWM1 output Đầu ra băm xung 1
8 Không dùng Not connect
9 DTR.SLEEP_RQ,DI8 input Điều khiển sleep và đầu ra
số8
11 AD4.DI04 Cả hai Đầu tương tự4, hoặc vào ra
Trang 3725
số 4
12 CTS.DIO7 Cả hai Cờ điều khiển xóa khi
tràn,vào ra số7
13 ON/SLEEP Output Chỉ số trạng thái module
14 VREF input Điện áp tham chiều chân
17 AD3 / DIO3 Cả hai tương tự3 và vào ra số 3
18 AD2 / DIO2 Cả hai tương tự2 và vào ra số 2
19 AD1 / DIO1 Cả hai tương tự1 và vào ra số 1
20 AD0 / DIO0 Cả hai tương tự0 và vào ra số 0
Truyền thông Xbee
Truyền thông nối tiếp RF
Thiết bị Xbee có thể truyền từ thiết bị này sang thiết bị khác trực tiếp như hình dưới đây:
Hình 1.33 Hoạt động truyền thông RF
Như hình trên các Module Xbee giao tiếp với vi điều khiển bởi các chân DI truyền data, DO nhận data, các cờ báo truyền nhận CTS và RTS Dữ liệu ở đây cũng là dạng truyền thông nối tiếp truyền thống
Hình 1.34 Khung truyền UART
Khung truyền bao gồm 1 bit Start 8 bit data và một 1 stop
Truyền thông kiểu API
Trang 3826
Truyền thông API là giao diện lập trình ứng dụng được ứng dụng cho các module Xbee nâng cao khả năng truyền thông, giảm xác xuất lỗi Có thể mở rộng khung data tùy ý Khi hoạt động ở chế độ API tất cả dữ liệu vào ra thông qua Xbee đều có một khung xác định như quy định Truyền khung dữ liệu ở chân DI(pin3) bao gồm: Khung truyền dữ liệu RF và khung truyền lệnh (AT Command) Khung dữ liệu nhận ở chân
sô 2 DO bao gồm: Khung dữ liệu nhận RF và lệnh trả về
Chế độ API cho phép Xbee hoạt động ở 3 chế độ:
AP=0: đây là chế độ mặc định của Xbee (truyền thông nối tiếp bình thường)
AP=1: Hoạt động ở chế độ API
AP=2: Hoạt động ở chế độ API (với ký tự thoát)
Bất kỳ dữ liệu nhận trước khi bắt đầu ký tự phân cách được âm thầm bỏ đi Nếu khung
dữ liệu không nhận được hoặc checksum bị lỗi thì dữ liệu âm thầm được bỏ qua
Hoạt động API ở chết độ 1 (AP=1)
Khi chế độ API được cho phép thì khung dữ liệu được xác định như sau:
Hình 1.35 Cấu trúc khung API chế độ 1
Khung bao gồm 1 byte bắt đầu 0x7E, 2byte độ dài của khung dữ liệu , các byte dữ liệu
Ví dụ khung dữ liệu cần đánh dấu bao gồm:
0x7E – xác định khung
0x7D- ký tự thoát
0x11 – XON
Trang 39Khung API có cấu trúc như sau:
Hình 1.36 Cấu trúc cụ thể khung API
Khung API trong phần khung dữ liệu bao gồm có byte xác định API và dữ liệu
Truyền thông với 64 bít địa chỉ
API identifier: 0x00
Một khung RF sẽ gửi đi tới module RF tới module nhận
Hình 1.37 API truyền 64 bít địa chỉ
Trong phần khung dữ liệu Byte6-13 chứa địa chỉ của đích muốn gửi đến, nếu muốn truyền kiểu quảng bá thì đặt là 0x000000000000FFFF Byte 14 là tùy chọn 0x01 vô hiệu hóa ACK, 0x04 gửi dữ liệu tới tất cả PANID, tất cả thiết bị khác để là 0
Truyền thông với 16 bít địa chỉ
Giá trị xác định khung là 0x01
Một khung RF sẽ gửi đi tới module RF tới module nhận
Trang 4028
Hình 1.38 API truyền 16 bít địa chỉ
Trạng thái truyền
Giá trị xác định của khung API là 0x89
Khi truyền thành công module sẽ gửi trạng thái như khun dưới đây
Hình 1.39 Khung trạng thái truyền