Introduction

It's the perfect time of year to stay warm and cosy with a hot cup of tea or coffee. However, it's important not to make it too hot as it may burn your mouth. That's why I made a Temperature Monitoring Smart Coaster. This smart coaster can monitor the temperature of your beverage in real time and notify you when it's at a drinkable temperature. You can easily customise the temperature range using the provided code.

The current setting in the code is 

Less than 50c = Cooled

50c - 70c = Drinkable 

Grater than 70c = Too hot 

We are using the Infrared Temperature Sensor GY-906 MLX90614 to sense temperature. The results will be displayed on a small OLED screen. All of these components are controlled by the Seeed Studio XIAO SAMD21. Most parts of this project were created using 3D printing technology. If you're interested, I can show you how it was constructed.

Supplies 

Parts

Tool

  • Allen key
  • 120grid Sandpaper
  • 3d printer
  • Soldering kit
  • Glue gun

Step 1: Modeling in Autodesk Fusion 360

I used Fusion 360 for planning and designing this, but I am not fully getting into how I modelled it, we will look at how I exported the laser-cut metal parts of this project, and we will discuss it in the next step, you can skip this step if you need. all design files are given below

Step 2: Exporting laser-cut DXF files from the Fusion 360

  • After completing the full 3d model of this design, I just isolated the aluminium part for easy working. 
  • I hit “P” on my keyboard for projection mapping and selected the front face this will project the front face into a new sketch.
  • Go to the sketch tab and find the projected sketch 
  • Right-click the sketch and “Save as DXF” . and select a path to save it in your PC 
  • Find an online or offline laser-cutting service that is accessible to your location. I am using Robu.in because I am in India

Step 3: Preparing the top plate 

After receiving the aluminium part, we need to sand both sides with 120 grid sandpaper slightly. 

After sanding we need to spray paint it 2 cotes and leave it to dry 

Step 4: 3d printing parts 

We also need to 3d print some parts for this project. i printed mine with my anycubilc Kobra 2 neo 3d printer .all files are available at Step 1

Step 5: Uploading Code to XIAO

I always like to upload the code to the microcontroller before assembly. I am using Arduino IDE for flashing the code. follow these tutorials for setting up IDE for Seeed Studio XIAO SAMD21 and learn more about this board

Please download and install the Adafruit_MLX90614.h library before compelling 

How to install library tutorial video link

The code

#include <Wire.h>

#include <Wire.h>

#include <Adafruit_MLX90614.h>

#include <Adafruit_GFX.h>

#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels

#define SCREEN_HEIGHT 32 // OLED display height, in pixels

#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)

Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Declaring the display name (display)

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

static const unsigned char PROGMEM image_weather_temperature_bits[] =

{0x1c,0x00,0x22,0x02,0x2b,0x05,0x2a,0x02,0x2b,0x38,0x2a,0x60,0x2b,0x40,0x2a,0x40,0x2a,0x60,0x49,0x38,0x9c,0x80,0xae,0x80,0xbe,0x80,0x9c,0x80,0x41,0x00,0x3e,0x00};

static const unsigned char PROGMEM image_weather_frost_bits[] =

{0x01,0x00,0x13,0x90,0x31,0x18,0x73,0x9c,0x09,0x20,0x05,0x40,0x53,0x94,0xfe,0xfe,0x53,0x94,0x05,0x40,0x09,0x20,0x73,0x9c,0x31,0x18,0x13,0x90,0x01,0x00};

static const unsigned char PROGMEM image_hand_thumbs_up_bits[] =

{0x00,0x10,0x00,0x28,0x00,0x28,0x00,0x48,0x00,0x50,0x00,0x90,0x01...
Read more »