Anda di halaman 1dari 14

REALISASI RANCANGAN ELEKTRONIKA

MINGGU 6 LANJUTAN
IOT DIGITAL THERMOMETER
MENGGUNAKAN NODEMCU DAN LM35
IOT
NodeMCU ESP-12 menggunakan Arduino IDE

Blink LED dengan NodeMCU ESP-12

Dalam materi ini, kita akan belajar tentang modul Wi-Fi ESP-12 dan cara
memprogramnya menggunakan Arduino IDE . Kemudian kita akan menulis
program untuk mengedipkan LED dengan ESP8266-12.

Apa itu ESP8266 dan NodeMCU?


Kebanyakan orang menyebut ESP8266 sebagai modul WIFI, tetapi
sebenarnya itu adalah mikrokontroler. ESP8266 adalah nama mikrokontroler
yang dikembangkan oleh Espressif Systems yang merupakan perusahaan
yang berbasis di shanghai. Mikrokontroler ini memiliki kemampuan untuk
melakukan aktivitas terkait WIFI sehingga  banyak digunakan sebagai
modul WIFI .
Ada banyak jenis modul ESP8266 yang tersedia mulai dari ESP8266-01
hingga ESP8266-12. Salah satu yang kami gunakan dalam materi
adalah ESP8266-12 . Kami sudah membahas ESP8266-01 di artikel kami
sebelumnya . Namun semua modul ESP hanya memiliki satu jenis prosesor
ESP, yang membedakan hanya jenis penyair breakout yang
digunakan. Papan breakout ESP8266-01 hanya akan memiliki 2 pin GPIO
sedangkan ESP-12 memiliki 16 Pin GPIO. 
Banyak peralatan di sekitar kita yang tidak bisa terkoneksi dengan internet
sendiri. Jadi, chip ini memungkinkan peralatan ini terhubung dengan internet
dan menjadikannya perangkat IoT. Sekarang, Anda dapat dengan mudah
membuka pintu untuk  Proyek IoT  dengan bantuan modul ini. Modul berbiaya
rendah dan berukuran kecil ini dapat melakukan keajaiban dan sangat
sederhana serta mudah digunakan, asalkan kami mengikuti langkah-langkah
yang benar.

Apa itu NodeMCU ??


NodeMCU adalah Firmware di ESP8266. Ini adalah ESP-12  dan pada
dasarnya adalah System on Chip (SoC). Ini memiliki firmware berbasis Lua
yang digunakan untuk mengembangkan aplikasi berbasis IoT .
Sangat mudah untuk mengerjakan SoC yang murah ini dan membuat
perangkat kita pintar. Ini memiliki pin analog dan digital, yang dapat kita
gunakan untuk menghubungkan sensor kita dan bisa mendapatkan data
melalui internet.

NodeMCU ESP-12:

Konfigurasi PIN:

Deskripsi Pin:
Pin GPIO: NodeMCU memiliki 16 pin GPIO seperti yang ditunjukkan pada
diagram di atas yang dapat digunakan untuk mengontrol perangkat periferal
lain seperti sensor, LED, sakelar, dll. Pin ini juga dapat digunakan sebagai pin
PWM.
Pin ADC (Analog to Digital Converter): Memiliki satu saluran ADC dan
dapat diakses melalui pin A0.
Pin SPI: Ada 4 pin (SCK, MISO, MOSI dll) yang tersedia untuk komunikasi
SPI seperti yang ditunjukkan pada diagram persegi hijau.
Pin I2C: Ini memiliki dukungan fungsionalitas I2C tetapi karena penggunaan
internal pin ini, Anda harus menemukan pin mana yang merupakan I2C.
UART Pins: Memiliki dua antarmuka UART. Karena, RXD0 dan TXD0
digunakan untuk mengunggah kode ke board, kami tidak dapat
menggunakannya saat memprogram modul ini. Kami dapat menggunakan
RXD1 dan TXD1 kapan saja.

Spesifikasi lengkap modul ini diberikan di bawah dalam tabel:


Tegangan Operasi 5V

Memori Flash 4Mb

Prosesor L106 32-bit

Kecepatan prosesor 80-160MHz

RAM 32K + 80K

GPIO 16

ADC 1, 10-bit

Materi ini bertujuan untuk  memperkenalkan Anda pada modul NodeMCU


ESP8266-12 dan membantu Anda memulainya  . Juga, kita akan
melihat bagaimana memprogram modul ini menggunakan Arduino
IDE dan kita juga akan menjalankan beberapa program uji. 

Mengapa NodeMCU ESP-12 lebih dari ESP-01


ESP-01 adalah modul Wi-Fi pertama dari keluarga ESP8266. Papan kecil ini
hanya memiliki 2 GPIO, tetapi ini tidak berarti bahwa kinerjanya tidak sesuai
dengan standar. Itu juga dapat bekerja mandiri dan mengontrol 1-2
perangkat. Ini berjalan pada 3.3v.
ESP8266-01
Anda dapat memeriksa semua proyek ESP8266 kami di sini.
NodeMCU memiliki ESP-12 menjadi papan pengembang kecil yang penuh
fitur. NodeMCU memiliki semua pin ESP-12, juga termasuk konektor micro
USB dengan IC programmer onboard, pengatur tegangan, tombol reset dan
program serta LED. Ini juga memiliki header yang kompatibel dengan papan
tempat memotong roti.
Jika Anda ingin mempelajari tentang keluarga ESP8266, NodeMCU adalah
pilihan terbaik untuk memulai.

Pemrograman NodeMCU menggunakan Arduino IDE:


Mari kita  mengatur modul Arduino IDE untuk ESP8266-12 dan
memprogramnya untuk mengedipkan lampu LED .

Langkah 1:  
Jika Anda tidak memiliki Arduino IDE, unduh dan instal dari  sini . (pastikan
Versi Arduino 1.6.5 atau lebih tinggi)

Langkah 2:  
Buka  File -> Preferensi  untuk membuka kotak dialog di bawah ini. Di  "URL
Manajer Dewan Tambahan"  tempel link di bawah ini seperti yang ditunjukkan
pada gambar. Lalu tekan OK
Langkah 3:  
Sekarang, masuk ke  Tool -> Boards -> Board Managers . Cari ESP8266 oleh
komunitas esp8266 dan klik instal seperti yang ditunjukkan pada gambar di
bawah ini

Instalasi Anda akan memakan waktu, setelah selesai kami dapat melanjutkan
ke langkah berikutnya.

Langkah 4:  
Sekarang, masuk ke  Tools -> Boards -> NodeMCU . Anda harus melihat
layar di bawah ini.
Blink LED dengan NodeMCU ESP-12:
Di bawah ini adalah diagram rangkaian untuk menghubungkan LED dengan
NodeMCU ESP-12:  

program blink menggunakan Arduino IDE ke NodeMCU. Pin D0 memiliki LED


bawaan, sehingga kita dapat menggunakan fungsi LED_BUILTIN untuk
mengambil keluaran pada D0 atau kita dapat menggunakan GPIO lain
dengan menentukan D1, D2 dll.
Kode lengkap diberikan di bawah ini, cukup hubungkan NodeMCU dengan
kabel USB dan tekan tombol unggah.

Kode
void setup() {
  pinMode(D0, OUTPUT);    
void loop() {
  digitalWrite(D0, LOW);   // Turn the LED on (Note that LOW is the voltage level
                                    // but actually the LED is on; this is because 
                                    // it is active low on the ESP-01)
  delay(1000);                      // Wait for a second
  digitalWrite(D0, HIGH);  // Turn the LED off by making the voltage HIGH
  delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
}
IOT DIGITAL THERMOMETER
MENGGUNAKAN NODEMCU DAN LM35

IoT Digital Thermometer menggunakan NodeMCU ESP-12 dan LM35

Dalam materi Memulai NodeMCU sebelumnya, kita telah melihat Apa itu


NodeMCU dan bagaimana kita dapat memprogramnya menggunakan
Arduino IDE . Seperti yang Anda ketahui, NodeMCU memiliki chip Wi-Fi di
dalamnya, sehingga dapat juga terhubung ke internet. Sangat berguna untuk
membangun Proyek IoT . Kami sebelumnya menggunakan ThingSpeak
dengan Arduino untuk membuat termometer IoT , tetapi di sini kami akan
membuat halaman web kami sendiri untuk menampilkan suhu.
Dalam materi ini kita akan mengeksplorasi lebih banyak tentang MCU yang
menarik ini dan perlahan-lahan kita menyelami dunia Internet of things
dengan menghubungkan NodeMCU dengan Internet. Disini kita akan
menggunakan modul ini untuk mendapatkan suhu ruangan pada web browser
yaitu kita akan membuat web server untuk menampilkan suhu dengan
menggunakan LM35 sebagai sensor suhu.
 Komponen yang Dibutuhkan:

1. NodeMCU - ESP12
2. Sensor Suhu LM35
3. Papan tempat memotong roti
4. Konektor pria-wanita
Sensor Suhu LM35:

LM35  adalah sensor suhu linier analog. Outputnya sebanding dengan suhu


(dalam derajat Celcius). Kisaran suhu pengoperasian dari -55 ° C hingga 150
° C. Tegangan keluaran bervariasi sebesar 10mV sebagai respons terhadap
setiap  kenaikan atau penurunan suhu o C. Ini dapat dioperasikan dari
pasokan 5V serta 3,3 V dan arus siaga kurang dari 60uA. 
 
Perhatikan bahwa LM35 tersedia dalam 3 variasi seri yaitu seri LM35A, LM35C dan
LM35D. Perbedaan utamanya terletak pada rentang pengukuran suhu mereka. Seri
LM35D dirancang untuk mengukur 0 hingga 100 derajat Celcius, sedangkan seri
LM35A dirancang untuk mengukur rentang yang lebih luas dari -55 hingga 155
derajat Celcius. Seri LM35C dirancang untuk mengukur dari -40 hingga 110 derajat
Celcius.

Menghubungkan LM35 dengan NodeMCU:


Diagram sirkuit untuk menghubungkan LM35 dengan NodeMCU diberikan di
bawah ini:

LM35 adalah sensor analog jadi kita harus mengubah keluaran analog ini menjadi
digital. Untuk ini kami menggunakan pin ADC dari NodeMCU yang didefinisikan
sebagai A0. Kami akan menghubungkan output LM35 ke A0.
Kami memiliki 3,3 V sebagai tegangan output pada pin NodeMCU. Jadi, kami akan
menggunakan 3.3V sebagai Vcc untuk LM35.
Penjelasan Kode:
Kode lengkap dengan Video Demonstrasi diberikan di akhir artikel. Di sini
kami menjelaskan beberapa bagian kode. Kami sudah menjelaskan
untuk mengunggah kode ke MCU menggunakan Arduino IDE .
Pertama, kita harus menyertakan pustaka ESP8266wifi untuk mengakses
fungsi Wi-Fi ..

#include <ESP8266WiFi.h>

Kemudian masukkan nama dan kata sandi Wi-Fi Anda


di bidang ssid dan kata sandi . Juga menginisialisasi variabel dan memulai
server pada port 80 dengan baud rate 115200.

const char * ssid = "*********"; // ssid


const char * password = "***********"; // Kata Sandi Anda
float temp_celsius = 0;
float temp_fahrenheit = 0;
Server WiFiServer (80);
void setup () {
Serial.begin (115200);
Koneksi Wi-Fi dibuat dengan memanggil fungsi-fungsi ini.

Serial.println ();
Serial.println ();
Serial.print ("Menghubungkan ke");
Serial.println (ssid);
WiFi.begin (ssid, kata sandi);
Sambungan memerlukan beberapa detik untuk dibuat, jadi terus tampilkan '...'
hingga sambungan tidak dapat dibuat. Kemudian sistem akan terus
menunggu dan memeriksa klien untuk terhubung…

while (WiFi.status ()! = WL_CONNECTED) {


delay (500);
Serial.print (".");
}
Serial.println ("");
Serial.println ("WiFi terhubung");
server.begin ();
Serial.println ("Server dimulai");
Serial.println (WiFi.localIP ());
}
Pada bagian loop , baca nilai sensor dan ubah menjadi Celsius dan
Fahrenheit dan tampilkan nilai-nilai ini pada monitor serial.

void loop () {
temp_celsius = (analogRead (A0) * 330.0) / 1023.0; // Untuk mengonversi nilai analog
ke Celsius Kami memiliki 3,3 V di papan kami dan kami tahu bahwa tegangan keluaran
LM35 bervariasi sebesar 10 mV untuk setiap kenaikan / penurunan derajat Celcius.
Jadi, (A0 *
3300/10
) / 1023 = celsius temp_fahrenheit = celsius * 1.8 + 32.0; Serial.print ("Suhu =");
Serial.print (temp_celsius);
Serial.print ("Celsius,");

Kode HTML untuk menampilkan Temperatur di Halaman Web:


Kami menampilkan suhu di halaman web agar dapat diakses dari mana saja
di dunia melalui internet. Kode HTML sangat sederhana; kita hanya perlu
menggunakan fungsi client.println untuk menggemakan setiap baris kode
HTML, sehingga browser dapat menjalankannya.
Bagian ini menunjukkan kode HTML untuk membuat halaman web yang
menampilkan nilai suhu.

WiFiClient client = server.available();


client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the
response
client.println("Refresh: 10"); // update the page after 10 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("<p style='text-align: center;'><span style='font-size: x-large;'><strong>Digital
Thermometer</strong></span></p>");
client.print("<p style='text-align: center;'><span style='color: #0000ff;'><strong style='font-size:
large;'>Temperature (*C)= ");
client.println(temp_celsius);
client.print("<p style='text-align: center;'><span style='color: #0000ff;'><strong style='font-size:
large;'>Temperature (F) = ");
client.println(temp_fahrenheit);
client.print("</p>");
client.println("</html>");
delay(5000);
}

Kerja:

Setelah mengupload kode menggunakan Arduino IDE, buka serial monitor


dan tekan tombol Reset pada NodeMCU.

Sekarang, Anda dapat melihat papan terhubung ke jaringan Wi-Fi yang telah
Anda tentukan dalam kode Anda dan juga Anda mendapatkan IP. Salin IP ini
dan tempel di browser web apa pun. Pastikan sistem Anda tempat Anda
menjalankan browser web harus terhubung ke jaringan yang sama.

Termometer digital Anda sudah siap dan suhu akan disegarkan secara


otomatis di browser web setelah setiap 10 detik.
Untuk membuat halaman web ini dapat diakses dari internet, Anda hanya
perlu mengatur Port Forwarding di router / modem Anda. Cek Kode
Lengkap dan Video di bawah ini.
Code
#include <ESP8266WiFi.h>
const char* ssid     = "*********"; // Your ssid
const char* password = "***********"; // Your Password
float temp_celsius = 0;
float temp_fahrenheit = 0;
WiFiServer server(80);
void setup() {
 Serial.begin(115200);
  pinMode(A0, INPUT);   
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi is connected");
server.begin();
Serial.println("Server started");
Serial.println(WiFi.localIP());
}
void loop() {
temp_celsius = (analogRead(A0) * 330.0) / 1023.0;   // To convert analog values to Celsius We
have 3.3 V on our board and we know that output voltage of LM35 varies by 10 mV to every
degree Celsius rise/fall. So , (A0*3300/10)/1023 = celsius
temp_fahrenheit = celsius * 1.8 + 32.0;
Serial.print("  Temperature = ");
Serial.print(temp_celsius);
Serial.print(" Celsius, ");
Serial.print(temp_fahrenheit);
Serial.println(" Fahrenheit");
WiFiClient client = server.available();
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");  // the connection will be closed after completion of the
response
client.println("Refresh: 10");  // update the page after 10 sec
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.print("<p style='text-align: center;'><span style='font-size: x-large;'><strong>Digital
Thermometer</strong></span></p>");
client.print("<p style='text-align: center;'><span style='color: #0000ff;'><strong style='font-size:
large;'>Temperature (*C)= ");
client.println(temp_celsius);
client.print("<p style='text-align: center;'><span style='color: #0000ff;'><strong style='font-size:
large;'>Temperature (F) = ");
client.println(temp_fahrenheit);
client.print("</p>");
client.println("</html>");
delay(5000);
}

Anda mungkin juga menyukai