Для реализации данного примера нам понадобится:
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
В данном скетче я постарался все строчки кода прокомментировать и сделать наиболее простыми для понимания.
Что до схемы подключения, то она выглядит вот таким образом:
Главное в этой схеме не напортачить с подключением фоторезистора.
После подключения всех компонентов и заливки сетча, подсветка выглядит таким образом:
Ну и подробное словесное описание проекта и визуальная демонстрация в видео: