TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN TỬ - VIỄN THÔNG
************************
BÁO CÁO PROJECT2 - LẦN 2
ĐỀ TÀI: Hệ thống tưới cây tự động sử dụng sensor không dây
Giảng Viên hướng dẫn : Phạm Văn Tiến
SV thực hiện
: Nguyễn Tiến Đạt
Nguyễn Thị Hiếu
Trần Văn Dũng
Đào Khánh Duy
Nguyễn Đình Duy
Vũ Văn Duy
Hà Nội – 24/2/2011
1. Các việc cần làm
• Tìm mua bơm nước
Yêu cầu: Loại nhỏ, giá rẻ, công suất nhỏ, ưu tiên thiết bị chạy pin…
• Lập trình phần mềm trên PC giao tiếp với mạch qua UART
Yêu cầu: Truyền nhận các bản tin giữa 2 thiết bị, từ PC thực hiện được một lệnh
điều khiển bất kì ở các chân của vi điều khiển, vi điều khiển yêu cầu thực hiện
một lệnh bất kì trên PC thông qua UART.
• Thiết kế phần cứng
Yêu cầu: Thiết kế mạch theo sơ đồ khối ở trên, mạch gọn nhẹ.
• Lập trình cho mạch
Yêu cầu: Thực hiện các chức năng bài toán đặt ra.
• Zigbee .
Yêu cầu: Có những hiểu biết cơ bản về chuẩn Zigbee và IEE 802.15.4.
1
2. Các việc đã làm được
• Giao tiếp với cảm biến độ ẩm SHT1X trên vi điều khiển
• Giao tiếp giữa PC và vi điều khiển thông qua RS232
• Thiết kế mạch điều khiển bơm tưới
• Tiến hành chạy thử hệ thống
3. Nội dung chi tiết những việc đã làm
a. Giao tiếp với cảm biến độ ẩm SHT1X
•
Tổng quan về Sensor độ ẩm và nhiệt độ SHT11
SHT1x (bao gồm các loại SHT10, SHT11 và SHT15) là dòng cảm biến nhiệt độ và độ ẩm
tương đối được sản xuất bởi SENSIRION, một công ty chuyên sản xuất các loại cảm biến
nổi tiếng của Thụy Sỹ. Dòng cảm biến này được tích hợp cả mạch xử lý tín hiệu trong
một mạch điện nhỏ và xuất ra dữ liệu dạng số. Việc áp dụng công nghệ CMOSens® đảm
bạo độ tin cậy cao và sự ổn định trong thời gian dài. Sensor được thiết kế đúc liền, được
tích hợp bộ chuyển đổi tương tự - số và mạch giao tiếp nối tiếp. Điều này đã góp phần tạo
nên tín hiệu với chất lượng cao, thời gian đáp ứng nhanh và khả năng chống nhiễu bên
2
ngoài.
•
Các đặc tính kĩ thuật của SHT11
- Khả năng hoạt động của SHT11
Độ ẩm tương đối
Tham số
Điều kiện
Độ phân giải
Độ chính xác
Min
Typ
Max
Đơn vị
0.4
0.05
0.05
%RH
8
12
12
bit
Bình thường
±3.0
Dải hoạt động
Độ trượt
Nhiệt độ
0
Bình thường
Tham số
Điều kiện
%RH
%RH/năm
Min
Typ
Max
Đơn vị
0.04
0.01
0.01
ºC
12
14
14
bit
Bình thường
Dải hoạt động
Độ trượt
100
<0.5
Độ phân giải
Độ chính xác
%RH
±0.4
0
ºC
100
Bình thường
<0.04
ºC
ºC/năm
- Đặc tính chung
Tham số
Điều kiện
Min
Typ
Max
Đơn vị
2.4
3.3
5.5
V
sleep
2
5
μW
đang hoạt động
3
mW
trung bình
90
μW
Điện áp nguồn
Mức công suất tiêu
thụ
Giao tiếp
giao tiếp số 2 dây
Bảo quản
10-50 ºC, 20-60 %RH
- Điều kiện hoạt động
Sensor hoạt động ổn định trong giới hạn bình thường cho bởi đồ thị sau :
3
Khi bị đặt vào trong môi trường ngoài giới hạn này trong khoảng thời gian dài,
nhất là khi độ ẩm > 80%RH có thể làm lệch tín hiệu RH (+3%RH sau 60 giờ). Sau khi trở
lại điều kiện bình thường, sensor sẽ từ từ chuyển về chế độ hoạt động chuẩn. Hoạt động
trong môi trường quá hạn trong thời gian dài có thể làm giảm tuổi thọ của sensor.
- Ảnh hưởng của nhiệt độ
Đo độ ẩm tương đối phụ thuộc rất lớn vào nhiệt độ. Vì vậy, rất cần thiết phải giữ
sensor ở nhiệt độ bằng với nhiệt độ không khí nơi muốn đo độ ẩm. Trong trường hợp
kiểm tra hoặc đánh giá chất lượng, sensor tham chiếu và sensor kiểm tra cần được đặt
trong môi trường có nhiệt độ như nhau để đảm bảo kết quả kiểm tra được chính xác. Nếu
SHT11 được đặt chung bản mạch cùng các linh kiện phát nhiệt thì nó cần được gắn sao
cho giảm tối thiểu sự truyền nhiệt.
- Đặc tính giao diện
4
SHT1X giao tiếp với mạch ngoài qua 4 chân gồm GND, VDD, DATA, SCK, các
chân còn lại là NC. Trong đó GND, VDD là 2 chân cấp nguồn hoạt động cho sensor
(trong trường hợp này dùng nguồn 5V mặc dù sensor có thể hoạt động ở nhiều mức điện
áp khác nhau). DATA là chân dữ liệu và truyền 2 hướng, SCK là chân truyền xung clock
từ uC đến sensor. Sensor không hoạt động dựa trên giao thức I2C nhưng có thể nối chung
bus với các thiết bị ngoại vi khác sử dụng giao tiếp I2C do có xung đồng bộ khác nhau và
người thiết kế phải chuyển đổi hoạt động giữa 2 thiết bị.
- Chân nguồn
Nguồn cấp cho SHT11 phải nằm trong khoảng 2.4V đến 5.5V, điện áp cấp
khuyến cáo là 3.3V. Giao diện nối tiếp của SHT11 được tối ưu để gửi dữ liệu và tiêu thụ
điện năng thấp. Sensor không được đánh địa chỉ theo giao thức I2C, tuy nhiên, sensor có
thể kết nối chưng đường bus với các thiết bị khác sử dụng giao thức I2C mà không gây
nhiễu cho các thiết bị này. Bộ điều khiển cần phải chuyển dổi giữa các giao thức truyền.
- Xung đồng hồ (SCK)
SCK được sử dụng để đồng bộ giao tiếp giữa vi điều khiển và SHT11.
- Dữ liệu nối tiếp (DATA)
5
Chân 3 trạng thái DATA được sử dụng để truyền dữ liệu vào và ra sensor. Để
tránh xung đột tín hiệu, vi điều khiển cần để DATA ở mức thấp. Cần có trở kéo để đưa
tín hiệu lên mức cao.
•
Giao tiếp với SHT11
- Khởi động
Bước đầu tiên sensor sẽ chọn điện áp hoạt động VDD. Tốc độ thay đổi điện áp
không được dưới 1V/ms. Sau khi khởi động sensor cần 11ms để chuyển sang trạng thái
Sleep. Trong khoảng thời gian này không lệnh nào được gửi xuống.
- Gửi lệnh
Để thiết lập truyền dữ liệu cần phải gửi một chuỗi “bắt đầu truyền” (Transmission
start sequence).
Chuỗi này được mô tả như đồ thị thời gian
Lệnh sau đó bao gồm 3 bit địa chỉ (000) và 5 bit lệnh. SHT11 chỉ ra việc nhận
đúng một lệnh thông qua việc đưa chân DATA xuống mức thấp (bit ACK) sau sườn
xuống của xung SCK số 8. Đường DATA được giải phóng sau sườn xuống của xung
SCK số 9.
- Danh sách mã lệnh của SHT11
Lệnh
Mã
6
Để dành
0000x
Đo nhiệt độ
00011
Đo độ ẩm tương đối
00101
Đọc thanh ghi trạng thái
00111
Ghi thanh ghi trạng thái
00110
Để dành
0101x-1110x
Soft reset, khởi động lại giao diện, xóa thanh ghi trạng thái về giá trị ban đầu. 11110
Chờ 11ms trước khi nạp lệnh tiếp theo.
- Đo độ ẩm và nhiệt độ
Sau khi đưa ra lênh đo (“00000101” để đo độ ẩm tương đối và “00000011” để đo
nhiệt độ) bộ điều khiển cần chở để phép đo được thực hiện. Mất khoảng thời gian lớn
nhất là 20/80/320 ms cho phép đo 8/12/14 bit. Thời gian thay đổi theo tốc độ của bộ giao
động. Sau khi đo xong, SHT11 đưa DATA xuống mức thấp và chuyển sang chế độ Idle.
Bộ điều khiển phải chờ tín hiệu dữ liệu sẵn sàng này trước khi khởi động lại SCK để đọc
dữ liệu. Dữ liệu đo được sẽ được lưu trữ đến khi được đọc ra, do vậy bộ điều khiển có thể
làm các công việc khác và đọc dữ liệu khi nào thuận tiện. 2 byte dữ liệu đo và 1 byte
CRC checksum (có thể có hoặc không) sẽ được truyền sau đó. Bộ vi điều khiển cần thừa
nhận mỗi byte nhận được bằng việc đưa DATA xuống mức thấp. Tất cả các giá trị đều
tuân theo MSB (Most significant bit) đầu tiên.
Giao tiếp được giải phóng sau bit ACK của trường CRC checksum. Trong trường
hợp không sử dụng CRC checksum thì bộ điều khiển sẽ giải phóng giao tiếp sau bit LSB
của dữ liệu đo được bằng cách đưa ACK về mức cao. Sensor tự động chuyển về chế độ
sleep sau khi việc đo và truyền dữ liệu hoàn tất.
Chú ý : Để giữ tự tăng nhiệt dưới 0.1ºC, SHT11 không nên hoạt động quá 10%
7
thời gian. Ví dụ như với phép đo với độ chính xác 12 bit thì chỉ đo 1 lần/s.
- Chuỗi tạo lại kết nối
Nếu giao tiếp với sensor bị mất, tín hiệu sau sẽ khởi tạo lại kết nối
Tín
hiệu
này
chỉ
khởi tạo lại kết nối. Dữ liệu trong thanh ghi trạng thái không thay đổi.
- Thanh ghi trạng thái
Một số chức năng nâng cao của SHT11 như chọn độ phân giải cho phép đo, báo
hết pin, sử dụng OTP... có thể được kích hoạt bởi gửi lênh cho thanh ghi trạng thái. Sau
khi gửi lệnh đọc hoặc ghi thanh ghi trạng thái, nội dung của thanh ghi trạng thái gồm 8
bit sẽ được đọc ra hoặc ghi lại.
Bit
Type
Mô tả
Default
Để dành
0
Hết pin (phát hiện điện áp thấp)
'0' khi VDD>2.47V
'1' khi VDD<2.47V
X
5
Để dành
0
4
Để dành
0
3
Chỉ dùng để kiểm tra, không sử dụng
0
7
6
•
R
Không có giá trị đầu tiên,
bit chỉ được cập nhật sau
phép đo
2
R/W
Làm nóng
0
Tắt
1
R/W
Không load lại từ OTP
0
Load lại
0
R/W
'1'=8 bit độ ẩm/12 bit nhiệt độ
'0'=12 bit độ ẩm/14 bit nhiệt độ
0
12 bit độ ẩm
14 bit nhiệt độ
Xử lý dữ liệu gửi về
8
- Độ ẩm tương đối
Độ ẩm được tính toán theo công thức
RHlinear = c1 + c2 . SORH + c3 . SORH2 (%RH)
Với các giá trị được cho trong bảng sau
- Ảnh hưởng của nhiệt độ lên độ ẩm
Với nhiệt độ có khác biệt đáng kể so với nhiệt độ 25 oC thì tín hiệu độ ẩm cần sự
bù thêm của nhiệt độ. Nhiệt độ gây sai lệch khoảng 0.12%RH/ oC ở độ ẩm 50%RH. Công
thức tính độ ẩm thực như sau :
RHtrue = (ToC – 25) . (t1 + t2 . SORH) + RHlinear
Các tham số được cho trong bảng sau:
- Nhiệt độ
Nhiệt độ có thể tính theo công thức sau
T = d1 + d2 . SOT
Trong đó các tham số được cho trong bảng sau
9
•
Công thức tính nhiệt độ, độ ẩm trong phần mềm
Trong đó :
Temp : nhiệt độ đo được chưa quy đổi
Hum : độ ẩm đo được chưa quy đổi
Rtemp : nhiệt độ đo được sau quy đổi (tính theo oC)
Rhum : độ ẩm tương đối
Rehum : độ ẩm thực sự tính cả yếu tố nhiệt độ
b. Giao tiếp RS232
Cổng nối tiếp RS232 là một giao diện phổ biến rộng rãi nhất. Người ta còn gọi
cổng này là cổng COM1, còn cổng COM2 để tự do cho các ứng dụng khác. Giống
như cổng máy in cổng COM cũng được sử dụng một cách thuận tiện cho việc giao
tiếp với thiết bị ngoại vi.
Để giao tiếp với Modul sensor từ PC, trên C# ta cần quan tâm một số thông số của
cổng: Baud Rate, Port Name, Databits, read buffer size, write buffer size, parity bit,
stop bit… Ở đây, với lượng dữ liệu gửi về và gửi đi không nhiều, ta chỉ cần quan tâm
tới Baud Rate là 19200, Port Name, Databits bằng 8.
Dưới đây là hình ảnh kết quả giao tiếp
10
c. Thiết kế mạch điều khiển bơm tưới
Module điều khiển máy bơm:
Nhiệm vụ:
Chuyển tín hiệu điều khiển từ module ZigBee tới cơ cấu động cơ của bơm tưới để
có thể hút nước từ bể chứa bơm ra ngoài.
Yêu cầu:
- Chuyển đổi tín hiệu 1 chiều biên độ nhỏ (0-3v) sang tín hiệu xoay chiều (220v) để bật
tắt máy bơm.
- Đáp ứng được các thông số về tải của máy bơm (Dòng điện, Hiệu điện thế định mức,
Công suất…)
- Hoạt động an toàn, chính xác.
Các phương án thiết kế:
- Sử dụng Triac
- Sử dụng Rơ-le
Phân tích thiết kế:
- Phương án sử dụng Triac
Việc sử dụng Triac sẽ làm mạch nhỏ gọn hơn, gây nhiễu ít cho mạch điều khiển, tuy
nhiên đối với tải xoay chiều có tải cảm cao thì việc đóng mở Triac sẽ không chính xác về
thời gian, cần thêm linh kiện để khắc phục nhược điểm này. Đối với các tải có dòng tiêu
thụ lớn thì phải sử dụng các Triac có khả năng chịu dòng lớn, điều này làm tăng giá thành
của sản phẩm.
- Phương án sử dụng Rơ-le
Điều khiển sử dụng Rơ-le, thực chất là điều khiển nam châm điện để đóng mở 1 cuộn
hút, từ đó nối thông hay ngắt sự tiếp xúc giữa 2 chân của rơ-le (nguyên tắc giống công tắc
cơ khí). Điều khiển rơ-le khá đơn giản, giá thành thấp, chịu được dòng điện cao hơn so
với việc sử dụng Triac trong điều kiện dòng tải của thiết bị giống nhau. Tuy nhiên do sử
dụng đóng mở 1 cuộn hút, điều này gây ra nhiễu (do biến thiên từ thông quanh cuộn hút)
làm ảnh hưởng tới dòng và áp của mạch điều khiển. Để giải quyết vấn đề này, nhóm đã
11
sử dụng 1 cách ly quang nhằm cách ly điện áp và dòng điện giữa module ZigBee và mạch
điều khiển bơm, điều này hạn chế tối đa sự ảnh hưởng của việc đóng mở cuộn hút tới sự
hoạt động của module ZigBee. Do vậy nhóm đã quyết định lựa chọn phương án sử dụng
Rơ-le
Sơ đồ thiết kế chi tiết
LS1
R 7
J4
5
VC C
3
4
D2
U 2
A
K
D1
D IO D E
VC C
C
E
1
2
2 2 0 v C o n n e c to r
R ELAY SPD T
2
4
3
R L1
O p to
R 6
1k
Hình ảnh cho mạch thật
d. Tiến hành chạy thử hệ thống
Dưới đây là hình ảnh kết quả:
12
3
Q1
C 1815
1
Z ig B e e _ C o n t r o l_ S ig n a l 1
G N D _ Z ig B e e
2
330R
LED
1
2
3
4. Các việc tiếp theo
• Hoàn thiện phần mềm thu thập và xử lý dữ liệu
• Làm tăng độ tin cậy và ổn định của hệ thống
13
14