Green (unroasted) coffee beans cost about half as much as their roasted counterparts. By purchasing green coffee beans, you can save quite a bit of money in the long term. Roasting your own coffee beans also gives you much greater control over the flavor profile and caffeine content of your coffee (caffeine content is a debatable topic, but light roasts seem to have more caffeine due to overall density). But buying a coffee roasting machine can drain your savings, which is why you might want to follow Eric Sorensen’s lead and build your own coffee roaster.
Roasting coffee beans is not a complex process. In theory, you could roast your wake-up beans in any old oven. But dedicated machines can roast the beans with more consistency to avoid burned or under-roasted individuals. Those machines are very similar to the air poppers used for popping popcorn. They contain a heating element and a motor that spins a fan and agitates the beans. But coffee bean roasting machines add precision temperature control, which increases their price dramatically. By adding your own temperature control to a cheap air popper, you can save a lot of money and still get great results.
This project calls for a few components in addition to the air popper itself (which you can probably get for free at a thrift store). Those parts include an Arduino Uno board, a Nextion touchscreen LCD panel, an L298N motor driver, an Adafruit MCP9600 thermocouple breakout board, and a relay.
The Arduino controls the heating element through the relay with PID control, which means that it modulates power to retain a specified temperature. It monitors the temperature with the thermocouple through the breakout board. The motor driver controls the air popper’s fan, which blows air through the beans and helps to agitate them during roasting. The touchscreen provides an interface to select roasting temperature and time. The firmware written by Sorensen also supports roasting profiles, so you can easily select from preset parameters once you figure out which roasting settings work well.
Read more about this on: Arduino Blog