
Нам понадобится:
Ссылочка на Arduino uno: http://ali.ski/gC_mOa
Cсылочка на макетную плату: http://ali.ski/rq8wz8
Ссылочка на контактные провода: http://ali.ski/Exjr3
Ссылочка на диоды и резисторы: http://fas.st/KK7DwjyF
Sensor Shield: http://ali.ski/aDWTuB
Ссылочка на датчик влажности почвы: http://ali.pub/v7ij4
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
В данной статье рассмотрим пример применения датчика почвы и Arduino. А именно с помощью светодиодов, будем смотреть на сколько сильно увлажнена наша почва.
Сам датчик почвы аналоговый, поэтому его будем подключать к пину A0.
Будем использовать 8 светодиодов и подключим их к 4-11 пинам ардуино.
После подключения датчика и диодов по описанной схеме необходимо скопировать программный код приведенный ниже и вставить его в программу Arduino IDE и загрузить этот программный код в саму плату Arduino.
// контакт подключения аналогового выхода датчика
int aPin=A0;
// контакты подключения светодиодов индикации
int ledPins[8]={4,5,6,7,8,9,10,11};
// переменная для сохранения значения датчика
int avalue=0;
// переменная количества светящихся светодиодов
int countled=8;
// значение полного полива
int minvalue=240;
// значение критической сухости
int maxvalue=600;
void setup()
{
// инициализация последовательного порта
Serial.begin(9600);
// настройка выводов индикации светодиодов
// в режим OUTPUT
for(int i=0;i<8;i++)
{
pinMode(ledPins[i],OUTPUT);
}
}
void loop()
{
// получение значения с аналогового вывода датчика
avalue=analogRead(aPin);
// вывод значения в монитор последовательного порта Arduino
Serial.print("avalue=");Serial.println(avalue);
// масштабируем значение на 8 светодиодов
countled=map(avalue,maxvalue,minvalue,0,7);
// индикация уровня влажности
for(int i=0;i<8;i++)
{
if(i<=countled)
digitalWrite(ledPins[i],HIGH); //зажигаем светодиод
else
digitalWrite(ledPins[i],LOW); // гасим светодиод
}
// пауза перед следующим получением значения 1000 мс
delay(1000);
}
Ссылочка на скетч: https://yadi.sk/d/Aqi6vRzBwUUdv
Демонстрация работы данной программы можно увидеть в видео приведенном в конце статьи.