====== Датчик влажности почвы для 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]]