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ư
Trang 1TRƯỜ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
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
Trang 21 Các việc cần làm
Yêu cầu: Loại nhỏ, giá rẻ, công suất nhỏ, ưu tiên thiết bị chạy pin…
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
Yêu cầu: Thiết kế mạch theo sơ đồ khối ở trên, mạch gọn nhẹ
Yêu cầu: Thực hiện các chức năng bài toán đặt ra
Yêu cầu: Có những hiểu biết cơ bản về chuẩn Zigbee và IEE 802.15.4
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
Trang 3 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 ngoài
- Khả năng hoạt động của SHT11
Độ ẩm tương đối
Nhiệt
độ
- Đặc tính chung
Trang 4Điện áp nguồn 2.4 3.3 5.5 V
Mức công suất tiêu
thụ
- Đ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 :
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ở
Trang 5lạ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
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à
Trang 6ngườ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)
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
- 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
Trang 7Lệ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
Soft reset, khởi động lại giao diện, xóa thanh ghi trạng thái về giá trị ban đầu
Chờ 11ms trước khi nạp lệnh tiếp theo
11110
- Đ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
Trang 8độ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% 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
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
Trang 9hế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
'0' khi VDD>2.47V '1' khi VDD<2.47V
X
Không có giá trị đầu tiên, bit chỉ được cập nhật sau phép đo
'0'=12 bit độ ẩm/14 bit nhiệt độ
14 bit nhiệt độ
- Độ ẩ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
Trang 10thứ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
Trong đó các tham số được cho trong bảng sau
Trong đó :
Temp : nhiệt độ đo được chưa quy đổi
Hum : độ ẩm đo được chưa quy đổi
Trang 11Rtemp : 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
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:
Trang 12- 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
Công suất…)
Các phương án thiết kế:
Phân tích thiết kế:
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
Đ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 đã 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
L S 1
R E L A Y S P D T
3 5 4 1 2
J 4
2 2 0 v C o n n e c t o r
1 2 3
Q 1
C 1 8 1 5
3
R 6
1 k
R L 1
D 1
D I O D E
V C C
D 2 L E D
R 7
3 3 0 R
U 2
O p t o
A
1
K
2
V C C
Z ig B e e _ C o n t r o l_ S ig n a l
G N D _ Z ig B e e
Trang 13Hì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ả:
Trang 144 Các việc tiếp theo