Smart плинтус 1.0

23d86c1645d44df29923971fb1ac00c8.JPG

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

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

9602c22aa2b04e6e974f290e78728846.JPG

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

b84873c5b5a4495ab5a425468b6f474e.jpg
8660ac2cae484818aa71f95ad615e2b2.JPG

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

210feea023074bdea10ba346427b3029.JPG

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

94cb6003cb604ad7803ea49fe4591bba.jpg

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

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 принтере корпус, все туда уложено, закрыто и спрятано.

bff1d401e41746ed9c97d256f01b64dc.JPG
056dd52c11514e78822ccb8b229d6c63.JPG
1df99f51ddd9429c928dce732601736c.JPG
45c2ef0e888842a8b130c3078e1c4258.JPG

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

© Geektimes