Add files via upload
This commit is contained in:
21
LICENSE
Normal file
21
LICENSE
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2025 skrepkaq
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
58
README.md
Normal file
58
README.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# PizzaTime - кнопка для заказа пиццы с помощью ESP32
|
||||||
|
[](https://youtu.be/6Nl7IEtmYt4)
|
||||||
|
|
||||||
|
## Описание
|
||||||
|
PizzaTime button - это устройство на базе ESP32 для заказа пиццы из Papa John's одним нажатием кнопки.
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
- Выбор пиццы с помощью энкодера и LCD дисплея
|
||||||
|
- Заказ выбранной пиццы одним нажатием большой красной кнопки
|
||||||
|
- Отслеживание статуса заказа на дисплее
|
||||||
|
|
||||||
|
## Схема подключения
|
||||||
|
- LCD дисплей по I2C (SDA - pin 4, SCL - pin 5)
|
||||||
|
- Энкодер (DT - pin 8, CLK - pin 6, BUTTON - pin 7)
|
||||||
|
- Большая красная кнопка (pin 10)
|
||||||
|
- Светодиод кнопки (pin 9)
|
||||||
|
|
||||||
|
## Корпус
|
||||||
|
- Скачать 3D модель можно вот [тут](https://drive.google.com/file/d/1nt_kixFm3K33JhLOQZ-CUh5Is4GnZuJ8/view?usp=sharing)
|
||||||
|
- Печатал слоем 0.15мм, без поддержек
|
||||||
|
|
||||||
|
## Навигация по меню
|
||||||
|
- Выбор пиццы производится с помощью крутилки
|
||||||
|
- Для подтверждения выбора нажмите на крутилку
|
||||||
|
- Чтобы вернуться назад зажмите крутилку на 2 сек
|
||||||
|
- Чтобы заказать пиццу нажмите на большую красную кнопку когда она загорится
|
||||||
|
|
||||||
|
## Настройка
|
||||||
|
1. Склонируйте репозиторий с подмодулями:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone --recursive https://github.com/skrepkaq/pizza-time.git
|
||||||
|
```
|
||||||
|
2. Откройте проект в [PlatformIO](https://platformio.org/install/integration/)
|
||||||
|
|
||||||
|
3. Нажмите "build" или скопируйте пример конфига вручную
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp config.example include/config.h
|
||||||
|
```
|
||||||
|
|
||||||
|
4. В файле `include/config.h` укажите:
|
||||||
|
- Данные WiFi сети
|
||||||
|
- IP прокси-сервера
|
||||||
|
- ID города
|
||||||
|
- Пины для подключения компонентов
|
||||||
|
- Данные для заказа (имя, телефон и т.д.)
|
||||||
|
|
||||||
|
5. Соберите и загрузите прошивку на ESP
|
||||||
|
|
||||||
|
6. Запустите прокси-сервер:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd proxy
|
||||||
|
docker-compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
7. Включите кнопку и заказывайте пиццу
|
||||||
29
config.example
Normal file
29
config.example
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
#define WIFI_SSID "SSID"
|
||||||
|
#define WIFI_PASSWORD "PASSWORD"
|
||||||
|
|
||||||
|
|
||||||
|
#define API_URL "http://192.168.0.42:5009" // укажите ip своего прокси
|
||||||
|
#define CITY_ID 0 // можно найти вот тут https://api.papajohns.ru/city/list
|
||||||
|
|
||||||
|
// энкодер
|
||||||
|
#define ENCPIN1 8
|
||||||
|
#define ENCPIN2 6
|
||||||
|
#define ENCBTNPIN 7 // кнопка энкодера
|
||||||
|
|
||||||
|
#define BRBPIN 10 // большая красная кнопка
|
||||||
|
#define LEDPIN 9 // светодиод
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Данные заказа
|
||||||
|
#define ORDER_NAME "Андрей"
|
||||||
|
#define ORDER_PHONE "+7..."
|
||||||
|
#define ORDER_EMAIL ""
|
||||||
|
#define ORDER_GPS_LAT 39.176134
|
||||||
|
#define ORDER_GPS_LON 26.058903
|
||||||
|
// #define ORDER_RESTAURANT_ID 0 // у меня без указания заказывается из какого то рандомного, а не ближайшего ресторана
|
||||||
|
|
||||||
|
// #define MINPRICE 800 // не показывать с ценой меньше чем
|
||||||
|
|
||||||
|
#define TRACK_UPDATE_INTERVAL 50000
|
||||||
22
platformio.ini
Normal file
22
platformio.ini
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
; PlatformIO Project Configuration File
|
||||||
|
;
|
||||||
|
; Build options: build flags, source filter
|
||||||
|
; Upload options: custom upload port, speed and extra flags
|
||||||
|
; Library options: dependencies, extra library storages
|
||||||
|
; Advanced options: extra scripting
|
||||||
|
;
|
||||||
|
; Please visit documentation for the other options and examples
|
||||||
|
; https://docs.platformio.org/page/projectconf.html
|
||||||
|
|
||||||
|
[env:lolin_s2_mini]
|
||||||
|
platform = espressif32
|
||||||
|
board = featheresp32-s2
|
||||||
|
framework = arduino
|
||||||
|
upload_speed = 921600
|
||||||
|
monitor_speed = 115200
|
||||||
|
lib_deps =
|
||||||
|
bblanchon/ArduinoJson@^7.0.1
|
||||||
|
mrfaptastic/Json Streaming Parser 2@^2.1.0
|
||||||
|
marcoschwartz/LiquidCrystal_I2C@^1.1.4
|
||||||
|
gyverlibs/EncButton@^3.5.6
|
||||||
|
extra_scripts = pre:scripts/config_copy.py
|
||||||
Reference in New Issue
Block a user