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

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

Буду рад, если кто-нибудь откликнется и подскажет что-нибудь. Возможно, кто-то знает полезные ссылки, тоже будет здорово. Спасибо!
  • Вопрос задан
  • 790 просмотров
Решения вопроса 1
gbg
@gbg Куратор тега Linux
Любые ответы на любые вопросы
Для того, чтобы отдать команду замку на открытие дверки, не обязательно использовать связку из ардуины и 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
Первый же вопрос, который возникает: зачем этому постамату сайт?
Дело в том, что если пользователь делает заказ на сайте, то придя к постамату, он должен иметь возможность зайти на этот сайт ещё раз.
Например, чтобы уточнить цифры из нескольких заказов или что-то ещё.
Поэтому основная часть интерфейса вендинговых аппаратов - это приём заказа, приём оплаты, отмена заказа и т.д.
Покупатель видит Пепси и говорит себе: хочу Пепси. Подходит и покупает.
А тут он видит Пепси, а ему говорит зайди на сайт.
Или он зашёл на сайт, видит Пепси, а ему говорят: сходи в постамат.
То есть, вместо: "вот твой Пепси", в обоих случаях покупатель слышит: "Низзяяя". И соответственно процесс покупки превращается в процесс подачи жалобы в суде.
Но конечно всё выглядит совершенно иначе, если смысл проекта в том и состоит, чтобы красть деньги клиентов. Тут желательно два сайта - один сайт делает предложение, постамат не выдаёт заказ, а на втором сайте можно вернуть деньги, но его забанил Роскомнадзор.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы