Изделия своими руками

Постомат для ящиков с пивом

Постомат для ящиков с пивомПостомат для ящиков с пивомПостомат для ящиков с пивомПостомат для ящиков с пивомИдея этой самоделки – сделать шкаф, доступ к которому будет иметь только тот, кто введет определенный код. По сути, это похоже на постомат. Мастер делал его специально для ящиков с пивом. Т.е. поставщик загружает вечером ящики с пивом, а утром, заказчик забирает их. Причем заказчиками могут быть разные люди, а открыть шкаф можно только введя номер заказа и одноразовый код на сенсорном экране.
Управлять шкафчиком можно также через локальный веб-сайт на Raspberry Pi. Через него можно управлять заказами и устанавливать код шкафчика. Устройство также обнаруживает, если кто-то проходит перед шкафчиком, и отслеживает температуру в шкафчике.
Инструменты и материалы:
-Raspberry Pi 4;
-Корпус Raspberry Pi;-SD-карта 16 ГБ;-Зарядное устройство USB-C;-Набор резисторов;-МОП-транзистор IRF3205 – 2 шт;-Диод (1N4007) – 2 шт;
-Шнур переменного тока с вилкой;
-40-контактный разъем GPIO;
-Перемычки;-2-контактный винтовой зажим – 5 шт;-3-контактный винтовой зажим;-Макетная плата;-3,5-дюймовый TFT-дисплей (NX4832K035);-Электромагнитный замок 12 В – 2 шт;-Однопроводной датчик температуры;-Детектор движения (AM312);
-ЖК-дисплей (LCD1602) (опционально);
-Пиломатериалы;
-Навесы;-Шесть пластиковых ножек для мебели;
-Крепеж;
-Паяльник;-Циркулярный станок;-Электролобзик;-Молоток;
Шаг первый: схема
Электромонтаж производится по схеме представленной ниже.
Постомат для ящиков с пивомПостомат для ящиков с пивомПостомат для ящиков с пивомПостомат для ящиков с пивомТак же можно скачать файл со схемой и эскизом.
Breadboard.pdfSchema.pdf
Шаг второй: настройка Raspberry Pi
Перед сборкой нужно настроить Raspberry Pi. Чтобы использовать Raspberry Pi, нужно будет выполнить следующие шаги:
1. Загрузка образа.
Образ содержит следующие элементы:
Apache
MariaDB
Код для проекта
Пользовательские настройки
Образ можно загрузить из OneDrive .
2. Запись образ на SD карту
Для записи образа на SD-карту мастер использует win32diskimager.
3. Подключение через ssh
Как только карта будет записана, нужно вставить ее в Raspberry Pi и включить устройство. Также нужно подключить сетевой кабель между компьютером и Raspberry Pi.
Теперь можно использовать клиент putty для подключения к Raspberry Pi через SSH со следующими настройками:

IP: 192.168.168.168  Порт: 22  Тип подключения: SSH

4. Вход
Чтобы войти в Raspberry Pi, используется имя пользователя student и пароль W8w00rd .
5. Подключение к Wi-Fi
После входа в систему Pi нужно подключиться к локальной сети Wi-Fi. Для этого шага потребуются данные для входа в пользовательскую сеть Wi-Fi, которые нуно прописать в следующих строках кода:

> sudo -i  > wpa_passphrase "your_SSID" "your_wifi-password" >> /etc/wpa_supplicant/wpa_supplicant.conf  > wpa_cli -i wlan0  > reconfigure wlan0

6. Обновление Raspberry Pi.
Теперь Raspberry Pi подключен к Интернету и нужно обновить его с помощью следующих команд:

> sudo update  > sudo upgrade  > sudo reboot

Постомат для ящиков с пивомШаг третий: настройка базы данных
Чтобы сохранить данные истории датчиков и информацию о шкафчиках и пользователях, нужно сохранить эти данные в базе данных MariaDB. Эта база данных уже установлена в пользовательском образе с диаграммой EER, показанной на изображении ниже.
В базе три основных таблицы
1. Таблица истории
В этой таблице будут храниться данные истории датчиков или исполнительных механизмов. У каждого элемента истории есть отметка времени, устройства (это датчик или исполнительный механизм), значение и действие.
2. Шкафчик
В этой таблице будут храниться информацию о каждом шкафчике. Это id устройства (замка), реквизиты заказа, код и статус шкафчика.
3. Таблица пользователей
В последней таблице будут храниться учетные записи для входа на сайт. У каждого пользователя есть уникальное имя пользователя, хешированный пароль и случайная строка, используемая при хешировании пароля.
Для входа в базу данных мастер будет использовать MySQL Workbench. Это клиент MySQL для визуализации базы данных. Если приложение установлено, можно настроить новое соединение со следующими данными:

Connection method: Standard (TCP/IP) over SSH  SSH Hostname: ip of the raspberry pi  SSH Username: student  SSH Password: W8w00rd  Username database: student  Password database: W8w00rd

Примечание: если был изменен пароль сервера Raspberry Pi или MariaDB, то нужно будет сделать это также здесь.
Постомат для ящиков с пивомШаг четвертый: бэкенд*
*Бэкенд (англ. back-end) — программно-аппаратная часть сервиса. Бэкенд отвечает за осуществление функционирования внутренней части веб-сайта.
Код для бэкэнда можно скачать на авторском Github, и он уже включен в пользовательский образ. Эта папка содержит классы для датчиков и исполнительных механизмов в каталоге / helpers. В этом каталоге также можно найти класс для отправки электронных писем через SMTP. В репозитории можно найти классы для связи с базой данных. А файл app.py – это главный скрипт бэкэнда.
Конфигурация бэкэнда:
В файле с именем config.py, можно настроить параметры базы данных и SMTP-сервера. Настройки базы данных уже установлены. Для отправки электронного письма, если температура слишком высокая или слишком низкая, нужно настроить параметры SMTP. Для изменения адреса электронной почты или интервала между предупреждениями, можно установить эти параметры в главном приложении app.py .
Кроме того, в файле app.py необходимо изменить два секретных ключа. По умолчанию это “Secret!”. Но чтобы обезопасить свой проект, нужно будет изменить их.
Добавление пользователя:
Чтобы защитить веб-приложение, мастер будет использовать токены JWT для защиты сайта в сети. Если войти на веб-сервер с учетной записью пользователя, то получим токен с датой истечения срока действия. Чтобы добавить пользователя в свой проект, нужно установить имя пользователя и пароль в файле addUser.py и запустить его. Для удаления учетной записи можно удалить ее из базы данных.
Запуск app.py при загрузке:
Для запуска app.py при загрузке потребуется создать сервис. Создаем файл с именем mijnproject.service:

[Unit]  Description=ProjectOne Project  After=network.target    [Service]  ExecStart=/usr/bin/python3 -u /home/student/WUK-afhaalautomaat/Code/Backend/app.py  WorkingDirectory=/home/student/WUK-afhaalautomaat/Code/Backend<br>StandardOutput=inherit  StandardError=inherit  Restart=always  User=student    [Install]  WantedBy=multi-user.target

Дальше копируем этот файл в системный каталог:

> sudo cp mijnproject.service /etc/systemd/system/mijnproject.service

Для запуска службы:

> sudo systemctl stop mijnproject.service

Чтобы остановить службу:

> sudo systemctl stop mijnproject.service

Чтобы разрешить запуск службы при загрузке:

> sudo systemctl enable mijnproject.service

Чтобы отключить запуск службы при загрузке:

> sudo systemctl disable mijnproject.service

Шаг пятый: интерфейс
Код для бэкэнда можно найти на авторском Github , и он уже включен в настраиваемый образ. Эта папка содержит HTML-страницы веб-сайта, стили CSS и сценарии для взаимодействия между веб-интерфейсом и серверной частью.
Интерфейс будет работать на сервере apache на Raspberry Pi, поэтому IP-адрес веб-сайта будет IP-адресом Raspberry Pi.
Чтобы изменить каталог внешнего интерфейса сервера Apache, необходимо отредактировать /etc/apache2/apache2.conf .

> sudo nano /etc/apache2/sites-available/000-default.conf

Теперь нужно изменить DocumentRoot на новую папку внешнего интерфейса. Дальше нужно только сохранить файл и перезапустить сервер.

> sudo service apache2 restart

Постомат для ящиков с пивомПостомат для ящиков с пивомШаг шестой: дисплей Nextion
Для разработки и программирования сенсорного дисплея будут использоваться Nextion Editor и Adobe XD. Окончательную версию можно найти на Github мастера.
Дизайн страниц:
Для разработки новой страницы используется Adobe XD. В этом приложении можно легко создать страницу и экспортировать ее в изображение. Это изображение можно установить в качестве фона страницы в редакторе Nextion.
Редактор Nextion:
Используя редактор Nextion, можно создавать страницы, размещать интерактивные элементы и программировать их. Более подробную информацию о редакторе и командах можно найти в документации.
Копирование проект на дисплей:
1. Экспортируем проект в файл .tft.
Нужно перейти в file > TFT FILE OUTPUT и экспортировать файл на пустую SD-карту.
2. Копируем файл на дисплей.
Выключаем дисплей. Устанавливаем SD-карту и включаем дисплей. Теперь файл .tft будет скопирован на дисплей.
Постомат для ящиков с пивомШаг седьмой: шкаф
Когда электронная часть собрана и протестирована, можно приступить к изготовлению шкафчика. Для этого шкафчика вы можете использовать готовый шкаф для хранения или сделать его, как это сделал мастер. Чертежи шкафа можно скачать ниже.
final.skp
После сборки шкафа можно устанавливать электронику. Первое, что нужно сделать, это установить замки. Замок можно установить на раме в центре шкафчика, а металлическую деталь – на дверь. После их установки нужно проверить замки и при необходимости отрегулировать их. Провода замков нужно будет удлинить.
Для установки дисплея нужно выпилить лобзиком отверстие в передней части шкафчика.
Для установки датчика движения нужно просверлить отверстие диаметром 10 мм, оно должно идеально подходить.
Остальная электроника размещается в верхнем отсеке.
Постомат для ящиков с пивомВсе готово.
Постомат для ящиков с пивомПостомат для ящиков с пивом

Самоделкин

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

Your Header Sidebar area is currently empty. Hurry up and add some widgets.