1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

201607 thiet ke he thong tuoi nuoc tu dong ung dung mang zigbee baocao

115 105 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 115
Dung lượng 10,85 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

LỜ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 2

TÓ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 3

MỤ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 4

2.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 5

3.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 6

4.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 7

Hì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 8

Hì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 9

Hì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 10

Bả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 11

CÁ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 12

PDA 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 13

CHƯƠ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 14

Hì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 15

Hì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 16

phé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 17

1.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 19

Dự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 21

Dò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 22

Hì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 24

2.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 25

Hì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 26

ngắ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 27

2.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 28

Hì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 29

Hì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 30

2.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 31

cá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 32

trao đổ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 33

Hì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 34

Hì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 35

cá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 36

thấ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 37

Có 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 38

Bả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 39

Vò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 40

rồ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ó

Ngày đăng: 24/12/2020, 20:58

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w