Оглавление:
Видео: EasyTalk: удобное общение и календарь рядом с вами: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:50
Меня зовут Коби Маршал, я учусь в Ховесте, Бельгия, и я студент мультимедийных и коммуникационных технологий (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 и проверьте, все ли работает, прежде чем закрывать крышку.
Внизу есть отверстие, куда можно подключить штатив, но это необязательно.
Вот и все! Надеюсь, вам понравилась эта статья! -Кобе
Рекомендуемые:
Versano: многофункциональное удобное устройство (Arduino Nano): 6 шагов
Versano: многофункциональное удобное устройство (arduino Nano): мне нужен был удобный мультиметр, который можно было бы легко носить с собой куда угодно. Я хотел, чтобы он был маленьким и миниатюрным в сравнении с обычными мультиметрами. Потратив часы на программирование и проектирование схем, я закончил создание устройства, которое может измерять напряжение
MyPetBot (бот, который следует за вами): 10 шагов (с изображениями)
MyPetBot (бот, который следует за вами): Ai - одно из самых красивых приложений математики. По сути, это набор операций с матрицами, оптимизированных для соответствия желаемому результату. К счастью, существует множество инструментов с открытым исходным кодом, которые позволяют нам его использовать. Изначально я
IRIS - лампа, которая знает, когда вы рядом: 12 шагов (с изображениями)
IRIS - лампа, которая знает, когда вы рядом: Привет! Ага, все на карантине. Я студент инженерного факультета. Раньше я останавливался в общежитии и привык выполнять задания и учиться по ночам. Теперь, когда я дома, моей семье не так комфортно, потому что все здесь привыкли спать
Обход запретов на общение с Xbox One: 6 шагов
Обход запретов на общение с Xbox One: люди, против которых вы играли, когда-либо жаловались, говоря, что вы раньше использовали ненормативную лексику на xbox, а затем не могли разговаривать со своими друзьями, когда они входили, даже если не вы говорили определенные вещи. Что ж, теперь есть способ и все у
Желтые точки тайны: ваш принтер шпионит за вами?: 5 шагов (с картинками)
Желтые точки тайны: ваш принтер шпионит за вами? Представьте, что каждый раз, когда вы печатаете документ, он автоматически включает секретный код, который можно использовать для идентификации принтера и, возможно, человека, который его использовал. Звучит как что-то из шпионского фильма, правда? К сожалению, сценарий