Arduino

Устройство обмена сообщениями + светильник с литофан-изображениями

Уже не раз на сайте были представлены самоделки, которые вряд ли бы появились, не будь коронавируса и изоляции.
Творческие люди не хотят сидеть просто так и реализуют проекты, на которые у них раньше просто не было времени или необходимости.
Автор этой самоделки был студентом по обмену в Австралии. Там же он познакомился со студенткой из США. По окончанию срока обучения он уехал в Амстердам, она в Нью-Йорк.

Планы у них были встретиться через непродолжительное время, но встреча, из-за известных событий, отложилась на неопределенное время.
Наконец, через 11 месяцев, они встретились. В подарок своей девушке мастер подарил «Фонарь обмена сообщениями».

Этот фонарь имеет встроенный модуль обмена сообщениями (функционирующий через интернет), RGB-подсветкой и фоторамку из четырех литофан изображений. На изображениях запечатлены памятные события молодой пары.
Давайте посмотрим небольшой видеоролик.

Как вы уже, наверное, поняли, для обмена сообщениями, такое устройство должно быть и у парня и у девушки.

Инструменты и материалы:
-3D-принтер;
-Отвертка;
-Нож;
-Паяльные принадлежности;
-Клеевой пистолет;
-Нить PLA два или более цветов;
-Неодимовые магниты 2×8 мм, 8 шт;
Детали электроники:
-Плата NodeMCU ESP8266;
-Печатная плата 6×4 см;
-Плата Micro USB;
-TXS0108E 8-канальный преобразователь логического уровня;
-Тумблер;
-Штыревой разъем 40x 2,54 мм;
-Энкодер Ky-040;
-Емкостной сенсор Digital Touch TTP223B;
-0,96-дюймовый дисплейный модуль Oled 128X64 I2C SSD1306;
-Светодиодная лента WS2812 RGB 144 светодиода / метр;
-Гайки M3 — 10 шт;
-Болты М3 20мм — 10 шт;
-Винты M3 20 мм — 10 шт;
-Провода;
-Термоусадочная трубка;

Шаг первый: о проекте
Фонарь состоит из 2 модулей — фоторамки и корпуса электроники.
Фоторамка сделана в виде прямоугольного параллелепипеда. По сторонам фигуры устанавливаются четыре фотографии со сторонами 70x100x4 мм (Ш, Д, В). Эти изображения напечатаны в формате Lithophane, подробнее об этом позже.

Корпус электроники позволяет установить всю электронику внутри фонаря. Также в корпусе есть отверстия для входа USB, выключателя питания и пользовательского интерфейса.

Электроника — это платформа ESP8266 NodeMCU на базе Arduino, состоящая из 3-х основных частей.
ESP управляет всеми пользовательскими вводами, RGB-подсветкой и подключается через Wi-Fi к веб-серверу на основе платформы Wix, загружающего и отправляющего сообщения.

Светодиодная лента WS2812 RGB управляются с помощью библиотеки Adafruit Neopixel, что позволяет управлять ими из пользовательского интерфейса.

Пользовательский интерфейс. ESP запускает версию библиотеки меню Arduino. Это меню отображается на экране и по нему можно перемещаться с помощью поворотного энкодера. Из этого меню можно отправлять сообщения и изменять настройки светодиодов. Сенсорный датчик используется для включения светодиодов.

Все устройство питается от простого разъема micro USB, который также можно использовать для программирования и обновления.

Шаг второй: корпус фонаря для обмена сообщениями
Детали могут быть напечатаны любой нитью. Мастер использовал PLA, так как он самый дешевый, и конструкция не должна выдерживать никаких структурных нагрузок. Комбинируйте любые цвета, которые вам нравятся и которые есть в наличии для корпуса, фоторамки и крышки.

Требуются напечатать следующие детали:
1x Корпус для электроники.
1x Крышка корпуса электроники.
1x Фоторамка.
1x Крышка фоторамки.
1x Кнопка поворотного энкодера.
1x Крышка сенсорного датчика.

Мастер использовал высоту слоя 0,2, однако в зависимости от принтера эта настройка может меняться.
Обратите внимание, что для держателя фоторамки и верхней крышки рекомендуется полное заполнение, чтобы избежать попадания постороннего света внутрь корпуса.
Picture_frame_lid.STL
Rotary_encoder_button.STL
Touch_sensor_cover.STL
Electronics_Housing.STL
Electronics_housing_lid.STL
Picture_frame.STL

Шаг третий: литофан
Что такое литофан? По сути, это превращение изображений в трехмерные объекты, 3D-печать изображений.
Классический литофан — это трехмерное изображение на тонком полупрозрачном фарфоре, которое можно рассмотреть, только если подсветить его сзади ярким источником света (например, солнцем или обычной лампочкой).
Например, на фото ниже представлен немецкий литофан конца 19 века. Слева без подсветки, справа с подсветкой.

Работает это следующим образом: тонкие участки литофана пропускают больше света и выглядят ярче, в то время как плотные части пропускают мало света и создают темные детали изображения. Что интересно, картинка меняется в зависимости от направления и яркости источника света.

Если раньше технология создания такого изображения была достаточно сложной (вырезание изображения из воска — форма из гипса — литье фарфора — обжиг), то с появлением 3D-печати все намного упростилось.

Есть несколько отличных инструментов и руководств, таких как All3DP, но чтобы обобщить концепцию, мастер использовал онлайн-инструмент под названием 3dp.rocks/lithophane . Здесь можно просто загрузить изображение и установить параметры по своему вкусу, а программа позаботится обо всем остальном.

Итак, для создания файла для печати нужны:
Бесплатный онлайн-инструмент 3dp.rocks/lithophane
Все настройки по умолчанию: см. фото
Изображение с соотношением сторон 3:4 и высотой 4. Это важно, потому что при этом будет получен литофан размером 100x75x3 мм (Д, Ш, В). Этот размер подходит для держателя фоторамки.
Материал: PLA
Высота слоя печати такая же, как у принтера.

Шаг четвертый: сборка
Детали напечатаны и можно приступать к сборке. Начинает мастер с электроники.
В любом электронном проекте всегда рекомендуется сначала проверить, все ли работает должным образом, создав прототип на макетной плате. Собирает согласно схемы.

После проверки приступает к сборке.
Устанавливает дисплей и датчик угла поворота и прикручивает их. Приклеивает емкостной датчик выводами внутрь к корпусу электроники. Приклеивает разъем micro-USB на место и сдвигает переключатель питания в нижней крышке.

Дальше разрезает светодиодную ленту на 4 равные части по 15 светодиодов и припаивает к контактным площадкам провода. Светодиоды понадобятся для установки в фоторамку.

Наконец, подключает все компоненты, следуя прилагаемой схеме.
Устанавливает модуль ESP8266 на прототип печатной платы с преобразователем уровня TXS0108E. Сделать это нужно через гнездовые разъемы 2,54 мм, чтобы в случае аварии (например, короткое замыкание или неправильное напряжение питания) ESP и преобразователь уровня можно было заменить без необходимости в новой печатной плате. Устанавливает плату в корпус. Подключает все согласно схемы.


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


Шаг пятый: программирование
Написанная программа довольно обширна и требует использования нескольких
библиотек Arduino. Мастер поясняет основные части кода в тексте, а детали в самом коде.

Первая цель: отправлять сообщения через Интернет:

Шаг 1: выбор сообщения Эта часть кода записана в файлах «Messaging_Lantern.ino» и «menuinit.ino». И работает, создавая интерактивное меню с использованием библиотеки «Arduino Menu» от «neu-rah». Мастер рекомендует поэкспериментировать со следующими примерами скетчей: «oZOledAscii» и «clickEncoder».

Он определил несколько категорий сообщений: общие, нежные, внимательные и образцовые. При выборе категории открывается подменю, и можно выбрать сообщения для отправки. Содержание этих сообщений находится в файле menuinit.ino.

Шаг 2: отправка сообщения через Интернет
Здесь мастер ставил несколько целей: отправка сообщения бесплатная, без использования дополнительного оборудования и без изменения каких-либо настроек маршрутизатора. Решение заключалось в использовании бесплатного веб-сайта WIX . WIX — это услуга онлайн-хостинга веб-сайтов, позволяющая разместить один бесплатный веб-сайт. Этот бесплатный веб-сайт включает возможность размещения небольшой базы данных, к которой можно получить доступ через некоторый код jаvascript, написанный в их среде разработки Corvid.

Мастер использует функцию ESP8266 WIFI для записи сообщений в эту базу данных, а затем прочтения полученных сообщения из базы данных через фиксированный временной интервал в 1 минуту. Эта функция реализована в «WifiConnectivity.ino».

Шаг 3: отображение сообщений, полученных от другого модуля
Каждую минуту текущее сообщение вызывается из базы данных и сохраняется. Затем, если к фонарю обмена сообщениями не прикасались более 10 секунд, он переходит в «спящий режим», а затем на OLED-дисплее отображается последнее полученное сообщение. Эта возможность реализована в функции «void Loop ()» в файле «Messaging_Lantern.ino». Чтобы снова разблокировать меню, необходимо нажать на поворотный энкодер.

Вторая цель: функционировать как лампа.
Чтобы устройство работало как лампа, он использовал библиотеку Adafruit NeoPixel для управления светодиодными лентами WS2812.
Светодиоды будут отображать определенный цвет. Этот цвет можно выбрать в подменю «Colour», изменив значения RGB от 0 до 254. Кроме того, имеется настройка яркости от 0 до 100%. Вся эта функциональность реализована в файле «LEDControl.ino». Кроме того, лампу можно включать и выключать с помощью сенсорного датчика. Эта функция реализована в файле «TouchSensor.ino».
Messaging_Lantern.ino
TouchSensor.ino
wifiConnectivity.ino
LEDControl.ino
menuInit.ino

Шаг шестой: веб-база данных
В этом шаге поговорим, как создать базу данных Wix.
Создайте учетную запись и начните создавать свой первый веб-сайт. Затем сделайте следующее:
В меню Wix создайте базу данных и назовите ее: «DATABASE_LANTERN» (или по вашему усмотрению с изменением кода)
Установите параметры:
Read: Anyone
Create: Admin
Update: Anyone
Delete: Admin
Создайте 2 записи с заголовками USER1 и USER2 и добавьте столбец:
fieldname: dsiplayDATA
fieldKey: displayData
field type: text
Заполните столбец dsiplayDATA примером текста. Например: test1, test2
Скопируйте идентификаторы и сохраните их. Ключи должны выглядеть примерно так:
Key1 USER1: 1a534425-5a6a-0000-b215-0cdbf3195f30 //they don't work
Key2 USER2: 9d6937b5-7f67-0000-b563-ba0495808197 //they don't work
На сайте Wix в разделе «code files» создайте новый файл backend jаvascript: http-functions.js. Вставьте туда предоставленный код.
Замените «KEY» в обеих установленных функциях.
get_setUser1DisplayMessage: key of user 1
get_setUser2DisplayMessage: key of user 2
Теперь опубликуйте свой сайт.
Синхронизируйте базу данных: DATABASE_LANTERN to live. Эта опция доступна при открытии базы данных.
Теперь все должно работать, и, вставив предоставленные URL-адреса (см. Файл кода) в строку поиска вашего веб-браузера, вы сможете получить JSON с get_functions и записать в базу данные с помощью set_functions.
Messaging_Lantern_WIX_Database.txt

Все, что необходимо изменить, можно найти в начале «Messaging_Lantern.ino».
Чтобы использовать «Фонарь обмена сообщениями» самостоятельно, необходимо изменить в коде следующее:
Измените имя и пароль Wi-Fi
Создайте базу данных Wix и используйте персонализированные ссылки для общения.
Установите пользователей USER_1 и USER_2 на любом из фонарей обмена сообщениями.

Необязательные изменения:
Измените содержание сообщений (menuInit.ino).
Измените цвет и яркость светодиодов по умолчанию на свой любимый цвет RGB.
Все готово, осталось только подарить один фонарь любимому человеку, а второй оставить себе и можно общаться.

Источник

Похожие статьи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть
Закрыть