Call Phone +8618073152920 горячая линия: +8618073152920
Call Phone +8618073152920
КОНТАКТ/ CONTACT US
горячая линия +8618073152920
Changsha Zoko Link Technology Co., Ltd.

Email:Qiang@niubol.com

WhatsApp:+8615388025079

Адрес:Room 102, District D, Houhu Industrial Park, Yuelu District, Changsha City, Hunan Province, China

Техническая поддержка

Датчик влажности почвы Код Arduino

время:2024-06-29 21:07:28 Популярность:1800

Датчик влажности почвы 8 в 1 Rs485 для arduino

В этом руководстве мы рассмотрим, как подключить датчик влажности и температуры почвы 8 в 1 к Arduino с помощью протокола RS485. Эта настройка позволит нам контролировать влажность и температуру почвы, которые являются важнейшими параметрами для сельского хозяйства и садоводства.

Датчики влажности почвы измеряют объемное содержание воды в почве. Понимая уровни влажности, фермеры и садоводы могут принимать обоснованные решения об орошении, обеспечивая оптимальный рост растений. Температура почвы также играет важную роль в здоровье растений, влияя на рост корней и усвоение питательных веществ.

Интегрированный датчик почвы 8-в-1.jpg

Для этого проекта мы будем использовать датчик влажности и температуры почвы Niubol 8 в 1, который специально разработан для измерений под землей. 

Поэтому для этого проекта мы используем датчик почвы промышленного класса. Для сопряжения датчика с Arduino мы будем использовать протокол связи RS485. Данные с датчика влажности и температуры почвы будут отображаться на OLED-экране, подключенном к Arduino.

Вот 4 провода для датчика:

Коричневый провод: VCC (5 В-24 В)

Черный провод: GND

Желтый провод: RS485-A

Синий провод: RS485-B

Требования:

Аппаратное обеспечение

DFRduino UNO R3 (или аналогичный) x 1

RS485 Shield для Arduino x1

Датчик почвы RS485 (температура, влажность, электропроводность, соленость, pH, NPK) x 1

Программное обеспечение:

Arduino-IDE-среда разработки

Ниже представлена схема подключения между MAX485 и датчиком влажности и температуры почвы.

VCC -> 5 В (датчик почвы)

GND -> GND (датчик почвы)

A (MAX485) -> Контакт датчика почвы A (желтый цвет)

B (MAX485) -> Контакт датчика почвы B (синий цвет)

Подключение датчика влажности и температуры почвы к Arduino. Для сборки можно использовать макетную плату, а для подключения датчика и модуля RS485 к Arduino — перемычку.

Исходный код/программа для считывания влажности и температуры почвы 8 в 1 

Исходный код программы для считывания показаний датчика влажности почвы.txt


#include <SoftwareSerial.h>

// Определить контакты для связи RS485

#определить РО 2

#определить 3

#определить RE 8

#определить DE 7

#define РАЗМЕР_КАДРА_ОТВЕТА 21

символ sensorDataTextBuffer[200];

структура SoilSensorData

{

  bool isSensorTimeout {false};

  bool isValid {false};

  температура поплавка {-1,0};

  влажность поплавка {-1,0};

  беззнаковая целая проводимость {-1};

  плавающий ph {-1.0};

  беззнаковый целочисленный азот {-1};

  беззнаковый int фосфор {-1};

  беззнаковый калий {-1};

  беззнаковая целая соленость {-1};

};

класс SoilSensor

{

  общественность:

    Датчик Почвы()

    {

      modbus = новый SoftwareSerial(RO, DI);

    }

    void инициализировать()

    {

      Serial.begin(9600); // Инициализация последовательной связи для отладки

      modbus->begin(9600); // Инициализация последовательной связи программного обеспечения со скоростью 9600 бод

      pinMode(RE, OUTPUT); // Установить вывод RE как выход

      pinMode(DE, OUTPUT); // Установить DE pi

    }

    недействительный sendDataRequest()

    {

      digitalWrite(DE, HIGH);

      digitalWrite(RE, HIGH);

      задержка(10);

      // Отправляем фрейм запроса на датчик почвы

       modbus->write(soilSensorRequest, sizeof(soilSensorRequest));

    }

    

    SoilSensorData читать()

    {

      SoilSensorData почвенныйSensorData;

       // Завершить режим передачи и перейти в режим приема для RS485

      digitalWrite(DE, LOW);

      digitalWrite(RE, LOW);

      задержка(10);     

      //Ждать ответа от датчика или тайм-аута через 1 секунду

      беззнаковое длинное startTime = millis();

      пока (modbus->available() < RESPONSE_FRAME_SIZE && millis() - startTime < 1000)

      {

        задержка(1);

      }

      if (modbus->available() >= RESPONSE_FRAME_SIZE) // Если получен допустимый ответ

      {

       // Считать ответ от датчика

        индекс байта = 0;

        пока (modbus->available() && index < RESPONSE_FRAME_SIZE)

        {

          soilSensorResponse[индекс] = modbus->read();

          индекс++;

        }

                SoilSensorData = ComputeData();

      }

      еще

      {

        soilSensorData.isSensorTimeout = true; 

      }

       вернуть данные датчика почвы;

    } 

    ~Датчик Почвы()

    {

      если (modbus != nullptr) удалить modbus;

      удалить[] soilSensorResponse;

    }

    частный:

    константный байт soilSensorRequest[8] = {0x01, 0x03, 0x00, 0x00, 0x00, 0x08, 0x44, 0x0C};

    SoftwareSerial* modbus = nullptr;

    байт soilSensorResponse[RESPONSE_FRAME_SIZE];   

    int convertBytesToDecimal(беззнаковое смещение int)

    {

      вернуть soilSensorResponse[смещение] * 256 + soilSensorResponse[смещение + 1];

    }

    SoilSensorData ComputeData() const

    {

      SoilSensorData почвенныйSensorData;


      if (soilSensorResponse[0] != 1 || SoilSensorResponse[1] != 3 || SoilSensorResponse[2] != 16)

      {

        почвенный сенсордата.исвалид = ложь;

        вернуть данные датчика почвы;

      }

      почвыSensorData.isValid = правда;

      soilSensorData.temperature = convertBytesToDecimal(3) / 10.0; //градусы Цельсия

      soilSensorData.humidity = convertBytesToDecimal(5) / 10.0; // процент

      soilSensorData.conductivity = convertBytesToDecimal(7); // микросименс на сантиметр

      soilSensorData.ph = convertBytesToDecimal(9) / 100.0;

      soilSensorData.nitrogen = convertBytesToDecimal(11); // миллиграмм на килограмм

      soilSensorData.phosphorus = convertBytesToDecimal(13); // миллиграмм на килограмм

      soilSensorData.potassium = convertBytesToDecimal(15); // миллиграмм на килограмм

      soilSensorData.salinity = convertBytesToDecimal(17); // миллиграмм на килограмм

      вернуть данные датчика почвы;

    }

 };


Датчик почвы Датчик почвы;

void writeSensorDataToString(ДанныеДатчикаПочвы и ДанныеДатчика)

{

  если (sensorData.isSensorTimeout)

  {

      sprintf(sensorDataTextBuffer, "Неполные данные или истекло время ожидания датчика");  

  }

  еще

  {

    если (sensorData.isValid)  

    {

      char* tempStr = malloc(6 * sizeof(char));

      char* humidStr = malloc(6 * sizeof(char));

      char* phStr = malloc(6 * sizeof(char));

      dtostrf(sensorData.temperature, 4, 1, tempStr);

      dtostrf(sensorData.humidity, 4, 1, humidStr);

      dtostrf(sensorData.ph, 4, 2, phStr);

      автопроводимость = sensorData.проводимость;

      авто n = данные датчика.азот;

      авто p = sensorData.фосфор;

      авто k = sensorData.калий;

      автоматическая соленость = sensorData.salinity;

      sprintf(sensorDataTextBuffer, "Температура: %s; Влажность: %s; Проводимость: %u; PH: %s; N: %u; P: %u; K: %u; Соленость: %u", tempStr, humidStr, проводимость, phStr, n, p, k, соленость);  

      если (tempStr != NULL) free(tempStr);

      если (humidityStr != NULL) free(humidityStr);

      если (phStr != NULL) free(phStr);

    }

    еще

    {

      sprintf(sensorDataTextBuffer, "Данные, считанные с датчика, недействительны");  

    }

  }

}


недействительная настройка() 

{

 soilSensor.initialise();

}


пустой цикл() 

{

  soilSensor.sendDataRequest();

  SoilSensorData SensorData = SoilSensor.read();

  writeSensorDataToString(sensorData);

  Serial.println(sensorDataTextBuffer);

  delay(2000); // Подождать секунду перед следующей итерацией цикла

}


Спасибо Филу Огуну за код!

Датчик почвы 8-в-1 — это датчик, который объединяет несколько параметров, таких как температура, влажность, проводимость, NPK, соленость и PH. С таким датчиком пользователи могут легко получить доступ к нескольким ключевым данным о почве, что помогает им лучше понять ее состояние и вносить соответствующие коррективы и решения.

Измеряя диэлектрическую проницаемость почвы, он может напрямую и стабильно отражать реальное содержание влаги в различных почвах. Он подходит для мониторинга влажности почвы, научных экспериментов, водосберегающего орошения, теплиц, цветов и овощей, пастбищ, быстрого тестирования почвы, выращивания растений, очистки сточных вод, мелкого сельского хозяйства и других случаев. Входное питание датчика, зонд, выходной сигнал три части полностью изолированы, безопасны и надежны, красивый внешний вид, просты в установке, зонд изготовлен из нержавеющей стали, устойчивы к коррозии, стабильные характеристики.

Технические характеристики датчика почвы:

1.Технические данные датчика температуры и влажности почвы NBL-S-THR

NBL-S-THR-Датчики-температуры-и-влажности-почвы-Руководство-по-эксплуатации-V4.0.pdf

2. Технический паспорт датчика температуры и влажности почвы NBL-S-TMC

NBL-S-TMC-Датчик-температуры-и-влагопроводимости-почвы.pdf

3. Технический паспорт датчика температуры и влажности почвы NBL-S-TM

NBL-S-TM-Датчик-температуры-и-влажности-почвы-Руководство-по-эксплуатации-4.0.pdf

4. Интегрированный датчик температуры, влажности, проводимости и солености почвы NBL-S-TMCS

NBL-S-TMCS-Датчик температуры, влажности, проводимости и солености почвы.pdf

5. Интегрированный датчик температуры, влажности, NPK, проводимости и pH почвы NBL-S-TMCS-7

Руководство по эксплуатации датчика 7-в-1-композитного-почвы.pdf

4. Интегрированный датчик температуры, влажности, NPK, pH, проводимости и солености почвы NBL-S-TMCS-8

Руководство по эксплуатации датчика 8-в-1-композитного-почвы.pdf


Связанные рекомендации

Каталог датчиков и метеостанций

Сельскохозяйственные датчики и метеостанции Каталог-NiuBoL.pdf

Каталог погодных станций-NiuBoL.pdf

Сельскохозяйственные датчики Каталог-NiuBoL.pdf

Сопутствующие товары

Расскажите нам о своих требованиях, давайте обсудим ваш проект. Мы можем сделать больше.

имя*

Тел*

Email*

Компания*

Страна*

Сообщение

онлайн
КОНТАКТ
Email
Тоp
XДатчик влажности почвы Код Arduino-Техническая поддержка-Автоматические метеостанции_Пиранометры_Сельскохозяйственные датчики_Датчик почвы_Датчик температуры и влажности_Датчик pH_Датчик NPK_Экологический мониторинг-NiuBoL

Скриншот, WhatsApp для идентификации QR-кода

WhatsApp number:+8615388025079

(Нажмите на WhatsApp, чтобы скопировать и добавить друзей)

Open WhatsApp

Идентификатор WhatsApp был скопирован, пожалуйста, откройте WhatsApp, чтобы добавить информацию о консультации!