Tải bản đầy đủ (.docx) (112 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (11.17 MB, 112 trang )

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ạy
tại trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh, đặt biệt là q
thầy cơ Khoa Điện – Điện Tử đã giảng dạy và cung cấp những kiến thức bổ ích
tạ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ầy
ThS.Huỳnh Hoàng Hà, thầy đã khởi tạo ý tưởng, cung cấp tài liệu, đồng thời tận
tình hướng dẫn, giúp đỡ tạo mọi điều kiện thuận lợi trong suốt q trình thực
hiệ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ơ trong
khoa đã 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ài
này.
Mặc dù đã cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất. Song do
buổ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ân
chưa nhìn nhận được. Chúng tơi rất mong nhận được sự góp ý của q 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

3


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 mang
lạ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ều
khiể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ên
máy tính, điện thoại thơng minh cũng như có phương án tưới nước tự động theo
thờ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ểu
những kiến thức ngồi chương trình học cũng như triển khai ứng dụng hệ thống
mạ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ơng
nghiệp, công nghiệp, y tế, và đặc biệt là trong truyền thông để thay thế các công
nghệ 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, Zigbee
DRF1605H và Raspberry Pi B+ để nghiên cứu và thực hiện.

4


MỤC LỤC
Danh mục hình..................................................................................................IX
Danh mục bảngI
Các từ viết tắt

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 ngồ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

5


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
6


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
7


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

8


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

9


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

10


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

11


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

12


CÁC TỪ VIẾT TẮT
ACK

Acknowledgment

ADC

Analog to Digital Converter

AODV

Ad-hoc On-demand Distance Vector

API

Application Programming Interface

BO

Beacon Order

CAP

Contention Access Period


CFP

Contention-Free Period

CPU

Centra Process Unit

CSMA/CA

Carrier Sense Multiple Access with Collision Avoidance

CTS

Clear To Send

DMA

Direct memory access

FFD

Full-Function Device

GPIO

General Purpose Input/Output

GPU


Graphic Process Unit

GTS

Guaranteed Time Slot

HDMI

High-Definition Multimedia Interface

I2C

Inter-Integrated Circuit

IC

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

MCU

Microcontroller Unit

MSB

Most Significant Bit

NACK

Non-Acknowledgement

NRZ

Non-Return-To-Zero

NWK

Network
13



PDA

Personal Digital Assistant

PHY

Physical layer

PLL

Phase Lock Loop

RAM

Random Memory Access

RF

Radio frequency

RFD

Reduced Function Device

RFD

Reduced-Function Device

ROM


Read-only memory

RTC

Real-time clock

RTOS

Real-time operating system

RTS

Request To Send

SO

Superframe Order

SoC

System on Chip

SPI

Serial Peripheral Interface

UART

Universal Asynchronous Receiver Transmitter


USART

Universal Synchronous Asynchronous Receiver Transmitter

USB

Universal Serial Bus

WFE

Wait For Event

WFI

Wait For Interrupt

XML

eXtensible Markup Language

ZDO

Zigbee Device Object

14


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ản
IoT 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ện
qua Wi-Fi, mạng viễn thơng băng rộng (3G, 4G), Bluetooth, ZigBee, hồng
ngoại… Các thiết bị có thể là điện thoại thông minh, máy pha cafe, máy giặt, tai
nghe, bóng đèn, và nhiều thiết bị khác.

1


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ông
nghệ 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ến
không dây để từ đó xử lý, phân tích, ra quyết định và điều khiển ngược lại các
thiế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ệp
vẫn giữ địa vị trọng yếu như ở nước ta, thì việc ứng dụng IoT vào trong nông
nghiệp để tạo bước đột phá về năng suất, chất lượng sản phẩm, cũng như giúp
ngườ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 Nam
vớ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.

2


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.

1.2 TÌNH HÌNH NGHIÊN CỨU
1.2.1

Nghiên cứu ngồi
nước

Ở nước ngồi đã có nhiều nghiên cứu ứng dụng về hệ thống tưới cây tự
động. Đầu những năm 80, Liên Xô (cũ) đã chế tạo ra một loại máy tưới tự động
ứng dụng trong nông nghiệp. Khi làm việc loại máy này có thể quan sát được độ
ẩm của thổ nhưỡng, nhiệt độ khơng khí, sức gió… Nó có thể xác định được
phươ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ưa
nhâ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ơng
nghệ 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
phép Droplet có khả năng tự động ngắm hướng vòi phun, lượng nước và tần suất
3


tưới để tự động tưới nước cho cây theo những lịch trình tự tính tốn dựa trên
phâ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.14
mé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ác
loạ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ối
khô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ứu
thô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ợp
vớ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ời
tiế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ích

hợ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ầu
tướ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ột
nguồ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ệc
lắp đặt hệ thống tưới tự động theo công nghệ tưới tiên tiến.
1.2.2

4

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ảng
viê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ống
tướ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 độ ẩm
củ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ên
PLCS7 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ại
nhà 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ự động
tưới phun theo các vòi phun lắp đặt, và sẽ tự ngừng trong đúng 5 phút, khi cảm
biến báo độ ẩm hoặc nhiệt độ đã đạt yêu cầu. Hệ thống tưới phun tự động đa
nă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ế.
1.2.3

Đánh giá tổng quan

Một số hệ thống tại nước ngoài: các hệ thống ở nước ngoài thường là các hệ
thống quy mô lớn, sử dụng công nghệ cao, các thiết bị hiện đại…
5


 Ưu điểm:
 Các hệ thống hoạt động ổn định, tương đối chính xác vì họ sử dụng
các thiết bị tiên tiến.
 Các hệ thống nhỏ gọn, đầy đủ các chức năng được tích hợp vào hệ
thống.
 Các thơng tin thời tiết của họ độ chính xác cao.
 Nhược điểm:
 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 q cao .
 Nhược điểm:
 Nhiều sản phẩm chưa hồn thiện cịn phụ thuộc vào thời gian tưới
không phụ thuộc vào độ ẩm cần thiết cho cây.
 Hệ thống vận hành còn phụ thuộc vào yếu tố khách quan như: Mặc
định tưới 5 phút…

 Một số hệ thống sử dụng các bộ điều khiển tưới có chi phí cao, mà
khơng hiệu quả vì các bộ này chỉ cài đặt thời gian, số lần tưới không
phụ thuộc vào nhu cầu của cây.
 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.
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ư u cầu thực tế
của nước ta, hồn tồn có thể thiết kế một hệ thống tưới nước tự động và sự kết

6


hợ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ác
nhượ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ông
sứ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ến
qua 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ình
bà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 gian
thự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ự
động, tìm hiểu các thư viện mà Python hỗ trợ sẵn, qua đó xây dựng Web
Server cho hệ thống.

7


 Giao tiếp giữa coordinator và router bằng công nghệ không dây Zigbee
qua 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àn
chỉ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ông

minh. 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ôn
ngữ 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ần
bê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.

8


CHƯƠNG 2
CƠ SỞ LÝ THUYẾT
2.1 TỔNG QUAN VỀ ARM CORTEX M3 STM32F103
2.1.1

Tóm tắt lịch sử ARM

ARM được thành lập vào năm 1990 bởi Advanced RISC Machines Ltd,
một công ty liên doanh của Apple Computer, Acorn Computer Group, và VLSI
Technology. Năm 1991, ARM giới thiệu họ vi xử lý được cấp phép đầu tiên
ARM6 và VLSI. Sau đó, các cơng ty khác, bao gồm Texas Instruments, NEC,
Sharp, và STMicroelectronics, được cấp phép thiết kế vi xử lý ARM, mở rộng
các ứng dụng của bộ vi xử lý ARM vào điện thoại đi dộng, đĩa cứng máy tính, hỗ
trợ các thiết bị số cá nhân (PDA), hệ thống giải trí gia đình, và nhiều sản phẩm

tiêu dùng khác.
Dòng ARM Cortex là một bộ xử lí thế hệ mới đưa ra một kiến trúc chuẩn
cho nhu cầu đa dạng về công nghệ. Không giống như các chip ARM khác, dòng
Cortex là một lõi xử lí hồn thiện, đưa ra một chuẩn CPU và kiến trúc hệ thống
chung. Dịng Cortex gồm có 3 phân nhánh chính: dịng A dành cho các ứng dụng
cao 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úc
mớ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.

9


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ên
tớ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 hồn tồ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ới

128K 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ều
khiể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ộ ADC
12-bit có tích hợp một cảm biến nhiệt độ để tự động hiệu chỉnh khi nhiệt độ thay
đổi và hỗ trợ nhiều mode chuyển đổi. Mỗi bộ timer có 4 khối capture compare,

10


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ác
timer 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ường
khắc khe, địi hỏi tính an tồn cao, cũng như địi hỏi sức mạnh xử lý và càng
nhiều thiết bị ngoại vi tinh vi. Để đáp ứng các yêu cầu khắc khe đó, STM32 cung
cấ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úng
bao 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ầu
bả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ổng
debug. 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át
triển đã được hỗ trợ tập lệnh Thumb-2 và dịng Cortex. Ngồi ra ST cũng cung
cấ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ựa
trên kiến trúc ARMv7 M và có khả năng thực hiện tập lệnh Thumb-2..

2.1.4

11

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)
2.1.4.1.1 Cấu trúc cơ bản
Trung tâm của bộ xử lý Cortex là một CPU RISC 32-bit, có đường dữ liệu 32-bit,
bank thanh ghi 32-bit, và các giao diện bộ nhớ 32-bit.

Hình 2.6: Cấu trúc cơ bản của ARM Cortex-M3
2.1.4.1.2 Kiến trúc đường ống

CPU Cortex có thể thực thi hầu hết các lệnh trong một chu kì đơn. Giống
như CPU của ARM7 và ARM9, việc thực thi này đạt được với một đường ống ba
tầng. Tuy nhiên Cortex-M3 có khả năng dự đoán việc rẽ nhánh để giảm thiểu số
lần làm rỗng đường ống.

12


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ập
thanh 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 ghi
nà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ó

13


×