CHƯƠNG 3 : GIỚI THIỆU CÁC MODULE VÀ LINH KIỆN ĐIỆN TỬ
3.1 Giao thức Zigbee:
3.1.7 Mơ hình mạng Zibee:
Chuẩn Zigbee có 3 cấu hình mạng cơ bản, tùy vào từng ứng dụng cụ thể mà người ta thiết lập mạng theo các cấu hình khác nhau:
3.1.7.1.Mạng hình sao (Star Network):
Mạng chỉ có Coordinator (ZC) và các End Device (ZED). Khi ZC được kích hoạt lần đầu tiên nó sẽ trở thành bộ điều phối mạng PAN. Chỉ có mỗi mạng hình sao có PAN ID riêng biệt để hoạt động độc lập. Mạng chỉ có một ZC duy nhất kết nối với các FFD và RFD khác. ZED khơng truyền trực tiếp dữ liệu cho nhau.
Hình 3.2: Mơ hình mạng hình sao zigbee
3.1.7.2.Mạng hình lưới (Mesh Network):
Mạng hình lưới có ưu điểm là cho phép truyền thơng liên tục và có khả năng tự xác định lại cấu hình xung quanh đường đi bị che chắn bằng cách nhảy từ nút này sang nút khác cho đến khi thiết bị lập được kết nối. Mỗi nút trong lưới đều có khả năng kết nối và định tuyến giao thông với các nút lân cận.
Đặc điểm: hình thành tương tự như mạng sao, song trong mạng này có thêm sự xuất hiện của ZR. ZR đóng vai trị định tuyến dữ liệu, mở rộng mạng và có khả năng điều khiển, thu thập số liệu như một nút bình thường.
49
Hình 3.3: Mơ hình mạng hình lưới zigbee
3.1.7.3.Mạng hình cây (Cluster Tree Topology):
Cấu trúc này là một dạng đặc biệt của cấu trúc hình lưới, trong đó đa số thiết bị là FFD và một RFD có thể kết nối vào mạng 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ư một coordinator, 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à kahr 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).
Hình 3.4: Mơ hình mạng hình cây zigbee 3.1.8 Tầng mạng của ZIGBEE/IEEE802.15.4: 3.1.8 Tầng mạng của ZIGBEE/IEEE802.15.4:
50
Tầng vật lý trong mơ hình của giao thức ZigBee được xây dựng trên nền của tầng điều khiển dữ liệu, nhờ những đặc điểm của tầng MAC mà tầng vật lý có thể kéo dài việc đưa tin, có thể mở rộng được qui mơ mạng dễ dàng, một mạng có thể hoạt động cùng các mạng khác hoặc riêng biệt. Tầng vật lý phải đảm nhận các chức năng như là:
- Thiết lập một mạng mới.
- Tham gia làm thành viên của một mạng đang hoạt hoặc là tách ra khỏi mạng khi đang là thành viên của một mạng nào đó.
- Cấu hình thiết bị mới như hệ thống yêu cầu, gán địa chỉ cho thiết bị mới tham gia vào mạng.
- Đồng bộ hóa các thiết bị trong mạng để có thể truyền tin mà khơng bị tranh chấp, nó thực hiện đồng bộ hóa này bằng gói tin thơng báo beacon.
- Bảo mật: gán các thơng tin bảo mật vào gói tin và gửi xuống tầng dưới.
- Định tuyến, giúp gói tin có thể đến được đúng đích mong muốn. Có thể nói rằng thuật tốn của ZigBee là thuật toán định tuyến phân cấp sử dụng bảng định tuyến phân cấp tối ưu được áp dụng từng trường hợp thích hợp.
Dịch vụ bảo mật:
Khi khung tin tầng MAC cần được bảo mật, thì ZigBee sử dụng dịch vụ bảo mật của tầng MAC để bảo vệ các khung lệnh MAC, các thông tin báo hiệu beacon, và các khung tin xác nhận Ack. Đối với các bản tin chỉ phải chuyển qua một bước nhảy đơn, tức là truyền trực tiếp từ nốt mạng này đến nốt mạng lân cận của nó, thì ZigBee chỉ cần sử dụng khung tin bảo mật MAC để mã hóa bảo vệ thơng tin. Nhưng đối với các bản tin phải chuyển gián tiếp qua nhiều nốt mạng mới tới được đích thì nó cần phải nhờ vào tầng mạng để làm công việc bảo mật này. Tầng điều khiển dữ liệu MAC sử dụng thuật tốn AES (chuẩn mã hóa cao cấp). Nói chung thì tầng MAC là một q trình mã hóa, nhưng cơng việc thiết lập các khóa key, chỉ ra mức độ bảo mật, và điều khiển quá trình mã hóa thì lại thuộc về các tầng trên. Khi tầng MAC phát hoặc nhận một khung tin nào đó được bảo mật, đầu tiên nó sẽ kiểm tra địa chỉ đích hoặc nguồn của khung tin đó, tìm ra cái khóa kết hợp với địa chỉ đích hoặc địa chỉ nguồn, sau đó sử dụng cái khóa này để xử lý khung tin theo qui trình bảo mật mà cái khóa đó qui định. Mỗi khóa key được kết hợp với một qui trình bảo mật đơn lẻ. Ở đầu mỗi khung tin của MAC ln có 1 bit để chỉ rõ khung tin này có được bảo mật hay khơng. Khi phát một khung tin, mà khung tin này yêu
51
cầu cần được bảo toàn nguyên vẹn. Khi đó phần đầu khung và phần tải trọng khung MAC sẽ tính tóan cân nhắc để tạo ra một trường mã hóa tin nguyên vẹn (MIC- Message Integrity) phù hợp, MIC gồm khoảng 4,8 hoặc 16 octets. MIC sẽ được gán thêm vào bên phải phần tải trọng của MAC. Phần thêm vào để mã hóa khung tin
Hình 3.5: Dịch vụ bảo mật của zigbee
Khi khung tin phát đi đòi hỏi phải có độ tin cậy cao, thì biện pháp được sử dụng để mã hóa thơng tin là số chuỗi và số khung sẽ được gán thêm vào bên trái phần tải trọng khung tin MAC. Trong khi nhận gói tin, nếu phát hiện thấy MIC thì lập tức nó sẽ kiểm tra xem khung tin nào bị mã hóa để giải mã. Cứ mỗi khi có một bản tin gửi đi thì thiết bị phát sẽ tăng số đếm khung lên và thiết bị nhận sẽ theo dõi căn cứ vào số này. Nhờ vậy nếu như có một bản tin nào có số đếm khung tin đã bị nhận dạng một lần thì thiết bị nhận sẽ bật cờ báo lỗi bảo mật. Bộ mã hóa của tầng MAC dựa trên ba trạng thái của hệ thống. - Để bảo đảm tính ngun vẹn: Mã hóa sử dụng AES với bộ đếm CTR.
- Để bảo đảm tính tinh cậy: Mã hóa sử dụng AES với chuỗi khối mã CBC- MAC. - Để đảm bảo tính tin cậy cũng như nguyên vẹn của bản tin thì kết hợp cả hai trạng thái
CTR và CBC-MAC trên thành trạng thái CCM.
Tầng mạng cũng sử dụng chuẩn mã hóa AES. Tuy nhiên khác với tầng điều khiển dữ liệu MAC, bộ mã hóa của tầng mạng làm việc dựa trên trạng thái CCM* của hệ thống. Trạng thái này thực chất là sự cải biên từ CCM của tầng MAC, nó thêm vào chuẩn mã hóa này các chức năng là chỉ mã hóa tính tin cậy và chỉ mã hóa tính ngun vẹn. Sử dụng CCM* giúp làm đơn giản hóa q trình mã hóa dữ liệu của tầng mạng, các chuỗi mã hóa này có thể dùng lại khóa key của chuỗi mã hóa khác. Như vậy thì khóa key này khơng hồn tồn cịn là ranh giới của các chuỗi mã hóa nữa. Khi tầng mạng phát hoặc nhận một gói tin được mã hóa theo qui ước bởi nhà cung cấp dịch vụ, nó sẽ kiểm tra địa chỉ nguồn hoặc đích của khung tin để tìm ra khóa key liên quan tới địa chỉ đó, sau đó sẽ áp dụng bộ mã hóa này giải mã hoặc mã hóa cho khung tin. Tương tự như q trình mã
52
hóa tầng MAC, việc điều khiển q trình mã hóa này được thực hiện bởi các tầng cao hơn, các số đếm khung và MIC cũng được thêm vào để mã hóa khung tin.
Phần thêm vào để mã hóa khung tin
Hình 3.6: Phần thêm vào để mã hóa khung tin 3.1.9 Tầng ứng dụng của ZIGBEE/IEEE 802.15.4: 3.1.9 Tầng ứng dụng của ZIGBEE/IEEE 802.15.4:
Lớp ứng dụng của ZIGBEE/IEEE802.15.4 thực chất gồm các ba tầng như hình vẽ trên, các tầng này tương ứng với các tầng phiên, trình diễn và ứng dụng trong mơ hình OSI 7 tầng.
Trong ZIGBEE/IEEE 802.15.4 thì chức năng của tầng Application Framework là: - Dị tìm ra xem có nốt hoặc thiết bị nào khác đang hoạt động trong vùng phủsóng của
thiết bị đang hoạt động hay khơng.
- Duy trì kết nối, chuyển tiếp thông tin giữa các nốt mạng. Chức năng của tầng Application Profiles là:
- Xác định vai trò của các thiết bị trong mạng. (thiết bị điều phối mạng, hay thiết bị đầu cuối, FFD hay RFD….).
- Thiết lập hoặc trả lời yêu cầu kết nối.
- Thành lập các mối quan hệ giữa các thiết bị mạng.
Chức năng của tầng Application là thực hiện các chức năng do nhà sản xuất qui định (giao diện…) để bổ sung thêm vào các chức năng do ZigBee qui định.
3.2 Mạch nguồn cho TestBoard: 3.2.1 Giới thiệu: 3.2.1 Giới thiệu:
Mạch có chức năng dùng để cấp nguồn cho test board kích thước chuẩn như MB- 102 hoặc loại MB-102 Mini với 2 cổng ngõ ra 5V và 3.3V. Board có mở rộng thêm các header để lấy nguồn phía trên, có cơng tắc chọn nguồn cấp 5V hoặc 3.V. Có thể cấp nguồn cho board qua cổng USB hay Jack DC.
53
Hình 3.7: Mạch nguồn TestBoard 3.2.2 Thông số kỹ thuật: 3.2.2 Thông số kỹ thuật:
-Điện áp cung cấp: 6,5 ~ 12V hoặc xài nguồn USB -Điện áp ra: 5V và 3V3
-Dòng tối đa: 700mA
-Có các Jumper để lựa chọn điện áp 3V và 5V cắm, kích thước module có thể cắm vừa trên Test Board
-Kích thước: 5,3 cm x 3,5 cm 3.2.3 Cách sử dụng: Bảng 3.1: Cách sử dụng mạch nguồn TestBoard Mạch nguồn pin HC-06 pin DRF 1609H pin +3.3V 1 (VCC) -3.3V 2 (GND +5V VCC -5V GND
54
3.3 Module RF Zigbee UART DRF 1609H: 3.3.1 Giới thiệu: 3.3.1 Giới thiệu:
Module RF Zigbee UART DRF 1609H là phiên bản update của DRF 1605H với nhân xử lý SoC ẢM Cortex M3 CC2630 từ chính hãng TI cho tốc độ truyền nhận cao hơn và khả năng hoạt động ổn định tối đa, ngồi ra mạch cịn hỗ trợ thêm các tính năng như: multilevel-routing, network forwading up to 200,...
Module RF Zigbee UART DRF 1609H được nhập khẩu chính hãng từ hãng DTK, mạch có chất lượng gia cơng tốt, kích thước nhỏ gọn, sử dụng chuẩn chân cắm 2.54mm rất dễ lắp đặt, mạch có phần mền cấu hình đi kèm, chỉ cần có thêm mạch chuyển USB- UART hoặc đế chuyển USB cho mạch là đã có thể dễ dàng kết nối trực tiếp với máy tính và cài đặt cấu hình thơng qua phần mềm chính hãng DTK.
Module RF Zigbee UART DRF 1609H có khoảng cách truyền xa trong điều kiện lý tưởng có thể lên đến 1.6Km, thích hợp cho các ứng dụng truyền nhận dữ liệu sử dụng mạng Zigbee: thu thập dữ liệu, IoT,...
3.3.2 Thơng số kỹ thuật:
• Model: DRF 1609H.
• IC trung tâm: SoC ARM Cortex M3 CC2630 chính hãng TI.
• Điện áp sử dụng: 2.6~3.6V DC, thơng thường 3.3V DC.
• Dịng điện tiêu thụ: 25mA (tại 3.3V DC).
• Chuẩn truyền sóng Zigbee 2.4GHZ, có thể cấu hình thay đổi 2405MHZ – 2480MHZ, Step: 5MHZ.
• Khoảng cách truyền nhận lý tưởng: 1.6Km
• Receiver sensitivity: -98d/bm.
• Có thể cài đặt cấu hình hoạt động Coordinator hoặc Router.
• Serial format: 8-N-1(default), có thể cài đặt 8-E-1, 8-O-1.
• Tốc độ Baudrate: 38400bps(default), 9600bps, 19200 bps, 38400bps,
57600bps, 115200bps.
• Nhiệt độ hoạt động: -40~85 độ C
55
Hình 3.8: Thơng số kỹ thuật Module RF Zigbee UART DRF 1609H 3.3.3 Cách sử dụng:
Khá đơn giản, chúng ta chỉ cần cấp nguồn vào 2 chân 1 và 2 tương ứng +3.3 1 (VCC)
GND 2 (GND)
Và truyền nhận tín hiệu thơng qua 2 chân 5 và 6 nhận dữ liệu từ DRF 1609H thông qua chân 5 (TX) truyền dữ liệu đến DRF 1609H thông qua chân 6 (RX)
Bảng 3.2: Cách sử dụng Module RF Zigbee UART DRF 1609H
DRF 1609H pin HC-06 pin Mạch nguồn pin
TX RX RX TX 1 (VCC) +3.3 2 (GND) -3.3 3.4 Module HC-06: 3.4.1 Giới thiệu.
Module Bluetooth HC 06 là cầu nối giữa vi điều khiển Arduino với các thiết bị ngoại vi như: smartphone, laptop, USB Bluetooth thông qua Bluetooth (giao tiếp serial gởi và nhận tín hiệu 2 chiều).
56
Đây là loại Module mà cách kết nối là: sử dụng thiết bị ngoại vi để dị tín hiệu kết nối bluetooth mà HC 06 phát ra. Sau khi kết nối thành cơng có thể gởi tín hiệu từ vi điều khiển đến các thiết bị ngoại vi này hoặc ngược lại.
Hình 3.9: Module HC-06 3.4.2 Thông số kỹ thuật. 3.4.2 Thơng số kỹ thuật.
• Sử dụng chip CSR Bluetooth V2.0.
• Hoạt động ở mức điện áp: 3.1 - 4.2V.
• Dịng điện khi hoạt động: khi ghép đôi là từ 30 - 40mA, sau khi ghép đôi hoạt động truyền nhận bình thường là 8mA.
• Dải tần số hoạt động: 2.4GHz.
• Tốc độ truyền dữ liệu : 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200..
• Kích thước nhỏ gọn: 27 x 13 x 2 mm.
• Nhiệt độ lưu trữ : -40ºC - 85ºC, nhiệt độ hoạt động -25ºC - 75ºC.
• Giao tiếp : Bluetooth Serial Port.
• Thiết lập mặc định: Baud rate: 9600, N, 8, 1; Pairing code 1234.
3.4.3 Cách sử dụng.
Module HC 06 có 4 chân, chúng ta sẽ kết nối với Module DRF 1609H như sau: +5V VCC
57
Và truyền nhận tín hiệu giữa Module HC 06 và Module DRF 1609H thông qua 2 chân Tx và RX:
Bảng 3.3: Cách sử dụng Module HC-06
HC-06 pin DRF 1609H pin Mạch nguồn pin
TX RX
RX TX
VCC +5v
GND -5v
3.5 Mạch chuyển USB UART CP 2102: 3.5.1 Giới thiệu: 3.5.1 Giới thiệu:
Mạch chuyển USB UART CP2102 sử dụng chip CP2102 của hãng SILICON LABS được dùng để chuyển giao tiếp từ USB sang UART TTL và ngược lại. Mạch chuyển USB UART CP2102 có thể nhận trên tất cả các hệ điều hành Windows, Mac, Linux, Android,... rất dễ sử dụng và giao tiếp. Hỗ trợ các tốc độ truyền như: 300, 600, 1200, 1800, 2400, 4000, 4800, 7200, 9600 , 14400, 16000, 19200, 28800, 38400, 51200, 56000, 57600, 64000, 76800, 115200 , 128.000, 153.600, 230.400 , 250.000, 256.000, 460.800, 500.000, 576.000, 921.600 và các loại tốc độ khác. CP2102 khơng sử dụng thạch anh ngồi như các chip PL2303. Module có sẵn ngõ ra điện áp 3.3V. Trên mạch có 6 cổng đầu ra: 3.3V DTR 5V Tx Rx Gnd. Trong đó chân DTR được sử dụng để reset vi điều khiển trong quá trình nạp (tương thích với Arduino Promini). LED nguồn sáng khi gắn vơ máy tính và LED báo hiệu Tx / Rx, LED này sẽ sáng khi module nhận, gửi dữ liệu.
3.5.2 Mơ tả chân:
• TXD: chân truyền dữ liệu UART, dùng kết nối đến chân Rx của các module
khác, không kết nối trực tiếp đến mức của RS232.
• RXD: chân nhận dữ liệu UART, dùng kết nối đến chân Tx của các module
khác, không kết nối trực tiếp đến mức của RS232
• GND: chân mass hoặc nối đất.
• 5V: nguồn điện áp dương (tối đa 500mA).
58
• 3.3V: nguồn điện áp dương 3.3V.
59
CHƯƠNG 4: GIỚI THIỆU PHẦN MỀM APP INVENTOR2 4.1 Giới thiệu: 4.1 Giới thiệu:
Ngày 12/7/2010, Google chính thức giới thiệu cơng cụ lập trình trực quan App Inventor2 dùng để phát triển phần mềm ứng dụng trên hệ điều hành Android. App Inventor2 là cơng cụ lập trình dành cho mọi người, kể cả trẻ em.
Với công cụ App Inventor2, Google tạo điều kiện để mọi người có thể tự xây dựng phần mềm ứng dụng cho thiết bị di động dùng hệ điều hành Android.
App Inventor thực chất là một ứng dụng web, chạy bởi trình duyệt trên máy tính cá nhân. Tuy nhiên, người dùng vẫn phải cài đặt một phần mềm Java mang tên App Inventor2 Extras, có nhiệm vụ điều khiển điện thoại Android (kết nối với máy tính thơng qua cổng USB). Nhờ vậy, người dùng có thể nhanh chóng chuyển ứng dụng từ máy tính cá nhân qua điện thoại Android để chạy thử.
Hình 4.1: Giao diện và kết nối với điện thoại. 4.2 Cách sử dụng: 4.2 Cách sử dụng:
4.2.1 Khởi chạy App Inventor:
4.2.1.1. Sử dụng Online:
Truy cập vào trang web: http://ai2.appinventor.mit.edu Lần đầu tiên đăng nhập vào thì trang này sẽ yêu cầu một tài khoản Google để đăng nhập.