====== Датчик влажности почвы для micro:bit: подключение, настройка и начало работы ======
Используйте [[amp>product/microbit-moisture-sensor?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|сенсор влажности почвы]] для создания систем автоматического полива растений. Датчик подойдёт для ухода за комнатными цветками и флоре на огороде. Не дайте своим растениям засохнуть!
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor.5.jpg?nolink |}}
Датчик влажности почвы выполнен предпочтительно для контроллеров [[amp>collection/microbit?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|BBC micro:bit]]. Однако сенсор запросто подружится с любым контроллером, который содержит аналого-цифровой преобразователь: Arduino, Espruino, Iskra и другие.
===== Подробнее про датчик =====
Датчик для измерения влажности почвы выполнен в виде вилки с двумя электродами, которыми погружается в грунт на расстояние до 45 мм. При подключении питания на электродах создаётся напряжение. Если почва сухая, её сопротивление велико и через датчик между электродами течёт слабый ток. Если земля влажная — её сопротивление становится меньше, а ток датчика между электродами соответственно увеличивается. По итоговому аналоговому сигналу можно судить о степени увлажнения почвы.
==== Выходной сигнал ====
Максимальное напряжение на выходе ''SIG'' примерно 75% от напряжения питания модуля ''VCC'', т.е. сигнальный диапазон датчика равен:
* 0–4 В при питании 5 В
* 0–2,3 В при питании 3,3 В
==== Факторы погрешности показаний ====
На показания датчика также влияют следующие факторы:
* Степень погружения датчика в почву.
* Тип почвы, её химические и физические свойства.
* Наличие и количество примесей в воде.
==== Защита от коррозии ====
Электроды датчика подвержены двум видам коррозии: пассивной и электрической.
Для борьбы с пассивным разрушением, когда датчик выключен, электроды сенсора покрыты золотом. А для борьбы с электрической коррозией, рекомендуем запитывать только в момент снятия показаний. Отсюда сенсор имеет два варианта подключения у управляющей плате: постоянное питание и управляемое питание.
* **Постоянное питание** Подойдет, если вы тестируете сенсор или собираетесь использовать датчик недолгое время.
* Плюсы: занимает только один пин микроконтроллера.
* Минусы: датчик подвержен быстрой электрической коррозии.
* **Управляемое питание**. Отлично подойдет, если вы собираетесь использовать датчик длительное время.
* Плюсы: значительно продлит срок службы сенсора.
* Минусы: занимает два пина микроконтроллера.
===== Примеры работы для BBC micro:bit =====
В качестве мозга для считывания показаний с датчика рассмотрим платформы из семейства [[amp>collection/microbit?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|BBC micro:bit]].
[[products:bbc-microbit-v2|Как начать работу с BBC micro:bit?]]
Так как электроды датчика подвержены [[#защита_от_коррозии|коррозии]], рассмотрим два варианта работы с сенсором:
* [[#постоянное_питание|Постоянное питание]]
* [[#управляемое_питание|Управляемое питание]]
==== Постоянное питание ====
Датчик постоянно подключен к источнику питания. Подробности читайте в разделе про [[#защита_от_коррозии|коррозию электродов]].
=== Схема устройства ===
Подключите датчик влажности почвы к платформе [[amp>product/bbc-microbit-v2?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|BBC micro:bit]].
^ Датчик влажности почвы ^ BBC micro:bit ^
| VCC | 3V |
| GND | GND |
| SIG | P0 |
Для коммуникации понадобятся [[amp>product/alligator-clip-wires?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|провода с «крокодилами»]].
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-example-microbit-simple-power.png?nolink |}}
Для надёжной фиксации электрических связей, возьмите плату расширения [[amp>product/microbit-breakout?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|micro:bit Breakout]], которая устанавливается на краевой разъём BBC micro:bit. Для коммуникации понадобится [[#площадки_подключения|кунг-фу пайки]] и [[amp>product/wire-fm?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|соединительные провода «мама-папа»]].
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-example-microbit-simple-power-breakout.png?nolink |}}
=== Патч для визуального программирования ===
Соберите схему из визуальных блоков.
=== Код для JavaScript ===
Прошейте платформу кодом приведённым ниже.
=== Код для Python ===
Прошейте платформу кодом приведённым ниже.
==== Управляемое питание ====
Датчик подключен к питанию, только во время измерения. Подробности читайте в разделе про [[#защита_от_коррозии|коррозию электродов]].
=== Схема устройства ===
Подключите датчик влажности почвы к платформе [[amp>product/bbc-microbit-v2?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|BBC micro:bit]].
^ Датчик влажности почвы ^ BBC micro:bit ^
| VCC | P2 |
| GND | GND |
| SIG | P0 |
Для коммуникации понадобятся [[amp>product/alligator-clip-wires?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|провода с «крокодилами»]].
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-example-microbit-control-power.png?nolink |}}
Для надёжной фиксации электрических связей, возьмите плату расширения [[amp>product/microbit-breakout?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|micro:bit Breakout]], которая устанавливается на краевой разъём BBC micro:bit. Для коммуникации понадобится [[#площадки_подключения|кунг-фу пайки]] и [[amp>product/wire-fm?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|соединительные провода «мама-папа»]].
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-example-microbit-control-power-breakout.png?nolink |}}
=== Патч для визуального программирования ===
Соберите схему из визуальных блоков.
=== Код для JavaScript ===
Прошейте платформу кодом приведённым ниже.
=== Код для Python ===
Прошейте платформу кодом приведённым ниже.
===== Примеры работы для Arduino =====
В качестве мозга для считывания показаний с датчика рассмотрим платформы из семейства [[amp>collection/arduino?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|Arduino]].
[[articles:arduino-ide-install|Как начать работу с Arduino?]]
Так как электроды датчика подвержены [[#защита_от_коррозии|коррозии]], рассмотрим два варианта работы с сенсором:
* [[#постоянное_питание1|Постоянное питание]]
* [[#управляемое_питание1|Управляемое питание]]
==== Постоянное питание ====
Датчик постоянно подключен к источнику питания. Подробности читайте в разделе про [[#защита_от_коррозии|коррозию электродов]].
=== Схема устройства ===
Подключите датчик влажности почвы к платформе [[amp>product/wire-fm?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|Arduino Uno]].
^ Датчик влажности почвы ^ Arduino Uno ^
| VCC | 5V |
| GND | GND |
| SIG | A0 |
Для коммуникации понадобится [[#площадки_подключения|кунг-фу пайки]] и [[amp>product/wire-fm?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|соединительные провода «мама-папа»]].
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-example-arduino-simple-power.png?nolink |}}
=== Код для Arduino ===
Прошейте платформу Arduino скетчем приведённым ниже.
// Определяем ядро платы 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);
}
==== Управляемое питание ====
Датчик подключен к питанию, только во время измерения. Подробности читайте в разделе про [[#защита_от_коррозии|коррозию электродов]].
=== Схема устройства ===
Подключите датчик влажности почвы к платформе [[amp>product/wire-fm?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|Arduino Uno]].
^ Датчик влажности почвы ^ Arduino Uno ^
| VCC | 5V |
| GND | A1 |
| SIG | A0 |
Для коммуникации понадобится [[#площадки_подключения|кунг-фу пайки]] и [[amp>product/wire-fm?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|соединительные провода «мама-папа»]].
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-example-arduino-control-power.png?nolink |}}
=== Код для Arduino ===
Прошейте платформу Arduino скетчем приведённым ниже.
// Определяем ядро платы 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 =====
===== Элементы платы =====
{{ :products:microbit-moisture-sensor:microbit-moisture-sensor-annotation.png?nolink |}}
==== Измерительные электроды ====
Датчик построен на основе транзисторного усилителя тока. Для измерения влажности почвы на плате расположены два электрода, которые для проведения измерений необходимо воткнуть в почву. Электроды подключены в цепь между коллектором (точка SP) и базой (точка SN) встроенного транзистора на плате.
При изменении влажности почвы, меняется сопротивление между базой и коллектором, к которому подключён положительный полюс источника питания. Соответственно меняется и протекающий ток от коллектора через эмиттер на землю. В результате изменяется и выходное аналоговое напряжение сенсора (точка OUT).
==== Площадки подключения ====
Датчик подключается к управляющей электронике через три контакта, которые задублированы на [[#площадки_под_крокодилы_banana_plug|площадках под «Крокодилы / Banana Plug»]] и [[#площадки_под_контактные_штыри|площадках под контактные штыри]]:
* Сигнальный (SIG) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше влажность почвы, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения примерно 75% от напряжения питания. Подключите к аналоговому пину управляющей платы.
* Питание (VCC) — соедините с рабочим напряжением микроконтроллера.
* Земля (GND) — соедините с землёй микроконтроллера.
=== Площадки под «Крокодилы / Banana Plug» ===
Используйте для подключения сенсора к платам [[amp>collection/microbit?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|BBC micro:bit]]. Для коммуникации понадобятся [[amp>product/alligator-clip-wires?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|провода с «крокодилами»]] или «Banana Plug».
=== Площадки под контактные штыри ===
Используйте для подключения сенсора к Arduino, Espruino и другим микроконтроллерам. Сначала понадобится припаять [[amp>product/pin-headers?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|штыревую вилку (PLS-3)]] к датчику с помощью [[amp>product/soldering-iron-goot-30w?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|паяльника]]. А затем использовать [[amp>collection/proto-wires?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|макетные провода]] для дальнейшей коммуникации.
===== Габаритный чертёж =====
[[this>_media/products:microbit-moisture-sensor:microbit-moisture-sensor-dimensions.pdf|{{:products:microbit-moisture-sensor:microbit-moisture-sensor-dimensions.png}}]]
===== Характеристики =====
* Модель: 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 мм
===== Ресурсы =====
* [[amp>product/microbit-moisture-sensor?utm_source=man&utm_campaign=microbit-moisture-sensor&utm_medium=wiki|Датчик влажности почвы for micro:bit]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/microbit-moisture-sensor.svg|Векторное изображение модуля]]
* [[https://makecode.microbit.org/|Облачная среда MakeCode]]