Cùng với sự phát triển của internet và các giao thức truyền không đây như: wifi, zigbee, bluetooth thì việc điều khiển từ xa lại càng được ứng dụng nhiều hơn nữa vì sự tiện nghi mà nó ma
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP
GIÁM SÁT VÀ ĐIỀU KHIỂN SỬ DỤNG CÔNG NGHỆ
ZIGBEE
Giảng viên hướng dẫn : Th.s NGUYỄN DUY KHANH
Sinh viên thực hiện : NGUYỄN CÔNG HẬU MSSV: 12134601
NGUYỄN NGỌC LINH MSSV: 12037571
Lớp : ĐHĐTVT8A
Khóa : 8
Tp Hồ Chí Minh, tháng 5 năm 2016
Trang 2BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM
KHOA CÔNG NGHỆ ĐIỆN TỬ
BỘ MÔN VIỄN THÔNG
ĐỒ ÁN TỐT NGHIỆP
GIÁM SÁT VÀ ĐIỀU KHIỂN SỬ DỤNG CÔNG NGHỆ
ZIGBEE
Giảng viên hướng dẫn : Th.s NGUYỄN DUY KHANH
Sinh viên thực hiện : NGUYỄN CÔNG HẬU MSSV: 12134601
NGUYỄN NGỌC LINH MSSV: 12037571
Lớp : ĐHĐTVT8A
Khóa : 8
Tp Hồ Chí Minh, tháng 5 năm 2016
Trang 3LỜI CẢM ƠN
Lời đầu tiên cho nhóm em gửi lời cảm ơn tới quý thầy cô trường ĐH Công
nghiệpTP.HCM, quý thầy cô Khoa Điện Tử đã truyền đạt những kiến thức quý giá, giúp nhóm em có được một nền tảng , hành trang kiến thức vững vàng về chuyên ngành khi ratrường Đặc điệt chúng em chân thành cảm ơn thầy Nguyễn Duy Khanh đã tận tình chỉ dạy, hướng dẫn nhóm em hoàn thiện đồ án này
Trong quá trình thực hiện đồ án,nhóm chúng em gặp không ít khó khăn và thiếu sót Nhưng được sự hướng dẫn và giúp đỡ nhiệt tình của quý thầy đã giúp chúng em khắc phục những thiếu sót đó và thầy đã chỉ dạy chúng em tận tình, thầy giúp chúng em có một cơ sở lý thuyết vững về đề tài Trong quá trình thi công lắp đạt, thầy đã chỉnh sửa cho chúng em những thiếu xót về cả phần cứng lẫn phần mềm, để chúng em có thể hoàn thành thành được đề tài đúng thời hạn, giúp chúng em được học tập tốt hơn
Qua đây chúng em cũng xin gửi lời cảm ơn đến những người bạn học cùng lớp đã giúp chúng em có thật nhiều tài liệu để hoàn thành đề tài
Tuy nhiên do kiến thức chúng em còn hạn chế và thời gian thực hiện còn hạn hẹp nêntrong quá trình thực hiện đồ án và báo cáo còn nhiều thiếu sót, Rất mong được ý kiến đánh giá và đóng góp của quý thầy cô để đồ án này của chúng em được hoàn thiện hơn Một lần nữa, chúng em xin chân thành cảm ơn !
Trang 4NHẬN XÉT (Của giảng viên hướng dẫn)
Trang 7.
………
.
Trang 8LỜI NÓI ĐẦU
Ngày nay khoa học ngày càng phát triển, có rất nhiều những ứng dụng quan trọng vào trong đời sống, làm cho cuộc sống của chúng ta thay đổi từng ngày Sự phát triển của
kĩ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết cho hoặt động của con người đạt hiệu quả cao Không những vậy, công nghệ điện tử còn góp phần thúc đẩy sự phát triển của các ngành khác
Với xu hướng tiên tiến như hiện nay thì các công nghệ điều khiển từ xa đang rất được ưa chuộng và được ứng dụng nhiều cho cuộc sống Cùng với sự phát triển của internet và các giao thức truyền không đây như: wifi, zigbee, bluetooth thì việc điều khiển từ xa lại càng được ứng dụng nhiều hơn nữa vì sự tiện nghi mà nó mang lại
Trong ngành nông - lâm – ngư nghiệp hiện nay việc quản lý một khu vực có diện tích đất rộng lớn như rừng hay nông trại lớn gặp khá nhiều khó khăn và hạn chế Hàng năm vẫn xảy ra hàng loạt các vụ cháy rừng, những nông trại thì khó quản lý hết tài nguyên của mình Xuất phát từ thực tế đó nhóm chúng em đã nghiên cứu, thiết kế và thi công đề tài :
giám sát và điều khiển sử dụng công nghệ zigbee Để đo đạc và truyền dữ liệu từ cảm
biến nhiệt độ và độ ẩm, hiển thị lên máy tính và lưu lại để giám sát
Nội dung báo cáo gồm 5 chương sau :
Chương 1 : Dẫn nhập
Chương 2 : Tổng quan phần cứng
Chương 3 : Giớ thiệu về phần mềm
Chương 4 : Thiết kế, lập trình, lắp đặt mạch đo nhiệt độ và độ ẩm truyền qua công nghệ zipbee
Chương 5 : Kết luận và hướng phát triển
Trang 9Danh m c hình nh ụ ả
CÁC TỪ VIẾT TẮT
IEEE: Institute of Electrical and Electronic Engineers
WPAN: Wireless Personal Area Network
PAN ID : PAN identifier
QoS: Quality of Service
MAC: Medium Access Control
PHY: Physical layer
RF: Radio frequency
Trang 10Mục lục
Trang 11CHƯƠNG 1 DẪN NHẬP
1. Đặt vấn đề
Công nghệ thông tin và viễn thông ngày càng có vai trò quan trọng trong quá trình phát triển kinh tế xã hội của đất nước Đặc biệt trong những thập niên gần đây cùng với sự phát triển của hệ thống mạng internet , tin học…, ngành điệ
tử viễn thông đã phát triển tạo ra bước ngoặt quan trọng lĩnh vực viễn thông, đáp ứng nhu cầu của con người trong đời sống kinh tế, chính trị…
Với nhu cầu về viễn thông của con người ngày càng tăng, đồng thời việc ứng dụngcác thiết bị điều khiển giám sát từ xa được phổ biến rộng dãi, do đó việc sử dụng mạng không dây để điều khiển là phương thức thuận tiện nhất, tiết kiệm thời gian cho công việc Vừa đảm bảo các tính năng an toàn cho các thiết bị và vừa tiết kiệmđược chi phí sử dụng Cộng với việc ứng dụng khoa học kĩ thuật vào trong quản lýnông – lâm – ngư nghiệp, giúp cho hiệu quả công việc được tăng lên nhiều lần, và khả năng quản lý ở quy mô lớn được tăng lên
Xuất phát từ những thực tiễn nói trên, nhóm chúng em quyết định nghiên
cứu và thực hiện đề tài : “ giám sát và điều khiển sử dụng công nghệ zigbee “.
Việc sử dụng điều khiển thiết bị bằng công công nghệ zigbee được ứng dụng thực tiễn trong cuộc sống như trong công – nông – lâm – ngư – nghiệp
2. Tầm quan trọng của đề tài
Với sự phát triển của công nghệ thông tin và sự bùng nổ của điện tử viên thông, đã làm tiền đề cho các lĩnh vực khác phát triển, trong đó có lĩnh vực tự động hóa hay quá trình điều khiển và giám sát từ xa
ở nước ta có nhiều vùng sâu vùng xa, nhiều vùng địa lý hiểm trở hay rừng sâu, việc ứng dụng công nghệ vào sản xuất và đời sống còn hạn chế, các thiết bị được lắp đặt còn ít Việc quản lý giám sát với diện tích lớn mà công nghệ hạn chế thì sẽ gây ra rất nhiều khó khăn
Vì vậy, đề tài này không những là một thực tại khách quan mà nó còn có vai trò đặc biệt quan trọng thực sự ở hiện tại và tương lai sau này Do công nghệ Zigbee ngày càng được sử dụng rộng dãi và ngày càng tối ưu cho việc truyền nhậnthông tin Với nhiều ưu điểm của công nghệ này như : khoảng cách truyền xa, giá thành rẻ, băng thông nhỏ, tiêu thụ năng lượng ít…Do đó, việc điều khiển và giám sát sử dụng công nghệ Zigbee là một nhu cầu hết sức cần thiết và đây chính là lý
do chúng em quyết định chọn đề tài này
3. Mục đích nghiên cứu đề tài
Trong thực tiễn của cuộc sống hiện nay, con người bị hạn chế rất nhiều trong côngviệc điều khiển và giám sát các thiết bị ở nhưng nơi hẻo lánh hay những khu vực
Trang 12rộng lớn Với nhu cầu đòi hỏi của con người ngày càng tăng nên chúng em tiến hành nghiên cứu đề tài với mục đích là:
• Phá vỡ được những hạn chế về mặt khoảng cách và vị trí địa lý
• Có thể giám sát và xem trực tiếp các thông tin trên máy tính
• Có thể xuất ra các biểu đồ thể hiện được sự thay đổi của môi trường về mặt nhiệt độ và độ ẩm
4. Gới hạn của đề tài
Trong thời gian thực hiện đề tài là có hạn, với lượng kiến thức được truyền đạt trong suốt khóa học là có hạn, tài liệu về công nghệ Zigbee cũng hạn chế nên đề tài của chúng em chỉ bao gồm
• Module Arduino UNO
• Các module truyền – nhận Zigbee
• Các cảm biến nhiệt độ LM35, cảm biến độ ẩm DH11
• Phần mềm visual studio giao điện hiển thị thông số lên máy tính
Trang 13CHƯƠNG 2 - TỔNG QUAN
I - Giới thiệu về Arduino
1- Giới thiệu chung về Arduino
Arduino thực sự gây sóng gió trên thị trường người dùng DIY ( là những người tự chế ra sản phẩm của chình mình) trên toàn thế giới trong vài năm gần đây, gần giống như là Apple đã làm được trên thị trường thiết bị di động Số người dùng cực lớn và đa dạng với trình độ trải rộng từ bậc phổng thông lên tới đại học đã làm cho ngay cả những người tạo ra nó cũng phải ngạc nhiên về mức
độ phổ biến
Lịch sử ra đời : Arduino ra đời tại thị trấn Avrea thuộc nước Ý và được đạt
theo tên một vị vua vào thế kỉ thứ 9 là King Arduin Arduino chính thức được đưa
ra giới thiệu vào năm 20005 như một công cụ khiêm tốn dành cho các sinh viên của giáo sư Massimo Banzi, là một trong những người phát triển Arduino, tại trường Interacaction Design Instistute Ivrea ( IDII ) Mặc dù hầu như không được tiếp thị gì cả, tín tức về Arduino vấn lan truyền với tốc độ chóng mặt nhờ những lời truyền miện tốt đẹp của những người dùng đầu tiên Hiện nay aduino nổi tiếng tới nỗi có người tìm đến thị trấn Ivrea chỉ để thăm quan nơi đã sản sinh ra arduino
Lý thuyết phần cứng được đóng góp bởi một sinh viên người colombia tên là Hernando Barragan Sau khi nền tảng Wiring hoàn thành, các nhà nghiên cứu đã làm việc với nhau để giúp nó nhẹ hơn, rẻ hơn và khả dụng đối với cộng đồng mã nguồn mở trường này cuối cùng cũng đã đóng cửa, vì vậy các nhà nghiên cứu một trong số đó là David Cuarlielles đã phổ biến ý tưởng này
Phần cứng : một mạch arduino bao gồm một vi điều khiển AVR với nhiều
linh kiện bổ sung giúp dễ dàng lập trình và có thể mở rộng với các mạch khác Phần cứng bao gồm một board mạch nguồn mở được thiết kế trên nền tảng vi xử
lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14 chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau Một khía cạch quan trong của Arduino
là các kết nối tiêu chuẩn của nó, cho phép người dùng kết nối CPU của board với các module thêm vào có thể dễ dàng chuyển đổi, được gọi là shield Vài shield truyền thông với board Arduino trược tiếp thông qua các chân khác nhau, nhưng nhiều shield được định địa chỉ thông qua serial bus I2C – nhiều shield có thể xếp chồng và sử dụng dới dạng song song Arduino chính thức thường sử dụng là các dòng chip megaAVG, đặc biệt là ATmega 8, Atmega 168 , ATmega 328, ATmega
1208, và ATmega 2560 Một vài các bộ vi xử lý khác cũng được sử dụng bởi các mạch Aquino tương thích Hầu hết các mạch bao gồm một bộ điều chỉnh tuyến
Trang 14tính 5V và một thạch anh dao động 16 MHz (hoặc bộ cộng hưởng ceramic trong một vài biến thể), mặc dù một vài thiết kế như LilyPad chạy tại 8 MHz và bỏ qua
bộ điểu chỉnh điện áp onboard do hạn chế về kích cõ thiết bị Một vi điển khiển Arduino cũng có thể được lập trình sẵn với một boot loader cho phép đơn giản là upload chương trình vào bộ nhớ flash on – chip, so với các thiết bị khác cần phải một bộ nạp bên ngoài Điều này giúp cho việc sử dụng Arduino được trực tiếp hơnbằng cách cho phép sử dụng một máy tính gốc như một bộ nạp chương trình
2 – Các loại board arduino hiện nay
Arduino ngày nay đã được phát triển nhiều loại khác nhau Nhằm đáp ứng các mục đích sử dụng khác nhau cho từng dự án Đối với các loại Arduino UNO, NANO được sử dụng cho các mạch điều khiển đơn giản không có quá nhiều các module kết nối với các loại Arduino DUE , MEGA được hỗ trợ nhiều chân điểu khiển hơn và tốc độ xử lý cũng mạnh mẽ hơn so với UNO và NANO
Các loại Arduino phổ biến hiện nay:
Hình 2.1 các loại board Aduino
Trang 15
Hình 2.2 từng loại board Arduino
3 - giới thiệu về board Arduino UNO
Nhắc tới dòng mạch Arduino dùng để lập trình, cái đầu tiên mà người ta thường nói đến chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 ( R3 ) Arduino UNO là một board mạch thiết kế với bộ xử lý trung tâm là vi điểu khiển AVR ATmega328
Trang 16Hình 2.3 : hình ảnh 1 board Arduino UNONhững thông số cơ bản của Arduino UNO ( R3 )
Vi điều khiển của Arduino UNO
Trang 17Hình 2.4 : vi điểu khiển của Arduino UNOArduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ não này có thể xử lí những tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lí tín hiệu cho xe điều khiển từ xa, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD…và nhiều ứng dụng khác.
Nguồn cấp cho Arduino UNO
Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V thì cấp nguồn bằng pin vuông 9V
là hợp lí nhất nếu không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, sẽ làm hỏng Arduino UNO
Các chân năng lượng
• GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối vớinhau
• 5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA
• 3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA
• Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dươngcủa nguồn với chân này và cực âm của nguồn với chân GND
• IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ởchân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từchân này để sử dụng bởi chức năng của nó không phải là cấp nguồn
• RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương vớiviệc chân RESET được nối với GND qua 1 điện trở 10KΩ
Các lưu ý khi sử dụng Arduino UNO
• Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó phải hết sức cẩnthận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO.Hãy nên dùng nguồn từ cổng USB nếu có thể
Trang 18• Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết
bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thểlàm hỏng board
• Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V cóthể làm hỏng board
• Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiểnATmega328
• Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNOnếu vượt quá 200mA sẽ làm hỏng vi điều khiển
• Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làmhỏng vi điều khiển
• Cường độ dòng điện qua một chân Digital hoặc Analog bất kì của Arduino UNOvượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếu không dùng để truyền nhận
dữ liệu, phải mắc một điện trở hạn dòng
Bộ nhớ của Arduino UNO
• 32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ trong bộ nhớFlash của vi điều khiển Thường thì sẽ có khoảng vài KB trong số này sẽ đượcdùng cho bootloader nhưng đừng lo, bạn hiếm khi nào cần quá 20KB bộ nhớ nàyđâu
• 2KB cho SRAM (Static Random Access Memory): giá trị các biến bạn khai báo
khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biến thì càng cần nhiều bộ nhớRAM Tuy vậy, thực sự thì cũng hiếm khi nào bộ nhớ RAM lại trở thành thứ màbạn phải bận tâm Khi mất điện, dữ liệu trên SRAM sẽ bị mất
• 1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory):
đây giống như một chiếc ổ cứng mini – nơi bạn có thể đọc và ghi dữ liệu của mìnhvào đây mà không phải lo bị mất khi cúp điện giống như dữ liệu trên SRAM
Các chân vào\ra của board Arduino UNO
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2 mứcđiện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều cócác điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thìcác điện trở này không được kết nối) Một số chân digital có các chức năng đặc biệt nhưsau:
• 2 chân Serial : 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận (receive –
RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua
2 chân này Nếu không cần giao tiếp Serial, không nên sử dụng 2 chân này nếukhông cần thiết
• Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM với độ phân
giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite()
Trang 19Nói một cách đơn giản, có thể điều chỉnh được điện áp ra ở chân này từ mức 0Vđến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác.
• Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngoài các chức
năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thứcSPI với các thiết bị khác
• LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nútReset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó được nối với chân số 13 Khichân này được người dùng sử dụng, LED sẽ sáng
• Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit(0 → 210-1) để đọc giá trị điện áp trong khoảng 0V → 5V Với chân AREF trên
board, bạn có thể để đưa vào điện áp tham chiếu khi sử dụng các chân analog Tức
là nếu bạn cấp điện áp 2.5V vào chân này thì bạn có thể dùng các chân analog để
đo điện áp trong khoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit
• Đặc biệt, Arduino UNO có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếpI2C/TWI với các thiết bị khác
4 - Hàm giao tiếp (Serial) cho Arduino
Trang 20nhất 1 cổng Serial (hay còn được gọi là UART hoặc USART) Giao tiếp Serial được thực
hiện qua 2 cổng digital 0 (RX) và 1 (TX) hoặc qua cổng USB tới máy tính Vì vậy, nếu bạn đang sử dụng các hàm của thư viện Serial này, bạn không thể sử dụng các chân digital 0 và digital 1 để làm việc khác được!
Bạn có thể sử dụng bảng Serial monitor có sẵn trong Arduino IDE để giao tiếp với
Arduino qua giao thức Serial Kích vào biểu tượng Serial Monitor ( ) hoặc nhấn tổ hợp phím Ctrl+Shift+M để mở bảng Serial Monitor, sau đó bạn kích chuột vào bảng chọnnhư hình dưới để chọn baudrate giống với baudrate được dùng trong quá trình lập trình của bạn Mặc định là 9600
Cú pháp
Serial.begin(speed)
Serial.begin(speed, config)
Tham số
Trang 21speed: bits / giây (baud) – long
config: tập hợp dữ liệu, bit chẵn lẽ, và stop bits Những giá trị khả dụng là:
Trang 22Cú pháp
Serial.findUntil(target,terminator)
Tham số
target : chuỗi cần tìm kiếu (kiểu string)
terminator: chuỗi dừng tìm (terminator)
Trang 24Chúng ta sẽ sử dụng hàm này để “nhìn trộm” xem thử byte (ký tự) tiếp theo trong bộ nhớ đệm mà ta sẽ được đọc là gì Và khi nhìn trộm, ta sẽ không xóa ký tự đó khỏi bộ nhớ đệm Điều này rất phù hợp với việc xem trước gói tin , sau đó chúng ta sẽ đọc hoặc bỏ qua.
Tham số thứ 2 (có thể có hoặc không) sẽ giúp hệ thống Arduino in dữ liệu dưới dạng mà bạn muốn (thường là dùng để debug) Các giá trị hợp lệ là:
• BIN: in dữ liệu dưới dạng hệ nhị phân (hệ cơ số 2)
• DEC: in dữ liệu dưới dạng hệ thập phân (hệ cơ số 10)
• OCT: in dữ liệu dưới dạng hệ bát phân (hệ cơ số 8)
• HEX: in dữ liệu dưới dạng hệ thập lục phân (hệ cơ số 16)
• Còn đối với số thực, thì giá trị nhập vào là một số nguyên bất kỳ (âm hoặc
dương),hệ thống sẽ dùng giá trị này để làm tròn số thực của bạn
Cú pháp
Serial.print(val)
Serial.print(val, format)
Tham số
val: bất kỳ giá trị ở bất kỳ kiểu dữ liệu nào
format: Xem ở trên
Trả về
size_t: int – Số byte (sau khi đã chuyển thành chuỗi) được gửi vào cổng Serial Nó sẽ được trả về trước khi có bất kỳ giá trị nào được gửi đi vào Serial trong các phiên bản Arduino 1.0 trở lên
Println() :
Giới thiệu
Trang 25Giống hệt hàm Serial.print(), nhưng nó sẽ gửi thêm một dấu xuống dòng sau khi gửi những gì yêu cầu.
Cú pháp
Serial.println(val)
Serial.println(val, format)
Tham số
val: bất kỳ giá trị ở bất kỳ kiểu dữ liệu nào
format: Xem ở trên
Trả về
size_t: int – Số byte (sau khi đã chuyển thành chuỗi) được gửi vào cổng Serial Nó sẽ được trả về trước khi có bất kỳ giá trị nào được gửi đi vào Serial trong các phiên bản Arduino 1.0 trở lên
buffer: biến đệm dùng để lưu lại các byte (char[] hoặc byte[])
length : số byte cần lưu (int)
Trả về
byte
Readbytesuntil() :
Giới thiệu
Trang 26Có nhiệm vụ như Serial.readBytes() Nhưng nó sẽ kết thúc quá trình đọc nếu gặp trúng
ký tự kết thúc (kiểu char)
Cú pháp
Serial.readBytesUntil(character, buffer, length)
Tham số
character: ký tự kết thúc (kiểu char)
buffer: biến đệm dùng để lưu lại các byte (char[] hoặc byte[])
length : số byte cần lưu (int)
Trang 27buffer: biến đệm dùng để lưu lại các byte (char[] hoặc byte[])
length : số byte cần lưu (int)
val: Một giá trị kiểu byte
str: Một giá trị kiểu string
buf: Kiểu byte[] (mảng byte), len: độ dài các phần tử sẽ được xuất ra Serial, sẽ được tính
từ phần tử đầu tiên đến phần tử len – 1
Trả về
byte: số lượng byte được gửi đi
II – Cảm biến nhiệt độ LM35 và cảm biến độ ẩm module DH11
1 – cảm biến nhiệt độ ML35
Hình 2.6 cảm biến nhiệt độ LM35
Trang 28Cảm biến nhiệt độ LM35 là một loại cảm biến tương tự rất hay được ứng dụng trong các
ứng dụng đo nhiệt độ thời gian thực Vì nó hoạt động khá chính xác với sai số nhỏ, đồng thời với kích thước nhỏ và giá thành rẻ là một trong những ưu điểm của nó Vì đây là cảmbiến tương tự (analog sensor) nên ta có thể dễ dàng đọc được giá trị của nó bằng
hàm analogRead()
Nhiệt độ được xác định bằng cách đo hiệu điện thế ngõ ra của LM35
→ Đơn vị nhiệt độ: °C
→ Nhiệt độ thay đổi tuyến tính: 10mV/°C
Chân 1 : chân nguồn VCC
Chân 2 : đầu ra Vout
Đặc điểm chính của cảm biến LM35
+ Điện áp đầu vào từ 4V đến 30V
+ Độ phân giải điện áp đầu ra là 10mV/oC
+ Độ chính xác cao ở 25 C là 0.5 C
+ Trở kháng đầu ra thấp 0.1 cho 1mA tải
Trang 29Dải nhiệt độ đo được của LM35 là từ -55 C - 150 C với các mức điện áp ra khác nhau Xét một số mức điện áp sau :
- Nhiệt độ -55 C điện áp đầu ra -550mV
- Nhiệt độ 25 C điện áp đầu ra 250mV
- Nhiệt độ 150 C điện áp đầu ra 1500mV
Tùy theo cách mắc của LM35 để ta đo các giải nhiệt độ phù hợp Đối với hệ thống này thì đo từ 0 đến 150 Chi tiết các bạn có thể xem trong datasheet của nó
Tính toán nhiệt độ đầu ra của LM35.
Việc đo nhiệt độ sự dụng LM35 thông thường chúng ta sử dụng bằng cách
LM35 - > ADC - > Vi điều khiển
Như vậy ta có:
U= t.k
U: là điện áp đầu ra
t: là nhiệt độ môi trường đo
k: là hệ số theo nhiệt độ của LM35 10mV/1 độ C
Giả sử điện áp Vcc cấp cho LM35 là 5V ADC 10bit
Vậy bước thay đổi của LM35 sẽ là 5/(2^10) = 5/1024
Giá trị ADC đo được thì điện áp đầu vào của LM35 là
(t*k)/(5/1024) = ((10^-2)*1024*t)/5 = 2.048*t
Vậy nhiệt độ ta đo được t = giá trị ADC/2048
Sai số của LM35
+ Tại 0 độ C thì điện áp của LM35 là 10mV
+ Tại 150 độ C thì điện áp của LM35 là 1.5V
==> Giải điện áp ADC biến đổi là 1.5 - 0.01 = 1.49 (V)
+ ADC 11 bit nên bước thay đổi của ADC là : n = 2.44mV
Vậy sai số của hệ thống đo là : Y = 0.00244/1.49 = 0.164 %
Trang 30Hình 2.8 module DH11
Thông Tin Kỹ Thuật :
Điện áp hoạt động : 5VDC
• Chuẩn giao tiếp: TTL, 1 wire
• Khoảng đo độ ẩm: 20%-80%RH sai số ± 5%RH
• Khoảng đo nhiệt độ:0-50°C sai số ± 2°C
• Tần số lấy mẫu tối đa 1Hz (1 giây / lần)
• Kích thước : 28mm x 12mm x10mm
Nguyên lý hoạt động
Sơ đồ kết nối vi xử lý
• Gửi tín hiệu muốn đo ( Start) tới DHT 11, sau đó DHT 11 xác nhận lại
• Khi đã giao tiếp được với DHT11, cảm biến sẽ gửi lại 5 byte dữ liệu nhiệt độ đo được
Bước 1: gửi tín hiệu Start
Trang 31- Sau khoảng 20-40us, DHT11 sẽ kéo chân DATA xuống thấp Nếu > 40us
mà chân DATA không được kéo xuống thấp nghĩa là không giao tiếp được với DHT11
- Chân DATA sẽ ở mức thấp 80us sau đó nó được DHT11 kéo lên cáo trong 80us Bằng việc giám sát chân DATA, MCU có thể biết được có giao tiếp được với DHT11 không Nếu tín hiệu đo được DHT11 lên cao, khi đó hoàn thành quá trình giao tiếp của MCU với DHT
Bước 2: đọc giá trị trên DHT11
- DHT11 sẽ trả giá trị nhiệt độ và độ ẩm về dưới dạng 5 byte Trong đó
Byte 1: giá trị phần nguyên của độ ẩm (RH%)
Byte 2: giá trị phần thập phân của độ ẩm (RH%)
Byte 3: giá trị phần nguyên của nhiệt độ (TC)
Byte 4: giá trị phần thập phân của nhiệt độ (TC)
Byte 5: kiểm tra tổng
Nếu Byte 5= (8 bit) (byte1 + byte 2 + byte 3 + byte4) thì giá trị độ
ẩm và nhiệt độ là chính xác, nếu sai thì kết quả đo không có nghĩa
- Đọc dữ liệu:
Sauk hi giao tiếp được với DHT11, DHT11 sẽ gửi liên tiếp 40 bit 0 hoặc 1
về MCU, tương ứng chưa thành 5 byte kết quả của nhiệt độ và độ ẩm
Bit 0
Trang 32 Bit 1
III TỔNG QUAN VỀ ZIGBEE
1 Khái quát về Zigbee/ IEEE 802.15.4
1.1 Tình hình nghiên cứu
Từ khi chuẩn mạng IEEE 802.15.4 được chính thức phê duyệt vào tháng 8/2004, zigbee phiên bản 1 đã khẳng định được ưu thế của mình trong các ứng dụng trong công
Trang 33nghiệp, thương mại và đặc biệt là mô hình căn hộ thông minh Ngày nay zigbee đã trở thành một xu thế đúng như người ta đã dự đoán.
Xuất phát từ ý tưởng các thiết bị có thể kết nối, tương tác qua lại và hoạt động hiệu quả với nhau Ta có thể hiểu đơn giản zigbee là một loại ngôn ngữ không dây được các thiết bị sử dụng để kết nối và thực hiện ý tưởng đó Trên thực tế đã có nhiều loại ngôn ngữ mà thiết bị sử dụng để nói chuyện với nhau như Thread, BLE và Z-Wave Chúng cùng nhau làm cho các thiết bị trở nên thông minh và hoạt động hiệu quả hơn bao giờ hết.Đặc biệt chúng thực sự đã đưa những thành tựu công nghệ vào trong cuộc sống của bạn, căn hộ thông minh là một thành công mà thực tế đã minh chứng
Hình 2.9: ZigBee ứng dụng trong smart home.
Do zigbee mới chuyển từ hoạt động trong lĩnh vực công nghiệp và thương mại sang
mô hình căn hộ thông minh trong vài năm trở lại đây, điều này dẫn đến sự tồn tại một số các bộ phận khác nhau, các thiết bị trung gian và sự phức tạp không cần thiết trong cấu trúc mạng Một chuẩn zigbee mới vừa được đề xuất để khắc phục các nhược điểm trên,
đó là zigbee 3.0 Zigbee 3.0 ra đời với mục tiêu đơn giản hóa và dể dàng trong triển khai lắp đặt và phát triển sản phẩm và dịch vụ Internet of Things (IoT), cho phép tương thích
Trang 34giữa một loạt các thiết bị thông minh cho các doanh nghiệp và người tiêu dùng Zigbee 3.0 cung cấp tất cả các tính năng có sẵn trong phiên bản trước đó và bổ sung thêm một sốtính năng mới trên lớp ứng dụng Cụ thể tại lớp ứng dụng, zigbee hổ trợ hơn 130 thiết bị bao gồm các sản phẩm cho cao ốc và căn hộ thông minh, thiết bị thông minh, bảo mật, cảm biến, thiết bị đo lường và các thiết bị hổ trợ chăm sóc sức khỏe.
Hình 2.10: Mô hình OSI zigbee 3.0.
Zigbee 3.0 cũng cung cấp tính đa dạng trong sự lựa chọn, bạn có thể mua các hệ thống đơn giản, dể dàng lắp đặt và sử dụng ở quy mô hộ gia đình cũng như có thể chọn mua những hệ thống lớn có quy mô công nghiệp v.v…
Các thành viên trong liên minh zigbee vừa cho ra mắt sản phẩm dành cho các ứng dụng viễn thông (ZigBee Telecom Services) hổ trợ những ứng dụng công cộng của zigbee Nó
hổ trợ một loạt các ứng dụng cho thiết bị di động như dịch vụ sử dụng vị trí trong nhà, dịch vụ truy vấn thông tin, dịch vụ bán vé, thanh toán qua điện thoại di động, các dịch vụ
đa phương tiện và các loại hình mạng xã hội Một điện thoại di động có gắn sim zigbee
có thể nhận các thông tin từ nhà khai thác mạng và thanh toán các dịch vụ Dịch vụ zigbee viễn thông cho phép các thiết bị di động có thể liên lạc với nhau qua mạng zigbee,
có thể kết nối với các nốt hoặc thiết bị khác như các máy bán vé hay thiết bị đầu cuối v.v…
Trang 35nhau 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 đó.
1.3. Đặc điểm
Đặc điểm của công nghệ ZigBee là tốc đọ truyền tin thấp, tiêu hao ít năng lượng, chi phí thấp, và là giao thức mạng không dây hướng tới các ứng dụng điều khiển từ xa và tự động hóa Tổ chức IEEE 802.15.4 bắt đầu làm việc với chuẩn tốc độ thấp một thời gian ngắn thì tiểu ban về ZigBee và tổ chức IEEE quyết định xác nhập và lấy tên ZigBee đặt cho công nghệ mới này Mục tiêu của công nghệ ZigBee là nhắm tới việc truyền tin với mức tiêu hao năng lượng nhỏ và công suất thấp cho những thiết bị chỉ 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ể dung 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ào 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)
Tốc độchip(kchips/s)
Kiểu điều chế
Tốc
độ bit(kb/s)
Tốc độ ký tự
(ksymbol/s)
Dạng ký tự
Trang 36Có tất cả 27 kênh truyền trên các dải tần số khác nhau được mô tả như bảng dưới Bảng các kênh truyền và tần số của ZigBee
Tần số trung tâm
Tần số kênh trung tâm(MHz)
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 dung 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ạngtrong 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ái loại mạng không dây khác
Trang 37Hình 2.12 : Kiến trúc lớp (hay ngăn xếp – stack) trong kiến trúc ZigBee.
Ưu điểm của ZigBee/IEEE 802.15.4 với Bluetooth/IEE 802.15.1
ZigBee cũng tương tự như Bluetooth nhưng đơn giản hơn, ZigBee có tốc độtruyền dữ liệu thấp hơn, tiết kiệm năng lượng hơn Một nốt mạng trong mạngZigBee có khả năng hoạt động từ 6 tháng đến 2 năm chỉ với nguồn là hai ắc qui
AA Phạm vi hoạt động của ZigBee là 10-75m trong khi của Bluetooth chỉ là 10m(trong trường hợp không có khuếch đại)
ZigBee xếp sau Bluetooth về tốc độ truyền dữ liệu Tốc độ truyền của ZigBee là250kbps tại 2,4GHz, 40kbps tại 915MHz và 20kbps tại 868MHz trong khi tốc độnày của Bluetooth là 1Mbps
ZigBee sử dụng cấu hình chủ - tớ cơ bản phù hợp với mạng hình sao tĩnh trong đócác thiết bị giao tiếp với nhau thong qua các gói tin nhỏ Loại mạng này cho phéptối đa 254 nút mạng Giao thức Bluetooth phức tạp hơn bởi loại giao thức nàyhướng tới truyền file, hình ảnh, thoại trong các mạng ad hoc ( ad hoc là một loạimạng đặc trưng cho việc tổ chức tự do, tính chất của nó là bị hạn chế về khônggian và thời gian) Các thiết bị Bluetooth có thể hỗ trợ mạng scatternet là tập hợpcủa nhiều mạng picconet không đồng bộ Nó chỉ cho phép tối đa là 8 node slavetrong một mạng chủ - tớ cơ bản
Node mạng sử dụng ZigBee vận hành tốn ít năng lượng, nó có thể gửi và nhận cácgói tin trong khoảng 15msec trong khi thiết Bluetoothị Bluetooth chỉ có thể làmviệc này trong 3sec
1.4 Thành phần mạng ZigBee
Một mạng ZigBee gồm có 3 loại thiết bị:
• ZC (ZigBee Coordinator): đây là thiết bị gốc có khả năng quyết định kếtcấu mạng, quy định cách đánh địa chỉ và lưu giữ bảng địa chỉ Mỗi
Trang 38mạng chỉ có duy nhất một Coordinator và nó cũng là thành phần duynhất có thể truyền thông với cái mạng khác.
• ZR (ZigBee Router): có các chức năng quyết định tuyến trung giantruyền dữ liệu, phát hiện và lập bản đồ các nút xung quanh, theo dõi,điều khiển, thu thập dữ liệu như nút bình thường Các router thường ởtrạng thái hoạt động ( active mode) để truyền thông với các thành phầnkhác của mạng, vì vậy nó phải được cấp nguồn chính
• ZED (ZigBee End Devide): các nút này chỉ truyền thông vớiCoordinator hoặc router ở gần đó, chúng được coi như điểm cuối củamạng và chỉ có nhiệm vụ hoạt động đọc thông tin từ các thành phần vật
lý ZED có kết cấu đơn giản và thường ở trạng thái nghỉ (sleep mode) đểtiết kiệm năng lượng chúng chỉ được “đánh thức” khi cần nhận hoặcgửi một thông điệp nào đó
Các thiết bị này được chia làm 2 loại là FFD( Full Function Device)
và RFD (Reduced Function Device) Trong đó FFD có thể hoạt độngnhư một coordinator, router hoặc End device, còn RFD chỉ có thể đóngvai trò End Device trong 1 mạng ZigBee
Hiện nay liên đoàn ZigBee có rất nhiều nhà cung cấp các thiết bị vàcác dịch vụ hỗ trợ trên toàn thế giới như Gban, Philips, TexasInstrument… với nhiều dòng thiết bị và chủng loại khác nhau, cung cấptính đa dạng về sự lựa chọn cho người tiêu dùng
Hình.2.13 : Một số công ty thành viên trong liên đoàn ZigBee
1.5 Địa chỉ mạng
Thiết bị zigbee có 2 loại địa chỉ:
- 64-bit IEEE address (còn gọi là MAC address hoặc Extended address)
- Địa chỉ mạng 16-bit (còn gọi là logical address hoặc short address)
Trang 39Địa chỉ 64-bit là địa chỉ duy nhất và được gán trong toàn thời gian sống của thiết bị Thông thường, nó được cài đặt bởi nhà sản xuất, địa chỉ này được duy trì và được cấp phát bởi IEEE Địa chỉ 16-bit là địa chỉ được gán vào thiết bị khi nó gia nhập vào mạng
và nó là duy nhất trong mạng Địa chỉ 16-bit dùng để xác định thiết bị và truyền nhận dữ liệu trong mạng
1.6 Mô hình mạng ZigBee
Có 3 mô hình mạng cơ bản, tùy vào ứ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:
+ Mạng hình sao (star netword)
Cấu hình mạng hình sao gồm một điều phối viên mạng – zigbee PAN Coordinator (gọi tắt là ZC) và các điểm cuối – Zigbee end devices (gọi tắt là ZED) Khi một FFD được kích hoạt lần đầu tiên nó sẽ trở thành bộ điều phối mạng PAN Mỗi mạng hình sao
có PAN ID riêng để 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 nên mọi liên lạc điều phải thông qua ZC ZED không truyền trực tiếp
dữ liệu cho nhau, ví dụ 2 nốt mạng muốn trao đổi với nhau thì phải thông qua ZC này
Hình 2.14 cấu trúc mạng hình sao
Có thể dễ thấy được là ZC sẽ tiêu tốn nhiều năng lượng hơn các nốt mạng khác và mạng có tầm phủ sóng nhỏ (trong vòng bán kính khoảng 100m) Chuẩn IEEE 802.15.4 khuyến cáo chỉ nên sử dụng cấu trúc hình sao này cho các ứng dụng có tầm nhỏ, ví dụ như các dự án nhà thông minh (home automation), thiết bị ngoại vi cho máy vi tính (personal computer peripherals), đồ chơi (toys and games)
+ Mạng hình lưới (mesh netword)Mạng hình lưới cấu tạo từ các router (gọi là zigbee router – ZR), các điểm cuối ZED
và nó cũng chỉ có một Coordinator PAN Ngược lại với topo sao, bất kỳ thiết bị nào cũng
có thể giao tiếp với bất kỳ thiết bị khác miễn là các thiết bị đó đang ở trong phạm vi của
Trang 40chúng Cách hình thành mạng lưới cũng tương tự như mạng hình 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à
nó cũng có khả năng điều khiển, thu thập số liệu như một nốt bình thường
Hình 2.15 Cấu trúc mạng hình lưới
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 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 với các nốt lân cận Cũng chính khả năng chuyển tiếp và định tuyến gói tin đã làm cho khoảng cách truyền giữa hai điểm không còn là trở ngại đối với zigbee Các ứng dụng trong công nghiệp như điều khiển và giám sát, mạng cảm biến không dây, kiểm kê
và theo dõi hàng tồn kho là ví dụ về ứng dụng điển hình của topology này
+ Mạng hình cây (cluster tree topology)
Là một trường hợp đặc biệt của mạng lưới, mạng hình cây gồm một ZC, mỗi ZR trong mỗi nhánh và các ZED
Hình 2.16 : Cấu trúc mạng hình cây