Thiết kế hệ thống tưới nước tự động ứng dụng mạng Zigbee” dựa trên mạch STM32F103C8T6, Zigbee DRF1605H và Raspberry Pi B+ • Tìm hiểu về kit Raspberry và hệ điều hành trên nền Linux. • Nghiên cứu ngôn ngữ lập trình Python, ngôn ngữ lập trình web HTML, ngôn ngữ PHP, JavaScript kết hợp cơ sở dữ liệu MySQL. • Tìm hiểu về mạch STM32, Zigbee.
Trang 1LỜI CẢM ƠN
Lời đầu tiên chúng tôi xin gửi lời cảm ơn đến tất cả quý thầy cô giảng dạytại trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, đặt biệt là quýthầy cô Khoa Điện – Điện Tử đã giảng dạy và cung cấp những kiến thức bổ íchtạo tiền đề cho chúng tôi thực hiện đồ án này
Chúng tôi xin gửi lời cảm ơn chân thành đến giáo viên hướng dẫn thầyThS.Huỳnh Hoàng Hà, thầy đã khởi tạo ý tưởng, cung cấp tài liệu, đồng thời tậntình hướng dẫn, giúp đỡ tạo mọi điều kiện thuận lợi trong suốt quá trình thựchiện đề tài
Chúng tôi cũng xin gửi lời cảm ơn đến gia đình, bạn bè và các thầy cô trongkhoa đã tận tình giúp đỡ cho chúng tôi có cơ hội nghiên cứu và thực hiện đề tàinày
Mặc dù đã cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất Song dobuổi đầu làm quen và tiếp cận trong lĩnh vực mới cũng như hạn chế về kiến thức
và kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định mà bản thânchưa nhìn nhận được Chúng tôi rất mong nhận được sự góp ý của quý Thầy, Côgiáo và các bạn để đề tài được hoàn thiện hơn
Xin chân thành cảm ơn!
Thực hiện đề tài
NGUYỄN MINH THIỆN
VÕ VĨNH HOÀNG
Trang 2TÓM TẮT
Đề tài được thực hiện dựa trên những yêu cầu thực tế, với mục đích manglại sự thuận tiện khi chăm sóc các khu vườn có diện tích lớn, với tính năng điềukhiển từ xa giúp người dùng có thể dễ dàng theo dõi thông tin về khu vườn trênmáy tính, điện thoại thông minh cũng như có phương án tưới nước tự động theothời gian hoặc nhiệt độ, độ ẩm, độ ẩm đất mong muốn
Mặt khác, là một sinh viên, nhu cầu nắm bắt về công nghệ mới, tìm hiểunhững kiến thức ngoài chương trình học cũng như triển khai ứng dụng hệ thốngmạng không dây nói chung, mạng Zigbee nói riêng vào các lĩnh vực về nôngnghiệp, công nghiệp, y tế, và đặc biệt là trong truyền thông để thay thế các côngnghệ cũ, lạc hậu và giảm thiểu lao động thủ công, là rất cần thiết
Từ đó, nhóm đã quyết định chọn đề tài “Thiết kế hệ thống tưới nước tựđộng ứng dụng mạng Zigbee” dựa trên mạch STM32F103C8T6, ZigbeeDRF1605H và Raspberry Pi B+ để nghiên cứu và thực hiện
Trang 3MỤC LỤC
Danh mục hình IX I
CHƯƠNG 1 GIỚI THIỆU 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 TÌNH HÌNH NGHIÊN CỨU 3
1.2.1 Nghiên cứu ngoài nước 3
1.2.2 Nghiên cứu trong nước 5
1.2.3 Đánh giá tổng quan 6
1.3 MỤC TIÊU VÀ PHƯƠNG PHÁP NGHIÊN CỨU 7
1.3.1 Mục tiêu 7
1.3.2 Phương pháp nghiên cứu 7
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 7
1.5 BỐ CỤC KHÓA LUẬN 8
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 9
2.1 TỔNG QUAN VỀ ARM CORTEX M3 STM32F103 9
2.1.1 Tóm tắt lịch sử ARM 9
2.1.2 Đặc điểm nổi bật của STM32 10
2.1.3 Các phiên bản cấu trúc ARM 11
2.1.4 Bộ xử lý và đơn vị xử lý trung tâm Cortex 12
2.1.5 Kiến trúc hệ thống 15
2.1.6 Tối đa hiệu năng 16
2.1.7 Các ngoại vi 17
Trang 42.1.8 Kết nối với các giao tiếp khác 19
2.1.9 Chế độ tiêu thụ năng lượng thấp 22
2.2 TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY ZIGBEE/IEEE 802.15.4 24
2.2.1 Sơ lược về Zigbee/IEEE 802.15.4 24
2.2.2 Các thiết bị trong mạng cảm biến không dây Zigbee 27
2.2.3 Mô hình mạng Zigbee 28
2.2.4 Kiến trúc tổng quan của mạng Zigbee/IEEE 802.15.4 31
2.2.5 Ưu và nhược điểm của Zigbee 40
2.2.6 Các ứng dụng sử dụng Zigbee 40
2.3 TỔNG QUAN VỀ NGÔN NGỮ PYTHON 43
2.3.1 Khái niệm 43
2.3.2 Đăc điểm ngôn ngữ lập trình Python 43
2.3.3 Cấu trúc ngôn ngữ python 45
2.4 NGÔN NGỮ LẬP TRÌNH WEB 46
2.4.1 Ngôn ngữ HTML 46
2.4.2 Ngôn ngữ PHP 47
2.4.3 Ngôn ngữ SQL 49
2.4.4 Ngôn ngữ JavaScript 49
2.5 HỆ ĐIỀU HÀNH LINUX 50
2.5.1 Khái quát 50
2.5.2 Các thư mục trên linux 51
2.6 WEB SERVER 53
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 55
3.1 GIỚI THIỆU HỆ THỐNG 55
Trang 53.1.1 Sơ đồ khối hệ thống 55
3.1.2 Sơ lược hệ thống và mục đích thiết kế 55
3.2 GIỚI THIỆU PHẦN CỨNG SỬ DỤNG TRONG HỆ THỐNG 56
3.2.1 Giới thiệu về mạch thí nghiệm STM32F103C8T6 56
3.2.2 Giới thiệu về mạch thu phát RF Zigbee DRF1605H 58
3.2.3 Giới thiệu Raspberry Pi B+ 60
3.2.4 Giới thiệu cảm biến nhiệt độ, độ ẩm và độ ẩm đất 62
3.2.5 Các mạch hỗ trợ 70
3.3 THIẾT KẾ PHẦN CỨNG 78
3.3.1 Board thu thập dữ liệu và điều khiển động cơ 78
3.3.2 Board truyền dữ liệu Zigbee 78
3.3.3 Board webserver 79
3.4 THIẾT KẾ PHẦN MỀM 79
3.4.1 Giải thuật chương trình chính 79
3.4.2 Cấu hình board truyền dữ liệu Zigbee 81
3.4.3 Xây dựng hệ thống webserver trên Raspberry Pi 82
CHƯƠNG 4 KẾT QUẢ THỰC HIỆN 92
4.1 THU THẬP DỮ LIỆU 92
4.2 HOẠT ĐỘNG CỦA MẠNG ZIGBEE 93
4.3 TRANG WEB HIỂN THỊ 93
4.4 PHÂN TÍCH KẾT QUẢ 96
4.4.1 Sự hoạt động của mạng Zigbee trong mô hình thực tế 96
4.4.2 Sự hoạt động của khối web server 96
4.4.3 Sự hoạt động của khối điều khiển động cơ 96
4.4.4 Đánh giá dữ liệu từ cảm biến 96
Trang 64.5 KẾT QUẢ THỰC TẾ 97
CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 98
5.1 KẾT LUẬN 98
5.1.1 Những vấn đề nghiên cứu 98
5.1.2 Những vấn đề hoàn thành 98
5.1.3 Những hạn chế của đề tài 98
5.2 HƯỚNG PHÁT TRIỂN 99
PHỤ LỤC………100
TÀI LIỆU THAM KHẢO 101
DANH MỤC HÌN
Trang 7Hình 1.1: Xu hướng IoT 2
Hình 1.2: IoT trong nông nghiệp 3
Hình 1.3: Robot Droplet tự động tưới nước 4
Hình 1.4: Hệ thống tưới phun tự động đa năng 5
Hình 2.1: Cấu trúc vi điều khiển ARM dùng lõi Cortex-M3 10
Hình 2.2: Cấu trúc cơ bản của ARM Cortex-M3 12
Hình 2.3: Kiến trúc đường ống của ARM Cortex-M3 13
Hình 2.4: Kiến trúc load và store của ARM Cortex-M3 13
Hình 2.5: Các chế độ hoạt động của Cortex 14
Hình 2.6: Cấu trúc của NVIC trong bộ xử lí Cortex 15
Hình 2.7: Cấu trúc Bus 16
Hình 2.8: Các bộ tạo dao động STM32 16
Hình 2.9: Giao diện USART trong STM32 20
Hình 2.10: Hỗ trợ giao tiếp ở chế độ hafl-duplex dựa trên một đường truyền 21
Hình 2.11: Giao tiếp smartcard và hồng ngoại 21
Hình 2.12: Hỗ trợ giao tiếp đồng bộ SPI 22
Hình 2.13: Tìm đường đi tự động trong mạng mesh Zigbee 26
Hình 2.14: Thiết bị trong mạng Zigbee 28
Hình 2.15: Các mô hình mạng Zigbee 29
Hình 2.16: Cấu trúc mạng hình sao 29
Hình 2.17: Cấu trúc mạng hình lưới 30
Hình 2.18: Cấu trúc mạng hình cây 31
Hình 2.19: Kiến trúc OSI và kiến trúc Zigbee 32
Hình 2.20: Truyền dữ liệu trong mạng Zigbee 33
Hình 2.21: Các thành phần của tầng vật lý Zigbee (IEEE 802.15.4) 33
Hình 2.22: Cấu trúc siêu khung trong mạng Zigbee (IEEE 802.15.4) 35
Hình 2.23: Tổng quang cấu trúc tầng mạng trong mạng Zigbee 37
Hình 2.24: Mô hình tầng ứng dụng trong mạng Zigbee 39
Trang 8Hình 2.25: Các thiết bị được điều khiển bằng công nghệ Zigbee 41
Hình 2.26: Giải pháp không dây Zigbee trong công nghiệp 42
Hình 2.27: Giải pháp theo dõi bệnh nhân từ xa 42
Hình 2.28: Cấu trúc hệ thống tập tin của linux 53
Hình 3.1: Sơ đồ khối hệ thống 55
Hình 3.2: Mạch thí nghiệm ARM STM32F103C8T6 57
Hình 3.3: Sơ đồ chân STM32F103 58
Hình 3.4: Sơ đồ ra chân mạch thí nghiệm 58
Hình 3.5: Mạch DRF1605H 59
Hình 3.6: Sơ đồ chân mạch DRF1650H 60
Hình 3.7: Máy tính Raspberry Pi B+ 61
Hình 3.8: Sơ đồ chân GPIO Raspberry Pi B+ 62
Hình 3.9: Cảm biến nhiệt độ và độ ẩm DHT11 62
Hình 3.10: Giao tiếp của MCU với DHT11 63
Hình 3.11: Tín hiệu bit 0 chân DATA DHT11 .64
Hình 3.12: Tín hiệu bit 1 chân DATA DHT11 65
Hình 3.13: Lưu đồ giải thuật lấy dữ liệu DHT11 (bên trái) và hàm Read_Byte (bên phải) 66
Hình 3.14: Cảm biến độ ẩm đất 68
Hình 3.15: Sơ đồ mạch nguyên lý cảm biến độ ẩm đất 69
Hình 3.16: Mạch thời gian thực DS1307 70
Hình 3.17: Chip DS1307 72
Hình 3.18: Tổ chức bộ nhớ của DS1307 72
Hình 3.19: Thanh ghi DS1307 chi tiết 73
Hình 3.20: Chế độ ghi dữ liệu thanh ghi DS1307 74
Hình 3.21: Chế độ đọc dữ liệu 75
Hình 3.22: Sơ đồ nguyên lý mạch điều khiển động cơ 76
Hình 3.23: Mặt trên mạch điều khiển động cơ 77
Hình 3.24: Mặt dưới mạch điều khiển động cơ 77
Hình 3.25: Giải thuật chương trình chính 80
Trang 9Hình 3.26: Giải thuật chương trình trong ngắt của UART 81
Hình 3.27: Giao diện phần mềm cấu hình cho module DRF1605H 82
Hình 3.28: Giao diện PuTTY 83
Hình 3.29: Kết quả sau khi kết nối SSH với Pi 83
Hình 3.30: Giải thuật Python trên Raspberry Pi 85
Hình 3.31: Giải thuật Python trên Raspberry Pi (tiếp theo) 86
Hình 3.32: Giải thuật hàm timgiotat 87
Hình 3.33: Sơ đồ khối cấu trúc database 88
Hình 3.34: Sơ đồ khối hoạt động của Web Server 91
Hình 4.1: Kết quả dữ liệu thu được từ STM32 92
Hình 4.2: Tầm hoạt động của hai thiết bị zigbee 93
Hình 4.3: Màn hình đăng nhập Web Server 93
Hình 4.4: Giao diện chính của Web Server 94
Hình 4.5: Biểu đồ hệ thống 95
Hình 4.6: Hệ thống thực tế 97
DANH MỤC BẢN
Trang 10Bảng 2.1: Các kênh truyền và tần số 24
Bảng 2.2: So sánh xu hướng ứng dụng giữa các giao thức wireless khác và mạng Zigbee 25
Bảng 3.1: Cấu hình chi tiết phần cứng của máy tính Raspberry Pi 61
Bảng 3.2: Bảng kết nối STM32 với DHT11 78
Bảng 3.3: Bảng kết nối STM32 với cảm biến độ ẩm đất 78
Bảng 3.4: Bảng kết nối STM32 với mạch điều khiển động cơ 78
Bảng 3.5: Bảng kết nối STM32 với Zigbee Router 78
Bảng 3.6: Bảng kết nối STM32 với Zigbee Coordinator 79
Bảng 3.7: Bảng kết nối Raspberry Pi B+ với mạch DS1307 79
Bảng 3.8: Bảng mô tả cấu trúc của bảng dữ liệu user 88
Bảng 3.9: Bảng mô tả cấu trúc của bảng dữ liệu testtable 89
Bảng 3.10: Bảng mô tả cấu trúc của bảng dữ liệu control 89
Bảng 3.11: Bảng mô tả cấu trúc của bảng dữ liệu chart 90
Trang 11CÁC TỪ VIẾT TẮT
ADC Analog to Digital Converter
AODV Ad-hoc On-demand Distance Vector
API Application Programming Interface
CAP Contention Access Period
CFP Contention-Free Period
CSMA/CA Carrier Sense Multiple Access with Collision Avoidance
GPIO General Purpose Input/Output
HDMI High-Definition Multimedia Interface
I2C Inter-Integrated Circuit
IEEE Institute of Electrical and Electronics Engineers
JSON Javascript Object Notation
LR-WPAN Low-rate Wireless Personal Area Network
LSB Least Significant Bit
MAC Media Access Control layer
Trang 12PDA Personal Digital Assistant
SPI Serial Peripheral Interface
UART Universal Asynchronous Receiver Transmitter
USART Universal Synchronous Asynchronous Receiver Transmitter
XML eXtensible Markup Language
ZDO Zigbee Device Object
Trang 13CHƯƠNG 1
GIỚI THIỆU
1.1 ĐẶT VẤN ĐỀ
Trong những năm gần đây, thuật ngữ “Internet of things” (viết tắt là IoT)
xuất hiện khá nhiều và thu hút không ít sự quan tâm chú ý của thế giới công
nghệ Theo định nghĩa của Wikipedia, IoT là mạng lưới vạn vật kết nối
Internet hoặc là mạng lưới thiết bị kết nối Internet Hay hiểu một cách đơn giảnIoT là tất cả các thiết bị có thể kết nối với nhau Việc kết nối thì có thể thực hiệnqua Wi-Fi, mạng viễn thông băng rộng (3G, 4G), Bluetooth, ZigBee, hồngngoại… Các thiết bị có thể là điện thoại thông minh, máy pha cafe, máy giặt, tainghe, bóng đèn, và nhiều thiết bị khác
Trang 14Hình 1.1: Xu hướng IoT
Ở IoT có một tiềm năng rất lớn để làm nông nghiệp thông minh, một côngnghệ có thể liên tục lắng nghe từng dữ liệu của các khu vườn qua các cảm biếnkhông dây để từ đó xử lý, phân tích, ra quyết định và điều khiển ngược lại cácthiết bị của khu vườn ngay trên thiết bị di động của người nông dân vào bất kỳlúc nào, tại bất cứ nơi đâu có kết nối Internet Đối với một nước mà nông nghiệpvẫn giữ địa vị trọng yếu như ở nước ta, thì việc ứng dụng IoT vào trong nôngnghiệp để tạo bước đột phá về năng suất, chất lượng sản phẩm, cũng như giúpngười nông dân giảm thiểu sức lao động, chủ động trong sản xuất, giảm sự lệthuộc vào thời tiết, khí hậu, đẩy mạnh sức cạnh tranh của nông nghiệp Việt Namvới thế giới… là việc hết sức cần thiết và cần được triển khai nhanh chóng
Trang 15Hình 1.2: IoT trong nông nghiệp
Với những nhu cầu đặt ra cho IoT trong nông nghiệp Việt Nam và qua quátrình tìm hiểu và tham khảo các hệ thống trên thế giới và ở nước ta, nhóm đã
quyết định chọn đề tài “Thiết kế hệ thống tưới nước tự động ứng dụng mạng
Zigbee” để nghiên cứu và phát triển.
ẩm của thổ nhưỡng, nhiệt độ không khí, sức gió… Nó có thể xác định đượcphương pháp tưới và tiến hành tưới cho cây trồng, nhờ một loại máy làm mưanhân tạo khác Hãng robot Droplet giới thiệu robot tưới cây tích hợp những côngnghệ tự động mới nhất, điện toán đám mây và một số dịch vụ kết nối khác cho
Trang 16phép Droplet có khả năng tự động ngắm hướng vòi phun, lượng nước và tần suấttưới để tự động tưới nước cho cây theo những lịch trình tự tính toán dựa trênphân tích các dữ liệu đầu vào Droplet là 1 chiếc vòi phun tự động có khả năng tựđiều chỉnh hướng dòng nước phun ra từ ống đến thân cây trong bán kính 9.14mét Trước khi robot tự động vận hành, người dùng chỉ cần khai báo tên của cácloại cây có mặt trong vườn thông qua điện thoại, máy tính bảng, được kết nốikhông dây với robot Dựa trên thông tin về tên các loại cây, Droplet sẽ tự tra cứuthông tin trên mạng nhằm xác định lượng nước cũng như tần số tưới cho phù hợpvới từng loại cây Bên cạnh đó, Droplet cũng tự tra cứu dữ liệu về tình hình thờitiết của địa điểm làm việc để xác định mưa/nắng nhằm đưa ra lịch làm việc thíchhợp
Hình 1.3: Robot Droplet tự động tưới nước
Bộ điều khiển tưới cây tự động Israel dễ dàng được lập trình theo yêu cầutưới của người sử dụng Chỉ cần vài thao tác lập trình, cung cấp cho hệ thống mộtnguồn nước đầu vào và dẫn các đầu tưới đến các vị trí cần tưới là đã hoàn tất việclắp đặt hệ thống tưới tự động theo công nghệ tưới tiên tiến
Trang 171.2.2 Nghiên cứu
trong nước
Hệ thống tưới phun tự động đa năng, một công trình khoa học của 2 giảngviên trường Cao đẳng Công nghiệp (CĐCN) Huế: tiến sĩ Lê Văn Luận và thạc sĩ
Lê Đình Hiếu được áp dụng trong hệ nhà màng trồng hoa địa lan của ông Lê Văn
Lự, thôn Tiên Nộn-xã Phú Mậu-huyện Phú Vang Các thiết bị chính của hệ thốngtưới phun đa năng này gồm có 1 cảm biến đo nhiệt độ và 1 cảm biến đo độ ẩmcủa đất được cài đặt tại nhà màng trồng hoa, hệ điều khiển được lập trình trênPLCS7 1200
Hình 1.4: Hệ thống tưới phun tự động đa năng
Khi các cảm biến cho thông số độ ẩm của đất hoặc nhiệt độ không khí tạinhà màng báo hiệu cần nước, tín hiệu này sẽ đưa đến hộp điều khiển PLC Tạiđây các chức năng sẽ được điều khiển tự động để nhận nước và đưa tưới tự độngtưới phun theo các vòi phun lắp đặt, và sẽ tự ngừng trong đúng 5 phút, khi cảmbiến báo độ ẩm hoặc nhiệt độ đã đạt yêu cầu Hệ thống tưới phun tự động đanăng là sản phẩm khoa học có ý tưởng hay, tính ứng thiết thực và đã được thửnghiệm có hiệu quả thực tế
Trang 18 Các sản phẩm thiết kế chi phí cao dẫn đến giá thành cao
Một số sản phẩm chỉ được ứng dụng tại khu vực của họ
Các thiết kế thường ứng dụng vào các công trình lớn
Các hệ thống trong nước:
Ưu điểm:
Các hệ thống đều tự động tưới
Đáp ứng được nhu cầu nước của cây trồng
Chi phí thiết kế các hệ thống không quá cao
Các hệ thống chưa gọn các dây nối của các thiết bị còn nhiều
Trang 19Dựa vào các phân tích và đánh giá trên, cho thấy các hệ thống đều thực sựchưa hoàn hảo về mọi tiêu chí Căn cứ vào điều kiện cũng như yêu cầu thực tếcủa nước ta, hoàn toàn có thể thiết kế một hệ thống tưới nước tự động và sự kếthợp những ưu điểm của các hệ thống đã có cũng như hạn chế tối đa có thể cácnhược điểm còn tồn tại.
1.3 MỤC TIÊU VÀ PHƯƠNG PHÁP NGHIÊN CỨU
1.3.1 Mục tiêu
Xây dựng một hệ thống vườn thông minh tự động tưới tiêu và thu thập dữliệu môi trường hiện đại, vận hành dễ dàng, hiệu quả, giảm thiểu chi phí, côngsức lao động phù hợp nhu cầu thực tế và điều kiện khí hậu ở Việt Nam
1.3.2 Phương pháp
nghiên cứu
Để giải quyết vấn đề ta thực hiện phương pháp nghiên cứu như sau:
Tìm hiểu về kit Raspberry và hệ điều hành trên nền Linux
Nghiên cứu ngôn ngữ lập trình Python, ngôn ngữ lập trình web HTML,ngôn ngữ PHP, JavaScript kết hợp cơ sở dữ liệu MySQL
Tìm hiểu về mạch STM32, Zigbee
1.4 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đề tài tập trung nghiên cứu các đối tượng cụ thể sau:
Tìm hiểu mạch STM32F103C8T6 về cách thu thập dữ liệu các cảm biếnqua giao thức UART, One Wire và cách điều khiển động cơ
Tìm hiểu về Kit Raspberry Pi B+, ngôn ngữ lập trình Web HTML, trìnhbày một trang web kết quả và ngôn ngữ PHP tại máy chủ, xử lý kết quảkết hợp với ngôn ngữ cơ sở dữ liệu MySQL truy vấn kết quả và lưu trữ dữliệu cùng kết quả, dùng Javascript để lấy dữ liệu cảm biến theo thời gianthực; đồng thời tìm hiểu ngôn ngữ lập trình Python, cách viết một đoạn
mã Python, thực thi một script Python trên Command line một cách tự
Trang 20động, tìm hiểu các thư viện mà Python hỗ trợ sẵn, qua đó xây dựng WebServer cho hệ thống.
Giao tiếp giữa coordinator và router bằng công nghệ không dây Zigbeequa mạch thu phát RF Zigbee DRF1605H
Do những hạn chế vể thời gian, kiến thức cũng như các vấn đề về tài chính.Trong đề tài này, nhóm thực hiện chỉ thực thi một nhánh của hệ thống hoànchỉnh, không đi chuyên sâu vào một ứng dụng chuyên biệt nào, đó là một môhình mở, là nền tảng để phát triển khi cần thiết
1.5 BỐ CỤC KHÓA LUẬN
Đề tài được thực hiện gồm 5 chương với các nội dung chính như sau:
Chương 1: Giới thiệu: Trong chương này, nhóm thực hiện đề tài trình bày
tổng quan về tình hình nghiên cứu và triển khai của hệ thống vườn thôngminh Mục tiêu, đối tượng và giới hạn của đề tài nghiên cứu
Chương 2: Cơ sở lý thuyết: Ở chương này nhóm thực hiện đề tài sẽ giới thiệu
sơ lược lý thuyết về mạch STM32, chuẩn Zigbee, ngôn ngữ Python, ngônngữ lập trình web và web server
Chương 3: Thiết kế hệ thống: Giới thiệu về phần cứng, các công cụ và phần
mềm hổ trợ trong quá trình xây dựng và thiết kế phần cứng, phần mềm Đưa
ra giải thuật để xử lý và giải thích lưu đồ, cách thức hoạt động của các phầnbên trong
Chương 4: Kết quả thực hiện: Kiểm nghiệm hoạt động của toàn bộ hệ thống,
kết quả hoạt động của hệ thống
Chương 5: Kết luận và hướng phát triển: Chương này trình bày những kết
luận chung về đề tài, những mặt còn hạn chế và hướng phát triển
Trang 21Dòng ARM Cortex là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩncho nhu cầu đa dạng về công nghệ Không giống như các chip ARM khác, dòngCortex là một lõi xử lí hoàn thiện, đưa ra một chuẩn CPU và kiến trúc hệ thốngchung Dòng Cortex gồm có 3 phân nhánh chính: dòng A dành cho các ứng dụngcao cấp, dòng R dành cho các ứng dụng thời gian thực như các đầu đọc và dòng
M dành cho các ứng dụng vi điều khiển và chi phí thấp STM32 được thiết kếdựa trên dòng Cortex-M3, được thiết kế đặc biệt để nâng cao hiệu suất hệ thống,kết hợp với tiêu thụ năng lượng thấp, Cortex M3 được thiết kế trên nền kiến trúcmới, do đó chi phí sản xuất đủ thấp để cạnh tranh với các dòng vi điều khiển 8 và
16 bit truyền thống
Trang 22Hình 2.5: Cấu trúc vi điều khiển ARM dùng lõi Cortex-M3
2.1.2 Đặc điểm nổi
bật của STM32
ST đã đưa ra thị trường 4 dòng vi điều khiển dựa trên ARM7 và ARM9,nhưng STM32 là một bước tiến quan trọng trên đường cong chi phí và hiệu suất,giá chỉ gần 1 Euro với số lượng lớn, STM32 là sự thách thức thật sự với các viđiều khiển 8 và 16 bit truyền thống STM32 đầu tiên gồm 14 biến thể khác nhau,được phân thành hai nhóm: dòng Performance có tần số hoạt động của CPU lêntới 72 MHz, có đầy đủ các ngoại vi và dòng Access có tần số hoạt động lên tới
36 MHz, có ít ngoại vi hơn so với nhánh Performance
Các biến thể STM32 trong hai nhóm này tương thích hoàn toàn về cách bốtrí chân và phần mềm, đồng thời kích thước bộ nhớ FLASH ROM có thể lên tới128K và 20K SRAM
2.1.2.1 Sự tinh vi
Thoạt nhìn thì các ngoại vi của STM32 cũng giống như những vi điềukhiển khác, như hai bộ chuyển đổi ADC, timer, I2C, SPI, CAN, USB và RTC.Tuy nhiên mỗi ngoại vi trên đều có rất nhiều đặc điểm thú vị Ví dụ như bộ ADC12-bit có tích hợp một cảm biến nhiệt độ để tự động hiệu chỉnh khi nhiệt độ thay
Trang 23đổi và hỗ trợ nhiều mode chuyển đổi Mỗi bộ timer có 4 khối capture compare,mỗi khối timer có thể liên kết với các khối timer khác để tạo ra một mảng cáctimer tinh vi
2.1.2.2 Sự an toàn
Ngày nay các ứng dụng hiện đại thường phải hoạt động trong môi trườngkhắc khe, đòi hỏi tính an toàn cao, cũng như đòi hỏi sức mạnh xử lý và càngnhiều thiết bị ngoại vi tinh vi Để đáp ứng các yêu cầu khắc khe đó, STM32 cungcấp một số tính năng phần cứng hỗ trợ các ứng dụng một cách tốt nhất Chúngbao gồm một bộ phát hiện điện áp thấp, một hệ thống bảo vệ xung clock và hai
bộ watchdogs
2.1.2.3 Tính bảo mật
Một trong những yêu cầu khắc khe khác của thiết kế hiện đại là nhu cầubảo mật mã chương trình để ngăn chặn sao chép trái phép phần mềm Bộ nhớFlash của STM32 có thể được khóa để chống truy cập đọc Flash thông qua cổngdebug Khi tính năng bảo vệ đọc được kích hoạt, bộ nhớ Flash cũng được bảo vệchống ghi để ngăn chặn mã không tin cậy được chèn vào bảng vector ngắt
2.1.2.4 Phát triển phần mềm
Nếu như đã sử dụng một vi điều khiển dựa trên lõi ARM, các công cụ pháttriển đã được hỗ trợ tập lệnh Thumb-2 và dòng Cortex Ngoài ra ST cũng cungcấp một thư viện điều khiển thiết bị ngoại vi, một bộ thư viện phát triển USB như
là một thư viện ANSI C và mã nguồn đó là tương thích với các thư viện trước đóđược công bố cho vi điều khiển STR7 và STR9
2.1.3 Các phiên bản
cấu trúc ARM
Tính đến thời điểm hiện tại thì phiên bản kiến trúc mới nhất của lõi ARM
là ARMv7 (Trước đó có ARMv4, ARMv5, ARMv6) Bộ xử lý Cortex-M3 dựatrên kiến trúc ARMv7 M và có khả năng thực hiện tập lệnh Thumb-2
Trang 242.1.4 Bộ xử lý và đơn
vị xử lý trung tâm Cortex
2.1.4.1 Đơn vị xử lý trung tâm Cortex (Cortex CPU)
Trang 25Hình 2.7: Kiến trúc đường ống của ARM Cortex-M3
Trong khi một lệnh đang được thực thi, thì lệnh tiếp theo sẽ được giải mã
và lệnh tiếp theo nữa sẽ được lấy về từ bộ nhớ Phương thức hoạt động này sẽphát huy hiệu quả tối đa cho mã tuyến tính (linear code), nhưng khi gặp phải một
rẽ nhánh (ví dụ cấu trúc lệnh if…else) thì các đường ống phải được làm rỗng vàlàm đầy trước khi mã có thể tiếp tục thực thi
2.1.4.1.3 Mô hình lập trình
CPU Cortex là bộ xử lý dựa trên kiến trúc RISC, do đó hỗ trợ kiến trúc nạp vàlưu trữ Để thực hiện lệnh xử lý dữ liệu, các toán hạng phải được nạp vào một tậpthanh ghi trung tâm, các phép tính dữ liệu phải được thực hiện trên các thanh ghinày và kết quả sau đó được lưu lại trong bộ nhớ
Hình 2.8: Kiến trúc load và store của ARM Cortex-M3 2.1.4.1.4 Các chế độ hoạt động
Bộ xử lý Cortex có hai chế độ hoạt động: chế độ Thread và chế độ Handler.CPU sẽ chạy ở chế độ Thread trong khi nó đang thực thi ở chế độ nền không có
Trang 26ngắt xảy ra và sẽ chuyển sang chế độ Handler khi nó đang thực thi các ngắt đặcbiệt.
Hình 2.9: Các chế độ hoạt động của Cortex
2.1.4.2 Bộ xử lý Cortex
2.1.4.2.1 Timer hệ thống (System timer)
Lõi Cortex có một bộ đếm xuống 24-bit, với tính năng tự động nạp lại giá trị
bộ đếm và tạo sự kiện ngắt khi đếm xuống 0 Nó được tạo ra với dụng ý cung cấpmột bộ đếm thời gian chuẩn cho tất cả vi điều khiển dựa trên Cortex Đồng hồSysTick được sử dụng để cung cấp một nhịp đập hệ thống cho một RTOS, hoặc
để tạo ra một ngắt có tính chu kì để phục vụ cho các tác vụ được lập lịch Thanhghi trạng thái và điều khiển của SysTick trong đơn vị không gian điều khiển hệthống Cortex-M3 cho phép chọn các nguồn xung clock cho SysTick
2.1.4.2.2 Xử lí ngắt (Interrupt Handling)
Một trong những cải tiến quan trọng của lõi Cortex so với các CPU ARMtrước đó là cấu trúc ngắt của nó và xử lý các ngắt ngoại lệ (exception handling).CPU ARM7 và ARM9 có hai đường ngắt: ngắt nhanh (fast interrupt-FIQ) vàngắt đa dụng (general purpose interrupt hay còn gọi là interrupt request-RIQ).Hai đường tín hiệu ngắt này phục vụ tất cả các nguồn ngắt bên trong một vi điềukhiển, trong khi kỹ thuật được sử dụng là như nhau, nhưng việc thực hiện lạikhác biệt giữa các nhà sản xuất chip
Trang 272.1.4.2.3 Bộ điều khiển vector ngắt lồng nhau (Nested Vector Interrupt
Controller)
NVIC (Nested Vector Interrupt Controller) là một đơn vị tiêu chuẩn bên tronglõi Cortex Điều này có nghĩa là tất cả các vi điều khiển dựa trên lõi Cortex sẽ cócùng một cấu trúc ngắt, bất kể nhà sản xuất chip là ST, Atmel, Luminary hoặcNXP… Vì vậy, mã ứng dụng và hệ điều hành có thể dễ dàng được chuyển từ viđiều khiển này sang vi điều khiển khác và lập trình viên khác không cần phải tìmhiểu một tập các thanh ghi hoàn toàn mới NVIC cũng được thiết kế để có một độtrễ khi đáp ứng ngắt rất thấp
Hình 2.10: Cấu trúc của NVIC trong bộ xử lí Cortex
2.1.5 Kiến trúc hệ
thống
STM32 gồm nhân Cortex kết nối với bộ nhớ FLASH thông qua đường buslệnh chuyên biệt Các bus dữ liệu(Cortex Data busses) và hệ thống(CortexSystem busses) được kết nối tới ma trận busses tốc độ cao( ARM AdvancedHigh Speed Busses- AHB)
Trang 28Hình 2.11: Cấu trúc Bus
Cấu trúc bus nội cung cấp đường truyền chuyên biệt dành cho tập lệnhthực thi và ma trận bus đường dữ liệu cho nhân Cortex và bộ điều khiển DMAtruy cập tài nguyên trên vi xử lý
2.1.6 Tối đa hiệu
năng
Ngoài việc hỗ trợ 2 bộ tạo xung nhịp ngoại STM32 cung cấp thêm 2 bộtạo xung nhịp nội Sau khi reset đồng hồ tạo xung của nhân Cortex, bộ tạo xungnhịp tốc độ cao( High Speed Internal Oscillator) hoạt động ở mức thấp 8MHz
Bộ tạo xung nội còn lại là Low Speed Internal Oscillator hoạt động ở mức32768KHz
Trang 29Hình 2.12: Các bộ tạo dao động STM32
Nhân Cortex có thể được cấp xung nhịp từ bộ tạo dao động nội và ngoại,đồng thời từ PLL nội Dù sử dụng bộ dao động nào đi nữa thì nhân Cortex luônphải sử dụng xung nhịp tạo ra từ bộ PLL Tất cả thanh ghi điều khiển PLL và cấuhình bus đều được bố trí ở nhóm RCC ( Reset and Clock Control)
2.1.6.1.1 Vòng khóa pha
Sau khi hệ thống reset STM32 nhận xung nhịp từ bộ tạo dao động HIS.Tại thời điểm đó các bộ tạo dao động ngoại sẽ bị tắt Bước đầu tiên để STM32hoạt động ở mức xung nhịp cao nhất là bật bộ tạo dao động HSE và chờ cho đếnkhi đi vào hoạt động ổn định
Bộ tạo dao động ngoại có thể được kích hoạt thông qua các thanh ghi điềukhiển RCC_Control Sẽ có 1 bit trạng thái được bật khi chúng đi vào hoạt động
ổn định Một khi bộ tạo dao động ngoại hoạt động ổn định, nó có thể được chọn
là đầu vào cho bộ PLL Xung nhịp ra được tạo bởi PLL được xác định bằng cáchthiết lập các bội số nguyên trong thanh ghi cấu hình RCC_PLL Trong trườnghợp xung nhịp đầu vào của PLL là 8MHz khi đó cần cấu hình bội số nhân choPLL là 9 để tạo xung nhịp 72MHz ở đầu ra
2.1.7 Các ngoại vi
Tất cả ngoại vi trên STM32 được thiết kế và dựa trên bộ DMA Mỗi ngoại
vi đều có phần điều khiển mở rộng nhằm tiết kiệm thời gian xử lý của CPU.Trong giới hạn của đề tài, nhóm xin giới thiệu các ngoại vi đã được ứng dụngtrong đề tài
2.1.7.1 Ngoại vi đa dụng
Ngoại vi đa dụng trên STM32 bao gồm: các cổng I/O đa dụng, bộ điều khiểnngắt ngoại, bộ chuyển đổi ADC, bộ điều khiển thời gian đa dụng và mở rộng,đồng hồ thời gian thực Trong đó các cổng I/O, bộ chuyển đổi ADC được ứngdụng trong đề tài
Trang 302.1.7.1.1 Các cổng I/O đa dụng
STM32 có 5 cổng I/O đa dụng với 80 chân điều khiển.Các cổng I/O đượcđánh số từ A->E Nhiều chân ngoại có thể được cấu hình như là Input/Outputtương tác với các thiết bị ngoại vi riêng của người dùng như USART hay I2C.Thêm nữa có thể cấu hình các chân này như là nguồn ngắt ngoại kết hợp vớicổng GPIO khác
Mỗi cổng GPIO đều có 2 thanh ghi 32-bit điều khiển, mỗi chân của cổngGPIO sẽ có 4 bit để điều khiển: 2 bit sẽ quy định hướng ra vào dữ liệu: input hayoutput, 2 bit còn lại sẽ quy định đặc tính dữ liệu Sau khi cổng được cấu hình, ta
có thể bảo vệ các thông số cấu hình bằng cách kích hoạt thanh ghi bảo vệ Trongthanh ghi này, mỗi chân trong cổng đều có một bit bảo vệ tương ứng để tránh cácthay đổi vô ý ở các 4 bit cấu hình
2.1.7.1.2 ADC
STM32 có thể có 2 bộ chuyển đổi tín hiệu tương tự sang tín hiệu số tùy vàocác phiên bản Bộ ADC có thể được cung cấp nguồn riêng từ 2.4V đến 3.6V.Nguồn cung cấp cho bộ ADC có thể được kết nối trực tiếp hoặc thông qua cácchân chuyên biệt Bộ ADC có độ phân giải 12-bit Với 18 bộ ghép kênh, trong đó
16 kênh dành cho các tín hiệu ngoại, 2 kênh còn lại dành cho cảm biến nhiệt vàvôn kế nội
Mỗi bộ ADC có 2 chế độ chuyển đổi: thông thường(regular) và injected Ởchế độ regular cho phép một hay một nhóm các kênh kết hợp với nhau thực thitác vụ chuyển đổi Một nhóm kênh tối đa có thể gồm 16 kênh Thứ tự chuyển đổitrong nhóm có thể được cấu hình bởi phần mềm, và trong một chu kỳ chuyển đổicủa nhóm, một kênh có thể được sử dụng nhiều lần
2.1.7.2 RTC và các thanh ghi Backup
STM32 bao gồm 2 khối nguồn chính: nguồn dành cho nhân CPU, cácthiết bị ngoại vi và nguồn dành cho khối dự phòng Cùng được thiết kế chung vớikhối dự phòng là 10 thanh ghi 16-bit, đồng hồ thời gian thực RTC và một khốiWatchdog độc lập Các thanh ghi dự phòng đơn giản chỉ là 10 vùng nhớ để lưu
Trang 31các giá trị dữ liệu quan trọng khi hệ thống đi vào chế độ Standby và nguồn chínhcủa hệ thống bị ngắt Ở chế độ tiết kiệm năng lượng, đồng hồ RTC và Watchdog
có thể được dùng kích hoạt hệ thống hoạt động trở lại STM32 có một đồng hồthời gian thực với thanh ghi đếm 32-bit và giá trị tăng lên một sau mỗi giây nếuxung nhịp đầu vào của nó là 32.768KHz Khi cấu hình xung nhịp hoạt động hệthống, xung nhịp nguồn cho đồng hồ RTC này có thể được lấy từ 3 nguồn: LSI,LSE hoặc HSE với giá trị chia là 128
2.1.8 Kết nối với các
giao tiếp khác
STM32 hỗ trợ 5 loại giao tiếp ngoại vi khác nhau STM32 có giao diệnSPI và I2C để giao tiếp với các mạch tích hợp khác Hỗ trợ giao tiếp CAN chocác module, USB cho giao tiếp PC và giao tiếp USART
2.1.8.1 SPI
Hỗ trợ giao tiếp tốc độ cao với các mạch tích hợp khác, STM32 cung cấp
2 khối điều khiển SPI có khả năng chạy ở chế độ song công với tốc độ truyền dữliệu lên tới 18MHz Khối SPI tốc độ cao nằm trên APB2, khối SPI tốc độ thấpnằm trên APB1 Mỗi khối SPI có hệ thống thanh ghi cấu hình độc lập, dữ liệutruyền có thể dưới dạng 8-bit hoặc 16-bit, thứ tự hỗ trợ MSB hay LSB Chúng ta
có thể cấu hình mỗi khối SPI đóng vai trò master hay slave
Để hỗ trợ truyền dữ liệu tốc độ cao, mỗi khối SPI có 2 kênh DMA dànhcho gửi và nhận dữ liệu Thêm vào đó là khối CRC dành cho cả truyền và nhận
dữ liệu Khối CRC đều có thể hỗ trợ kiểm tra CRC8 và CRC16 Các đặc tính nàyrất cần thiết khi sử dụng SPI để giao tiếp với MMC/SD card
Trang 32trao đổi với 2 kênh DMA cho truyền và nhận dữ liệu Hai ngắt một cho nhânCortex, một cho định địa chỉ và truyền nhận.
2.1.8.3 USART
STM32 có đến 3 khối USART, mỗi khối có khả năng hoạt động đến tốc
độ 4.5Mbps Một khối USART nằm trên APB1 với xung nhịp hoạt động 72MHz,các khối còn lại nằm trên APB2 hoạt động ở xung nhịp 36MHz
Hình 2.13: Giao diện USART trong STM32
Với mạch tích hợp cho phép chia nhỏ tốc độ BAUD chuẩn thành nhiều tốc
độ khác nhau thích hợp với nhiều kiểu trao đổi dữ liệu khác nhau Mỗi khốiUSART có hai kênh DMA dành cho truyền và nhận dữ liệu Khi hỗ trợ giao tiếpdạng UART, USART cung cấp nhiều chế độ giao tiếp Có thể trao đổi dữ liệutheo kiểu chế độ hafl-duplex trên đường truyền Tx Khi hỗ trợ giao tiếp modem
và giao tiếp có sử dụng điều khiển luồng USART cung cấp thêm các tín hiệu điềukhiển CTS và RTS
Trang 33Hình 2.14: Hỗ trợ giao tiếp ở chế độ hafl-duplex dựa trên một đường truyền
Ngoài ra USART còn có thể dùng để tạo các giao tiếp nội Đây là mô hìnhcho phép nhiều vi xử lý trao đổi dữ liệu lẫn nhau USART còn có khốiencoder/decoder dùng cho giao tiếp hồng ngoại với tốc độ hỗ trợ có thể đạt đến1115200bps, hoạt động ở chế độ hafl-duplex NRZ khi xung nhịp hoạt độngkhoảng từ 1.4MHz cho đến 2.12Mhz Để thực hiện giao tiếp với smartcard,USART còn hỗ trợ chuẩn ISO 7618-3
Hình 2.15: Giao tiếp smartcard và hồng ngoại
Người dùng có thể cấu hình khối USART cho các giao tiếp đồng bộ tốc độcao dựa trên 3 đường tín hiệu riêng biệt như SPI Khi hoạt động ở chế độ này,khối USART sẽ đóng vai trò là SPI master và có khả năng cấu hình ClockPolarity/Phase nên hoàn toàn có thể giao tiếp với các SPI slave khác
Trang 34Hình 2.16: Hỗ trợ giao tiếp đồng bộ SPI
2.1.8.4 CAN
Khối điều khiển CAN cung cấp một điểm giao tiếp CAN đầy đủ hỗ trợchuẩn CAB 2.0A và 2.0B Active và Passive với tốc độ truyền dữ liệu 1 Mbit/s.Ngoài ra khối CAN còn có khối mở rộng hỗ trợ giao tiếp truyền dữ liệu dạngdeterministic dựa trên thẻ thời gian Time-trigger CAN(TTCAN)
2.1.8.5 USB
Hỗ trợ giao tiếp Device USB với tốc độ Full Speed (12Mbps) có khả năngkết nối với một giao diện host usb Khối giao diện này bao gồm Layer1 vàLayer2 đảm nhận chức năng truyền vật lý(phisical layer) và truyền dữ liệu logic(data layer) Ngoài ra còn hỗ trợ đầy đủ chế độ Suspend và Resume nhằm tiếtkiệm năng lượng
2.1.9 Chế độ tiêu thụ
năng lượng thấp
STM32 có nhiều chế độ công suất thấp bên cạnh chế độ bình thường(normal RUN mode) Khi sử dụng một cách đúng đắn các chế độ công suấtthấp(SLEEP, STOP, STANDBY) sẽ làm tối ưu nguồn bin Khi vào chế độ côngsuất thấp, CPU và các ngoại vi Cortex được tạm dừng và tiêu thụ công suất tốithiểu Một khi bộ xử lý Cortex vào chế độ công suất thấp, nó xuất một tín hiệuSLEEPDEEP đến các vi điều khiển xung quanh, để ra hiệu rằng nó đã vào mộtchế độ công suất thấp nào đó CPU Cortex vào các chế độ công suất thấp bằng
Trang 35cách thực hiện lệnh WFI hoặc WFE Tùy vào cấu hình thanh ghi điều khiển côngsuất mà STM32 sẽ đi vào các trạng thái tiêu thụ thấp tương ứng
2.1.9.1 Chế độ bình thường – RUN Mode
RUN mode là chế độ STM32 thực hiện các lệnh chương trình và nó tiêuthụ công suất ở mức cao nhất
2.1.9.2 Các chế độ sử dụng công suất tiêu thụ thấp
Cấu hình chế độ RUN mode của STM32 một cách cẩn thận có thể giảm côngsuất tiêu thụ khoảng 8,5mA Nhằm đạt được các ứng dụng công suất thấp thựcchúng ta phải sử dụng các chế độ công suất thấp của STM32
2.1.9.2.1 SLEEP
Mức đầu tiên của hoạt động công suất thấp là chế độ SLEEP mode Mặc định,khi một lệnh WFE hoặc WFI được thực hiện bộ xử lý Cortex sẽ tạm dừng cácđồng hồ xung nhịp nội và dừng thực thi mã ứng dụng Trong chế độ SLEEP cácphần còn lại của STM32 vẫn tiếp tục hoạt động STM32 sẽ thoát khỏi SLEEPmode khi một ngoại vi nào đó phát sinh ngắt Khi STM32 vào SLEEP modecùng tất cả ngoại vi đang hoạt động và nó chạy ở 72MHz từ HSE thông qua bộnhân PLL, công suất tiêu thụ của nó vào khoảng 14.4mA
2.1.9.2.2 STOP Mode
STM32 có thể được cấu hình để vào chế độ công suất thấp STOP Mode bằngcách thiết lập bit SLEEPDEEP trong thanh ghi điều khiển công suất Cortex vàxóa bit Power Down Deep Sleep (PDDS) trong thanh ghi điều khiển công suấtSTM32 Một khi STM32 đã vào chế độ STOP, tiêu thụ điện năng của nó giảmmạnh xuống khoảng 24 µA thay vì hàng mA ở chế độ RUN
2.1.9.2.3 Standby
STM32 có thể được cấu hình để vào chế độ Standby bằng cách thiết lập bitSLEEPDEEP trong thanh ghi điều khiển công suất Cortex và thiết lập bit PowerDown Deep Sleep (PDDS) trong thanh ghi điều khiển công suất của STM32 Bâygiờ, khi lệnh WFI hoặc WFE được thực hiện, STM32 sẽ vào chế độ năng lượng
Trang 36thấp nhất của nó Trong chế độ Standby, STM32 thực sự tắt Các điều điện áp nội
bộ được tắt các bộ tạo dao động HSE và HIS cũng tắt Trong chế độ này STM32chỉ chiếm 2 µA
Chúng ta có thể thoát khỏi chế độ Standby bằng cách sử dụng tín hiệu ngắtcủa khối RTC tương tự như trong chế độ STOP Ngoài ra ta có thể sử dụng chânReset ngoại hay chân Reset từ Watchdog độc lập
2.2 TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY ZIGBEE/IEEE 802.15.4
2.2.1 Sơ lược về
Zigbee/IEEE 802.15.4
Zigbee là một giao thức được xây dựng trên nền tảng của IEEE 802.15.4,
là giải pháp không dây cho phép truyền tốc độ thấp, công suất tiêu thụ thấp, giá
rẻ 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 Cái tên Zigbee được xuất phát từ cách truyền thông tin của các conong mật theo kiểu Zig-zag của loài ong honey-Bee Cái tên Zigbee chính là đượcghép từ hai từ này
Mục tiêu của công nghệ này là nhắm tới việc truyền tin với mức tiêu haonă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àithá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ắc lưới 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ôitrường truyền và mức công suất phát được yêu cầu với mỗi ứng dụng Các thiết
bị không dây dựa trên chuẩn Zigbee hoạt động trên 3 dãy tần là 868MHz, 915MHz và 2.4GHz Tốc độ dữ liệu đạt 250Kbps ở 2.4GHz, 40kbps ở 915MHz và20kbps ở 868MHz.[5]
Trang 37Có 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đây:
Trang 38Bảng 2.1: Các kênh truyền và tần số
Tần số trung tâm
Tần số kênh trungtâm (MHz)
Về bản chất thì Zigbee cũng là một chuẩn giao tiếp không dây như nhữngchuẩn không dây khác: Wi-Fi, 3G, Bluetooth…nhưng nó mang những đặc tính
kỹ thuật và vật lý riêng do đó sẽ chỉ phù hợp với một mảng ứng dụng nhất định
và với nhu cầu thị trường mà các kĩ thuật không dây khác không thể đáp ứng
Bảng 2.2: So sánh xu hướng ứng dụng giữa các giao thức wireless khác và mạng
Zigbee
Tốc độ Truyền dữ liệu tốc độ cao Truyền dữ liệu tốc độ thấp
Tính năng Nhiều tính năng Tập trung vào một vài tính
năng
Trang 39Vòng đời sản
Như vậy, mạng Zigbee ra đời nhằm đáp ứng nhu cầu điều khiển là chính,không đòi hỏi tốc độ truyền cao, phù hợp với nhiều yêu cầu của thị trường điềukhiển không dây mà các mạng không dây khác không thể đáp ứng:
Độ tin cậy cao:
Zigbee dùng “Carrier Sense Multiple Access Collision Avoidance” CA) để tăng khả năng tin cậy Trước khi truyền, Zigbee kiểm tra kênh truyền, khiphát hiện kênh truyền trống, Zigbee bắt đầu truyền Điều này ngăn các sóng khỏiviệc gây ra xung đột dữ liệu
(CSMA-Một cách khác, thường được dùng hơn để Zigbee có được khả năng tin cậy làkết nối mạng lưới Vì mạng lưới cung cấp 3 khả năng tăng cường cho một mạngwireless: mở rộng khoảng cách bằng multi-hop, tạo mạng ad-hoc, và quan trọngnhất là tìm đường đi tự động và tự phục hồi Với mạng lưới, dữ liệu từ node đầutiên có thể đến bất cứ node nào trong mạng Zigbee, đánh giá khoảng cách bằngcác sóng để gửi tín hiệu.[2]
Hình 2.17: Tìm đường đi tự động trong mạng mesh Zigbee
Ví dụ, node 1 muốn giao tiếp với node 3, nhưng nó nằm ngoài vùng phủ sóngcủa node 3, Zigbee sẽ tự động tìm đường đi tốt nhất là gửi thông tin cho node 2
Trang 40rồi chuyển tiếp đến node 3 Tuy nhiên, trong trường hợp này giữa node 1 và 2 bịvật cản (như là một bức tường bê tông) Nó sẽ tự động phát hiện sự thất bại củađường đi này và đi vòng sang node 4, node 5 (như hình trên).
Chi phí thấp: Nhiều nhà cung cấp stack và chip, các module ZigBee vànhiều tài nguyên phân phối với chi phí phát triển thấp cho các thiết bịZigBee như Texas Instrument, Microchip, Atmel, CEL…
Năng lượng cần rất thấp: Các thiết bị trong mạng Zigbee có thể chạy trongnhiều năm chỉ với một cặp pin AA, tùy thuộc vào từng ứng dụng
Là một chuẩn mở: Nhiều nhà cung cấp Zigbee stack, chip và các giải phápứng dụng đặc tả Zigbee có thể tải miễn phí từ websitehttp://www.zigbee.org
2.2.2 Các thiết bị
trong mạng cảm biến không dây Zigbee
Thiết bị trong hệ thống mạng ZigBee có thể là một thiết bị đầy đủ chứcnăng (FFD: full-function device) hoặc thiết bị có chức năng bị hạn chế (RFD:reduced-function device) Một mạng bao gồm ít nhất một FFD, hoạt động nhưCoordinator trong mạng PAN Các FFD có thể hoạt động với ba chế độ:Coordinator mạng cá nhân (PAN), Router hoặc End Device Một RFD là dùngcho các ứng dụng đơn giản và không cần phải gửi một lượng lớn dữ liệu MộtFFD có thể làm việc với nhiều RFD hoặc FFD trong khi RFD chỉ có thể làm việcvới một FFD
Có 3 loại thiết bị cục bộ trong mạng ZigBee đó là Coordinator, Router,End Device Trong một mạng ZigBee bao gồm: duy nhất 1 nút Coodinator và đanút Router và End Device.[8]
Coodinator: Là một thiết bị FFD, đây là thiết bị khởi động mạng zigbee,nốt Coordinator quét môi trường RF xung quanh nó, sau đó nó chọn một kênh vàmột PAN ID Một khi đã bắt đầu và cấu hình mạng xong, nốt Coordinator sẽ có