IoT Monitoring Menggunakan ESP8266 dan Arduino Uno

31 Dec, 2020 | Ditulis oleh : Fadlur Rohman

Rekomendasi Kelas
Membangun Toko Online Menggunakan Laravel

Laravel adalah salah framework php dengan pengguna terbanyak. Dengan banyaknya pengguna otomatis ketika kita menghadapi error akan lebih mudah menemukan solusin...

Kali ini saya akan membuat contoh IoT monitoring menggunakan esp8266 dan arduino uno. Kalo sebelumnya saya menggunakan rest api berbasis codeigniter kali ini saya akan menggunakan thingspeak untuk menampung data hasil monitoring.

Untuk monitoring saya menggunakan aplikasi android buatan saya sendiri yaitu IoThingspeak yang bisa didownload di playstore. Sebelumnya buat akun dulu di thingspeak dulu untuk mendapatkan user api key. Untuk memasukkan user api key bisa dilihat di video di bawah ini

Sekedar info, ESP8266 adalah modul wifi murah meriah dengan harga 50ribuan ynag dapat digunakan untuk mengirim data ke server. Komunikasi ESP8266 dengan arduino menggunakan komunikasi serial (AT+Command).

Rangkaian jadi arduino dan esp8266
Skema pin esp8266
pin esp8266

Di atas adalah skema pin ESP8266. Rangkaian esp8266 dan arduino uno adalah sebagai berikut :

Arduino ESP8266
3.3 V VCC
3.3 V RST
3.3 V CH_PD
RX TX
TX RX

Algoritma di dalam sketch arduino dibagi menjadi 2 bagian, yaitu pada bagian untuk menyambungkan ke router wifi dieksekusi pada bagian void setup().

void setup(){
  Serial.begin(Baud_Rate);
  Serial.println("AT");

  delay(5000);

  //sambungkan ke wifi
  Serial.println("AT+CWMODE=1");//mode wifi client
  delay(2000);

  String cmd = "AT+CWJAP=\"";//at command konek ke wifi router
  cmd += SSID;
  cmd += "\",\"";
  cmd += PASS;
  cmd += "\"";//simpelnya ya gini AT+CWJAP="SSID","PASS";

  Serial.println(cmd);
  delay(5000);

  if(Serial.find("OK")){
    digitalWrite(4,HIGH);
    digitalWrite(3,LOW);
  }else{
    digitalWrite(4,LOW);
    digitalWrite(3,HIGH);
  }
  //end sambungan ke wifi
}

Selanjutnya adalah bagian untuk mengirim data ke server.

void loop(){
  //inisialisasi alamat server
  String cmd = "AT+CIPSTART=\"TCP\",\"184.106.153.149\",80";//ip api.thingspeak.com
  Serial.println(cmd);
  delay(500);

  //coba kirim data
  String getStr = "GET /update?api_key=";
  getStr += APIKEY;
  getStr += "&field1=";
  getStr += "150";//silahkan ganti nilai sensor
  getStr += "\r\n\r\n";
  
  //Serial.print("AT+CIPSEND=");
  //Serial.println(cmd.length());
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());

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

  if(Serial.find("OK")){
    for(int a = 0; a < 5; a++){
      digitalWrite(4,HIGH);
      digitalWrite(3,LOW);
      delay(200);
      digitalWrite(4,LOW);
      digitalWrite(3,HIGH);
      delay(200);
    }
  }else{
    for(int a = 0; a < 5; a++){
      digitalWrite(4,HIGH);
      digitalWrite(3,HIGH);
      delay(200);
      digitalWrite(4,LOW);
      digitalWrite(3,LOW);
      delay(200);
    }
  }
  
  //end coba kirim data
  delay(5000);
}

Untuk mendapatnya write api key channel bisa dicopy paste dari halaman channel di thingspeak.

Sketch lengkap yang saya gunakan.

#include <stdlib.h>
#define SSID "F4DL" //nama wifinya
#define PASS "isipasswordnya" //password wifi routernya
#define Baud_Rate 115200
#define Delay_Time 5000
#define WRITE_APIKEY "J6HJJVN2XH"//channel read apikey

bool kirimdata; //cek status kirim data

void setup(){
  Serial.begin(Baud_Rate);
  Serial.println("AT");

  delay(5000);

  //sambungkan ke wifi
  Serial.println("AT+CWMODE=1");//mode wifi client
  delay(2000);

  String cmd = "AT+CWJAP=\"";//at command konek ke wifi router
  cmd += SSID;
  cmd += "\",\"";
  cmd += PASS;
  cmd += "\"";//simpelnya ya gini AT+CWJAP="SSID","PASS";

  Serial.println(cmd);
  delay(5000);

  if(Serial.find("OK")){
    digitalWrite(4,HIGH);
    digitalWrite(3,LOW);
  }else{
    digitalWrite(4,LOW);
    digitalWrite(3,HIGH);
  }
  //end sambungan ke wifi
}
void loop(){
  //inisialisasi alamat server
  String cmd = "AT+CIPSTART=\"TCP\",\"184.106.153.149\",80";//ip api.thingspeak.com
  Serial.println(cmd);
  delay(500);

  //coba kirim data
  String getStr = "GET /update?api_key=";
  getStr += WRITE_APIKEY;
  getStr += "&field1=";
  getStr += "150";//silahkan ganti nilai sensor
  getStr += "\r\n\r\n";
  
  //Serial.print("AT+CIPSEND=");
  //Serial.println(cmd.length());
  cmd = "AT+CIPSEND=";
  cmd += String(getStr.length());

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

  if(Serial.find("OK")){
    for(int a = 0; a < 5; a++){
      digitalWrite(4,HIGH);
      digitalWrite(3,LOW);
      delay(200);
      digitalWrite(4,LOW);
      digitalWrite(3,HIGH);
      delay(200);
    }
  }else{
    for(int a = 0; a < 5; a++){
      digitalWrite(4,HIGH);
      digitalWrite(3,HIGH);
      delay(200);
      digitalWrite(4,LOW);
      digitalWrite(3,LOW);
      delay(200);
    }
  }
  
  //end coba kirim data
  delay(5000);
}

Setelah berhasil mengirim data, maka di web thingspeak akan tampil grafik seperti gambar berikut

Dan tampilan pada hasil monitoring di aplikasi androidnya seperti berikut :

Demo hasil jadinya bisa dilihat di video di bawah ini

 

Selamat mencoba.

Ada manfaatnya silahkan share, ada pertanyaan isi saja di kolom komentar.

 




Related Post :

Rest Web Service Codeigniter Bagian Keempat (API KEY)

31 Dec, 2020 - Fadlur Rohman

Setelah kita membuat&nbsp;database&nbsp;untuk menyimpan data hasil mon...

Belajar Dasar Arduino di Linux

31 Dec, 2020 - Fadlur Rohman

Belajar arduino di linux bisa dimulai dengan menginstall arduino IDE d...

Mengukur Suhu Menggunakan LM35 dan Arduino

31 Dec, 2020 - Fadlur Rohman

Menghitung suhu menggunakan sensor LM35 dan arduino. Komponen yang dib...

IoT Monitoring Menggunakan ESP8266 dan Arduino Uno

31 Dec, 2020 - Fadlur Rohman

Kali ini saya akan membuat contoh IoT monitoring menggunakan esp8266 d...

Menghitung Jarak Menggunakan Arduino dan Sensor Ultrasonic

31 Dec, 2020 - Fadlur Rohman

Untuk mengukur jarak dapat dilakukan menggunakan arduino dan sensor ul...

Rest Web Service Codeigniter Bagian Ketiga (Database)

31 Dec, 2020 - Fadlur Rohman

Bagian Pertama Bagian Kedua Pada bagian ini kita akan mensetting konek...

Mau Bikin Aplikasi Web & Aplikasi Android?

Saya membuka jasa pembuatan aplikasi web dan android untuk aplikasi seperti toko online, monitoring (IoT), interface mesin absensi atau kasir

Silahkan kontak link di bawah ini untuk teknis dan harganya