A project to control a peanut, coffee & cocoa roaster with an ESP32
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.
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
MicroPython AHT20 driver library.
https://github.com/targetblank/micropython_ahtx0
https://github.com/BetaRavener/micropython-hw-lib/blob/master/MAX6675/max6675.py
Uses both the API (lcd_api) and the machine module (machine_i2c_lcd).
https://github.com/dhylands/python_lcd
Uses the Microdot framework https://github.com/miguelgrinberg/microdot