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 :
- Download dan install software IDE Arduino (sesuai dengan Operation System)
- Kemudian buka software tersebut
- Pilih dan klik menu file -> preferences
- Pada bagian “Additional Boards Manager URL’s” masukan link dibawah berikut ini :
http://arduino.esp8266.com/stable/package_esp8266com_index.json
- Dan klik “OK”
- Setelah itu, klik “Boards Manager” pada menu tools -> board -> boards manager
- Ketikan pada “filter your search” -> esp8266 by ESP8266 community
- Kemudian klik install, dan tunggu beberapa detik sampai proses selesai
- Terakhir pilih close
- 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!