
Для реализации данного примера нам понадобится:
Arduino uno: http://ali.pub/1th4sk
Или Arduino nano: http://ali.pub/1x1jri
Фоторезистор : http://ali.pub/29qkmy
Реле: http://ali.pub/29qkrt
Датчик движения HC-SR501: http://ali.pub/29qkwh
Или ультразвуковой датчик движения:http://ali.pub/29qlho
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Когда-то давно, наткнулся на одну статью на Geektimes. В этой статье было описано как один хороший человек придумал сделать smart плинтус. А именно он спрятал светодиодную ленту в плинтус и она офигенно светила. Мне эта статья очень понравилась, кстати ссылка на статью тут.
И я решил воплотить что-то похожее. Как раз в квартире собирался полы переделывать, и сразу же в голове держалась мысль о реализации данного проекта.
После того как полы были застелены, я решил приступить к делу. Думал как в вышеуказанном проекте закрепить светодиодную ленту в плинтус, чтоб по глазам не била. Но у меня не получилось. Так как у меня плинтус цвета “Венга” и она ни как и ни чем не просвечивается. Потом решил наклеить ее по верху, думал будет сильно некрасиво, но на самом деле не бросается в глаза.
Принцип работы такой же как в статье выше, а именно: как только датчик освещения улавливает, что в комнате темно, в работу вступает датчик движения и включает подсветку при улавливании движения. Но сам скетч с того проекта мне не подошел. Так как там мне не понравилось, что датчик движения подключен к аналоговому пину и срабатывал путем измерения напряжения на входе аналогового пина ардуино. И я решил написать свой скетч с нуля.
И так родилась на свет моя программа smartplintus.
#define pirPin 8  // Указываем пин к которому подключен датчик движения
#define LedPin 13 // Указываем пин к которому подключено реле
int PhotosensorPin = A0; //Указываем пин к которому подклюен Фоторезистор
unsigned int sensorValue = 0; //Объявляем переменную для хранения значений.
  
void setup() {
  Serial.begin(9600); // Объявляем работу com порта со скоростью 9600
  pinMode(pirPin, INPUT); //Объявляем пин, к которому подключен датчик движения, входом
  pinMode(LedPin, OUTPUT); //Объявляем пин, к которому подключен светодиод, выходом
}
  
void loop() {
  
  int pirVal = digitalRead(pirPin); //Считываем значения с датчика движения и записываем их в переменную pirVAL 
  sensorValue = analogRead(PhotosensorPin); //Считываем значения с фоторезистора и записываем их в переменную sensorValue
  if(sensorValue<70 && pirVal == HIGH) //Если значения переменной sensorValue меньше 70 и в переменной датчика движения pirVal значение 1 (HIGH),
  {
    digitalWrite(13, HIGH); //то включаем реле
     delay(8000); // Это время на которое включать реле, в данном случае стоит 8000 милисекуд = 8 секунд
  }
  else // Если нет
  {
    digitalWrite(13, LOW); // то выключаем реле
    delay(1000);
  }
  // для колибровки датчикаосвещения. Эти строчки можно закоментировать, кроме "}"
  Serial.print(sensorValue, DEC); //Вывод данных с фоторезистора (0-1024)
  Serial.println(""); 
  delay(500); // задержка вывода данных в ком порт, чем меньше значение delay() тем быстрее будут показываться данные в com port с фоторезистора
}
Ссылка на сетч: https://yadi.sk/d/OssVotyV3SKXbg
В данном скетче я постарался все строчки кода прокомментировать и сделать наиболее простыми для понимания.
Что до схемы подключения, то она выглядит вот таким образом:

Главное в этой схеме не напортачить с подключением фоторезистора.
После подключения всех компонентов и заливки сетча, подсветка выглядит таким образом:

Ну и подробное словесное описание проекта и визуальная демонстрация в видео: