diff --git a/README.md b/README.md index 5107154..638304b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,138 @@ # CrustCraft +This project aims to replace the existing thermostat of a G3 Ferrari Pizza Oven with an ESP‑chip based control system, thereby improving precision, responsiveness, and overall temperature regulation. + +Happy baking! 🍕🛠️ + + +## Prerequisites + +| **Item** | **Description** | +|------- |------- | +| ESP‑32 Dev Board | Any WiFi‑enabled chip with at least 4 GPIO pins will do | +| MAX6675 K‑Type Thermocouple | Only a K‑type thermocouple can withstand the temperatures required | +| 5V Relay Module | Atleast 10A | +| Power Supply | 5V / 2A AC-DC adapter | +| Connecting Wires | Silicone heat resistant wiring | + + +## Clone the Repository + +``` +git clone https://github.com/vincvdwal/crust-craft/ +cd crust-craft +``` + +## Installing PlatformIO + +### VS Code Extension + +Open VS Code. + +Go to Extensions → Search for “PlatformIO IDE” → Install. +Restart VS Code → PlatformIO panel appears on the left. + +## Project Configuration + +Open the project: + +Platform Command +VS Code Double‑click `crust-craft` folder or open > File → Add Folder to Workspace. + +Edit platformio.ini (shown below – you can adjust as needed): + +```ini +[env:esp32dev] +platform = espressif32 +board = esp32dev +framework = arduino + +; Optional environment for ESP8266 +[env:esp8266] +platform = espressif8266 +board = nodemcuv2 +framework = arduino +``` + +## Building the Firmware + +Click the “Build” icon (checkboard) in VS Code’s PlatformIO toolbar. +The output will be displayed in the Build Log pane. +Success → you’ll see: "Build Done and an `firmware.bin` file under `.pio/build`." + +## Uploading to the ESP via VS Code + +Press “Upload” (right‑hand arrow icon) in the PlatformIO bar +→ It will compile (again if necessary) and flash to the device. + +## Serial Monitor + +Click the “Monitor” icon (plug + arrow) or `Ctrl+Alt+M` + +## Custom Configuration – Wi‑Fi Credentials + +The firmware stores your Wi‑Fi SSID & password in `secrets.h`. + +Copy the example or create a new file + +```bash +cp src/secrets.example.h src/secrets.h +``` + +And replace the following with your Wi-Fi credentials + +``` +// Replace with your network credentials +const char *ssid = "WIFI_SSID"; +const char *password = "WIFI_PWD"; +``` + +## Installing the filesystem + +Use NPM to install all packages used for the website + +```bash +npm i +``` + +## Developing the filesystem + +For developing the FS you can use the following command: + +```bash +npm run dev +``` + +## Building and flashing the filesystem + +### Create the ESP‑FS image + +```bash +npm run build +``` + +This command writes all of your web assets (HTML, JS, CSS) into a `data/` directory + +### Upload the image to the ESP32 + +In the PlatformIO toolbar, hit "Build Filesystem Image" to pack the `data/` dir into a flashable filesystem image. +Afterwards, click "Upload Filesystem Image" to send the image to the chip. + + +## Acknowlegdements + +This project would not have been possible without the awesome, open‑source libraries below. + +|Library | GitHub URL | License| +|-------|-------|-------| +adafruit/MAX6675 library| https://github.com/adafruit/MAX6675-library | BSD +bblanchon/ArduinoJson | https://github.com/bblanchon/ArduinoJson |MIT +ayushsharma82/ElegantOTA | https://github.com/ayushsharma82/ElegantOTA | AGPL-3.0 +ESP32Async/AsyncTCP | https://github.com/ESP32Async/AsyncTCP | LGPL-3.0 +ESP32Async/ESPAsyncWebServer | https://github.com/ESP32Async/ESPAsyncWebServer | LGPL-3.0 + +## ToDo + +### Display + +In the long run a capacative LCD screen might be used in addition to the WebSocket connection \ No newline at end of file diff --git a/platformio.ini b/platformio.ini index 925384f..9b3fa35 100644 --- a/platformio.ini +++ b/platformio.ini @@ -9,12 +9,12 @@ ; https://docs.platformio.org/page/projectconf.html [env:esp32doit-devkit-v1] -platform = espressif32 board = esp32doit-devkit-v1 - +platform = espressif32 framework = arduino -lib_compat_mode = strict -lib_ldf_mode = chain + +; lib_compat_mode = strict +; lib_ldf_mode = chain lib_deps = adafruit/MAX6675 library@^1.1.2