—Продукция—
WhatsApp:+8615388025079
Адрес:Room 102, District D, Houhu Industrial Park, Yuelu District, Changsha City, Hunan Province, China
Техническая поддержка
время:2024-06-29 21:07:28 Популярность:1800
Датчик влажности почвы 8 в 1 Rs485 для arduino
В этом руководстве мы рассмотрим, как подключить датчик влажности и температуры почвы 8 в 1 к Arduino с помощью протокола RS485. Эта настройка позволит нам контролировать влажность и температуру почвы, которые являются важнейшими параметрами для сельского хозяйства и садоводства.
Датчики влажности почвы измеряют объемное содержание воды в почве. Понимая уровни влажности, фермеры и садоводы могут принимать обоснованные решения об орошении, обеспечивая оптимальный рост растений. Температура почвы также играет важную роль в здоровье растений, влияя на рост корней и усвоение питательных веществ.
Для этого проекта мы будем использовать датчик влажности и температуры почвы 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
Сопутствующие товары
Скриншот, WhatsApp для идентификации QR-кода
WhatsApp number:+8615388025079
(Нажмите на WhatsApp, чтобы скопировать и добавить друзей)