Как я решил собрать подсветку дивана и что из этого вышло
Кажется когда-то давно я видел картинку с такой идеей. Большая кровать и по ее периметру светится светодиодная лента. Такой ambient light. Вот и захотелось мне сделать что-то такое.
У меня в запасах была лента ws2812b и Arduino Uno и небольшой диван, готовый примерять на себя новую подсветку. + Raspberry Pi которая была уже давно куплена с заделом на будущее, но пока стояла почти без дела.
Главная идея была такая. У переднего краешка дивана наклеена лента. Под диваном к ней подключена arduino. На моем телефоне стоит приложение, которое управляет цветом ленты и ее работой ( его я планировал тоже написать сам ).
Мне представлялось это в виде такого кружочка для выбора цвета на экране телефона. Я по нему тыкаю, а лента меняет цвет. Все счастливы!)
Я решил взяться за этот проект.
Вначале мне сразу пришла такая идея использовать вот такие радио передатчик и приемник для связи Raspberry Pi и Arduino.
Когда я жмакаю на цветовой кружок в приложении, на малинку пойдет сообщение с новым цветом ( через WiFi ), а она уже передаст сообщение на ардуину через радио модуль.
Вроде все просто.
Я попробовал собрать эту схему. Первая проблема обнаружилась в том, что радио приемник никак не хочет ловить сообщение с передатчика. Она решилась подключением пары конденсаторов рядом с приемником. Но, когда я подключал к adruino с приемником еще и светодиодную ленту, все в конец переставало работать. После подключения ленты приемник совсем переставал ловить сигнал. Вернее пока светодиоды были выключены все было хорошо. Но вот чем ярче я их делал, тем хуже принимался сигнал. И вот эта проблема поставила меня в тупик. Я пробовал ставить конденсатор на линию питания ленты, но это не дало результата. Я перечитал пару форумов на эту тему.
Один из них заканчивался сообщением спрашивающего: "Я очень долго пытался заставить это работать. В конце концов забил и перешел на WiFi".
Я решил, что это неплохая идея, потому что и у меня самого 3-й день это дело не работало.
Как раз мне пришли из Китая платы nodemcu с esp8266.
+ Я еще вспомнил, что когда-то слышал про такую штуку как MQTT и решил вспомнить что это.
Оказалось это то что мне нужно.
Новая схемы была такая.
Nodemcu собираем в одну коробочку вместе с arduino и соединяем их по I2C, к ардуино подключаем ленту. Засовываем эту связку под диван)
На малинке запускаем MQTT брокер Mosquitto. Сообщение идет с телефона на брокер.
Nodemcu подписывается на эти сообщения и когда получает такое, то сразу передает его через I2C на ардуину. Ардуина зажигает ленту - я сияю от счастья)
Спойлер: эта схема прижилась.
Ардуина без проблем связалась с Nodemcu через I2C. С запуском MQTT брокера проблем не возникло, как и с подпиской Nodemcu на его сообщения сообщения.
Вот что по итогу получилось:
Питание приходит через microusb с этой стороны:
А тут подключается лента:
Начинка)
А вот само приложение:
И результат:









