Датчик влажности почвы для micro:bit: подключение, настройка и начало работы

Используйте сенсор влажности почвы для создания систем автоматического полива растений. Датчик подойдёт для ухода за комнатными цветками и флоре на огороде. Не дайте своим растениям засохнуть!

Датчик влажности почвы выполнен предпочтительно для контроллеров BBC micro:bit. Однако сенсор запросто подружится с любым контроллером, который содержит аналого-цифровой преобразователь: Arduino, Espruino, Iskra и другие.

Подробнее про датчик

Датчик для измерения влажности почвы выполнен в виде вилки с двумя электродами, которыми погружается в грунт на расстояние до 45 мм. При подключении питания на электродах создаётся напряжение. Если почва сухая, её сопротивление велико и через датчик между электродами течёт слабый ток. Если земля влажная — её сопротивление становится меньше, а ток датчика между электродами соответственно увеличивается. По итоговому аналоговому сигналу можно судить о степени увлажнения почвы.

Выходной сигнал

Максимальное напряжение на выходе SIG примерно 75% от напряжения питания модуля VCC, т.е. сигнальный диапазон датчика равен:

  • 0–4 В при питании 5 В
  • 0–2,3 В при питании 3,3 В

Факторы погрешности показаний

На показания датчика также влияют следующие факторы:

  • Степень погружения датчика в почву.
  • Тип почвы, её химические и физические свойства.
  • Наличие и количество примесей в воде.

Защита от коррозии

Электроды датчика подвержены двум видам коррозии: пассивной и электрической.

Для борьбы с пассивным разрушением, когда датчик выключен, электроды сенсора покрыты золотом. А для борьбы с электрической коррозией, рекомендуем запитывать только в момент снятия показаний. Отсюда сенсор имеет два варианта подключения у управляющей плате: постоянное питание и управляемое питание.

  • Постоянное питание Подойдет, если вы тестируете сенсор или собираетесь использовать датчик недолгое время.
    • Плюсы: занимает только один пин микроконтроллера.
    • Минусы: датчик подвержен быстрой электрической коррозии.
  • Управляемое питание. Отлично подойдет, если вы собираетесь использовать датчик длительное время.
    • Плюсы: значительно продлит срок службы сенсора.
    • Минусы: занимает два пина микроконтроллера.

Примеры работы для BBC micro:bit

В качестве мозга для считывания показаний с датчика рассмотрим платформы из семейства BBC micro:bit.

Так как электроды датчика подвержены коррозии, рассмотрим два варианта работы с сенсором:

Постоянное питание

Датчик постоянно подключен к источнику питания. Подробности читайте в разделе про коррозию электродов.

Схема устройства

Подключите датчик влажности почвы к платформе BBC micro:bit.

Датчик влажности почвы BBC micro:bit
VCC 3V
GND GND
SIG P0

Для коммуникации понадобятся провода с «крокодилами».

Для надёжной фиксации электрических связей, возьмите плату расширения micro:bit Breakout, которая устанавливается на краевой разъём BBC micro:bit. Для коммуникации понадобится кунг-фу пайки и соединительные провода «мама-папа».

Патч для визуального программирования

Соберите схему из визуальных блоков.

Код для JavaScript

Прошейте платформу кодом приведённым ниже.

microbit-moisture-sensor-example-microbit-simple-power-read-data-javascript.js
 

Код для Python

Прошейте платформу кодом приведённым ниже.

microbit-moisture-sensor-example-microbit-simple-power-read-data-python.py
 

Управляемое питание

Датчик подключен к питанию, только во время измерения. Подробности читайте в разделе про коррозию электродов.

Схема устройства

Подключите датчик влажности почвы к платформе BBC micro:bit.

Датчик влажности почвы BBC micro:bit
VCC P2
GND GND
SIG P0

Для коммуникации понадобятся провода с «крокодилами».

Для надёжной фиксации электрических связей, возьмите плату расширения micro:bit Breakout, которая устанавливается на краевой разъём BBC micro:bit. Для коммуникации понадобится кунг-фу пайки и соединительные провода «мама-папа».

Патч для визуального программирования

Соберите схему из визуальных блоков.

Код для JavaScript

Прошейте платформу кодом приведённым ниже.

microbit-moisture-sensor-example-microbit-control-power-read-data-javascript.js
 

Код для Python

Прошейте платформу кодом приведённым ниже.

microbit-moisture-sensor-example-microbit-control-power-read-data-python.py
 

Примеры работы для Arduino

В качестве мозга для считывания показаний с датчика рассмотрим платформы из семейства Arduino.

Так как электроды датчика подвержены коррозии, рассмотрим два варианта работы с сенсором:

Постоянное питание

Датчик постоянно подключен к источнику питания. Подробности читайте в разделе про коррозию электродов.

Схема устройства

Подключите датчик влажности почвы к платформе Arduino Uno.

Датчик влажности почвы Arduino Uno
VCC 5V
GND GND
SIG A0

Для коммуникации понадобится кунг-фу пайки и соединительные провода «мама-папа».

Код для Arduino

Прошейте платформу Arduino скетчем приведённым ниже.

microbit-moisture-sensor-example-arduino-simple-power-read-data.ino
// Определяем ядро платы Arduino
// для установки рабочего напряжения
#if defined(__AVR__)
#define OPERATING_VOLTAGE   5.0
#else
#define OPERATING_VOLTAGE   3.3
#endif
 
// Любой GPIO пин с поддержкой АЦП
constexpr auto pinSensor = A0;
 
void setup() {
  // Открываем Serial-порт
  Serial.begin(9600);
}
 
void loop() {
  // Считываем аналоговое значение с датчика влажности почвы
  int adcSensor = analogRead(pinSensor);
  // Переводим данные сенсора в напряжение
  float voltageSensor = adcSensor * OPERATING_VOLTAGE / 1023;
  // выводим данные в Serial-порт
  Serial.print("Voltage: ");
  Serial.print(voltageSensor);
  Serial.print(" V");
  // ждём 100 мс
  delay(100);
}

Управляемое питание

Датчик подключен к питанию, только во время измерения. Подробности читайте в разделе про коррозию электродов.

Схема устройства

Подключите датчик влажности почвы к платформе Arduino Uno.

Датчик влажности почвы Arduino Uno
VCC 5V
GND A1
SIG A0

Для коммуникации понадобится кунг-фу пайки и соединительные провода «мама-папа».

Код для Arduino

Прошейте платформу Arduino скетчем приведённым ниже.

microbit-moisture-sensor-example-arduino-control-power-read-data.ino
// Определяем ядро платы Arduino
// для установки рабочего напряжения
#if defined(__AVR__)
#define OPERATING_VOLTAGE   5.0
#else
#define OPERATING_VOLTAGE   3.3
#endif
 
// Пин с поддержкой АЦП
constexpr auto pinSensor = A0;
// Пин питания
constexpr auto pinVCC = A1;
 
void setup() {
  // Открываем Serial-порт
  Serial.begin(9600);
  // Пин питания датчика в режим выхода
  pinMode(pinVCC, OUTPUT);
}
 
void loop() {
  // Подаём питание на датчик
  digitalWrite(pinVCC, HIGH);
  // Считываем аналоговое значение с датчика влажности почвы
  int adcSensor = analogRead(pinSensor);
  // Переводим данные сенсора в напряжение
  float voltageSensor = adcSensor * OPERATING_VOLTAGE / 1023;
  // выводим данные в Serial-порт
  Serial.print("Voltage: ");
  Serial.print(voltageSensor);
  Serial.print(" V");
  // Снимаем питание с датчика
  digitalWrite(pinVCC, LOW);
  // ждём 100 мс
  delay(100);
}

Примеры работы для Espruino

Примеры работы для Raspberry Pi

Элементы платы

Измерительные электроды

Датчик построен на основе транзисторного усилителя тока. Для измерения влажности почвы на плате расположены два электрода, которые для проведения измерений необходимо воткнуть в почву. Электроды подключены в цепь между коллектором (точка SP) и базой (точка SN) встроенного транзистора на плате.

При изменении влажности почвы, меняется сопротивление между базой и коллектором, к которому подключён положительный полюс источника питания. Соответственно меняется и протекающий ток от коллектора через эмиттер на землю. В результате изменяется и выходное аналоговое напряжение сенсора (точка OUT).

Площадки подключения

Датчик подключается к управляющей электронике через три контакта, которые задублированы на площадках под «Крокодилы / Banana Plug» и площадках под контактные штыри:

  • Сигнальный (SIG) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше влажность почвы, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения примерно 75% от напряжения питания. Подключите к аналоговому пину управляющей платы.
  • Питание (VCC) — соедините с рабочим напряжением микроконтроллера.
  • Земля (GND) — соедините с землёй микроконтроллера.

Площадки под «Крокодилы / Banana Plug»

Используйте для подключения сенсора к платам BBC micro:bit. Для коммуникации понадобятся провода с «крокодилами» или «Banana Plug».

Площадки под контактные штыри

Используйте для подключения сенсора к Arduino, Espruino и другим микроконтроллерам. Сначала понадобится припаять штыревую вилку (PLS-3) к датчику с помощью паяльника. А затем использовать макетные провода для дальнейшей коммуникации.

Габаритный чертёж

Характеристики

  • Модель: PPMB00113 Moisture Sensor
  • Совместимость:
    • Предпочтительно: микрокомпьютеры BBC micro:bit
    • Остальные: Arduino, Espruino, STM32 и другие контроллеры с АЦП
  • Аппаратный интерфейс:
    • площадки подключения «крокодил» / «Banana Plug»
    • площадки подключения под контактные штыри
  • Программный интерфейс: аналоговый сигнал
  • Напряжение питания: 3,3–5 В
  • Диапазон выходного сигнала:
    • При питании 5 В: 0–4 В
    • При питании 3,3 В: 0–2,3 В
  • Потребляемый ток:
    • При питании 5 В: до 40 мА
    • При питании 3,3 В: до 22 мА
  • Глубина погружения в почву: до 45 мм
  • Размеры: 117,8×42×1,6 мм

Ресурсы