Tutorial Belanja komponen

Tutorial › Suhu & Kelembapan

Sensor Suhu Analog LM35

ESP-12ED0D1D2D3D43VGD5D6D7D8RXTXG3VA0GVUS3S2S1SCS0SKG3VENRSTGVINLM35+VSVOUTGNDLM35 (sisi rata menghadap kamu)

Sensor suhu paling sederhana: tiga kaki, keluarannya tegangan 10 mV per derajat. Proyek ini mengajarkan cara mengubah tegangan analog menjadi besaran fisik.

LM35 mengeluarkan tegangan sebanding suhu: 0,30 V berarti 30 °C. LM35 butuh minimal 4 V, jadi kaki +VS diberi 5V dari pin VU. Keluarannya tetap kecil (di bawah 1,5 V) sehingga aman untuk A0. Angka analog 0-1023 dikalikan tegangan penuh A0 (±3,2 V di NodeMCU V3) lalu dibagi 1023 untuk mendapat volt. Hasilnya dikali 100 untuk mendapat °C. Bacaan dirata-rata 20 kali supaya tidak loncat-loncat.

Komponen

KomponenQtyHarga
NodeMCU ESP8266 V3 (Lolin)1Rp42.000
Sensor suhu LM35DZ1Rp12.610
Breadboard mini 170 titik1Rp4.875
Kabel jumper male-female 10 cm (isi 10)isi 10, terpakai 31Rp3.500
Kabel micro USB data 30 cmopsional, kalau belum punya kabel micro USB data1Rp11.700
Total (tanpa opsional)Rp62.985
Daftar komponen proyek ini otomatis masuk ke pesan. Hapus yang sudah kamu punya sebelum dikirim.

Langkah 1: Rangkai komponen

Sambungkan kabel sesuai gambar di atas. Kalau gambar dan tabel terlihat berbeda, ikuti tabel.

DariKeKabel
LM35 (sisi rata menghadap kamu) +VS→VUmerah
LM35 (sisi rata menghadap kamu) VOUT→A0kuning
LM35 (sisi rata menghadap kamu) GND→Ghitam

Langkah 2: Siapkan dashboard Klenik

Suhu LM35ichibot/budi1234/p024/suhu
05029.3°C
0 detik lalu

Cara cepat: unduh p024.json, ganti budi1234 dengan KODE-mu, lalu import di Klenik (menu titik tiga → Export / Import → Import → Ganti total). Langkah lengkapnya ada di Panduan Klenik.

WidgetTopicSetting
Gauge
Suhu LM35
ichibot/KODE/p024/suhu0–50 °C

Langkah 3: Upload kode

Library: PubSubClient (Nick O'Leary). Board di Arduino IDE: NodeMCU 1.0 (ESP-12E Module). Isi dulu nama WiFi dan password di bagian ISI DULU, lalu ganti budi1234 di baris topic dengan KODE-mu, lalu upload dan buka Serial Monitor (115200).

p024.inoUnduh .ino
// Proyek 024 - Sensor Suhu Analog LM35
// Board: NodeMCU ESP8266 V3 | Dashboard: klenik.ichibot.id
#include <ESP8266WiFi.h>
#include <PubSubClient.h>

// ===== ISI DULU =====
const char* WIFI_NAMA = "nama-wifi-kamu";
const char* WIFI_PASS = "password-wifi-kamu";

// topic MQTT: ganti budi1234 dengan KODE-mu (sama dengan di dashboard Klenik)
const char* TOPIK_SUHU = "ichibot/budi1234/p024/suhu";

const char* BROKER = "mqtt.ichibot.id";
WiFiClient wifi;
PubSubClient mqtt(wifi);
const int PIN_LM35 = A0;
const float VOLT_PENUH = 3.2;         // tegangan saat A0 membaca 1023 (NodeMCU V3: ±3,2-3,3 V)
unsigned long terakhir = 0;

void langganan() {}

sambungWiFi() dan sambungMQTT(): sama di semua proyek (klik untuk lihat)void sambungWiFi() { WiFi.begin(WIFI_NAMA, WIFI_PASS); Serial.print("WiFi"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(" OK, IP " + WiFi.localIP().toString()); } void sambungMQTT() { while (!mqtt.connected()) { if (mqtt.connect(WiFi.macAddress().c_str())) { Serial.println("Terhubung ke Klenik"); langganan(); } else { Serial.println("Broker gagal, coba lagi 3 detik"); delay(3000); } } }
void setup() { Serial.begin(115200); sambungWiFi(); mqtt.setServer(BROKER, 1883); } void loop() { if (!mqtt.connected()) sambungMQTT(); mqtt.loop(); if (millis() - terakhir < 3000) return; terakhir = millis(); long total = 0; for (int i = 0; i < 20; i++) total += analogRead(PIN_LM35); // rata-rata 20 bacaan float volt = total / 20.0 * VOLT_PENUH / 1023.0; float suhu = volt * 100.0; // LM35: 10 mV per derajat mqtt.publish(TOPIK_SUHU, String(suhu, 1).c_str()); Serial.printf("%.3f V -> %.1f C\n", volt, suhu); }

Langkah 4: Pahami kodenya

  1. Kalibrasi utama. Ukur tegangan pin 3V dengan multimeter dan bandingkan dengan termometer lain. Kalau hasil selalu kelebihan, turunkan angka ini sedikit.
  2. ADC ESP8266 cukup berisik. Rata-rata 20 bacaan membuat hasil stabil di ±0,3 °C.
  3. 10 mV per °C sama dengan 100 °C per volt.