====== Датчик влажности почвы (резистивный): инструкция по использованию и примеры ====== Используйте [[amp>product/soil-moisture-sensor?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|резистивный сенсор влажности почвы]] для создания систем автоматического полива растений. Датчик подойдёт для ухода за комнатными цветками и флоре на огороде. Не дайте своим растениям засохнуть! {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive.3.jpg?nolink |}} ===== Принцип работы ===== Датчик для измерения влажности почвы выполнен в виде вилки с двумя электродами, которыми погружается в грунт на расстояние до 40 мм. При подключении питания на электродах создаёться напряжение. Если почва сухая, её сопротивление велико и через датчик между электродами течёт слабый ток. Если земля влажная — её сопротивление становится меньше, а ток датчика между электродами соответственно увеличивается. По итоговому аналоговому сигналу можно судить о степени увлажнения почвы. Максимальное напряжение на выходе ''S'' не превышает 75% от напряжения питания модуля ''V'', т.е. сигнальный диапазон датчика равен: * 0–3,5 В при питании 5 В: * 0–2 В при питании 3,3 В. На показания датчика также влияют следующие факторы: * Степень погружения датчика в почву. * Тип почвы, её химические и физические свойства. * Наличие и количество примесей в воде. Электроды датчика покрыты золотом, чтобы предотвратить пассивную коррозию, когда он выключен. Избавиться от электролитической коррозии, вызванной протекающим током, невозможно, поэтому сенсор резистивного типа рекомендуется запитывать через [[amp>product/troyka-mosfet-n-channel-v3?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|силовой ключ]]. То есть, включать его только на время измерений, чтобы максимально продлить ресурс. В плане эксплуатации это доставляет неудобство, поэтому рекомендуем обратить внимания на [[products:sensor-soil-moisture-capacitive|ёмкостный датчик влажности почвы]], который в силу своего исполнения неподвержен корозии. ===== Пример работы для Arduino и XOD ===== В качестве мозга для считывания показаний с датчика рассмотрим платформу из серии [[amp>collection/arduino?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Arduino]], например [[amp>product/arduino-uno?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Arduino Uno]]. * [[amp>page/arduino-ide?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Как начать работу с Arduino?]] * [[amp>page/xod-ide?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Как начать работу с XOD?]] ==== Схема устройства ==== Подключите датчик влажности почвы к аналоговому пину ''A0'' платформы Arduino. Для коммуникации понадобятся [[amp>product/wire-fm?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|соединительные провода «мама-папа»]]. {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-example-arduino.png?nolink |}} Для быстрой сборки и отладки устройства возьмите плату расширения [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Troyka Shield]], которая одевается сверху на Arduino Uno методом бутерброда. Для коммуникации используйте [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|трёхпроводной шлейф «мама-мама»]], который идёт в комплекте с датчиком. {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-example-arduino-troyka-shield.png?nolink |}} ==== Код для Arduino IDE ==== Прошейте платформу Arduino скетчем приведённым ниже. // любой GPIO пин с поддержкой АЦП constexpr auto pinSensor = A0; void setup() { // открываем Serial-порт Serial.begin(9600); } void loop() { // считываем данные с датчика влажности почвы int valueSensor = analogRead(pinSensor); // выводим данные в Serial-порт Serial.println(valueSensor); // ждём 100 мс delay(100); } После загрузки скетча, в Serial-порт будут выводиться текущие показания сенсора в 10-битном диапазоне. * 0–300: сухая почва; * 300–600: влажная почва; * 600–750: датчик в воде. ==== Патч для XOD ==== - Создайте новый патч - Добавьте в патч ноду ''analog-sensor'' и установите ей в инспекторе PORT значение ''A0''. - Добавьте ноду ''watch'' и подключите её к ноде ''analog-sensor'' к пину ''VAL''. - Прошейте платформу Arduino с режимом отладки. {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-xod-read-data.png?nolink |}} После загрузки прошивки, в отладочной ноде ''watch'' будут выводиться текущие показания сенсора в диапазоне от 0 до 0,75: * 0–0,3: сухая почва; * 0,3–0,6: влажная почва; * 0,6–0,75: датчик в воде. ===== Пример для Espruino ===== В качестве мозга для считывания показаний с датчика рассмотрим платформы из серии [[amp>collection/espruino?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Espruino]], например [[amp>product/iskra-js?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Iskra JS]]. [[:js:ide|Как начать работу с Espruino?]] ==== Схема устройства ==== Подключите датчик влажности почвы к аналоговому пину ''A0'' платформы Iskra JS. Для коммуникации понадобятся [[amp>product/wire-fm?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|соединительные провода «мама-папа»]]. {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-example-espruino.png?nolink |}} Для быстрой сборки и отладки устройства возьмите плату расширения [[amp>product/arduino-troyka-shield?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Troyka Shield]], которая одевается сверху на Iskra JS методом бутерброда. Для коммуникации используйте [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|трёхпроводной шлейф «мама-мама»]], который идёт в комплекте с датчиком. {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-example-espruino-troyka-shield.png?nolink |}} ==== Исходный код ==== Прошейте платформу Iskra JS скриптом приведённым ниже. // выводим показания датчика на пине A0 каждые 100 мс setInterval(function() { var valueSensor = analogRead(A0) * 100; print('Value sensor: ', Math.round(valueSensor), '%'); }, 100); После загрузки скрипта, в консоль будут выводиться текущие показания сенсора в диапазоне от 0 до 75%. * 0–30%: сухая почва; * 30–60%: влажная почва; * 60–75%: датчик в воде. ===== Пример для Raspberry Pi ===== В качестве мозга для считывания показаний с датчика рассмотрим одноплатные компьютеры [[amp>collection/raspberry-pi?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Raspberry Pi]], например [[amp>product/raspberry-pi-4-model-b-4-gb?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Raspberry Pi 4]]. [[articles:rpi-guide|Подготовьте Raspberry Pi]] ==== Схема устройства ==== К сожалению в компьютере Raspberry Pi нет встроеенного аналого-цифрового преобразователя. Используйте плату расширения [[amp>product/raspberry-troyka-cap?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Troyka Cap]], которое добавит малине аналоговые пины. Подключите датчик влажности почвы к Raspberry Pi через плату расширения [[amp>product/raspberry-troyka-cap?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Troyka Cap]] к ''3'' пину. Для коммуникации используйте [[amp>product/3-wire-cable-digital-troyka?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|трёхпроводной шлейф «мама-мама»]], который идёт в комплекте с датчиком. {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-example-raspberry-pi.png?nolink |}} ==== Программная настройка ==== - [[articles:rpi-guide|Подготовьте Raspberry Pi]] - [[продукты:raspberry-troyka-cap|Настройте плату расширения Troyka Cap]] ==== Исходный код ==== Запустите скрипт на малине приведённым ниже. # библиотека для работы со временем и задержками import time # библиотека для работы с расширителем портов GPIO Expander на плате Troyka Cap import gpioexp # создаём объект для работы с расширителем портов exp = gpioexp.gpioexp() # пин к которому подключен датчик влажности почвы # любой GPIO пин платы расширения Troyka Cap pinSensor = 3 while True: # считываем состояние датчика влажности почвы valueSensor = exp.analogRead(pinSensor) * 100 # выводим показания датчика print('Value sensor: ', round(valueSensor), ' %') # ждём 100 мс time.sleep(0.1) После загрузки скрипта, в консоль малины будут выводиться текущие показания сенсора в диапазоне от 0 до 75%. * 0–30%: сухая почва; * 30–60%: влажная почва; * 60–75%: датчик в воде. ===== Элементы платы ===== {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-annotation.png?nolink |}} ==== Измерительные электроды ==== Датчик построен на основе транзисторного усилителя тока. Для измерения влажности почвы на датчике расположены два электрода, которые для проведения измерений необходимо воткнуть в почву. Электроды подключены в цепь между коллектором (точка SP) и базой (точка SN) встроенного транзистора на плате {{ :products:sensor-soil-moisture-resistive:mmbt2222alt1g-datasheet.pdf |MMBT2222ALT1G}}. При изменении влажности почвы, меняется сопротивление между базой и коллектором, к которому подключен положительный полюс источника питания. Соответственно меняется и протекающий ток от коллектора через эмиттер на землю. В результате изменяется и выходное аналоговое напряжение сенсора (точка OUT). Подробности найдёте на [[#принципиальная_и_монтажная_схемы|принципиальной схеме датчика]]. ==== Troyka-контакты ==== Датчик подключается к управляющей электронике через три провода. * Сигнальный (S) — выходной сигнал сенсора. Напряжение на выходе датчика прямо пропорционально уровню измеренной электропроводности: чем выше влажность почвы, тем выше уровень сигнала на выходе датчика и соответственно наоборот. Максимальное выходное значения 75% от напряжения питания. Подключите к аналоговому пину микроконтроллера. * Питание (V) — соедините с рабочим напряжением микроконтроллера. * Земля (G) — соедините с землёй микроконтроллера. ===== Принципиальная и монтажная схемы ===== {{:products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-schematic.png?direct&320 |}} {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-layout-top.png?direct&350|}} {{ :products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-layout-bottom.png?direct&350|}} ===== Габаритный чертёж ===== [[this>_media/products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-dimensions.pdf|{{:products:sensor-soil-moisture-resistive:sensor-soil-moisture-resistive-dimensions.png}}]] ===== Характеристики ===== * Тип датчика влажности почвы: резистивный * Напряжение питания: 3,3 / 5 В * Потребляемый ток: * При питании 5 В: до 34 мА * При питании 3,3 В: до 18 мА * Интерфейс: аналоговый сигнал * Диапазон выходного сигнала: * При питании 5 В: 0–3,5 В * При питании 3,3 В: 0–2 В * Глубина погружения в почву: до 40 мм * Габариты: 60×20×7,6 мм ===== Ресурсы ===== * [[amp>product/soil-moisture-sensor?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Датчик влажности почвы (резистивный)]] в магазине. * [[amp>product/sensor-soil-moisture-capacitive?utm_source=man&utm_campaign=sensor-soil-moisture-resistive&utm_medium=wiki|Датчик влажности почвы (ёмкостный)]] в магазине. * [[https://github.com/amperka/hardware-drawings/blob/master/sensor-soil-moisture-resistive.svg|Векторное изображение датчика]]