Monitoring Suhu melalui Internet dengan ESP8266

Ditulis oleh agan

بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم

Halo sahabat, selamat weekend dan menikmati hari indahmu bersama orang tersayang :)
Di bulan Agustus ini sepertinya masih dalam suasana liburan ya? ataukah hanya saya saja yang masih menikmati hari libur? entahlah, nikmati saja apa yang terjadi di hidup ente ya gan.
Yang jelas, dikesempatan petang ini saya ingin memberikan sedikit tutorial arduino sederhana yang bertujuan untuk dokumentasi dan berbagi kepada kalian semua sahabat BoArduino.

Sekarang kita akan mencoba modul Wi-Fi ESP8266 dengan Arduino sebagai transmisi untuk mengupload data suhu dari IC LM35 (Sensor Suhu) ke channel yang sudah kita buat dan akan di ploting dalam bentuk Line graphs pada website ThingSpeak.com.
Tutorial kali ini adalah salah satu pengaplikasian dari Internet Of Things dengan Arduino. Sangat menarik bukan? Ya, very interested bro!


Modul WiFi ESP8266 ini memang cukup menarik perhatian bro, karena si kecil mungil yang sangat keren ini memliki banyak kelebihan yang membuatnya menjadi sangat populer. Dilengkapi dengan stack protokol TCP/IP yang telah terintegrasi, sehingga memungkinkan mikrokontroler untuk meng-akses jaringan WiFi. Keren sekali memang si mungil ini, Awesome!

Berikut ini adalah fitur-fitur dari Modul WiFi ESP8266 ESP-01 menurut datasheet :
  • Menggunakan jaringan 802.11 b/g/n.
  • Wi-Fi Direct (P2P), soft-AP.
  • Integrated TCP/IP protocol stack
  • Integrated TR switch, balun, LNA, power amplifier and matching network.
  • Integrated PLLs, regulators, DCXO and power management units
  • +19.5 dBm output power in 802.11b mode.
  • Power down leakage current of <10uA.
  • Integrated low power 32-bit CPU could be used as application processor.
  • SDIO 1.1 / 2.0, SPI, UART.
  • STBC, 1×1 MIMO, 2×1 MIMO.
  • A-MPDU & A-MSDU aggregation & 0.4ms guard interval.
  • Wake up and transmit packets in < 2ms.
  • Standby power consumption of < 1.0mW (DTIM3).
  • Operation Level : 5V
  • Power Supply : External 5V 
Cukup banyak fitur yang ditawarkan Modul ini, tetapi menurut ane tidak sebanding dengan harganya yang begitu murah dan terjangkau! Oke,  mari kita mulai saja bro, Let's Rock! :D

Sebelum memonitoring suhu melalui internet, set ESP8266 menjadi mode 3 [TUTORIAL DISINI]
1.) Setelah itu buka website ThingSpeak, dan melakukan Pendaftaran. klik DAFTAR SEKARANG


2.) Setelah terdaftar, silahkan melakukan Login. Dan apabila login berhasil, klik New Channel


3.) Lalu kita klik lagi pada Tab Channel setting, dan isikan Form sesuai dengan Kebutuhan


4.) Setelah itu klik pada Tab Private View, maka disitulah nantinya Data akan di Plotting


5.) Bagian terpenting terakhir, Klik Tab API Keys lalu Copy-Paste pada Notepad anda

 6.) Horeee, Pembuatan channel sudah selesai. Mari kita beralih ke Hardware, simak ya gan!

Alat dan Bahan yang dibutuhkan :
  • 1x Arduino UNO (Compatible)
  • 1x ESP8266 Wifi Module
  • 1x IC LM35 (Sensor Suhu)
  • Kabel jumper secukupnya
  • Breadboard (Project Board) 
  • Akses point (WiFi) bisa didapatkan dari Router

Langkah - Langkahnya :

1.) Susunlah rangkaian seperti gambar dibawah ini


Keterangan Konfigurasi Kabel :
  • Pin 3V pada Arduino dihubungkan ke Pin VCC dan CH_PD pada ESP8266
  • Pin GND pada Arduino dihubungkan ke Pin GND pada ESP8266
  • Pin 10 pada Arduino dihubungkan ke Pin UTXD pada ESP8266
  • Pin 11 pada Arduino dihubungkan ke Pin URXD pada ESP8266
  • Pin 5V pada Arduino dihubungkan ke Pin VCC pada LM35
  • Pin GND pada Arduino dihubungkan ke Pin GND pada LM35
  • Pin A0 pada Arduino dihubungkan ke Pin OUT pada LM35
2.) Setelah itu sambungkan Arduino pada Laptop/PC dengan menggunakan kabel serial.
3.) Download dan Install program Arduino IDE di Arduino.cc ( If Needed )
4.) Setelah terinstall, jalankan program Arduino-nya.
5.) Klik menu "Tools -> Board -> Arduino Uno"
6.) Klik menu "Tools -> Port -> ( Pilih Port arduino yang terdeteksi di komputer anda )
7.) Lalu masukan Sketch dibawah ini, dan terakhir klik upload.

Klik LIHAT DONG untuk melihat sketch
#include <SoftwareSerial.h>
#include <stdlib.h>

int ledPin = 13;
int lm35Pin = 0;
String apiKey = "DSSBSEZZAZKTP5GN"; // Ubah dengan API Key ente bro!
SoftwareSerial ser(10, 11); // RX, TX

void setup() {               
  pinMode(ledPin, OUTPUT);   
  Serial.begin(9600);
  ser.begin(9600);
  ser.println("AT+RST");
}

void loop() {
 
  digitalWrite(ledPin, HIGH);  
  delay(200);              
  digitalWrite(ledPin, LOW);

  int val = 0;
  for(int i = 0; i < 10; i++) {
      val += analogRead(lm35Pin);  
      delay(500);
  }
  float temp = val*50.0f/1023.0f;
  char buf[16];
  String strTemp = dtostrf(temp, 4, 1, buf);
  Serial.println(strTemp);
 
  String cmd = "AT+CIPSTART=\"TCP\",\"";
  cmd += "184.106.153.149"; // api.thingspeak.com
  cmd += "\",80";
  ser.println(cmd);
  
  if(ser.find("Error")){
    Serial.println("AT+CIPSTART error");
    return;
  }
 
  String getStr = "GET /update?api_key=";
  getStr += apiKey;
  getStr +="&field1=";
  getStr += String(strTemp);
  getStr += "\r\n\r\n";

  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());
  ser.println(cmd);

  if(ser.find(">")){
    ser.print(getStr);
  }
  else{
    ser.println("AT+CIPCLOSE");
    Serial.println("AT+CIPCLOSE");
  }
    delay(16000); 
}

Silahkan lihat video simulasi dibawah ini

Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.

Blog, Updated pada: 13:56:00

62 comments:

  1. Bro kalo bisa ajarin dong cara setting channelnya..saya masih sangat baru di dunia IOT tapi pengen bgt bljr.. heheh.

    ReplyDelete
    Replies
    1. Bingung dimananya gan? semangat...

      Delete
    2. Saya udah coba ikut tutor mas tapi ga arduino saya ga bisa komunikasi sama hp. Bisa minta kontak buat nanya2. Hehehe

      Delete
    3. Email : muhandi.prasetyo@gmail.com

      Delete
  2. Gan yg pke dht11 dong share tutornya..trimaksh

    ReplyDelete
    Replies
    1. Sama saja kok gan, coba dibuat dulu sketch dengan DHT11... trus nanti tinggal di Serial.print aja hasilnya, kaya sketch diatas.

      Delete
  3. Mau nanya..
    Kalau datanya cuman di taruh di webpage saja, jadi tidak di taruh di thingspeak, bisa?

    Kalau bisa, bagaimana ya caranya?

    ReplyDelete
  4. Gan tolong plis dijawab segera....... Ane sudah ikutin semua cara agan... tapi di thingspeak g nampil suhunya.. tolong dilengkapi dong gan setelah upload apa yg harus dilakukan? soalnya upload succes tapi di thingspeak tidak muncul apa-apa. thx.

    ReplyDelete
    Replies
    1. Salam kenal, gak tampil? kalau di Serial monitor Arduino IDE muncul ? kalau di Serial monitor muncul, tapi di ThingSpeak tidak muncul kemungkinan baudrate atau Channel ID dan API keys tidak sesuai.

      Delete
    2. Saya punya kasus yang sama gan, tidak muncul di thingspeak, untuk mengecek Channel ID itu di mana gan?

      Delete
    3. Sebenarnya untuk monitoring suhu via internet ini tidak butuh channel ID, hanya API Key saja. Ente tidak muncul di thingspeak? banyak juga yang kirim email ke ane dan bilang nilai Suhunya tidak tampil di thingspeak.

      Coba cek API Documentation thingspeak, mungkin ada yang berubah untuk update ke Channel thingspeak.

      Delete
    4. PERHATIKAN DI SKETCH
      String apiKey = "N4YO1KLM3FK5SVPE"; // Ubah dengan API Key ente bro!

      Delete
  5. lam kenal min...
    LM35 bisa sampai berapa ya min untuk sensor suhu, bisa ngak ya 0*c - 2000*c.
    Terus gimana caranya kalau sensornya kita ganti dengan thermocouple,,,

    ReplyDelete
    Replies
    1. Salam kenal, untuk minimum dan maksimus LM35 silahkan cek di datasheet.

      Pakai sensor apa saja bisa, asalkan nilainya bisa di print.

      Delete
  6. Bro gmana cara bikin app nya supaya nyambung wifi. Kan di mit app inventor cma ad bluetooth

    ReplyDelete
    Replies
    1. Pakai item Web1.

      Cuma ada bluetooth? yakin? Banyak bener loh item di MIT App inventor 2.

      Delete
  7. Mas mau tanya msh bingung ni, kok d thinkspeak ga nampil kalo d serial monitor nampil apikey sdh cocok, kira2 slah d mana ya mas

    ReplyDelete
    Replies
    1. Data suhu ente tidak muncul di thingspeak? banyak juga yang kirim email ke ane dan bilang nilai Suhunya tidak tampil di thingspeak. Ane juga belum tau kenapa, karena ane belum mencobanya lagi.

      Coba saja cek API Documentation thingspeak, mungkin saja ada yang berubah untuk update ke Channel thingspeak.

      Delete
  8. di serial monitor ga muncul suhunya kenapa ya? padahal rangkaiannya udah sama, mohon bantuannya...

    ReplyDelete
    Replies
    1. Coba di cek kembali mbak, kalau suhunya tidak muncul mungkin ada masalah pada wiring atau komponennya itu sendiri.

      Delete
  9. Itu biar tampil brpa2 derajat nya pake perhitungan pas di kodingan programnya yg sebelah mana? Bisa dijelasin ga gan?

    ReplyDelete
    Replies
    1. Dibagian ini float temp = val*50.0f/1023.0f;

      Delete
  10. Kalo diganti pake sensor ultrasonic bisa ga bang kira kira? kan android bisa tuh ya jadi hotspot portable,bisa ga arduino nya di sambungin ke hotspotnya si android?.maakasih

    ReplyDelete
    Replies
    1. Bisa juga, tapi tiap 16 detik datanya yang di update.
      Pakai Tethering dari Android, bisa...

      Delete
  11. mas mau nanya kalo lebih dari satu parameter gimna, misalnya suhu sama RH ?
    terus code bagian yang mana, yang mentrasfer data ke internetnya...
    terimakasih.....
    maaf ya mas banyak nanya

    ReplyDelete
    Replies
    1. Coba lihat pada bagian ini

      String getStr = "GET /update?api_key=";
      getStr += apiKey;
      getStr +="&field1=";
      getStr += String(strTemp);
      getStr += "\r\n\r\n";

      Kalau dibagian itu kan yang di update adalah strTemp, pada field 1. Tinggal ente buat aja untuk RH, dan nanti yang di print adalah RH, pada field 2 (misalnya).

      Delete
  12. Gan itu maksudnya sebelum kita compile sketch nya, kita setting dulu esp8266 nya ke mode cwmode=3, baru kita compile sketchnya gitu?

    ReplyDelete
  13. Kang, saya Budianto. maaf saya baru coba belajar arduino karena kebutuhan saya Kang. he he mau tanya Kang.
    Kalau untuk monitoring suhu seperti ini menggunakan 5 sensor bisa ga Kang?
    kalau ada no atau wa yang bisa saya hubungi Kang?

    ReplyDelete
    Replies
    1. Salam kenal mas Budianto.
      Tentu saja bisa mas kalau hanya 5, dan maksimal 8 channel pada ThingSpeak.

      Contact ane ada di sidebar kanan blog, arahkan saja cursor mouse ke icon Whatsapp.

      Delete
  14. Gan kalo cara nampilin data flow air gimana gan

    ReplyDelete
    Replies
    1. Salam kenal, kalau itu ane belum tau gan...

      Delete
  15. Gan, itu gapake connect ke wifi dulu ? gausah masukin ssid wifi dan passwordnya kah ?

    ReplyDelete
    Replies
    1. Perlu. Tetapi kalau sebelumnya sudah pernah connect ke wifi dan wifi tersebut masih di jangkauan, maka akan autoconnect.

      Delete
  16. assalamualaikum, bang bisa dijelasin koding buat konekin hotspotnya yang mana? saya baca2 ngk ada
    trims, wassalam

    ReplyDelete
    Replies
    1. Waalaikum salam, coba lihat tutorial sebelum langkah 1 dimulai.

      Delete
  17. gan, gimana cara masukkin ke wifi, tapi wifinya di password, mohon pencerahannya. Terimakasih.

    ReplyDelete
    Replies
    1. Coba ikuti tutorial sebelum langkah 1 dimulai...

      Delete
  18. Gan, esp8266 ini bisa membuat kita browsing gratis gak? Btw, nice post

    ReplyDelete
  19. gan kalo status relay (high or low) bisa dinyatakan pada thingspeak (1 or 0) ngga? kalo bisa gimana ya?

    ReplyDelete
    Replies
    1. Bisa. Coba lihat documentation di web resminya.

      Delete
  20. gan baud rate awal kan 115200 nah itu di koding kenapa 9600 apa itu ga ngaruh

    ReplyDelete
  21. gan, bisa gak esp8266 dibuat control sama monitoring secara bersamaan?

    ReplyDelete
  22. Bro, mohon maaf, mau nanya, kalo misalnya pingin menampilkan data setiap 24 jam sekali, gimana caranya bro, terimakasih banyak panduannya. :)

    ReplyDelete
    Replies
    1. Tambahkan RTC gan, nanti bisa disesuakan mau jam, menit dan detik berapa untuk update datanya.

      Delete
  23. Mas klu pake sensor asap untuk melihat konsentrasi asap dalam ruangan misalnya, gimana ya mas? Mohon pencerahannya

    ReplyDelete
    Replies
    1. Kalau sensor yang digunakan outputnya analog, tinggal dihubungkan saja pin output sensornya ke pin analog input arduino. Sketch standar untuk baca analog input, sama seperti potensio.

      Delete
  24. wah terimakasih tulisannya bagus untuk referensi saya. judul skripsi saya sekarang juga menggunakan esp8266mod mas. monitoring arus listrik. bila berkenan saya bisa tanya2 ke sampean :)
    salam kenal.

    ReplyDelete
  25. Mas andi, saya sangat tertarik dengan IoT. Kalau semisal esp8266 diganti dengan shield GSM gimana mas? Bisa Tidak ya? Mohon Pencerahannya.

    ReplyDelete
  26. Halo bang, salam kenal. Artikelnya bagus dan menarik. Saya baru memulai IOT. Kalo di platform ini, kita bisa ngirim data dari platform ke arduino ga ya?? misalkan kita mau ngasih setpoint suhu, atau ON/OFF heater gitu..
    Mohon pencerahannya bang.
    Terima kasih.

    ReplyDelete
    Replies
    1. Halo, salam kenal.
      Bisa untuk kontrol dan monitoring.

      Delete
  27. makasih banyak buat bang andi presetyo tutornya work gan,, sebelumnya ane juga bermasalah kaya temen temen di atas,, tapi ternyata bukan karena settingan di thingspeaknya dan juga bukan dari kodingan yg abang post.. ternyata pas ane coba di boudrate 115200 dengan cara manual di serial monitor itu bisa ngirim ke thingspeaknya,, jadi di kodingnya cuma ane ganti jadi 115200.. makasih ya bang atas kodingnya suskes selalu

    ReplyDelete
    Replies
    1. Terimakasih juga sudah berkunjung... Hehe kalau gagal, dicoba lagi suatu saat pasti berhasil. Ente galau seminggu? saya juga pernah 3 bulan mikirin gagal, pas dicoba lagi berhasil. Sekarang tutorialnya sudah ada di blog ini :)

      Delete
  28. mas klu untuk pengukur getaran dengan accelerometer bisa gak delaynya dikin delay(100)ms? nti data yang di kirimkan bisa sesuai sama delay sensor gak ? misal menggunakan web atau local host wifi

    ReplyDelete
    Replies
    1. thingspeak minimal 16 detik sepertinya... 100ms terlalu cepat. Kalau local host sepertinya bisa.

      Delete

Masih Bingung atau Hal Lainnya? Silahkan Bertanya di Kolom Komentar :)

~ Dilarang SARA
~ Dilarang PORNOGRAPHY
~ Dilarang SPAM
~ Dilarang MENINGGALKAN LINK AKTIF
~ Maaf untuk Anonymous, tidak bisa Berkomentar.

Apabila Komentar anda belum muncul, Tunggu sampai di Moderasi.
Terimakasih atas Perhatiannya.


English French German Spain Italian Dutch Russian