Neste tutorial, vamos aprender como fazer nosso próprio medidor de EC e salinidade do solo usando basicamente o Arduino, o Sensor Condutividade do Solo RS485 THC-S, um Conversor de dados TTL para RS485 e alguns jumpers para fazer as devidas conexões. Antes vamos aprender algumas coisas.
A condutividade elétrica do solo (EC) é uma medida da quantidade de sais no solo (salinidade do solo). Ela é um importante indicador da saúde do solo, capaz de afetar o rendimento das culturas, a adequação, a disponibilidade de nutrientes e a atividade dos microrganismos. A salinidade é uma medida de sais solúveis no solo ou na água, onde as moléculas de sal compreendem um cátion de sódio, potássio , cálcio e um ânion de cloreto ou sulfato. O excesso de sais impede o crescimento das plantas, afetando o equilíbrio água-solo.
Embora a EC não forneça uma medição direta de íons específicos ou compostos de sal, ela se correlaciona com as concentrações de nitratos, potássio, sódio, cloreto, sulfato e amônia. Esta é a razão pela qual a medição da Condutividade Elétrica do Solo e Salinidade do Solo é importante. A EC do solo pode ser medida através de eletrodos inseridos diretamente no solo ou extraindo a água do solo usando um lisímetro.
Neste sistema proposto, mediremos o EC e Salinidade do Solo usando nosso próprio Medidor de EC do Solo DIY Arduino. O tipo de sensor de condutividade elétrica do solo que usaremos é o Sensor Condutividade, Umidade e Temperatura do Solo RS485 THC-S. O sensor funciona no protocolo Modbus. Usando algum comando Modbus, podemos solicitar o valor de EC a salinidade do Solo medida pelo sensor.
Exibiremos o valor de EC do solo e o valor de salinidade em um Display Oled 0,96. Anteriormente, discutimos a medição do valor NPK do solo e do valor do pH do solo usando um sensor baseado em Modbus semelhante. Usaremos uma abordagem semelhante agora para calcular a salinidade do solo e a condutividade do Solo . O Sensor EC do Solo junto com o Arduino pode fornecer leitura digital de EC e Salinidade.
Significado de Condutividade Elétrica e Salinidade do Solo
A condutividade elétrica do solo (CE) é a medida da capacidade da água do solo de transportar corrente elétrica. A condutividade elétrica é um processo eletrolítico que ocorre principalmente através de poros cheios de água. Os cátions como Ca2+, Mg2+, K+, Na+ & NH4+ e ânions como SO42-, Cl-, NO3 – & HCO3 – dos sais dissolvidos carregam cargas elétricas. As cargas elétricas são responsáveis pela condução da corrente elétrica. Assim, a concentração de íons determina a CE dos solos.
Na agricultura, a EC é usada principalmente como medida de salinidade do solo. A salinidade do solo é uma medida dos minerais e sais que podem ser dissolvidos na água. A EC é expressa em Siemens por metro (S/m), enquanto a Salinidade é expressa em mg/Kg.
Condutividade Elétrica do Solo (EC) e Sensor de Salinidade THC-S
O Sensor Condutividade, Umidade e Temperatura do Solo RS485 THC-S é um sensor de solo de baixo custo para aplicação de medição de EC e salinidade. Ele é projetado com os padrões da indústria, apresentando alta precisão, alta sensibilidade e durabilidade. Você pode usar este sensor para a avaliação das condições do solo. Pode testar rapidamente a condutividade e a salinidade de diferentes tipos de solo. Existem vários sensores de condutividade elétrica e salinidade do solo. Mas este sensor é o melhor para aplicações práticas.
O interior do sensor possui um chip de alta qualidade, com baixo consumo de energia, apresentando alta sensibilidade e estabilidade. A sonda do sensor é feita usando aço inoxidável 316 como matéria-prima. É por isso que o sensor tem resistência antiferrugem, resistência à eletrólise, sal e resistência à corrosão alcalina. Isso garante a operação a longo prazo do solo e é adequado para vários tipos de solo.
Você pode usar este sensor em experimentos científicos, irrigação com economia de água, jardinagem, estufas, agricultura ao ar livre, horticultura e gerenciamento de grama. O sensor também é mais adequado para aplicações como silvicultura, agricultura de precisão e outros cenários profissionais de monitoramento ambiental.
Características do Sensor Condutividade THC-S
- Sensor e chips EC de solo de alta qualidade;
- Sensor com projeto especial, com grande penetração no solo;
- Tecnologia de detecção única, com uma ampla faixa de trabalho;
- Sensor de salinidade do solo de alta qualidade com capacidade de detecção estável;
- Design portátil e teste fácil;
- Baixo consumo de energia;
- Caixa IP68, com função totalmente à prova d’água.
Especificações do Sensor Condutividade THC-S
- Fonte de alimentação: 5-30VDC;
- Sinal de saída: Modbus RS485;
- Faixa de temperatura de trabalho: -40℃ a 80℃;
- Faixa de medição de condutividade elétrica: 0-10000us/cm;
- Resolução de condutividade: 10us/cm;
- Tempo de resposta: <1s;
- Nível de proteção: Caixa impermeável IP68.
Pinagem do Sensor Condutividade THC-S
O Sensor possui 4 pinos como VCC, GND, 485-A e 485-B . O Sensor opera com tensão de 5V a 30VDC. Você não obterá nenhuma saída se fornecer algo menor que 5V. Interface do Sensor Condutividade, Umidade e Temperatura do Solo RS485 THC-S.
Agora, vamos fazer a interface do Sensor de Salinidade EC do Solo THC-S com a Placa Arduino Nano usando o Conversor de dados TTL para RS485. O diagrama de conexão é dado abaixo:
Esquemático Projeto Sensor Condutividade do Solo Arduino
Conecte o pino R0 e DI do Modbus ao D2 e D3 do Arduino usando o Software Serial. Da mesma forma, temos que habilitar DE e RE high, o que é feito conectando-os aos pinos D7 e D8 do Arduino. O Sensor EC tem 4 fios. O marrom é VCC que precisa de uma fonte de alimentação. O pino GND que é de cor preta precisa ser conectado ao GND do Arduino. Conecte o fio azul que é o pino B ao pino B do MAX485. Conecte também o fio amarelo que é o pino A ao pino A do MAX485.
O display OLED SSD1306 de 0,96″ é um módulo I2C. Conecte o pino OLED Display VCC e GND ao 3.3V e GND do Arduino. Da mesma forma, conecte os pinos OLED SDA e SCL aos pinos A4 e A5 do Arduino. Você pode seguir o diagrama de circuito e montar o circuito em uma placa de ensaio (protoboard).
Comando Modbus para Sensor EC de Solo
Os comandos Modbus podem instruir um dispositivo Modbus a:
1. Alterar o valor em um de seus registros, que é escrito nos registros Coil and Holding;
2. Ler uma porta de E/S : Ler dados das portas Discrete e Coil;
3. Comandar o dispositivo para enviar de volta um ou mais valores contidos em seu registro Coil and Holding.
Um comando Modbus contém o endereço Modbus do dispositivo ao qual se destina ( 1 a 247 ). Apenas o dispositivo endereçado responderá e agirá no comando, mesmo que outros dispositivos possam recebê-lo.
O Sensor EC do Solo possui 3 diferentes para leitura do valor de EC do Solo e Salinidade do Solo. Você pode obter o endereço do bit de consulta na Documentação Sensor THC-S.
Valor EC do Solo
O quadro de consulta para o Valor EC do Solo é:
Você receberá o seguinte como resposta:
Você pode calcular a condutividade do solo a partir da resposta que você recebe. Por exemplo, se você receber 5DC como resposta, o Valor EC do Solo será:
5DC H(hexadecimal) =1500 (Decimal) => Condutividade =1500us/cm
Valor da salinidade do solo
O quadro de consulta para o valor da salinidade do solo é:
Você receberá o seguinte como resposta:
Você pode calcular a salinidade do solo a partir da resposta que você recebe. Por exemplo, se você receber 69 como resposta, o Valor da Salinidade do Solo será:
69 H(hexadecimal) =105 (Decimal) => Salinidade = 105mg/L
Código de Programação do THC-S
Aqui está o código-fonte para a interface do Sensor de Salinidade do Solo com o Arduino. Você pode usar este código com sensor e o Arduino para recuperar o valor da condutividade elétrica do solo e o valor da Salinidade do Solo através do comando Modbus. Você pode enviar o comando e recuperar o valor em código HEX. O código HEX precisa ser convertido em decimal para obter os dados de conteúdo de nutrientes do solo medidos.
Como estamos usando o display OLED para exibir o valor de EC e salinidade do solo, você precisará da biblioteca OLED. Baixe a seguinte biblioteca OLED e adicione-a ao Arduino IDE.
1. Biblioteca Adafruit SSD1306
2. Biblioteca Adafruit GFX
Aqui está o código fonte completo. Compile o código e faça o upload para a placa Arduino Nano.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
#include <SoftwareSerial.h> #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define RE 8 #define DE 7 const byte ec[] = {0x01, 0x03, 0x00, 0x15, 0x00, 0x01, 0x95, 0xCE}; const byte salinity[] = {0x01, 0x03, 0x00, 0x14, 0x00, 0x01, 0xC4, 0x0E}; byte values[8]; SoftwareSerial mod(2, 3); #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 64 // OLED display height, in pixels #define OLED_RESET -1 // Reset pin # (or -1 if sharing reset pin) Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); void setup() { Serial.begin(9600); mod.begin(9600); pinMode(RE, OUTPUT); pinMode(DE, OUTPUT); if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { Serial.println(F("SSD1306 allocation failed")); for (;;); // Don't proceed, loop forever } display.display(); delay(100); display.clearDisplay(); display.setTextColor(WHITE); display.setTextSize(1); display.setCursor(20, 30); display.print("Soil Analysis"); display.display(); delay(2000); } void loop() { /**************Soil EC Reading*******************/ digitalWrite(DE, HIGH); digitalWrite(RE, HIGH); delay(10); if (mod.write(ec, sizeof(ec)) == 8) { digitalWrite(DE, LOW); digitalWrite(RE, LOW); for (byte i = 0; i < 7; i++) { values[i] = mod.read(); Serial.print(values[i], HEX); } Serial.println(); } int soil_ec = int(values[3]<<8|values[4]); delay(1000); /**************Soil Salinity Reading*******************/ digitalWrite(DE, HIGH); digitalWrite(RE, HIGH); delay(10); if (mod.write(salinity, sizeof(salinity)) == 8) { digitalWrite(DE, LOW); digitalWrite(RE, LOW); for (byte i = 0; i < 7; i++) { values[i] = mod.read(); Serial.print(values[i], HEX); } Serial.println(); } int soil_salinity = int(values[4]); delay(1000); Serial.print("Soil EC: "); Serial.println(soil_ec); Serial.print("Soil Salinity: "); Serial.println(soil_salinity); display.clearDisplay(); display.setTextSize(2); display.setCursor(0,10); display.print("EC:"); display.print(soil_ec); display.setTextSize(1); display.print(" us/cm"); display.setTextSize(2); display.setCursor(0,40); display.print("SL:"); display.print(soil_salinity); display.setTextSize(1); display.print(" mg/L"); display.display(); delay(2000); } |
Monitorando Dados de EC e Salinidade do Solo no Display OLED
Depois de fazer o upload do código para a placa Arduino Nano, o OLED será inicializado junto com o sensor. O sensor levará algum tempo para se estabilizar e a leitura pode ficar incorreta por alguns segundos.
Assim que o sensor estiver estabilizado, você pode mergulhar o sensor no solo para obter a leitura de EC e salinidade do solo. O display OLED exibirá o valor EC em micro Simens por centímetro (us/cm) e o valor de salinidade em miligramas por quilograma (mg/kg).
Então é assim que você conecta o Sensor de Salinidade EC do Solo com o Arduino e obtém as Leituras de Salinidade EC do Solo. Da mesma forma, coloque o sensor em diferentes amostras de solo. Você verá uma variação no valor de EC/salinidade dependendo do tipo de solo.
Post original em: https://how2electronics.com/diy-soil-ec-salinity-meter-using-arduino-soil-ec-sensor/
Escrito por Alex Newton.
(Texto traduzido e adaptado).