Program upgrade skill di bidang engineering, dari dasar hingga mahir.
Program khusus melalui platform mitra resmi dokter mekanik academy seperti Udemy, Prakerja, dan Kampus Merdeka.
Sertifikasi BNSP
Pilih pelatihan dan sertifikasi Nasional BNSP di bidang engineering, rekayasa, manufaktur, dan subsetnya
Lihat SemuaSertifikasi Internasional
Pilih pelatihan dan sertifikasi Internasional di bidang engineering, rekayasa, manufaktur, dan subsetnya
Lihat Semua
Temukan inspirasi dari hasil karya dan pengalaman para alumni dr. Mekanik Academy.
dr. Mekanik Academy tersedia di berbagai platform mitra resmi untuk memudahkan akses pelatihan Anda.
Jelajahi produk dan layanan lainnya dari ekosistem dr. Mekanik untuk solusi bisnis yang komprehensif.
Membantu kamu belajar, berkarya, dan membuat proyek engineering secara instan dan presisi!
Oleh: Muhammad Luthfi Abduloh
Kali ini penulis merancang sebuah sistem yang dapat mengidentifikasi seberapa panas dan dingin suhu air menggunakan Mikrokontroller NodeMCU. Penulis menggunakan module DS18B20 sebagai sensor yang mampu mengukur suhu didalam air. Penulis menambahkan 3 buah LED, yang mana ke tiga LED tersebut menjadi sebuah indikator dari tingkat suhu air yang akan diukur.
Pada rangkaian pendeteksi suhu air, penulis menggunakan mikrokontroller NodeMCU ESP8266 dengan sebuah sensor DS18B20 dan 3 buah LED. Penulis menggunakan sensor DS18B20 karena sensor tersebut memiliki keunggulan dimana sensor tersebut mampu tahan air dengan spesifikasi yang mampu mengukur suhu kisaran -55 sampai 125 (C) dengan akurasi kurang lebih 0,5%.
Penulis menggunakan 3 buah buah LED dengan warna yang berbeda. Biru, kuning dan merah. Dimana LED biru sebagai indikator air dengan kisaran suhu dibawah 30(C), LED kuning bertindak sebagai indikator air dengan suhu berkisar lebih dari 30(C) dan kurang dari 60(C), sedangkan LED merah menjadi indikator dari suhu diatas 60(C).
Adapun source code yang penulis gunakan adalah sebagai berikut:
/********************************************************************/
// First we include the libraries
#include <OneWire.h>
#include <DallasTemperature.h>
/********************************************************************/
// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS D4
#define led1 D0
#define led2 D1
#define led3 D3
/********************************************************************/
// Setup a oneWire instance to communicate with any OneWire devices
// (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
/********************************************************************/
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensorSuhu(&oneWire);
float suhuSekarang;
/********************************************************************/
void setup(void)
{
// start serial port
Serial.begin(9600);
Serial.println("Dallas Temperature IC Control Library Demo");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
// Start up the library
sensorSuhu.begin();
}
void loop(void)
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
// call sensors.requestTemperatures() to issue a global temperature
// request to all devices on the bus
/********************************************************************/
Serial.print(" Suhu air = ");
suhuSekarang = ambilSuhu();
// Send the command to get temperature readings
Serial.print(suhuSekarang);
Serial.println("(c)");
if(suhuSekarang < 30){
digitalWrite(led1, HIGH);
}else if(suhuSekarang > 30 && suhuSekarang < 60){
digitalWrite(led2, HIGH);
}else if(60 < suhuSekarang < 100){
digitalWrite(led3, HIGH);
}
/********************************************************************/
// Why "byIndex"?
// You can have more than one DS18B20 on the same bus.
// 0 refers to the first IC on the wire
delay(1000);
}
float ambilSuhu(){
sensorSuhu.requestTemperatures();
float suhu = sensorSuhu.getTempCByIndex(0);
return suhu;
}
0 Orang Menyukai Karya Ini