Arduino Thermometer With MAX6675 and OLED

by sss2022 in Circuits > Arduino

16 Views, 0 Favorites, 0 Comments

Arduino Thermometer With MAX6675 and OLED

20260113_101454.jpg

In this project, we will learn how to measure temperature using a Type-K thermocouple and the MAX6675 module. This setup is perfect for detecting high temperatures or monitoring liquids using a waterproof thermocouple. The MAX6675 converts the voltage generated by the thermocouple into temperature values in degrees Celsius, which can be easily read with an Arduino or any compatible microcontroller.

To make the project more interactive, we will display the temperature directly on a 0.91-inch white OLED module, allowing real-time visualization of the measurements. This project is ideal for beginners in electronics and Arduino who want to understand how advanced temperature sensors work.

------------------------------------------------------------------------------------------

Dans ce projet, nous allons apprendre à mesurer la température avec un thermocouple de type K et le module MAX6675. Ce montage est idéal pour détecter des températures élevées ou pour surveiller des liquides grâce à un thermocouple étanche. Le MAX6675 convertit la tension générée par le thermocouple en valeurs de température en degrés Celsius, que nous pourrons lire facilement avec un Arduino ou tout autre microcontrôleur compatible.

Pour rendre l’expérience plus interactive, nous afficherons la température directement sur un module OLED 0,91 pouces blanc, permettant de visualiser les mesures en temps réel. Ce projet est parfait pour les débutants en électronique et en Arduino qui veulent comprendre le fonctionnement des capteurs de température avancés.

Supplies

-----------------------------------------------------------------------

  1. Arduino UNO development board
  2. USB 2.0 cable type A/B
  3. MAX6675 Temperature Sensor Module
  4. Type-K Thermocouple (preferably waterproof for liquid measurements)
  5. OLED Display SSD1306 0.96" 128x64 (white)
  6. Jumper wires

-----------------------------------------------------------------------

  1. Carte de développement Arduino UNO
  2. Câble USB 2.0 type A/B
  3. Module capteur de température MAX6675
  4. Thermocouple de type K (de préférence étanche pour les mesures de température de liquides)
  5. Écran OLED SSD1306 0,96" 128x64 (blanc)
  6. Fils de connexion

----------------------------------------------------------------------

The MAX6675 Module With a Type-K Thermocouple / Le Thermocouple Type K Avec Le MAX6675

20260113_102155.jpg

This module uses a Type-K thermocouple, made of two different metals joined together at one end. When a temperature difference exists between the hot junction and the reference junction, a very small electrical voltage is generated due to the Seebeck effect. The MAX6675 amplifies this voltage, performs cold-junction compensation, and then converts it into a temperature value in degrees Celsius.

Communication with the microcontroller is done through the SPI interface: the SCK (Serial Clock) pin provides the synchronization clock, the CS (Chip Select) pin enables the module during data reading, and the SO (Serial Out) pin sends the temperature data from the MAX6675 to the microcontroller. This system allows for simple and reliable measurement of high temperatures.

------------------------------------------------------------------------------------------

Ce module utilise un thermocouple de type K, composé de deux métaux différents soudés ensemble. Lorsqu’une différence de température apparaît entre la jonction chaude et la jonction de référence, une très faible tension électrique est générée grâce à l’effet Seebeck. Le MAX6675 amplifie cette tension, réalise la compensation de la jonction froide, puis la convertit en une valeur de température en degrés Celsius.

La communication avec le microcontrôleur se fait via une interface SPI : la broche SCK (Serial Clock) fournit l’horloge de synchronisation, la broche CS (Chip Select) permet d’activer le module lors de la lecture, et la broche SO (Serial Out) transmet les données de température du MAX6675 vers le microcontrôleur. Ce système assure une lecture fiable et simple des températures élevées.

The OLED SSD1306 Display / L'Afficheur OLED SSD1306

20260113_102059.jpg

The OLED SSD1306 0.96" display has a resolution of 128×64 pixels and uses self-emissive OLED technology, meaning no backlight is required. It communicates with the microcontroller via the I2C bus, typically using the address 0x3C (or 0x3D depending on the module). The SSD1306 controller includes internal graphic memory (GDDRAM), allowing text, images, and graphics to be displayed. The display operates at 3.3 V or 5 V, consumes very little power, and provides high contrast and a wide viewing angle, making it ideal for real-time data visualization.

------------------------------------------------------------------------------------------

L’afficheur OLED SSD1306 0,96" dispose d’une résolution de 128×64 pixels et utilise une technologie OLED auto-émissive, ce qui signifie qu’aucun rétroéclairage n’est nécessaire. Il communique avec le microcontrôleur via le bus I2C, généralement à l’adresse 0x3C (ou 0x3D selon le module). Le contrôleur SSD1306 intègre une mémoire graphique interne (GDDRAM), permettant d’afficher du texte, des images et des graphiques. L’écran fonctionne sous 3,3 V ou 5 V, consomme très peu d’énergie et offre un excellent contraste ainsi qu’un large angle de vision, ce qui le rend idéal pour l’affichage de données en temps réel.

Circuit Diagram / Schéma

Schéma_max6675_oled.png

The A4 and A5 pins on the Arduino UNO are used because they correspond to the SDA (data) and SCL (clock) lines of the I2C bus. This bus allows simple and efficient communication between the microcontroller and the SSD1306 OLED display using only two wires. Using the dedicated I2C pins ensures reliable communication and full compatibility with standard Arduino libraries.

Please note that only part of this setup was created using Wokwi. Some components, such as the MAX6675, are not available in the simulator and therefore cannot be tested virtually.

-------------------------------------------------------------------------------------------

Les broches A4 et A5 de l’Arduino UNO sont utilisées car elles correspondent respectivement aux lignes SDA (données) et SCL (horloge) du bus I2C. Ce bus permet une communication simple et efficace entre le microcontrôleur et l’afficheur OLED SSD1306 en utilisant seulement deux fils. L’utilisation des broches I2C dédiées garantit une communication fiable et compatible avec les bibliothèques Arduino standard.

À noter que seule une partie de ce montage a été réalisée à l’aide de Wokwi. Certains composants, comme le MAX6675, ne sont pas disponibles dans le simulateur et ne peuvent donc pas être testés virtuellement.

Libraries / Bibliothèques

biblio_ssd1306.png
biblio_thermo_max6675.png
2_tools_arduino.png
com4.png

1- Open Arduino IDE, then go to Library Manager , search for "SSD1306" and install the "Adafuit SSD1306" package by Adafuit. Then search for "max6675" and install the "MAX6675 library" package by Adafuit.

2- Once the installation is complete, add and select the Arduino Uno board you are using from the Tools > Boards menu.

3- Go to Tools > Port, and select the port corresponding to your board.

-------------------------------------------------------------------------------------------

1- Ouvrez l’Arduino IDE, puis allez dans Library Manager. Recherchez "SSD1306" et installez le paquet "Adafuit SSD1306" d'Adafuit. Ensuite recherchez "max6675" et installez le paquet "MAX6675 library" d'Adafuit.

2- Une fois l’installation terminée, ajoutez et sélectionnez la carte Arduino Uno que vous utilisez dans le menu Tools > Boards.

3- Allez dans Tools > Port, puis choisissez le port correspondant à ta carte.

Step 6: Source Code / Code Source

You can find the full source code below. Note: The MAX6675 module is not available for simulation on Wokwi, so this project cannot be fully tested virtually. However, you can still view the code and understand how it works before running it on your actual Arduino UNO.

https://wokwi.com/projects/452952339385246721

------------------------------------------------------------------------------------------

Vous trouverez le code source complet ci-dessous. Remarque : le module MAX6675 n’est pas disponible sur Wokwi, donc ce projet ne peut pas être entièrement simulé en ligne. Vous pouvez cependant consulter le code et comprendre son fonctionnement avant de l’exécuter sur votre Arduino UNO réel.

https://wokwi.com/projects/452952339385246721