Senin, 21 Juni 2021

Arduino - Menampilkan Nilai Temperatur Pada OLED Display (Arduino thermometer)

Bismillah...Posting kali ini merupakan pengembangan dari posting Menampilkan Nilai Sensor DS18B20, yaitu dengan penambahan OLED display. 

Dengan menampilkan nilai pembacaan sensor temperatur (DS18B20) pada OLED display ini dapat kita katakan kita telah membuat sebuah alat yaitu Thermometer Digital berbasis Arduino, yang mana dapat kita terapkan untuk pengukuran suhu tubuh dll. 

Apa saja part yang digunakan untuk membuat Thermometer digital Arduino?
                               - Arduino Board (Uno/Nano) 
                               - OLED 0,96" 
                               - DS18B20 (Sensor Temperatur) 
                               - Resistor 4.7K 
                               - Bread board 
                               - Kabel jumper 

Bagaimana cara merangkainya? silahkan perhatikan gambar berikut : 

Arduino Thermometer - OLED Display


Setelah selesai membuat rangkaian Thermometer digital Arduino, dapat kita lanjutkan dengan proses pemrograman dengan sketch program berikut:


#include <wire.h>
#include <adafruit_gfx.h>
#include <adafruit_ssd1306.h>
#include <onewire.h>
#include <dallastemperature.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#define ONE_WIRE_BUS 2 //Pin data temperatur pada arduino (UNO/NANO)

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress tempSensor1 = { 0x28, 0xEF, 0x18, 0x4D, 0x6, 0x0, 0x0, 0xFD }; //Alamat sensor


float temperature1; // Variabel untuk data temperatur



void setup()
{
Serial.begin(9600);

if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}

display.clearDisplay();
display.display();
display.setTextColor(WHITE, BLACK);

sensors.begin();
sensors.setResolution(tempSensor1, 12);

}


void loop()
{
sensors.requestTemperatures(); //Mengambil data sensor
temperature1 = sensors.getTempC(tempSensor1);
Serial.print("Temperatur1 = ");
Serial.print(temperature1); //Mengirim data temperatur pada serial monitor
Serial.println(" Celcius");
delay(1000);


display.setCursor(5, 10);
display.setTextSize(2);
display.print("TEMPERATUR"); //Menampilkan tulisan "TEMPERATUR" pada display OLED

display.setCursor(30, 27);
display.setTextSize(2);
display.print(temperature1); //Menampilkan nilai temperatur
display.drawRect(91, 27, 3, 3, WHITE); //Menampilkan simbol temperature
display.setCursor(96, 27);
display.print("C");
display.display();
}



Setch program diatas menggunakan beberapa library, yaitu:

Kita dapat menggunakan sensor DS18B20 type waterproof untuk membuat sebuah alat ukur temperatur portable
DS18B20 waterproof


Sekian...Semoga bermanfaat.

Keep sharing...



0 comments: