Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino UNO Based Multi-Temperature Sensing with OLED Display and SD Logging

Image of Arduino UNO Based Multi-Temperature Sensing with OLED Display and SD Logging

Circuit Documentation

Summary

This circuit integrates an Arduino UNO microcontroller with multiple peripherals, including a 0.96" OLED display, an SD card module, and several DS18B20 temperature sensors. The Arduino UNO serves as the central processing unit, managing data communication between the sensors, the display, and the SD card module. The temperature sensors are connected in a parallel configuration, sharing a common data line with a pull-up resistor. The OLED display and SD card module are interfaced with the Arduino using SPI communication. The circuit is designed to monitor temperatures, display data on the OLED, and log data to an SD card.

Component List

Arduino UNO

  • Microcontroller board based on the ATmega328P
  • Provides digital I/O pins, analog inputs, and various power outputs

DS18B20 Temperature Sensor (Wokwi Compatible)

  • Digital temperature sensor with a unique one-wire interface
  • Allows for multiple sensors to be connected on the same data line

Resistor

  • 4.7k Ohm resistor used as a pull-up for the one-wire data line of the DS18B20 sensors

0.96" OLED

  • Small display module for visual output
  • Uses I2C communication protocol

SD Card Module

  • Peripheral for data logging on an SD card
  • Interfaces with the Arduino via SPI communication

Wiring Details

Arduino UNO

  • 3.3V supplies power to the 0.96" OLED display
  • 5V supplies power to the DS18B20 sensors and the SD card module
  • GND is the common ground for all components
  • SCL (A5) connects to the SCK of the OLED for I2C communication
  • SDA (A4) connects to the SDA of the OLED for I2C communication
  • D13 connects to the SCK of the SD card module for SPI communication
  • D12 connects to the MISO of the SD card module for SPI communication
  • D11 connects to the MOSI of the SD card module for SPI communication
  • D10 connects to the CS of the SD card module for SPI communication
  • D2 connects to the data line (DQ) of all DS18B20 sensors through a 4.7k Ohm pull-up resistor

DS18B20 Temperature Sensors

  • All sensors have their VCC pins connected to the Arduino's 5V
  • All sensors have their GND pins connected to the Arduino's GND
  • All sensors share a common data line (DQ) connected to Arduino's D2 through a 4.7k Ohm pull-up resistor

Resistor

  • One end connected to the data line (DQ) of the DS18B20 sensors
  • The other end connected to the Arduino's 5V to serve as a pull-up

0.96" OLED

  • VDD connected to the Arduino's 3.3V
  • GND connected to the Arduino's GND
  • SCK connected to the Arduino's SCL (A5) for I2C communication
  • SDA connected to the Arduino's SDA (A4) for I2C communication

SD Card Module

  • VCC connected to the Arduino's 5V
  • GND connected to the Arduino's GND
  • SCK connected to the Arduino's D13 for SPI communication
  • MISO connected to the Arduino's D12 for SPI communication
  • MOSI connected to the Arduino's D11 for SPI communication
  • CS connected to the Arduino's D10 for SPI communication

Documented Code

Arduino UNO Code (sketch.ino)

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  // put your main code here, to run repeatedly:

}

The provided code is a template with empty setup() and loop() functions. The setup() function is intended for initialization code that runs once at startup, such as configuring pin modes or initializing communication protocols. The loop() function contains the main logic that will run continuously, such as reading sensor data, updating the display, and writing to the SD card. Specific implementation details need to be added to fulfill the circuit's intended functionality.