Hình 2.9: Hình ảnh cảm biến siêu âm HC-SR04.
Thông số kỹ thuật: - Điện áp: DC 5V - Dòng điện:2mA - Output Level:5V - góc cảm ứng: không quá 15 độ - phát hiện khoảng cách: 2 cm -450cm - Độ chính xác cao: lên đến 0.3cm
19
Ứng dụng: Dùng để đo khoản cách giữa các vật.
Nguyên lý hoạt động:
Hình 2.10: Biều đồ xung SRF04.
Ta chỉ cần cung cấp một xung ngắn 10uS vào trigger để bắt đầu, sau đó các module sẽ gửi ra một chuỗi 8 chu kỳ sóng siêu âm ở 40 kHz và tăng cường tín hiệu của nó. Echo là một đối tượng tính khoảng cách đo độ rộng xung và phạm vi theo tỷ lệ. Ta có thể tính toán được khoảng cách thông qua đo khoảng thời gian giữa việc gửi tín hiệu kích hoạt của trigger và tín hiệu nhận về từ echo.
Công thức: us/58 (đơn vị cm) hoặc us/148 (đơn vị inch)
Tổng quát: Phạm vi tổng quát= thời gian* vận tốc (340m/s)/ 2
2.9Cảm biến đo độ ẩm, nhiệt độ không khí DHT11
Cảm biến DHT11 là cảm biến cơ bản rất thích hợp cho những ứng dụng thu thập dữ liệu cơ bản. Cảm biến DHT11 có 2 phần, 1 cảm biến độ ẩm điện dung và một điện trở nhiệt.
Dữ liệu ngõ ra của cảm biến DHT là dạng số, có thể dùng bất cứ vi điều khiển nào để lấy dữ liệu ra. Dữ liệu độ ẩm mà cảm biến đo được mức từ 20% ~ 90%.
20
Hình 2.11: Cảm biến DHT11.
Thông số kĩ thuật:
- Nguồn: 3 -> 5 VDC.
- Dòng sử dụng: 2.5mA max (khi truyền dữ liệu). - Đo tốt ở độ ẩm 20-80%RH với sai số 5%. - Đo tốt ở nhiệt độ 0 to 50°C sai số ±2°C. - Tần số lấy mẫu tối đa 1Hz (1 giây 1 lần)
Ứng dụng : Dùng để đo nhiệt độ không khí và độ ẩm không khí.
2.10 Cảm biến đo độ ẩm đất
Cảm biến phát hiện độ ẩm đất, bình thường đầu ra mức thấp, khi đất thiếu nước đầu ra sẽ mức cao. Module có thể sử dụng để tưới nước tự động.
Độ nhạy của cảm biến độ ẩm đất có thể điều chỉnh được (Bằng cách điều chỉnh biến trở màu xanh trên board mạch).
Phần đầu dò được cắm vào đất để phát hiện độ ẩm, khi độ ầm của đất đạt ngưỡng thiết lập, đầu ra DO sẽ chuyển trạng thái từ mức thấp lên mức cao.
21
Thông số kĩ thuật:
- Điện áp làm việc 3.3V ~ 5V - Có lỗ cố định để lắp đặt thuận tiện - PCB có kích thước nhỏ 3.2 x 1.4 cm
- Sử dung chip LM393 để so sánh, ổn định làm việc
Ứng dụng: Dùng để đo độ ẩm đất.
2.11 Bơm nước
Hình 2.13: Bơm nước 5V.
Thông số kỹ thuật:
- Đường kính Motor: 2.7 cm - Chiều dài bơm: 5.2 cm - Đường kính vòi: 3.8 mm - Trọng lượng: 70g - Điện áp: 3-6V DC - Đòng Tiêu Thụ: 1.5A Ứng dụng: - Bơm nước.
2.12 Động cơ tạo hơi nước.
22
Thông số kỹ thuật:
- Điện áp hoạt động: AC24V hoặc DC28V - Công suất: 19 (W) - Tần số hoạt động: 1700 ± 50 (KHZ) - Độ sâu: 50mm ~ 60mm - Jack nguồn: Φ 5.5 × 2.1mm Ứng dụng: - Tạo độ ẩm. - Tạo hơi sương.
2.13 Relay
Hình 2.15: Relay đóng ngắt 2 kênh.
Thông số kỹ thuật:
- Sử dụng điện áp nuôi 5VDC.
- Relay đóng ngắt ở điện thế kích bằng 0V nên có thể sử dụng cho cả tín hiệu 5V hay 3.3V (cần cấp nguồn ngoài), mỗi Relay tiêu thụ dòng khoảng 80mA.
- Điện thế đóng ngắt tối đa: AC250V - 10A hoặc DC30V - 10A. - Có đèn báo đóng ngắt trên mỗi Relay.
Ứng dụng: Dùng để tắt, mở các thiết bị có điện áp hay dòng cao mà vi điều khiển không làm việc trực tiếp được với tần suất đóng ngắt chậm.
2.14 Nguồn
23
Hình 2.16: Nguồn máy tính.
Hình 2.17: Sơ đồ các chân của bộ nguồn.
Thông số kỹ thuật:
- Cung cấp nguồn với các áp là: +3,3V, +5V, +12V, -12V. - Dây màu đen là dây mass.
- Dây màu cam là +3,3V. - Dây màu đỏ là +5V. - Dây màu vàng là +12V.
- Dây màu xanh dương là -12V.
24 2.15 Quạt Hình 2.18: Quạt tản nhiệt. Thông số kỹ thuật: - Dùng điện áp DC 12V. - Dùng dòng điện 0.4A.
Ứng dụng: Dùng để thổi không khí từ bên ngoài vào nhà kính để làm giảm nhiệt độ theo yêu cầu.
2.16 Họ giao thức TCP/IP 2.16.1 Tổng quan về Ethernet 2.16.1 Tổng quan về Ethernet
2.16.1.1 Cấu trúc khung tin Ethernet
Các chuẩn Ethernet đều hoạt động ở tầng Data Link trong mô hình 7 lớp OSI vì thế đơn vị dữ liệu mà các trạm trao đổi với nhau là các khung (frame). Cấu trúc khung Ethernet như sau:
Bảng 2.1: Cấu trúc khung MAC theo IEEE 802.3/ Ethernet.
Mở đầu 555…5H SFD (D5H) Địa chỉ đích Địa chỉ nguồn Độ dài kiểu gói Dữ liệu PAD FCS
7byte 1 byte 2/6 byte 2/6 byte 2 byte 46-1500 byte 4 byte
- Preamble (mở đầu): trường này đánh dấu sự xuất hiện của khung bit, nó luôn mang giá trị 10101010. Từ nhóm bit này, phía nhận có thể tạo ra xung đồng hồ 10 Mhz. - SFD (start frame delimiter): trường này mới thực sự xác định sự bắt đầu của 1
khung. Nó luôn mang giá trị 10101011.
- Các trường Destination và Source: mang địa chỉ vật lý của các trạm nhận và gửi khung, xác định khung được gửi từ đâu và sẽ được gửi tới đâu.
25
- LEN: giá trị của trường nói lên độ lớn của phần dữ liệu mà khung mang theo. - FCS mang CRC (cyclic redundancy checksum): phía gửi sẽ tính toán trường này
trước khi truyền khung. Phía nhận tính toán lại CRC này theo cách tương tự. Nếu hai kết quả trùng nhau, khung được xem là nhận đúng, ngược lại khung coi như là lỗi và bị loại bỏ.
2.16.1.2 Cấu trúc địa chỉ Ethernet
Mỗi giao tiếp mạng Ethernet được định danh duy nhất bởi 48 bit địa chỉ (6 octet). Đây là địa chỉ được ấn định khi sản xuất thiết bị, gọi là địa chỉ MAC (Media Access Control Address ). Địa chỉ MAC được biểu diễn bởi các chữ số hexa ( hệ cơ số 16 ). Ví dụ:00:60:97:8F:4F:86 hoặc 00-60-97-8F-4F-86.Khuôn dạng địa chỉ MAC được chia làm 2 phần:
- 3 octet đầu xác định hãng sản xuất, chịu sự quản lý của tổ chức IEEE.
- 3 octet sau do nhà sản xuất ấn định.
Kết hợp ta lẽ có một địa chỉ MAC duy nhất cho một giao tiếp mạng Ethernet. Địa chỉ MAC được sử dụng làm địa chỉ nguồn và địa chỉ đích trong khung Ethernet.
2.16.1.3 Các loại khung Ethernet 2.16.1.3.1 Khung unicast 2.16.1.3.1 Khung unicast
Khung này được truyền tới một trạm xác định. Tất cả các trạm trong phân đoạn mạng trên sẽ đều nhận được khung này nhưng:
- Chỉ có trạm 2 thấy địa chỉ MAC đích của khung trùng với địa chỉ MAC của giao tiếp mạng của mình nên tiếp tục xử lý các thông tin khác trong khung. - Các trạm khác sau khi so sánh địa chỉ sẽ bỏ qua không tiếp tục xử lý
khung nữa.
2.16.1.3.2 Khung broadcast
Các khung broadcast có địa chỉ MAC đích là FF-FF-FF-FF-FF-FF. Khi nhận được các khung này, mặc dù không trùng với địa chỉ MAC của giao tiếp mạng của mình nhưng các trạm đều phải nhận khung và tiếp tục xử lý.
26
2.16.1.3.3 Khung multicast
Trạm nguồn gửi khung tới một số trạm nhất định chứ không phải là tất cả. Địa chỉ MAC đích của khung là địa chỉ đặc biệt mà chỉ các trạm trong cùng nhóm mới chấp nhận các khung gửi tới địa chỉ này.
2.16.1.4 Truy nhập bus sử dụng phương pháp CSMA/CD
Hình 2.19: Minh họa phương pháp CSMA/CD.
Nguyên tắc làm việc phương pháp CSMA/CD:
Theo phương pháp CSMA/CD, mỗi trạm đều có quyền truy nhập bus mà không cần một sự kiểm soát nào. Phương pháp được tiến hành như sau:
- Mỗi trạm đều phải tự nghe đường dẫn (carrier sense), nếu đường dẫn rỗi (không có tín hiệu ) thì mới được phát.
- Do việc lan truyền tín hiệu cần một thời gian nào đó, nên vẫn có khả năng hai trạm cùng phát tín hiệu lên đường dẫn. Chính vì vậy, trong khi phát thì mỗi trạm vẫn phải nghe đường dẫn để so sánh tín hiệu phát đi với tín hiệu nhận được xem có xảy ra xung đột hay không (collision detection).
- Trong trường hợp xảy ra xung đột, mỗi trạm đều phải hủy bỏ bức điện của mình, chờ một thời gian ngẫu nhiên và thử gửi lại.
27
2.16.2 Họ giao thức TCP/IP
TCP/IP là viết tắt của Transmission Control Protocol / Internet Protocol (Giao thức Điều Khiển Truyền Thông /Giao thức Internet).Các tầng trong mô hình này là:
- Tầng Ứng Dụng (Application Layer). - Tầng Giao Vận (Transport Layer). - Tầng Liên Mạng (Internet Layer).
- Tầng Giao Tiếp Mạng (Network Interface Layer).
Hình 2.20: Cấu trúc họ giao thức TCP/IP.
2.16.2.1 Tầng Ứng Dụng (Application Layer)
Gồm nhiều giao thức cung cấp cho các ứng dụng người dùng. Được sử dụng để định dạng và trao đổi thông tin người dùng và hệ thống. Một số giao thức thông dụng trong tầng này là: HTTP, FTP, SMTP,…Trong phạm vi đồ án, chúng ta sử dụng giao thức HTTP mà cụ thể là xây dựng một Webserver nhúng vào hệ thống.
HTTP là giao thức truyền tải siêu văn bản (HyperText Transfer Protocol). HTTP xác định cách các thông điệp được định dạng và truyền tải ra sao và hoạt động của Webserver và các trình duyệt Web.Trong mô hình của HTTP, Webserver đồng thời cũng là TCPServer, mở sẵn port mặc định dành cho dịch vụ HTTP là TCP80 (ở chế độ listen),
28
sẵn sàng đợi yêu cầu kết nối từ các client. Các client sẽ khởi tạo kết nối TCP thông qua port này, sau khi Webserver chấp nhận kết nối, client sẽ gửi một bản tin HTTP (HTTP message) gọi là HTTP request tới server trên kết nối TCP vừa thiết lập. Server sẽ trả lời lại bằng một bản tin HTTP khác là HTTP response. Bản tin này sẽ chứa nội dung trang Web yêu cầu (được viết bằng ngôn ngữ HTML). Như vậy giao thức HTTP sẽ dựa cơ bản trên các bản tin HTTP, gồm 2 loại là HTTP request và HTTP response.
Giả sử ta truy nhập vào địa chỉ IP của webserver là 192.168.1.177 qua trình duyệt:
- Lúc đó, máy tính của chúng ta sẽ gửi đi một bản tin request của giao thức HTTP là HTTP Get thông qua giao thức TCP (với cổng TCP được qui định cho giao thức HTTP là 80) đến địa chỉ webserver trên.
- Webserver, ở đây chính là vi điều khiển của chúng ta nhận được bản tin này (khi đã đi qua hết các lớp giao thức ethernet, IP, TCP rồi mới đến HTTP). Tại đây vi điều khiển sẽ đọc và phân tích bản tin HTTP request này để biết máy tính đang yêu cầu tải nội dung trang web nào.
- Sau đó vi điều khiển sẽ lấy nội dung trang web này (được soạn thảo theo ngôn ngữ HTML) chứa trên trên ROM, nó cũng có thể thêm vào trang web đó một số thông tin (ví dụ đọc giá trị từ các sensor cảm biến nhiệt độ và đưa vào trong trang web), và gửi toàn bộ nội dung trang web thông qua giao thức TCP trở lại cho máy tính. Nếu nội dung trang web lớn nó có thể được gửi đi trên rất nhiều gói tin, vì mỗi gói tin chỉ chứa tối đa 1460 byte dữ liệu.
- Máy tính nhận nội dung trang web và trình duyệt sẽ hiển thị lên cho chúng ta thấy. Để điều khiển thiết bị kết tới hệ thống từ xa qua web, trên trang web ta có thể thiết kế một nút nhấn chẳng hạn. Khi ta nhấn nút này trên trình duyệt, máy tính sẽ gửi đi một bản tin HTTP nữa là HTTP Get. Vi điều khiển sẽ nhận bản tin HTTP post này, phân tích dữ liệu chứa trong đó để có đáp ứng tương ứng (bật tắt bóng đèn) sau đó nó sẽ gửi trả lại lần nữa nội dung trang web đã cập nhật những thay đổi vừa rồi.Trình duyệt sẽ cập nhật nội dung này lên và ta sẽ thấy được tác động của thao tác điều khiển.
29
Nhiệm vụ của tầng là thiết lập phiên truyền thông giữa các máy tính và quy định cách truyền dữ liệu. Hai giao thức chính trong tầng này gồm UDP (User Datagram Protocol) và TCP (Transmission Control Protocol). Do UDP cung cấp các kênh truyền thông phi kết nối nên nó không đảm bảo truyền dữ liệu một cách tin cậy nên trong phạm vi đồ án chúng ta sử dụng thức TCP.Ngược lại với UDP, TCP cung cấp các kênh truyền thông hướng kết nối và đảm bảo truyền dữ liệu 1 cách tin cậy. TCP thường truyền các gói tin có kích thước lớn và yêu cầu phía nhận xác nhận về các gói tin đã nhận.
Cấu trúc gói TCP:
Hình 2.21: Cấu trúc gói TCP.
Chú thích:
- Số port đích và số port nguồn: để phân biệt các tiến trình ứng dụng đang xảy ra trong máy tính
- Các số sequence và Acknowledgement: số sequence để phân biệt các segment khác nhau trong một dòng dữ liệu, các số Acknowledgement dùng trong cơ chế xác nhận
- Vùng Data offset: chiều dài của Header tính theo đơn vị 32 bit Vùng Window: chỉ ra số lượng không gian bộ đệm khả dụng để nhận dữ liệu
- Vùng Checksum: vùng kiểm tra sai cho cả segment - Vùng Urgent Pointer: chỉ ra chiều dài của dữ liệu urgent - Vùng Options: xác định kích thước cực đại của 1 segment
30
Cụ thể hơn, vai trò của TCP trong chồng giao thức TCP gồm 3 chức năng chính: điều khiển luồng, kiểm soát lỗi và báo nhận.
- Điều khiển luồng: điều phối tốc độ và kích thước luồng dữ liệu để đảm bảo phía nhận đủ khả năng nhận và xử lý luồng dữ liệu.
- Kiểm soát lỗi: đảm bảo các gói tin đến đúng và đủ.
- Báo nhận: khi nhận được dữ liệu và không có lỗi, phía nhận phải báo lại với phía gửi biết.
Để thực hiện được các chức năng đó, một quá trình truyền dữ liệu qua giao thức TCP (mà ta gọi là phiên truyền thông – session) gồm có 3 giai đoạn: Thiết lập kết nối, truyền dữ liệu và giải phóng kết nối.
Để có thể giám sát chặt chẽ trạng thái và mọi sự kiện xảy ra trong một kết nối TCP, trạng thái của một kết nối TCP được chuyển đổi tuân theo một lưu đồ trạng thái như sau:
31
Giải thích:
- TCP là giao thức hướng kết nối, dạng client – server. Tức là trong một phiên truyền thông thì sẽ có một phía đóng vai trò client, phía còn lại, lúc nào cũng ở trạng thái chờ đợi các client thiết lập kết nối tới chính là server.
- Ví dụ khi ta truy cập web, thì máy tính của ta là client, máy chủ chứa trang web chính là server – vi điều khiển, lúc nào cũng ở trạng thái đợi các máy tính client kết nối đến (và phải có khả năng thiết lập đồng thời nhiều kết nối, vì có thể có nhiều client kết nối tới cùng lúc).
- Trong lưu đồ trên, áp dụng cho cả client và server. Cả client và server đều bắt đầu bằng trạng thái “Close”. Client sẽ thiết lập kết nối theo con đường Active Open (nó chủ động thiết lập kết nối). Server sẽ thiết lập kết nối theo con đường Passive Open (thụ động, vì nó đợi client bắt đầu mà)
Quá trình chuyển trạng thái:
- Cả hai bắt đầu bằng trạng thái close, không có kết nối nào tồn tại. Khi Server mở một port TCP để đợi client thiết lập kết nối, nó chuyển sang trạng thái “Listen”.
- Khi client gửi đi bản tin SYN, nó chuyển sang trạng thái “SYN sent”. Lúc này khi server nhận được bản tin SYN từ client và gửi đáp lại 1 bản tin SYN, nó chuyển sang trạng thái “SYN Received”.
- Lúc này client gửi lại bản tin xác nhận ACK (bước 3 trong ví dụ), nó chuyển sang