Smart плинтус 1.0

в 19:23, , рубрики: arduino, diy или сделай сам, датчик движения, плинтус, подсветка

Smart плинтус 1.0 - 1

Озаботила меня одна проблема – темный коридор по пути из спальни на кухню. Ну, знаете, люблю ночью на кухню ходить, но в потемках некомфортно, а т.к. коридор относительно ширины достаточно длинный, то велика вероятность отклонения от маршрута при ориентировании по встроенным в голову гироскопам. Ошибка накапливается, да еще ноги разной длины, ходил с вытянутыми руками и попадал в дверной проем не с первого раза.
Да, конечно есть всякие ночники, датчики движения, умные дома, но у меня есть лучше, у меня есть пластиковый плинтус с кабельным каналом.
Поэтому возникла идея запихать туда светодиодную ленту и посмотреть, как она там себя будет чувствовать и получилось, знаете ли, довольно круто, такая подсветочка, как в космических кораблях.

Smart плинтус 1.0 - 2
Smart плинтус 1.0 - 3

Ну, дальше конечно — ARDUINO! А нафига? А чтобы Smart! Заказал на Али 2 датчика движения и пошла работа.

Smart плинтус 1.0 - 4

Не работа конечно, а удовольствие. Датчик движения был выбран без примерки и мне, как всегда повезло, он идеально подошел в плинтус. Два датчика понадобилось, чтобы поставить их на двух концах плинтуса, ведь и с кухни нужно возвращаться.

Smart плинтус 1.0 - 5
Smart плинтус 1.0 - 6

Распиновку датчика китайцы почему-то сделали под линзой. Диапазон питающих напряжений 4,5-20В, выход: 3,3В – есть движение, 0В – нет движения. Есть еще один джампер и два подстроечника, не стал разбираться, т.к. по умолчанию все работало нормально. Еще, когда все собрал и запараллелил 2 выхода датчиков, напряжение, при движении стало около 1,5В. Думаю, что так делать нельзя и нужно было поставить диоды, но разбирать заново было неохота, тем более, что этот выход был заведен на АЦП.

Smart плинтус 1.0 - 7

Лента управляется полевиком IRFZ34N, потому что такой валялся. Конечно он не открывается полностью пятью вольтами, но с моей лентой, которая потребляет около 1А при 12В он справляется без нагрева.

Smart плинтус 1.0 - 8

Фоторезистор был взят дешевый, китайский.
Программа простая, с такой логикой: если освещенность ниже определенного порога, то подсвечиваем, плавно включаем и через заданное время плавно выключаем. Если во время свечения снова засекли движение, считаем задержку заново. Освещенность не меряем, когда светим, т.к. датчик освещенности засвечивается самим плинтусом.

int ledPin = 5;            //Светодиодная лента
int lightSensorPin = A7;   //Фоторезистор
int motionSensorPin = A0;  //Датчик движения
int val = 0;               //Яркость ленты
int light = 0;             //Освещенность
int motion = 0;            //Движение
int timerCounter = 0;      //Считалка времени
int timerEnable = false;   //Начало цикла включения
int timeOn = 8;            //Время включения в секундах
int faderEnable = false;   //Разрешает погаснуть
int lightEnable = false;   //Разрешает подсветку

void setup()
{
    pinMode(ledPin, OUTPUT);      
    Serial.begin(9600);
}
 
void loop()
{
  analogWrite(ledPin, val);
  light = analogRead(lightSensorPin);
  motion = analogRead(motionSensorPin);
  if (light < 50 && !lightEnable){
    delay(1000);
    if (light < 50) lightEnable = true;
  }
  if (light > 50 && val == 0) lightEnable = false;
  if (motion > 150 && lightEnable){
    timerEnable = true;
    faderEnable = false;
  }
  if (timerEnable){
    timerCounter ++;    
    val = val + 1;
    if (val > 254) val = 254;
    if (timerCounter > timeOn * 50){
      if (motion < 150){
        //val = 0;
        timerCounter = 0;
        timerEnable = false;
        faderEnable = true;
      }
      else {
        timerCounter = 0;
      }
    }
  }
  if (faderEnable){
    val = val - 2;
    if (val < 0){
      faderEnable = false;  
      val = 0;
    }
  }  

 // Serial.println(light);
    delay(20);
}

Все сенсорное хозяйство было смонтировано в плинтус, а для Ардуины с блоком питания был напечатан на 3D принтере корпус, все туда уложено, закрыто и спрятано.

Smart плинтус 1.0 - 9
Smart плинтус 1.0 - 10
Smart плинтус 1.0 - 11
Smart плинтус 1.0 - 12

После того, как работа была проделана, подумалось, что было бы классно сделать узкую плату-контроллер, которая помещалась бы в плинтус, и к ней необходимо было бы подвести только питание, а все коммутации делать внутри плинтуса. Но хотелось быстро и из того, что есть, поэтому из плинтуса идут 6 жил в достаточно громоздкий корпус. Пользуемся Smart плинтусом уже неделю, оценили все домашние. Плавное включение и тусклый, ровный свет — вот все, что нужно для ночных прогулок.
Так и подмывает, в соответствии с последними трендами, написать: «В будущем планирую прикрутить Wi-Fi и оснастить сенсорами, чтобы, когда проходишь мимо он замерял пульс и вычислял сожженные калории, а так же поражал злоумышленников разрядом при отсутствии отпечатка ноги в базе данных, вел статистику включений/выключений и подключался к облаку», а то как-то светит и больше ничего.

Автор: andetlt

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js