Tạo cơ sở dữ liệu

Một phần của tài liệu hệ thống quản lý vườn cây thông minh (Trang 47)

CHƯƠNG 4 : THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM

4.2 Trang Web và phía Server

4.2.2 Tạo cơ sở dữ liệu

Cơ sở dữ liệu được tạo bằng Microsoft SQL Server 2012 trên phần mềm WebMatrix. Cơ sở dữ liệu gồm có các bảng dùng để lưu trữ dữ liệu được gởi lên từ vi điều khiển và Sim900A, đồng thời cũng lưu trữ các yêu cầu được chọn ở giao diện trang Web.

Sơ đồ cấu trúc cơ sở dữ liệu và chức năng các bảng:

- Bảng Devices:gồm các cột

o Cột id chứa số thứ tự.

o Cột Name chứa tên của các thiết bị.

o Cột DStatus chứa trạng thái của các thiết bị.

o Cột DRequest chứa yêu cầu từ giao diện trang Web.

Hình 4.25 Bảng Devices của cơ sở dữ liệu.

- Bảng Dlog:gồm có các cột:

o Cột id chứa số thứ tự.

o Cột Name chứa tên của thiết bị.

o Cột Status chứa trạng thái vừa thay đổi của thiết bị.

Hình 4.26 Bảng Dlog của cơ sở dữ liệu.

- Bảng Sensors:gồm có các cột:

o Cột id chứa số thứ tự.

o Cột Devices chứa tên các cảm biến được gắn vào mỗi node.

o Cột Parameter chứa thông số của các cảm biến.

o Cột Time cập chứa thời gian cập nhật các thơng số.

Hình 4.27 Bảng Sensors của cơ sở dữ liệu.

- Bảng Slog:gồm các cột:

o Cột id chứa số thứ tự.

o Cột N1Tem,N2Tem, N3Tem, N4Tem: chứa thông số nhiệt độ từcảm biến.

o Cột N1Light, N2Light, N3Light, N4Light: chứa thông số cường độ ánh sáng từcảm biến.

o Cột N1Hum, N2Hum, N3Hum, N4Hum: chứa thơng số độ ẩm đất từcảm biến.

Hình 4.28 Bảng Slog của cơ sở dữ liệu.

- Bảng Mode :gồm các cột

o Cột id chứa số thứ tự.

o Cột Mode chứa yêu cầu về chế độ hoạt động của hệ thống.Gồm 2 chế độ: điều khiển bằng tay và điều khiển tự động.

o Cột Smode chứa trạng thái của mode đang được chọn.

Hình 4.29 Bảng Mode của cơ sở dữ liệu. - Bảng User Profile:gồm các cột

o Cột Email chứa địa chỉ Email,đây cũng chính là tài khoản để đăng nhập vào hệ thống của người sử dụng.

Hình 4.30 Bảng User Profile.

- Bảng Webpage Membership: gồm các cột:

o Cột Id chứa số thứ tự của tài khoản.

o Cột Password chứa mật khẩu của tài khoản.

Hình 4.31 Bảng Webpage Membership của cơ sở dữ liệu. 4.2.3 Thiết kế giao diện người dùng.

Giao diện người dùng là một trang Web được viết bằng HTML – Ngôn ngữ đánh dấu siêu văn bản, và các phần truy cập vào cơ sở dữ liệu phía Server sử dụng Razor.

Trang hiển thị chính của Web có các phần chính như sau:

- Trang Đăng Nhập: trang này có chức năng cho phép người dùng đăng nhập vào hệ

thống.

- Trang Đăng Ký : trang này có chức năng cho phép người dùng tạo một tài khoản

đăng nhập mới.

- Trang Điều khiển : Chứa Bộ điều khiển các thiết bị và chế độ hoạt động của hệ

thống,

- Trang Cài Đặt: Chứa các cài đặt cho hệ thống.

- Trang Thông Số: Chứa các bảng số liệu thể hiện các thông số môi trường thu thập

được từ các node.

4.3 Phần mềm cho vi điều khiển.

4.3.1 Khối Master.

Dựa vào Hình 4 .33 Sơ đồ giải thuật tổng quát khối Master. Ta sẽ tuần tự phân tích các giai đoạn thực hiện:

Khi bắt đầu chương trình sẽ thực hiện khởi động ngoại vi, UART0, UART1, Timer, Sim 900, dịch vụ GPRS và HTTP cho Sim 900 bằng các hàm đã được thiết kế trong code.

Tiếp theo chương trình sẽ bước vào một vịng lặp vơ tận và nó làm việc tuần tự theo q trình sau:

- Quá trình 1: Cập nhật yêu cầu điều khiển thiết bị từ người dùng và chế độ hoạt động

của hệ thống thông qua đọc thông tin từ trang Sendrequest.cshtml của Server.

- Quá trình 2: Xét chế độ làm việc của hệ thống dựa vào dữ liệu lấy được từ Server

được thực hiện trong quá trình 1, nếu chế độ làm việc hiện tại có sự thay đổi so với chế độ làm việc mặc định thì khối Master sẽ tiến hành gửi yêu cầu cập nhật chế độ hoạt động mới xuống khối Slave.

- Q trình 3: Kiểm tra xem có u cầu điều khiển thiết bị từ người dùng dựa vào dữ

liệu lấy được từ Server được thực hiện ở bước 1:

o Nếu có u cầu thì khối Master tiến hành gửi yêu cầu đó xuống khối Slave, sau đó khối Master sẽ chờ thông tin về trạng thái thiết bị được gửi từ khối Slave.Nếu nhận được thơng tin từ khối Slave thì khối Master sẽ gửi trạng thái được cập nhật lên cơ sở dữ liệu của Server.Khi không nhận được khối Master sẽ tiến hành gửi lại yêu cầu điều khiển thiết bị,khi số lần gửi lại vượt quá bốn lần thì khối Master sẽ ngưng khơng gửi tiếp và chương trình sẽ thực thi q trình tiếp theo.

o Khơng có u cầu thì chương trình sẽ thực thi quá trình tiếp theo.

- Quá trình 4: Kiểm tra xem có u cầu cập nhật thông số môi trường hay không. Yêu

cầu này được đưa ra bởi khối Master tuần tự sau một khoảng thời gian nhất định.

o Nếu có thì khối Master sẽ thực hiện gửi yêu cầu đó xuống khối Slave.Sau đó khối Master sẽ chờ để nhận được các thông số được gửi trả vể từ khối Slave.Khi nhận được thì khối Master sẽ gửi tồn bộ các thơng số có được lên cơ sở dữ liệu của Server. Cịn khơng thì khối Master sẽ gửi lại yêu cầu, khi số lần gửi lại vượt quá bốn lần thì khối Master sẽ ngưng khơng gửi tiếp và thực thi quá trình tiếp theo.

4.3.1.2 Máy trạng thái truyền nhận dữ liệu giữa Master với Slave.

Hình 4.34 Máy trạng thái truyền nhận dữ liệu giữa Master với Slave.

Wait Request From Server: Chương trình đợi yêu cầu điều khiển từ Server. Khi tín hiệu

request=1 có nghĩa là có tín hiệu điều khiển từ sever, hệ thống chuyển sang trạng thái Send Request.

Send Request: Hệ thống gởi tín hiện điều khiển xuống slave, đồng thời set Timer delay

10s sau đó chuyển sang trạng thái Wait Data From Slave.

Wait Data From Slave: Hệ thống chờ nhận tín hiệu trả về từ slave xác nhận việc điều

khiển đã thành công. Trong 10s nếu hệ thống khơng nhận được tín hiệu trả về thì chuyển về trạng thái Send Request, cịn nếu nhận được tín hiệu trả về từ Slave thì chuyển sang trạng thái Send ACK_M.

Send ACK_M: Hệ thống gởi 2 lần liên tiếp tín hiệu ACK_M xuống Slave xác nhận việc

Master đã nhận được tín hiệu trạng thái Slave trả về, sau đó hệ thống trở về trạng thái ban đầu Wait Request From Server.

4.3.1.3 Giao thức truyền giữ liệu giữa Master và Slave.

Hình 4.35 Giao thức truyền dữ liệu giữa Master và Slave.

Master gởi yêu cầu request điều khiển thiết bị xuống Slave, trong thời gian quy định time out, nếu Master không gởi trả về tín hiệu Status devieces thì Master tiến hành gởi lại yêu cầu request xuống Slave.

Slave nhận được tín hiệu request điều khiển từ Master, Slave sẽ tiến hành điều khiển thiết bị sau đó cập nhật trạng thái rồi gởi trả về Master tín hiệu Status devices, trong thời gian quy định Time out, nếu Master khơng gởi trả về Slave tín hiệu ACK_M xác nhận việc đã nhận gói dữ liệu Status devices, khi đó Salve sẽ hiểu tín hiệu Status devices bị lỗi hoặc bị mất gói dữ liệu, từ đó Slave sẽ tiến hành gởi lại tín hiệu Status devices, quá trình này cứ lập lại đến khi nhận được gói tín hiệu ACK_M trả về.

4.3.1.4 Khung truyền dữ liệu giữa Master với Slave.

 Khung truyền request control device từ Master tới Slave.

0 0 0 0

Loại frame Địa chỉ C B V

Byte 1 Byte 2

Chú thích:

 C: bit trạng thái bóng đèn compact.  B: bit trạng thái bóng đèn dây tóc.

0 0 0 1

Loại frame Địa chỉ

Byte 1

 Khung truyền ACK_M từ Master xuống Slave.

0 0 1 0

Loại frame Địa chỉ

Byte 1

 Khung truyền thiết lập chế độ điều khiển tự động cho Slave.

0 0 1 1

Loại frame Địa chỉ

Byte 1

 Khung truyền thiết lập chế độ hoạt động bình thường cho Slave.

0 1 0 0

Loại frame Địa chỉ

Byte 1

 Khung truyền cập nhật rạng thái từ Master tới Slave.

0 1 0 1

Loại frame Địa chỉ

Byte 1  Bảng địa chỉ các node. Bảng 4.10 Bảng địa chỉ các Slave. Địa chỉ Mô tả 0000 Địa chỉ Master 0001 Địa chỉ Node1 0010 Địa chỉ Node2 0011 Địa chỉ Node3 0100 Địa chỉ Node4 4.3.2 Khối Slave.

4.3.2.1 Giải thuật tổng quát của chương trình.

Khi vi điều khiển msp430 được cấp nguồn, chương trình sẽ bắt đầu thực thi. Lúc đó chương trình sẽ thực hiện quá trình khởi tạo cho các ngoại vi: Khởi tạo cảm biến mưa, cảm biến độ ẩm, cảm biến ánh sáng, khởi tạo zigbee kết nối với khối Master, khởi tạo truyền nhận UART, khởi tạo ADC, ngắt ngồi…..

Hình 4.36 Sơ đồ giải thuật tổng qt khối Slave. Sau khi config chương trình vào chế độ chờ nhận tín hiệu từ khối Master. Khi nhận được tín hiệu, slave sẽ kiểm tra xem phải địa chỉ của mình khơng:

+ Nếu Fail: Slave quay về trạng thái chờ nhận tín hiệu.

+ Nếu Ok: Slave sẽ tiến hành kiểm tra nội dung tín hiệu nhận được.

Tiến hành điều khiển thiết bị theo nội dung nhận được, sau đó cập nhật trạng thái thiết bị và gởi trả trạng thái thiết bị về khối Master.

4.3.2.2 Máy trạng thái điều khiển thiết bị khi trời mưa xảy ra.

Hình 4.37 Máy trạng thái điều khiển thiết bị khi trời mưa xảy ra.

Khi hệ thống đèn hoặc hệ thống tưới đang được bật hệ thống nhảy vảo trạng thái LED ON.

LED ON:Ở trạng thái này nếu trời mưa xảy ra, tránh trường hợp chập chờn, nhóm cho hệ

thống set timerdelay=8s rồi nhảy sang trạng thái LED OFF WAIT.

LED OFF WAIT: Ở trạng thái này nếu trời hết mưa hệ thống chuyển về trạng thái LED

ON. Nếu hết timerout = 0, thì hệ thống chuyển sang trạng thái LED OFF.

LED OFF: Ở trạng thái này hệ thống tiến hành tắt tất cả các thiết bị điện. Sau đó set

timerdelay=1 phút. Rồi hệ thống chuyển sang trạng thái LED ON WAIT.

LED ON WAIT: Ở trạng thái này nếu trời mưa xảy ra thì hệ thống chuyển sang trạng

thái LED OFF. Nếu trời khơng mưa, mà tìn hiệu ledon=1, thơng báo thiết bị được bật thì hệ thống chuyển sang trạng thái LED ON.

4.3.2.3 Máy trạng thái truyền nhận dữ liệu giữa Slave và Master.

Hình 4.38 Máy trạng thái truyền nhận dữ liệu giữa Slave và Master.

Wait Receive Signal Control : Khi chương trình bắt đầu, hệ thống nhảy vào trạng thái

Wait Receive Signal Control để chờ nhận tín hiệu điều khiển từ Master. Khi tín hiệu điều khiển gởi từ master đến slave, cờ ACK bật lên 1, hệ thống chuyển sang trạng thái Send Status Device.

Send status device:Hệ thống tiến hành điều khiển thiết bị dựa theo tín hiệu điều khiển

master, sau đó tiến hành gởi trạng thái thiết bị về master, đồng thời set timerdelay=15s sau đó chuyển sang trạng thái Wait Receive ACK.

Wait Receive ACK: Hệ thống chờ nhận ACK_M từ Master xác nhận việc Slave đã nhận

tín hiệu điều khiển và đã gởi cập nhật trạng thái lên master. Trong vịng 15s nếu khơng nhận được tín hiệu ACK_M từ master, hệ thống sẽ chở về trạng thái Send Status Device. Nếu nhận được ACK_M từ master, hệ thống sẽ chuyển về trạng thái Wait Receive Signal Control. Ngoài ra khi hệ thống gởi lại 3 lần nếu slave vẫn khơng nhận được ACK_M thì vẫn trở về trạng thái Wait Receive Signal Control.

4.3.2.4 Khung truyền Slave gởi lên Master.

 Khung truyền cập nhật trạng thái thiết bị khi có yêu cầu từ Master: - Kích thước 2 byte.

1 0 0 0 1 1 1 1 1

Loại khung Địa chỉ C B V

Byte 1 Byte 2

 Khung truyền cập nhật thơng số mơi trường: - Kích thước 6 byte.

1 0 0 1

Loại khung Địa chỉ Độ ẩm Nhiệt độ Cường độ sáng

Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 Byte 6

 Khung truyền ACK, Slave gởi lên master. - Kích thước 1 byte.

1 0 1 0

Loại khung Địa chỉ

Byte 1 Địa chỉ Mô tả 0000 Địa chỉ Master 0001 Địa chỉ Node1 0010 Địa chỉ Node2 0011 Địa chỉ Node3 0100 Địa chỉ Node4

4.3.3 Giải thuật Fuzzy Logic.

4.3.3.1 Tổng quan thiết kế hệ thống mờ.

Hình 4.39 Sơ đồ thiết kế giải thuật Fuzzy Logic.

Bước 1: Mờ hóa ngõ vào (Fuzzification).

Q trình mờ hóa ngõ vào nhằm giúp chuyển đổi những biến giá trị vật lý đầu vào thành những điều kiện được thể hiện dưới dạng ngôn ngữ và ánh xạ chúng với tập hợp các hàm liên thuộc.

Hàm liên thuộc là mức độ của một giá trị vật lý thỏa mãn một khái niệm ngôn ngữ được gọi là hàm liên thuộc. Đối với biến liên tục, mức độ này được biểu diễn bởi một hàm gọi là hàm liên thuộc. Hàm này ánh xạ tập các giá trị vật lýthành tập các giá trị phụ thuộc đối với các giá trị ngôn ngữ. Biến vật lý được gọi là biến nền và tập các giá trị vật lý được gọi là tập nền.Thông thường người ta vẽ nhiều hàm liên thuộc trên cùng một biểu đồ dựa trên tập nền đã qui định.

Bước 2 : Hình thành luật mờ (Fuzzy Inference)

Tập hợp những luật mờ được thể hiện dưới dạng sau: Nếu < điều kiện ngõ vào > Thì < trạng thái ngõ ra > Số luật có được tn theo cơng thức sau:

N= P1 x P2 x P3 x……..xPn Trong đó:

o N là tổng tồn bộ những luật có được khi phân tích một hệ thống mờ.

o Pn là số mức trạng thái được thể hiện dưới dạng ngôn ngữ của ngõ vào.

Bước 3: Giải mờ ngõ ra (Defuzzification)

Quá trình giải mờ là phương pháp chuyển đổi những luật mờ được lựa chọn thành một giá trị cụ thể ở ngõ ra.

Để giải mờ các biến ngõ vào đã được mờ hóa ta có nhiều phương pháp khác nhau như: Centroid Method(Center of area, Center of gravity), Max-membership principal, Weighted average method, Mean-max membership, Center of sums… Nhưng trong nội dung này ta sử dụng phương pháp Centroid.

4.3.3.2 Thiết kế giải thuật mờ cho hệ thống tưới nước.

Hình 4.40 Mơ hình tổng qt điều khiển van tưới nước tự độn áp dụng giải thuật Fuzzy logic.

a. Thiết kế:

Bước 1: Mờ hóa ngõ vào

Dựa vào mơ hình tổng qt trên ta thấy hệ thống gồm 2 ngõ vào đó chính là nhiệt độ mơi trường và độ ẩm đất, việc mà ta cần làm ngay bây giờ chính là phân tích vùng giá trị tồn tại của chúng , phân chia vùng giá trị đó thành các mức độ khác nhau tùy theo mong muốn của người thiết kế và cuối cùng là đặt tên cho các mức giá trị đó.

Nhiệt độ :

o Vùng giá trị tồn tại : từ 0oC đến 45oC

o 3 mức : lạnh , ấm , nóng. Độ ẩm:

o Vùng giá trị tồn tại : từ 0% đến 100%

o 3 mức : khô, vừa ,ướt.

Bước 2: Hình thành luật mờ

Để hình thành luật mờ trước tiên ta cần phải xác định được tổng số luật mờ có được từ các mức trạng thái khác nhau của ngõ vào.Sau đó dựa vào các luật mờ có được người thiết kế sẽ quyết định ngõ ra của hệ thống dựa vào kinh nghiệm và hiểu biết của họ về hệ thống. Do ngõ vào nhiệt độ có 3 mức , độ ẩm có 3 mức. Nên tổng số luật mờ được tính theo luật sau:

N= P1 x P2 = 3 x 3 =9 luật mờ

o Vùng giá trị tồn tại : từ 0 đến 1.

o 2 mức : on,off.

Bảng 4.11 Bảng luật mờ điều khiển van tưới nước. Luật

mờ Nếu Nhiệt độĐộ ẩm Thì Máy bơm

Một phần của tài liệu hệ thống quản lý vườn cây thông minh (Trang 47)

w