Phần 5. Ứng dụng IoT để theo dõi độ ẩm của đất

0
1429

Bài viết trước đã xem xét đo lường và sử dụng đặc tính môi trường xung quanh để dự đoán sự phát triển của cây trồng, trong đó đề cập đến vấn đề nhiệt độ. Tuy nhiên, để kiểm soát được nhiệt độ rất tốn kém, đòi hỏi phải kiểm soát được môi trường. Một trong những đặc tính môi trường dễ kiểm soát nhất đối với cây trồng là nước, có thể thực hiện từ các hệ thống tưới tiêu quy mô từ lớn đến bé như bình nước tưới của trẻ nhỏ.

Bài viết này giới thiệu về cách đo độ ẩm của đất và về cảm biến độ ẩm, phương thức để các cảm biến và thiết bị truyền động giao tiếp với các thiết bị IoT.

Một số nội dung chính của bài viết:

1. Độ ẩm của đất

2. Cách cảm biến giao tiếp với các thiết bị IoT

3. Đo độ ẩm trong đất

4. Hiệu chuẩn cảm biến

1. Độ ẩm của đất

Cây cần nước để phát triển, cây có khả năng hấp thụ nước qua tất cả bộ phận trong đó phần lớn là qua hệ thống rễ.

Cây sử dụng nước để:

– Quang hợp: cây tạo ra phản ứng hóa học từ nước, CO2 và ánh sáng để tạo ra carbohydrate và O2.

– Thoát hơi nước: cây sử dụng nước để khuếch tán CO2 từ không khí vào cây thông qua các lỗ trên lá. Quá trình này cũng mang các chất dinh dưỡng cho cây và làm mát cây, tương tự như cách con người đổ mồ hôi.

– Giữ cấu trúc cho cây: cây cũng cần nước để duy trì cấu trúc 90% là nước (với con người khoảng 60%), và lượng nước này giữ cho các tế bào luôn cứng cáp. Nếu cây không có đủ nước, cây sẽ héo và chết.

Hệ thống rễ hấp thụ nước từ độ ẩm của đất. Nếu trong đất quá ít nước thì cây không thể hấp thụ đủ nướcđể phát triển, ngược lại, nếu quá nhiều nước làm cho rễ không thể hấp thụ đủ oxy cần thiết dẫn đến rễ chết và cây không nhận đủ chất dinh dưỡng để tồn tại.

Để cây phát triển tốt nhất, đất cần không quá ướt hay quá khô. Các thiết bị IoT có thể hỗ trợ bằng cách đo độ ẩm của đất, cho phép người nông dân chỉ tưới nước khi cần thiết.

Các cách đo độ ẩm của đất

Có nhiều loại cảm biến khác nhau sử dụng để đo độ ẩm của đất:

– Cảm biến điện trở: Cảm biến điện trở có 2 chân cắm vào đất. Do nước là chất dẫn điện tốt nên khi đặt một dòng điện vào một chân, chân còn lại cũng có điện. Sau đó, cảm biến sẽ đo điện trở của đất, đo dòng điện ở chân thứ hai giảm bao nhiêu. Lượng nước trong đất càng cao thì điện trở càng giảm.

Có thể chế tạo cảm biến độ ẩm đất bằng điện trở bằng cách sử dụng hai mảnh kim loại như đinh, cách nhau vài cm và đo điện trở giữa hai chân bằng đồng hồ vạn năng.

– Cảm biến điện dung: cảm biến độ ẩm điện dung đo lượng điện tích được lưu trữ trên tấm điện dung. Điện dung của đất thay đổi khi độ ẩm thay đổi và được chuyển đổi thành điện áp, được đo bằng thiết bị IoT. Đất càng ướt, điện áp phát ra càng thấp.

Cả hai loại cảm biến trên đều là cảm biến tương tự, trả về giá trị điện áp tương ứng với độ ẩm của đất.

2. Cách cảm biến giao tiếp với các thiết bị IoT

Để giao tiếp với hầu hết các cảm biến và thiết bị truyền động, cần một số phần cứng và một giao thức truyền thông để gửi và nhận dữ liệu.

Ví dụ cảm biến độ ẩm đất điện dung. Cảm biến này kết nối với thiết bị IoT như thế nào?

– Nếu cảm biến này đo điện áp là tín hiệu tương tự thì cần một bộ ADC để chuyển đổi giá trị tương tự sang giá trị số nhưng mỗi bit được gửi trong bao lâu?

– Nếu cảm biến trả về một giá trị số là một dòng 0s và 1s thì câu hỏi lặp lại là mỗi bit được gửi trong bao lâu?

– Nếu điện áp ở mức cao trong 0,1 giây thì đó là 1 bit, hay 2 bit 1 liên tiếp, hay 10 bit?

– Số bắt đầu từ thời điểm nào? 00001101 là 25 hay 5 bit đầu tiên là giá trị cuối của giá trị trước đó?

Phần cứng cung cấp kết nối vật lý để gửi dữ liệu bằng các giao thức truyền thông sao cho dữ liệu được gửi hoặc nhận một cách chính xác.

Chân đầu ra đầu vào mục đích chung (GPIO)

GPIO là tập hợp các chân sử dụng để kết nối phần cứng với thiết bị IoT và thường có sẵn trên các bộ công cụ dành cho nhà phát triển IoT như Raspberry Pi hoặc Wio Terminal. Có thể sử dụng các giao thức truyền thông khác nhau qua các chân GPIO. Một số chân GPIO cung cấp điện áp, thường là 3,3V hoặc 5V, một số chân nối đất và những chân khác được lập trình để gửi điện áp (đầu ra) hoặc nhận điện áp (đầu vào).

Mạch điện cần kết nối điện áp với đất. Có thể coi điện áp là cực dương (+ve) của pin và đất là cực âm (-ve).

Nối các chân GPIO trực tiếp với một số cảm biến và thiết bị truyền động số khi chỉ quan tâm đến các giá trị bật (cao) hoặc tắt (thấp).

* Một số ví dụ:

– Nút nhấn. Có thể kết nối một nút nhấn giữa chân 5V và một chân của GPIO để đặt đầu vào. Khi nhấn nút, tạo nên một mạch kín giữa chân 5V thông qua nút đến chân đầu vào. Từ code, có thể đọc điện áp tại chân đầu vào: nếu điện áp cao (5V) nghĩa là nút được nhấn, nếu điện áp thấp (0V) thì nút không được nhấn. Thực ra giá trị đọc được không phải là điện áp thực tế, mà đó là tín hiệu số 1 hay 0 tùy thuộc vào điện áp có trên ngưỡng hay không.

– LED. Có thể kết nối đèn LED giữa chân đầu ra và chân nối đất. Từ code, có thể đặt chân đầu ra thành cao tương ứng với 3,3V, tạo mạch từ chân 3,3V,thông qua đèn LED, đến chân nối đất làm sáng đèn LED.

Đối với các cảm biến cao cấp hơn, có thể sử dụng các chân GPIO để gửi và nhận dữ liệu số trực tiếp từ cảm biến và thiết bị truyền động số hoặc thông qua bảng điều khiển với ADC và DAC để giao tiếp với cảm biến và thiết bị truyền động tương tự.

Nếu đang sử dụng Raspberry Pi, Grove Base Hat sẽ có phần cứng để chuyển đổi tín hiệu cảm biến tương tự sang kỹ thuật số để gửi qua GPIO.

Các chân analog

Một số thiết bị, như thiết bị Arduino cung cấp các chân analog giống các chân GPIO, nhưng khác là ngoài hỗ trợ tín hiệu kỹ thuật số, chúng còn có bộ ADC để chuyển đổi dải điện áp thành các giá trị số. Thông thường ADC có độ phân giải 10 bit (chuyển đổi điện áp thành giá trị 0 – 1.023)

Ví dụ: trên bo mạch 3,3V, nếu cảm biến trả về 3,3V thì giá trị trả về là 1.023. Nếu điện áp trả về là 1,65V, giá trị trả về là 511.

Cảm biến độ ẩm của đất dựa trên điện áp, vì vậy sẽ sử dụng các chân analog và đưa ra các giá trị từ 0- 1.023.

Giao thức I2C

I2C (Inter squared Circuit) là một giao thức đa bộ điều khiển, đa ngoại vi, kết nối bất kỳ thiết bị nào đều có thể hoạt động như một bộ điều khiển hoặc thiết bị ngoại vi giao tiếp qua bus I2C (bus dùng để chỉ một hệ thống truyền thông truyền dữ liệu). Dữ liệu được gửi dưới dạng các gói có định địa chỉ, trong đó mỗi gói chứa địa chỉ của thiết bị đã kết nối mà nó được sử dụng.

Mô hình này từng được gọi là master/slave, hiện nay Hiệp hội phần cứng nguồn mở đã thông qua tên gọi bộ điều khiển/thiết bị ngoại vi, nhưng vẫn có thể tham chiếu đến thuật ngữ cũ.

Khi kết nối với bus I2C, các thiết bị có địa chỉ thường được mã hóa cứng trên thiết bị. Ví dụ, mỗi loại cảm biến Grove của Seeed có cùng địa chỉ, vì vậy tất cả các cảm biến ánh sáng có cùng địa chỉ, tất cả các nút có cùng địa chỉ khác với địa chỉ cảm biến ánh sáng. Một số thiết bị thay đổi địa chỉ bằng cách thay đổi cài đặt jumper hoặc chân hàn với nhau.

I2C có bus gồm 2 dây chính và 2 dây nguồn:

DâyTênMô tả
SDASerial DataĐể gửi dữ liệu giữa các thiết bị.
SCLSerial ClockGửi tín hiệu clock theo tốc độ do bộ điều khiển thiết lập
VCCVoltage common collectorCấp nguồn cho thiết bị. Dây này kết nối với các dây SDA và SCL để cung cấp năng lượng thông qua một điện trở pull-up để tắt tín hiệu khi không có bộ điều khiển.
GNDGroundNối đất chung cho mạch điện

Để gửi dữ liệu, một thiết bị sẽ gửi lệnh ‘start’ báo hiệu thiết bị đã sẵn sàng để gửi dữ liệu. Khi đó, nó trở thành bộ điều khiển gửi địa chỉ của thiết bị muốn giao tiếp yêu cầu đọc hoặc ghi dữ liệu. Sau khi truyền dữ liệu đi, bộ điều khiển sẽ gửi một điều kiện ‘stop’ để báo hiệu kết thúc. Sau đó, chuyển quyền điều khiển cho thiết bị khác để gửi hoặc nhận dữ liệu.

I2C có giới hạn tốc độ tương ứng với 3 chế độ khác nhau. Nhanh nhất là chế độ High speed với tốc độ tối đa là 3,4 Mbp (rất ít thiết bị hỗ trợ tốc độ này). Chế độ nhanh chạy ở tốc độ 400Kbps, ví dụ như Raspberry Pi và chế độ tiêu chuẩn chạy ở tốc độ 100Kbps.

Nếu đang sử dụng Raspberry Pi với Grove Base Hat làm phần cứng IoT, sẽ thấy một số vị trí cắm I2C trên bo mạch để giao tiếp với các cảm biến I2C. Cảm biến Analog Grove cũng sử dụng I2C với một bộ ADC để gửi các giá trị tương tự dưới dạng dữ liệu số, vì vậy cảm biến ánh sáng cũng gửi giá trị qua I2C vì Raspberry Pi chỉ hỗ trợ các chân kỹ thuật số.

Bộ truyền-nhận dữ liệu nối tiếp không đồng bộ (UART)

UART liên quan đến mạch vật lý cho phép hai thiết bị giao tiếp với nhau. Mỗi thiết bị có 2 chân giao tiếp – truyền (Tx) và nhận (Rx), với chân Tx của thiết bị này được kết nối với chân Rx của thiết bị kia và ngược lại. Do đó nó cho phép gửi dữ liệu theo cả hai hướng.

Thiết bị 1 truyền dữ liệu từ chân Tx đến chân Rx của thiết bị 2 và nhận dữ liệu trên chân Rx của mình từ chân Tx của thiết bị 2.

Dữ liệu được gửi từng bit một được gọi là giao tiếp nối tiếp. Hầu hết các hệ điều hành và bộ vi điều khiển đều có cổng nối tiếp gửi và nhận dữ liệu nối tiếp có sẵn cho việc lập trình.

Các thiết bị UART có tốc độ truyền (được gọi là tốc độ Symbol), là tốc độ dữ liệu được gửi và nhận tính bằng bit/giây. Tốc độ truyền phổ biến là 9.600, nghĩa là 9.600 bit (0s và 1s) dữ liệu được gửi mỗi giây.

UART sử dụng bit start (để thông báo sắp gửi một byte dữ liệu) và bit stop (sau khi gửi một byte dữ liệu).

Tốc độ UART phụ thuộc vào phần cứng, nhưng không vượt quá 6,5 Mbps.

Có thể sử dụng UART qua các chân GPIO, đặt một chân là Tx và một chân khác là Rx, sau đó kết nối chúng với thiết bị khác.

Nếu đang sử dụng Raspberry Pi với Grove Base Hat làm phần cứng IoT, sẽ thấy ổ cắm UART trên bo mạch sử dụng để giao tiếp với các cảm biến sử dụng giao thức UART.

Giao diện ngoại vi nối tiếp (SPI)

SPI để giao tiếp trong khoảng cách ngắn, như trên vi điều khiển để giao tiếp với thiết bị lưu trữ như bộ nhớ flash. Nó dựa trên một bộ điều khiển/mô hình ngoại vi với một bộ điều khiển duy nhất (thường là bộ xử lý của thiết bị IoT) tương tác với nhiều thiết bị ngoại vi. Bộ điều khiển kiểm soát thiết bị bằng cách chọn một thiết bị ngoại vi và gửi hoặc nhận dữ liệu.

Bộ điều khiển SPI sử dụng 3 chân chính và 1 chân phụ cho mỗi thiết bị ngoại vi. Thiết bị ngoại vi sử dụng 4 dây gồm:

ChânTênMô tả
COPIController Output, Peripheral InputĐể gửi dữ liệu từ bộ điều khiển đến thiết bị ngoại vi.
CIPOController Input, peripheral OutputĐể gửi dữ liệu từ thiết bị ngoại vi đến bộ điều khiển.
SCLKSerial ClockGửi tín hiệu clock với tốc độ do bộ điều khiển thiết lập
CSChip SelectBộ điều khiển có nhiều chân, một chân cho mỗi thiết bị ngoại vi và mỗi chân kết nối với dây CS trên thiết bị ngoại vi tương ứng.

Chân CS giao tiếp qua chân COPI và CIPO để kích hoạt một thiết bị ngoại vi tại một thời điểm. Khi bộ điều khiển cần thay đổi thiết bị ngoại vi, nó sẽ ngắt kết nối chân CS với thiết bị ngoại vi hiện tại, sau đó kích hoạt kết nối với thiết bị ngoại vi mà nó muốn giao tiếp.

SPI hoạt động chế độ song công, nghĩa là bộ điều khiển có thể gửi và nhận dữ liệu cùng lúc từ cùng một thiết bị ngoại vi sử dụng chân COPI và CIPO. SPI sử dụng tín hiệu clock trên chân SCLK giúp đồng bộ hóa thiết bị, vì vậy khác với gửi trực tiếp qua UART, nó không cần các bit start và stop.

SPI không có giới hạn tốc độ xác định, có thể truyền dữ liệu với tốc độ hàng megabyte.

Các bộ công cụ dành cho nhà phát triển IoT thường hỗ trợ SPI qua một số chân GPIO. Ví dụ: trên Raspberry Pi, có thể sử dụng các chân GPIO 19, 21, 23, 24 và 26 cho SPI.

Wireless

Các cảm biến giao tiếp qua giao thức không dây tiêu chuẩn như Bluetooth (chủ yếu là Bluetooth Low Energy hoặc BLE), LoRaWAN (giao thức mạng công suất thấp phạm vi dài) hoặc WiFi, cho phép các cảm biến từ xa không cần kết nối vật lý với thiết bị IoT.

Một ví dụ là trong các cảm biến độ ẩm đất, chúng sẽ đo độ ẩm của đất trên cánh đồng, sau đó gửi dữ liệu qua LoRaWan đến thiết bị trung tâm, thiết bị này sẽ xử lý dữ liệu hoặc gửi qua Internet. Trường hợp này cho phép cảm biến cách xa thiết bị IoT quản lý dữ liệu, giảm tiêu thụ điện năng và nhu cầu về mạng WiFi lớn hoặc cáp dài.

BLE phổ biến cho các cảm biến tiên tiến như bộ theo dõi thể dục, hoạt động trên cổ tay. Chúng kết hợp nhiều cảm biến và gửi dữ liệu cảm biến đến thiết bị IoT về điện thoại người dùng thông qua BLE.

Các thiết bị thương mại kết nối phổ biến qua Zigbee. Zigbee sử dụng WiFi tạo thành mạng lưới giữa các thiết bị, mỗi thiết bị kết nối với nhiều thiết bị lân cận nhất có thể tạo thành số lượng lớn các kết nối giống như một mạng nhện. Khi một thiết bị muốn gửi tin nhắn tới Internet, nó có thể gửi đến các thiết bị gần nhất, sau đó chuyển tiếp tin nhắn đến các thiết bị lân cận khác cho đến khi đến được bộ chuyển tiếp và gửi tới Internet.

3. Cách đo độ ẩm trong đất

Đo độ ẩm trong đất bằng cách sử dụng cảm biến độ ẩm của đất, một thiết bị IoT và cây trồng trong nhà hoặc mảnh đất gần đó.

Cách đo độ ẩm của đất

Làm theo các hướng dẫn sau để đo độ ẩm của đất bằng thiết bị IoT:

Arduino – Wio Terminal

Single-board computer – Raspberry Pi

Single-board computer – Virtual device

4. Hiệu chuẩn cảm biến

Các cảm biến dựa vào việc đo các đặc tính điện như điện trở hoặc điện dung.

Những phép đo này không phải lúc nào cũng cho giá trị với đơn vị mong muốn. Nhiều trường hợp, cần chuyển đổi giá trị đo về đơn vị mong muốn bằng cách được hiệu chuẩn.

Một số cảm biến đã được hiệu chuẩn trước. Trong nhà máy, cảm biến đầu tiên sẽ tiếp xúc với một loạt các nhiệt độ đã biết và đo được điện trở. Sau đó được chuyển đổi từ giá trị đo bằng Ω sang 0C.

Công thức tính lực cản từ nhiệt độ được gọi là phương trình Steinhart – Hart.

Hiệu chuẩn cảm biến độ ẩm của đất

Độ ẩm của đất được đo bằng trọng lượng hoặc thể tích hàm lượng nước

Trọng lượng là trọng lượng của nước trong một đơn vị trọng lượng của đất, là số kilôgam nước trên một kilôgam đất khô.

Thể tích là thể tích của nước trong một đơn vị thể tích đất được đo, là số mét khối nước trên mét khối đất khô.

Cảm biến độ ẩm của đất đo điện trở hoặc điện dung không chỉ thay đổi theo độ ẩm của đất mà còn phụ thuộc vào loại đất vì các thành phần trong đất làm thay đổi các đặc tính điện của nó. Lý tưởng nhất là các cảm biến đã được hiệu chuẩn, nghĩa là lấy các số đọc từ cảm biến và so sánh với các phép đo.

Biểu đồ trên cho thấy cách hiệu chỉnh cảm biến. Ghi lại điện áp của một mẫu đất sau đó đo trong phòng thí nghiệm bằng cách so sánh trọng lượng đất ẩm với trọng lượng đất khô (bằng cách đo trọng lượng đất ướt, sau đó làm khô trong tủ sấy và đo khô). Dựa vào kết quả có được, vẽ đồ thị và nối các điểm với nhau thành đường thẳng gần đúng nhất. Có thể sử dụng đường này để chuyển đổi các chỉ số cảm biến độ ẩm của đất do thiết bị IoT thu được thành các phép đo độ ẩm thực tế của đất.

Đối với cảm biến độ ẩm đất bằng điện trở, điện áp tăng tỷ lệ thuận với độ ẩm của đất. Đối với cảm biến độ ẩm đất điện dung, điện áp giảm khi độ ẩm của đất tăng lên.

Biểu đồ trên cho thấy điện áp từ cảm biến độ ẩm của đất từ đó có thể tính toán được độ ẩm thực của đất.

Khi đó người nông dân chỉ cần sử dụng một vài phép đo trong phòng thí nghiệm cho một cánh đồng, sau đó có thể sử dụng các thiết bị IoT để đo độ ẩm của đất giúp tăng tốc đáng kể thời gian thực hiện phép đo.

Biên dịch: Bắc Đặng

Để cập nhật tin tức công nghệ mới nhất và các sản phẩm của công ty AIoT JSC, vui lòng truy cập link: http://aiots.vn hoặc linhkienaiot.com

0 0 Phiếu bầu
Article Rating
Subscribe
Notify of
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả các bình luận