ESP8266

Apa itu modul ESP8266 berserta penjelasannya

Pengenalan Awal

Modul ESP8266 merupakan platform yang sangat murah tetapi benar-benar efektif untuk digunakan berkomunikasi atau kontrol melalui internet baik digunakan secara standalone (berdiri sendiri) maupun dengan menggunakan mikrokontroler tambahan dalam hal ini Arduino sebagai pengendalinya.

Setelah dapat menguasai tutorial mengakses ESP8266 ini, Anda akan memiliki pengetahuan untuk mengontrol perangkat elektronika melalui internet dimanapun Anda berada. Dan hal ini sering disebut dengan istilah Internet of Things (IoT).

Di pasaran ada beberapa tipe dari keluarga ESP8266 yang beredar, tetapi yang paling banyak dan mudah dicari di Indonesia yaitu tipe ESP-01, ESP-07, dan ESP-12.

Untuk secara fungsi hampir sama tetapi perbedaannya terletak pada pin GPIO (General Purpose Input Output) pada masing – masing tipe.

Berikut beberapa tipe dari keluarga ESP8266 antara lain :

Gambar Keluarga Module ESP8266

Pada tutorial kali ini akan dibahas tentang modul ESP-01 untuk mengontrol LED melalui internet secara sederhana.

ESP-01 merupakan modul yang memungkinkan mengakses mikrokontroler melalui internet.

Modul ini tergolong StandAlone atau System on Chip yang tidak selalu membutuhkan mikrokontroler untuk mengontrol Input Ouput yang biasa dilakukan pada Arduino dikarenakan ESP-01 dapat bertindak sebagai mini komputer, tetapi dengan kondisi jumlah GPIO yang terbatas.

Apabila ingin digabungkan dengan Arduino juga sangat memungkinkan sekali sebagai jembatan penghubung Arduino diakses melalui internet dalam hal ini melalui komunikasi wifi.

Pin-Out dari ESP-01

Keterangan :

  • GPIO-0 – GPIO-3 : Input Output
  • VCC : Tegangan masuk 3.3 Vdc
  • GND : Ground
  • Reset
  • Chip Enable

Spesifikasi dari ESP-01 yaitu

  • Besar RAM 96 kB, instruction RAM 64 kB
  • 32-bit RISC CPU
  • External QSPI flash – 512 KiB to 4 MiB
  • Tegangan kerja masukan 3.3 Vdc
  • Jaringan wifi pada 802.11 b/g/n
  • Pada mode 802.11b output power-nya +19.5dBm
  • Menggunakan sistem Wi-Fi Direct (P2P), soft-AP
  • Power down leakage current of 10uA
  • Wake up and transmit packets in < 2ms
  • Integrated TCP/IP protocol stack
  • Standby power consumption of < 1.0mW (DTIM3)
  • SDIO 1.1 / 2.0, SPI, UART
  • 10-bit ADC
  • Interface : SPI, I²C
  • STBC, 11 MIMO, 21 MIMO
  • A-MPDU & A-MSDU aggregation & 0.4ms guard interval

[irp]


Tutorial 1 ESP8266 (esp-01) untuk mengakses led menggunakan web browser

Bahan yang diperlukan yaitu :

  • Arduino Uno
  • Module ESP-01
  • Relay 1 Channel
  • FTDI Usb
  • LED
  • Breadboard
  • Kabel Jumper
  • Komputer + Software IDE Arduino

Skema yang perlu dirangkaikan

*diperlukan IC LM1117-3.3 dikarenakan tegangan operasi untuk ESP-01 yaitu 3.3 vdc

* ESP-01 dipasaran ada 2 macam yaitu yang berwarna biru dan hitam, perbedaannya pada kapasitas memori 512Kb (biru) 1Mb (hitam), yang berpengaruh terhadap settingan kapasitas memori board pada software IDE Arduino

* Setting kecepatan pada software IDE Arduino yaitu 115200 atau 9600

Langkah – langkah yang perlu dilakukan untuk installing library :

  1. Download dan install software IDE Arduino (sesuai dengan Operation System)
  2. Kemudian buka software tersebut
  3. Pilih dan klik menu file -> preferences
  4. Pada bagian “Additional Boards Manager URL’s” masukan link dibawah berikut ini :
    http://arduino.esp8266.com/stable/package_esp8266com_index.json
  5. Dan klik “OK”
  6. Setelah itu, klik “Boards Manager” pada menu tools -> board -> boards manager
  7. Ketikan pada “filter your search” -> esp8266 by ESP8266 community
  8. Kemudian klik install, dan tunggu beberapa detik sampai proses selesai
  9. Terakhir pilih close
  10. Dan untuk installing library NodeMCU ESP8266 sudah selesai dilakukan

[irp]

Library yang diperlukan :

  • ESp8266wifi.h : [ddownload id=”1130″]

Peletakan Library pada OS (Operation System):
1. Mac : (home directory)/Documents/Arduino/libraries
2. PC (Windows) : My Documents -> Arduino -> libraries
3. Linux : (home directory)/sketchbook/libraries

*Skema rangkaian programing diatas, untuk artikel selanjutnya akan saya buatkan PCB-nya sehingga mengurangi penggunaan kabel jumper.

Kode pemrograman pertama

#include <ESP8266WiFi.h> //memasukan library ESP8266Wifi.h

//Nama wifi yang akan dikHidupeksikan
const char* ssid = "Blok21no12";
//masukan password wifinya
const char* password = "012345678";

WiFiServer server(80);
int led_Pin = 2; // Penggunaan GPIO2 pada ESP8266

void setup() {
  Serial.begin(9600);
  delay(20);

  pinMode(led_Pin, OUTPUT);
  digitalWrite(led_Pin, LOW);

  //Proses perangkat esp-01 kHidupeksi ke wifi
  Serial.println();Serial.println();
  //Menulis status di serial mHidupitor
  Serial.print("Menghubungkan ke jaringan...");Serial.println(ssid);

  //Mulai koneksikan dengan via wifi
  WiFi.begin(ssid, password);
  //syarat kondisi pengkoneksian
  while (WiFi.status() != WL_CHidupNECTED)
  {delay(300);Serial.print(".");}Serial.println("");
  Serial.println("Jaringan WiFi terkoneksi");

  // pemulaian
  server.begin();Serial.println("Koneksi Server dimulai");

  Serial.print("alamat IP yang untuk pengaksesan: ");
  //penulisan alamat ip
  Serial.print("http://");
  //IP address
  Serial.print(WiFi.localIP());Serial.println("/");
}

void loop() {
  // mengecek jika client sudah terkonek
  WiFiClient client = server.available();
  //jika tidak client yang terkoneksi
  if (!client) {return;}

  Serial.println("Koneksi baru");
  //Jika sudah ada client baru maka
  while(!client.available())
  {delay(5);}

  String request = client.readStringUntil('\r');
  //Menunliskan di serial mHidupitor
  Serial.println(request);client.flush();

  int value = LOW;
  if(request.indexOf("/LED=Hidup") != -1)
  {digitalWrite(led_Pin, HIGH);value = HIGH;
  }

  if(request.indexOf("/LED=Mati") != -1)
  {digitalWrite(led_Pin, LOW);value = LOW;
  }

  // Menuliskan dalam format HTML
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println("");
  //Menuliskan dalam bentuk format HTML
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  client.print("Kondisi led terkini : ");

  //Kondisi LED
  if(value == HIGH) {client.print("Hidup");}
  else {client.print("Mati");}

  client.println("<br><br>");
  client.println("Klik <a href=\"/LED=Hidup\">ini</a> Menghidupkan LED <br>");
  client.println("Klik <a href=\"/LED=Mati\">ini</a> Mematikan LED <br>");
  client.println("</html>");

  delay(5);
  Serial.println("Koneksi terputus");
  Serial.println("");
}

Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *