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 :
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:
Keep sharing...