https://github.com/gabrielmarcano/pyroaster
Firmware to create a real life roaster using the ESP32 microcontroller and MicroPython.
https://github.com/gabrielmarcano/pyroaster
esp32 microcontrollers micropython micropython-esp32
Last synced: 10 days ago
JSON representation
Firmware to create a real life roaster using the ESP32 microcontroller and MicroPython.
- Host: GitHub
- URL: https://github.com/gabrielmarcano/pyroaster
- Owner: gabrielmarcano
- Created: 2024-11-12T16:59:35.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-03-10T00:16:15.000Z (4 months ago)
- Last Synced: 2025-03-10T01:30:34.044Z (4 months ago)
- Topics: esp32, microcontrollers, micropython, micropython-esp32
- Language: Python
- Homepage:
- Size: 80.1 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
ESP32 Roaster Project
A project to control a peanut, coffee & cocoa roaster with an ESP32[](https://www.python.org)
[](https://micropython.org/)## Contents
- [Summary](#summary)
- [Project structure](#project-structure) (WIP)
- [Hardware](#hardware) (WIP)
- [Software](#software) (WIP)
- [Wiring](#wiring) (WIP)
- [Resources](#resources)## Summary
All logic depends on the data given by the **Thermocouple (MAX6675)** & **AHT20** sensors. It's intention is to control 3 motors, which will turn on or off based on the temperature that it reaches.
When the temperature reaches the value set on the config, it feeds a relay that controls the first motor,
and also starts a timer that was set on the config. Extra configs can be saved.There will be two push buttons, one will add +1min to the time (and start the timer if there isn't one already), and the other will reduce -1min to the time.
When the timer stops, a buzzer\* starts making noise and also feeds the other 2 relays that controls the second & third motor.
> Motors can only be stopped manually by either the security button or through the app interface.
## Wiring
| ESP-32 | MAX6675 | AHT20 i2C | LCD i2C | R1 | R2 | R3 | BUZZ |
| ------ | ------- | --------- | ------- | --- | --- | --- | ---- |
| GPIO5 | SCK | | | | | | |
| GPIO13 | | | | | | | x |
| GPIO16 | | SCL | | | | | |
| GPIO17 | | SDA | | | | | |
| GPIO19 | SO | | | | | | |
| GPIO21 | | | SDA | | | | |
| GPIO22 | | | SCL | | | | |
| GPIO23 | CS | | | | | | |
| GPIO25 | | | | x | | | |
| GPIO26 | | | | | x | | |
| GPIO27 | | | | | | x | |> R: Relay
## Resources
### AHTx0
MicroPython AHT20 driver library.
https://github.com/targetblank/micropython_ahtx0
### MAX6675
https://github.com/BetaRavener/micropython-hw-lib/blob/master/MAX6675/max6675.py
### LCD
Uses both the API (lcd_api) and the machine module (machine_i2c_lcd).
https://github.com/dhylands/python_lcd
### Web Server
Uses the Microdot framework https://github.com/miguelgrinberg/microdot