.13 Sơ đồ chi tiết cảm biến ánh sáng BH1750

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

để trả ra đơn vị cường độ ánh sáng theo dơn vị Lux, giá trị này được đọc bởi vi điều khiển thông qua giao tiếp I2C.

3.3.7 Cảm biến nhiệt độ LM35.

Cảm biến LM35 là bộ cảm biến nhiệt mạch tích hợp chính xác cao mà điện áp đầu ra của nó tỷ lệ tuyến tính với nhiệt độ theo thang độ Celsius. Chúng cũng khơng u cầu cân chỉnh ngồi vì vốn chúng đã được cân chỉnh.

Thông số kỹ thuật:

- Điện áp đầu vào từ 4V đến 30V. - Điện áp ra: -1V đến 6V.

- Công suất tiêu thụ là 60uA.

- Độ phân giải điện áp đầu ra là 10mV/oC. - Độ chính xác cao ở 25 C là 0.5 C.

- Trở kháng đầu ra thấp 0.1 cho 1mA tải.

- Độ chính xác thực tế: 1/4°C ở nhiệt độ phịng và 3/4°C ngồi khoảng -55°C tới 150°C.

Hình 3.23 Cảm biến nhiệt độ LM35.

Tính tốn nhiệt độ đầu ra của IC LM35.

- Cảm biến LM35 hoạt động bằng cách cho ra một giá trị hiệu điện thế nhất định tại chân Vout (chân giữa) ứng với mỗi mức nhiệt độ.

- Để đo nhiệt độ khi sử dụng IC LM35 thông thường chúng ta đọc điện áp ngõ ra của LM35 bằng ngõ vào ADC của vi điều khiển.

- Cơng thức tính nhiệt độ theo điện áp ngõ ra :

t= u/k

Trong đó :

 u là điện áp đầu ra

Giả sử điện áp Vcc cấp cho LM35 là 5V ADC 10bit. Vậy bước thay đổi của LM35 sẽ là 5/(2^10) = 5/1024 . Giá trị ADC đo được thì điện áp đầu vào của LM35 là

(t*k)/(5/1024) = ((10^-2)*1024*t)/5 = 2.048*t Vậy nhiệt độ ta đo được t = giá trị ADC/2048

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

4.1 Yêu cầu thiết kế.

Mục tiêu của luận văn là thiết kế hệ thống có thể giám sát vườn thanh long và thu thập các thông số môi trường từ xa thông qua kết nối không dây như 3G hoặc 2G.

Để làm được điều này chúng ta cần phải có một nơi lưu lại các thơng số mơi trường thu thập được theo thời gian,một giao diện tương tác để người dùng có thể điều khiển và đọc được các thơng tin cần thiết về hệ thống.

Dựa trên các yêu cầu trên chúng ta đề xuất giải pháp là thiết kế Web Server. Một Web Server bao gồm: Cơ sở dữ liệu,trang Web và chương trình quản lý Server.Thiết kế hệ thống điều khiển trên Web Server sẽ mang cho ta nhiều lợi ích như dung lượng cơ sở dữ liệu lớn, giao diện là một trang Web nên có thể hoạt động trên nhiều nền tảng khác nhau như Android, iOS, window phone… chỉ u cầu có cài đặt trình duyệt web trước đó.

4.2 Trang Web và phía Server.

4.2.1 Phần mềm Microsoft WebMatrix và ASP.NET framework.

Giao diện trang Web, phía Server và cơ sở dữ liệu trong luận văn này đều được tạo trên phần mềm WebMatrix sử dụng ngôn ngữ HTML kết hợp với ASP.NET Razor.

Hình 4.24Giao diện phần mềm WebMatrix 3.

WebMatrix là một phần mềm ứng dụng phát triển Web miễn phí cho hệ điều hành Windows được phát hành bởi Microsoft.WebMatrix cho phép người phát triển xây dựng trang Web sử dụng các mẫu tích hợp có sẵn hoặc các ứng dụng mã nguồn mở thông dụng với sự hỗ trợ tuyệt đối với ASP.NET, PHP, Node.js và HTML5.Microsoft phát triển WebMatrix cho mục đích cung cấp cho người phát triển Web các tính năng lập trình, chỉnh sửa và phát hành trang Web chỉ trên một phần mềm duy nhất. Phiên bản mới nhất hiện nay là Microsoft WebMatrix 3.

ASP.NET là một chương trình khung ứng dụng Web phía Server thiết kế cho việc phát triển Web để tạo các trang Web động. Được phát triển bởi Microsoft cho phép người phát triển Web xây dụng các trang Web động, ứng dụng Web và dịch vụ Web.

ASP.NET Web pages, được biết chính thức với với tên Web Forms, là các khối xây dựng chính cho phát triển ứng dụng. Web forms được chứa trong các tập tin với phần mở rộng “.aspx”, các tập tin này thường chứa các đánh dấu động HTML cũng như các đánh dấu định nghĩa các điều khiển phía Server và các điều khiển của người dùng. Các mã động được chạy trên Server có thể được đặt trong một khối <% -- mã động -- %>.

phép người dùng sử dụng quy trình xây dựng của HTML. Thay vì sử dụng cú pháp đánh dấu với các ký tự <% -- %> để chỉ ra khối mã lệnh, cú pháp Razor bất đầu khối mã lệnh với một ký tự @ duy nhất và khơng cần thêm ký tự nào để đóng khối mã lệnh. Ưu điểm của Razor là cung cấp một cú pháp tối ưu cho HTML sử dụng một cách tiếp cận tập trung vào mã lệnh, với sự thay đổi nhỏ nhất giữa HTML và mã lệnh.

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 quá 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.

- Quá trình 3: Kiểm tra xem có yê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ó yêu cầu thì khối Master tiến hành gửi 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 quá 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 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 q 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 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, q 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 q 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 quát 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

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

w