Как сделать «постамат», работающий по запросам с сайта?

Здравствуйте. Я загорелся идеей сделать свой небольшой "постамат". Прочитал на форумах, что лучший способ изучить что-то - это сделать свой проект. Думаю, что "постамат" - хорошее дело для изучения всех интересующих меня технологий (надеюсь, я указал правильные теги).
Я думаю, Вы уже поняли, в чем суть устройства, и как это работает, но я постараюсь объяснять, как я это вижу (буду рад, если поправите меня и дополните).
Хочу сделать так:
1) Есть сайт, на нем нужно зарегистрироваться и нажать кнопку, например, "хочу лимонад" или "хочу мороженное". Система по базе проверяет, есть ли у Вас доступ (допустим, Вы можете это сделать, если старше 18 лет) и выводит код из 4 цифр.
2) Сайт через сервер (не уверен, как это работает) отправляет файл на аппарат, который его принимает и обрабатывает. Как я понимаю, легче всего это реализовать на Linux, работающей в Raspberry. Аппарат должен принимать файлы только через интернет;
3) Человек, когда ему будет нужно подходит к аппарату и вводит свой код. Raspberry связан с Arduino и отправляет ему уже свою команду. Arduino посылает сигнал на сервопривод, который открывает дверь.
4) Это все считывается и отправляется назад на сайт, где выводится "лимонад забран". В базу заносится +1 забранный лимонад этим пользователем.

Буду рад, если кто-нибудь откликнется и подскажет что-нибудь. Возможно, кто-то знает полезные ссылки, тоже будет здорово. Спасибо!
  • Вопрос задан
  • 333 просмотра
Решения вопроса 1
gbg
@gbg
Баянист. Тамада. Услуги.
Для того, чтобы отдать команду замку на открытие дверки, не обязательно использовать связку из ардуины и rpi. Достаточно мелкого контроллера типа ESP8266. У него уже хватит мозгов поддерживать связь с сервером и открывать замок.

Вы беретесь за большую задачу и хотите решать ее всю сразу. Так вы рискуете утонуть в деталях. Сейчас у вас сделана декомпозиция вида "как на мой взгляд это должно работать".

Более продуктивна декомпозиция "из каких этапов будет состоять разработка вундервафли".

Она разбивается на три части:
1) Железо: ящик с замком, электроника, питание
2) Серверная инфраструктура - хостинг, домен, SSL, безопасность
3) Софт, который все собирает в кучу.

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

Смотрим, что для этой задачи понадобится в плане железа. Это esp-01 - миниатюрный модуль, который способен выйти в интернет. На GPIO2 у него есть светодиод, так что достаточно подать на модуль питание по схеме и закинуть на него простую прошивку на ардуино. (Да, Arduino-ide их поддерживает).

Итого, нужны esp-01, блок питания на 3.3 вольта (можно две батарейки AA), адаптер USB-UART для прошивки, макетная плата и провода, чтобы собрать все в кучу.

Пишете прошивку, которая цепляется к wifi, дергает по HTTPS скрипт на сайте и в зависимости от того, что выдал скрипт, включает или выключает GPIO. Таким образом, вы сразу обеспечиваете и минимальный уровень ИБ - никто не сможет подменить ваш сайт и командовать девайсом, для этого нужно будет подделать сертификат HTTPS.

Полагаю, что сайт и скрипт вы сможете поднять и написать самостоятельно, самый простой хостинг и домен обойдутся примерно в 10 баксов в месяц, а сертификат HTTPS можно взять бесплатный через certbort.

А дальше можно будет дополнить конструкцию силовыми ключами (в добавок к светодиоду) и электронным замком, а на сайт добавить управляющую логику, реализующую доступ.

Личный опыт - дома через телеграм-бот управляю бытовой техникой. Все самописаное-самопайное.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vanyamba-electronics
Первый же вопрос, который возникает: зачем этому постамату сайт?
Дело в том, что если пользователь делает заказ на сайте, то придя к постамату, он должен иметь возможность зайти на этот сайт ещё раз.
Например, чтобы уточнить цифры из нескольких заказов или что-то ещё.
Поэтому основная часть интерфейса вендинговых аппаратов - это приём заказа, приём оплаты, отмена заказа и т.д.
Покупатель видит Пепси и говорит себе: хочу Пепси. Подходит и покупает.
А тут он видит Пепси, а ему говорит зайди на сайт.
Или он зашёл на сайт, видит Пепси, а ему говорят: сходи в постамат.
То есть, вместо: "вот твой Пепси", в обоих случаях покупатель слышит: "Низзяяя". И соответственно процесс покупки превращается в процесс подачи жалобы в суде.
Но конечно всё выглядит совершенно иначе, если смысл проекта в том и состоит, чтобы красть деньги клиентов. Тут желательно два сайта - один сайт делает предложение, постамат не выдаёт заказ, а на втором сайте можно вернуть деньги, но его забанил Роскомнадзор.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
QIP.ru Москва
от 120 000 до 220 000 ₽
XIAG AG Новосибирск
от 150 000 до 250 000 ₽
MosLine Москва
До 170 000 ₽