Оглавление:

EasyTalk: удобное общение и календарь рядом с вами: 6 шагов
EasyTalk: удобное общение и календарь рядом с вами: 6 шагов

Видео: EasyTalk: удобное общение и календарь рядом с вами: 6 шагов

Видео: EasyTalk: удобное общение и календарь рядом с вами: 6 шагов
Видео: Easy Talk / Александр Володин 2024, Ноябрь
Anonim
EasyTalk: удобное общение и календарь рядом с вами
EasyTalk: удобное общение и календарь рядом с вами
EasyTalk: удобное общение и календарь рядом с вами
EasyTalk: удобное общение и календарь рядом с вами

Меня зовут Коби Маршал, я учусь в Ховесте, Бельгия, и я студент мультимедийных и коммуникационных технологий (MCT). Для моего последнего задания первого года мне нужно было сделать IoT-устройство.

Дома у нас есть такая проблема, что мой брат всегда играет, и когда моей маме нужно что-то сказать ему снизу, ей нужно кричать, потому что он носит наушники и ничего не слышит. Я хотел решить эту проблему за нее, поэтому создал устройство, на которое можно отправлять сообщения с веб-сайта. Он также используется в качестве календаря, в котором вы можете сохранять свои собственные события или импортировать внешний календарь по URL-адресу. Это устройство также сохраняет значения температуры и качества воздуха, чтобы вы могли видеть, насколько оно здорово, когда вы играете или работаете, потому что вы часто этого не замечаете.

Это устройство называется EasyTalk и решает эту проблему. Это небольшое устройство, использующее OLED-экран, поэтому вы можете прямо сейчас видеть свои события, время, температуру и качество воздуха. Когда сообщение отправлено, оно замечает вас звуком уведомления и показывает сообщение на экране, где вы можете ответить «да» или «нет».

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

Шаг 1: материалы

Материалы
Материалы
Материалы
Материалы
Материалы
Материалы

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

  • Raspberry Pi 4 Модель B - 4 ГБ
  • Pibow Coupé 4 - Ниндзя
  • 12 x Premium Jumperwires op strip - 40 штанг - M / M - 20 см
  • 6 x Premium Jumperwires op strip - 40 штук - M / F - 20 см
  • 2 x 36-контактный разъем для стекирования
  • 40-контактный штекер коробки передач
  • 40 контактов Regenboog GPIO kabel
  • Монохромный 2,42-дюймовый 128x64 OLED-графический модуль дисплея
  • Динамик Kleine Metalen и Draadjes - 8 Ом 0,5 Вт
  • Adafruit Mono 2,5 Вт, класс D Audio Versterker
  • Кабель Aux Jack 3,5 мм
  • Кнопка мгновенного действия с резьбой 7 мм
  • Tuimelschakelaar
  • Датчик PIR Bewegingssensor
  • DS18B20 Цифровой датчик температуры
  • Grove - Lucht kwaliteit sensor v1.3
  • Grove - АЦП I2C
  • Raspberry Pi 4 USB-C Voeding
  • Flexibel mini-statief
  • Резисторы 470 Ом
  • Резистор 4, 7 кОм
  • Термоусадочные трубки
  • 6 винтов M2 x 6 мм
  • 6 винтов M2 x 8 мм
  • 3 винта M2 x 16 мм
  • Алюминиевый корпус 3 мм

Я также составил Bill Of Materials (BOM), чтобы вы могли видеть, сколько я заплатил за все материалы и где я их взял.

Шаг 2: Raspberry Pi

В этом проекте мы используем Raspberry Pi, потому что он прост в настройке и может использоваться для многих вещей. Он идеально подходит для того, что мы хотим делать.

Загрузите настольную ОС Raspberry Pi и установите ее на свой Raspberry Pi. Вам нужно включить SPI, I2C и One Wire в raspi-config. Я предлагаю отключить некоторые вещи в параметрах загрузки, чтобы ускорить загрузку. Помимо этого, я использую некоторые библиотеки, которые вам нужно установить с помощью pip, чтобы эта работа работала.

pip3 установить:

  • adafruit-circuitpython-ssd1305
  • ics
  • Колба
  • Фляга-Корс
  • Flask-JWT-Extended
  • MySQL-коннектор-Python

Вам также понадобится apache2 для создания веб-сайта, здесь мы используем apt:

sudo apt install apache2 -y

Вам необходимо настроить беспроводное соединение, потому что вы не можете получить кабель UTP в Raspberry Pi, когда он находится в футляре.

Вам также нужно будет настроить MariaDB, чтобы вы могли получить доступ к базе данных.

Шаг 3: Подключение

Проводка
Проводка
Проводка
Проводка

Следующий шаг - соединить все вместе и проверить, все ли компоненты работают. Я создал печатную плату, чтобы удалить макетную плату и уменьшить размер проводки, чтобы устройство могло быть меньше. Это необходимо, потому что он будет стоять рядом с вашим монитором и не может занимать много места, чтобы не отвлекать вас от работы.

Шаг 4: База данных

База данных
База данных

Это устройство использует нормализованную базу данных MySQL для хранения всей своей информации и отображения ее на веб-сайте и на самом устройстве. Я создал его в MySQL Workbench.

В этой базе 5 таблиц.

Таблица Activiteiten (= действия, события) используется для хранения всех событий календаря. Сюда также входят все события, импортированные из другого календаря.

Table Apparaten (= devices) используется для хранения различных типов устройств, которые используются в таблице Historiek (= history). В этом проекте используются два датчика, датчик температуры и датчик качества воздуха, но у меня также есть третье «устройство», сам веб-сайт для хранения сообщений, отправляемых с веб-сайта на устройство.

Таблица Gebruikers (= users) хранит пользователей. Они могут войти в систему со своим паролем и указать псевдоним, который будет отображаться в сообщении при отправке на устройство.

Таблица Historiek (= история) используется для хранения значений датчиков и сообщений, отправленных на устройство.

И, наконец, в таблице Links (= URL’s) хранятся все URL-адреса внешнего календаря.

Шаг 5: Код

Код
Код
Код
Код
Код
Код

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

Код внешнего интерфейса помещается в папку html по умолчанию из apache2. Вы можете найти эту папку в / var / www / html.

Для бэкэнда вам нужно создать папку в своей домашней папке и поместить туда весь код.

Нам также нужно изменить некоторые значения в этом коде. Сначала перейдите на app.py. В строке 23 задайте название однопроводного датчика температуры. Возможно, для вас это будет что-то другое. Чтобы найти правильное имя, откройте терминал и введите:

ls / sys / bus / w1 / устройства

и найдите строку, состоящую из нескольких разных чисел, и замените ее в строке 23.

Еще нам нужно изменить в файле config.py пароль к базе данных.

Если вы хотите, чтобы это запускалось при загрузке, вам также необходимо изменить файл EasyTalk.service. Просто измените WorkingDirectory и User. Вы должны скопировать этот файл с помощью следующей команды:

sudo cp EasyTalk.service / etc / systemd / system / EasyTalk.service

Затем запустите его:

sudo systemctl start EasyTalk.service

А затем включите его, чтобы он запускался при загрузке

sudo systemctl включить EasyTalk.service

Шаг 6: Дело

Случай
Случай
Случай
Случай
Случай
Случай
Случай
Случай

Я решил напечатать корпус на 3D-принтере, чтобы он был как можно меньше. Принт состоит из 3 частей: самой коробки, крышки и держателя динамика, поскольку в нем нет отверстий для ввинчивания болтов.

Вам также понадобится несколько жирных шрифтов, чтобы скрутить все вместе.

  • 6 винтов M2 x 6 мм
  • 6 винтов M2 x 8 мм
  • 3 винта M2 x 16 мм

Хотя я буду честен. На создание этой штуки у меня ушло 4-5 часов. Поскольку он такой маленький, все просто умещается, и иногда трудно вкрутить полужирный шрифт, но он работает, если вы делаете это осторожно.

Я также разработал печатную плату для замены макета, вам сначала нужно припаять разъемы и 5 резисторов (4 x 470 Ом, 1 x 4,7 кОм).

Когда у вас есть печатная плата, я предлагаю начать с пайки кабелей ко всему, что должно подключаться к печатной плате.

Когда это будет сделано, вы собираетесь прикрутить OLED-дисплей на место и подключить к нему печатную плату. Дисплей удерживает печатную плату. Для этого используйте винты диаметром 6 мм.

Затем вы прикручиваете датчик качества воздуха туда, где он должен быть, но это немного сложно, потому что к нему подключается АЦП. Чтобы сделать это правильно, чтобы два компонента не касались друг друга, используйте винты 16 мм с алюминиевыми трубками 3 x 5 мм, которые необходимо распилить. Я сделал это с двумя винтами, потому что не смог достать до третьего. Вы подключаете 4 провода туда, где они должны идти на печатной плате.

Затем вы подключаете аудиоусилитель к печатной плате и устанавливаете динамик на место с помощью 3D-печатного держателя.

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

Когда все это на месте, вам нужно прикрутить Raspberry Pi. Я использую для этого чехол, потому что я не доверяю теплу, которое он выделяет, этот чехол предназначен для защиты, поэтому 3D-печать не тает. Прежде чем прикручивать его на место, вам нужно подключить кабель питания и вспомогательный кабель (который вам нужно открыть и припаять один провод, а затем подключить Raspberry Pi к печатной плате), потому что после этого вы не сможете добраться до него.

Затем просто подключите кабель заголовка GPIO от печатной платы к Raspberry Pi и проверьте, все ли работает, прежде чем закрывать крышку.

Внизу есть отверстие, куда можно подключить штатив, но это необязательно.

Вот и все! Надеюсь, вам понравилась эта статья! -Кобе

Рекомендуемые: