1. Kompetensi
Mahasiswa mampu membaca data dari server thingspeak menggunakan modul
ESP8266
2. Sub Kompetensi
a. Dapat memprogram ESP8266 dengan Arduino
b. Dapat mengenal dan memahami fung – fungsi dari AT Command
c. Dapat memahami konsep Internet of Things (IoT)
d. Dapat memahami komunikasi ESP8266 dengan Thingspeak
3. Dasar Teori
Internet of Things
IoT atau Internet of Things adalah teknologi untuk menyatukan semua perangkat
(‘things’) melalui media internet. Kata kunci dalam teknologi adalah ‘connectivity’ dan
objek dari connectivity itu sendiri. ‘Connectivity’ atau dalam bahasa kita adalah
‘konektivitas’, artinya media untuk menghubungkan semua perangkat. Secara harafiah,
konektivitas IoT adalah melalui internet, namun teknologi ini dapat dengan mudah
diimplementasikan dalam intranet/LAN. Basically, konektivitas yang didukung adalah
media perantara yang menggunakan protokol TCP/IP sebagai carrier-nya. Yang kedua,
objek konektivitas yang kita sebut sebagai ‘Things’ atau terjemahan tekniknya adalah
‘perangkat’. Things/perangkat ini bukan sembarang perangkat namun tentunya yang sudah
mendukung konektivitas TCP/IP.
ESP8266
ESP8266 adalah sebuah embedded chip yang di desain untuk komunikasi berbasis
wifi. Chip ini memiliki output serial TTL dan GPIO. ESP8266 dapat digunakan secara
sendiri (Standalone) maupun digabungkan dengan pengendali lainnya seperti
mikrokontroler. ESP8266 memiliki kemampuan untuk networking yang lengkap dan
menyatu baik sebagai client maupun sebagai Access Point. Firmware yang dimiliki
ESP88266 begitu banyak, dapat juga sebuah chip ESP8266 diprogram dengan tujuan
khusus sesuai degan kebutuhan sebagai contoh kemampuan untuk berkomunikasi dengan
web yang menggunakan port HTTPS.
Chip ESP8266 disempurnakan oleh Tensilica’s seri L106 Diamond dengan
prosesor 32-bit. Ada 3 cara menggunakan ESP8266 : sebagai wifi access menggunakan AT
command, dimana biasanya dimanfaatkan oleh Arduino untuk koneksi wifi, sebagai sistem
yang berdiri sendiri menggunakan NodeMCU dan menggunakan bahasa LUA, sebagai
sistem yang berdiri sendiri dengan menggunakan Arduino IDE yang sudah bisa terhubung
dengan ESP8266. ESP 8266 dapat bertindak sebagai client ke suatu wifi router, sehingga
saat konfigurasi dibutuhkan setting nama access pointnya dan juga passwordnya, selain itu
ESP8266 dapat digunakan sebagai Access Point dimana ESP8266 dapat menerima akses
wifi.
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
LS 2: Membaca Data Dari Thingspeak 4 X 50
Semester 6
Menggunakan ESP8266 Wifi Modul Menit
Hal 2 dari
No Revisi : 01 Tgl : 18 Maret 2019
13
ThingSpeak
"ThingSpeak adalah platform open source Internet of Things (IOT) aplikasi dan
API untuk menyimpan dan mengambil data dari hal menggunakan protokol HTTP melalui
Internet atau melalui Local Area Network. ThingSpeak memungkinkan pembuatan aplikasi
sensor logging, aplikasi lokasi pelacakan, dan jaringan sosial hal dengan update status ".
ThingSpeak awalnya diluncurkan oleh ioBridge pada tahun 2010 sebagai layanan untuk
mendukung aplikasi IOT. ThingSpeak telah terintegrasi dukungan dari numerik komputasi
perangkat lunak MATLAB dari MathWorks. Memungkinkan ThingSpeak pengguna untuk
menganalisis dan memvisualisasikan data yang diunggah menggunakan Matlab tanpa
memerlukan pembelian lisensi Matlab dari MathWorks.
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
LS 2: Membaca Data Dari Thingspeak 4 X 50
Semester 6
Menggunakan ESP8266 Wifi Modul Menit
Hal 3 dari
No Revisi : 01 Tgl : 18 Maret 2019
13
Gambar 2. ThingSpeak
4. Alat dan Bahan
1. PC/Laptop
2. ESP8266
3. Arduino UNO
4. Kabel USB Arduino
5. Project board
6. Access Point dengan koneksi Internet
7. Kebel Jumper secukupnya
5. Langkah Kerja
Berikut ini langkah – langkah yang harus dilakukan
1. Rangkai ESP8266 dengan Arduino seperti gambar dibawah ini.
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
LS 2: Membaca Data Dari Thingspeak 4 X 50
Semester 6
Menggunakan ESP8266 Wifi Modul Menit
Hal 4 dari
No Revisi : 01 Tgl : 18 Maret 2019
13
2. Pastikan untuk melakukan langkah awal dalam LS1 untuk mengubah kecepatan
ESP8266 dari 115200 menjadi 9600.
3. Setelah selesai maka dapat dilanjutkan dengan membuat program baru untuk
membaca data dari thingspeak menggunakan ESP8266 wifi modul dengan program
sebagai berikut :
#include <SoftwareSerial.h>
#define RX 2
#define TX 3
//declaration an object/class esp8266 type softwareserial
SoftwareSerial esp8266(RX,TX); //RX,TX
String ssid = "whoami"; // disesuaikan dengan WiFi yang akan dihubungkan
String pass = "19980524"; //cantumkan password dari WiFi yang dihubungkan
String data="";
int i=0;
void setup()
{
Serial.begin(9600);
esp8266.begin(9600);
Serial.println("====== inizializing =======");
SendToESP8266("AT",5,"OK");
SendToESP8266("AT+CWMODE=1",5,"OK");
SendToESP8266("AT+CWJAP=\""+ ssid +"\",\""+ pass +"\"",20,"OK");
}
void loop()
{
SendToESP8266("AT+CIPMUX=1",5,"OK");
String strIPSTART = "AT+CIPSTART=4,\"TCP\",\"184.106.153.149\",80";
SendToESP8266(strIPSTART,15,"OK");
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
LS 2: Membaca Data Dari Thingspeak 4 X 50
Semester 6
Menggunakan ESP8266 Wifi Modul Menit
Hal 5 dari
No Revisi : 01 Tgl : 18 Maret 2019
13
4. Tulis kembali program tersebut dan perhatikan setiap komentar yeng tertera pada
program untuk lebih memahami program.
5. Setelah selesai dan program benar semua saat di compail selanjutka buka
ThingSpeak anda terlebih dahulu dan pastikan api key yang dimasukan pada
program sama dengan yang ada pada ThingSpeak.
6. Kemudian buka laman baru pada browser lalu masukan
https://api.thingspeak.com/update?api_key=3D6QMA0DYX9736GC&field1=9
3D6QMA0DYX9736GC = write api key anda
9 = data yang akan anda kirim
7. Setelah data terkirim kemudian dapat di lihat data tersebut pada field ThingSpeak
anda. Berikut merupakan contoh dari pengaplikasian tahap diataas
Lebar data
8. Setelah berhasil dengan lebar data 1 digit, selajutkan modifikasilah program untuk
memunculkan 2 digit angka pada lebar data dengan cara mengubah program pada
bagian
{
Serial.println();
String x = data.substring(9,11); //disesuaikan dengan lebar data yang akan
dimunculkan pada serial monitor
Serial.print("Data read: "); Serial.println(x);
delay(2000);
}
Upload program yang telah dirubah.
Kemudian kirimkan data pada ThingSpeak sebanyak 2 digit, seperti contoh sebagai
berikut:
9. Setelah berhasil dengan lebar data 1 digit, selajutkan modifikasilah program untuk
memunculkan 3 digit angka pada lebar data dengan cara mengubah program pada
bagian
{
Serial.println();
String x = data.substring(9,12); //disesuaikan dengan lebar data yang akan dimunculkan
pada serial monitor
Serial.print("Data read: "); Serial.println(x);
delay(2000);
}
Upload program yang telah dirubah.
Kemudian kirimkan data pada ThingSpeak sebanyak 3 digit, seperti contoh sebagai
berikut:
10. Setelah berhasil dengan lebar data 1 digit, selajutkan modifikasilah program untuk
memunculkan 4 digit angka pada lebar data dengan cara mengubah program pada
bagian
{
Serial.println();
String x = data.substring(9,13); //disesuaikan dengan lebar data yang akan dimunculkan
pada serial monitor
Serial.print("Data read: "); Serial.println(x);
delay(2000);
}
Upload program yang telah dirubah.
Kemudian kirimkan data pada ThingSpeak sebanyak 4 digit, seperti contoh sebagai
berikut:
void setup()
{
pinMode (6,OUTPUT); //untuk Pin LED
pinMode (7,OUTPUT); //untuk Pin LED
pinMode (8,OUTPUT); //untuk Pin LED
Serial.begin(9600);
esp8266.begin(9600);
Serial.println("====== inizializing =======");
SendToESP8266("AT",5,"OK");
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
LS 2: Membaca Data Dari Thingspeak 4 X 50
Semester 6
Menggunakan ESP8266 Wifi Modul Menit
Hal 11 dari
No Revisi : 01 Tgl : 18 Maret 2019
13
SendToESP8266("AT+CWMODE=1",5,"OK");
SendToESP8266("AT+CWJAP=\""+ ssid +"\",\""+ pass +"\"",20,"OK");
}
void loop()
{
SendToESP8266("AT+CIPMUX=1",5,"OK");
String strIPSTART = "AT+CIPSTART=4,\"TCP\",\"184.106.153.149\",80";
SendToESP8266(strIPSTART,15,"OK");
String getstr = "GET
/channels/718839/fields/1/last?api_key=U8XUNWVRZCB6D1K8";
String strCommand ="AT+CIPSEND=4,"+String(getstr.length()+4);
SendToESP8266(strCommand,10,">");
SendToESP8266(getstr,20,"OK");
delay(1000);
int j=0;
data="";
while(j<50) {
int a=esp8266.read();
Serial.write(a);
if(a == '\"') break;
else if ((a>=32) && (a<=127)) data +=char(a);
j++;
}
Serial.println();
String x = data.substring(9,10);
Serial.print("Data read: "); Serial.println(x);
delay(2000);
if (x=="0") digitalWrite(6,LOW); //data 0 kondisi lampu mati pada pin 6
if (x=="1") digitalWrite(6,HIGH); //data 1 kondisi lampu hidup pada pin 6
if (x=="2") digitalWrite(7,LOW); //data 2 kondisi lampu mati pada pin 7
if (x=="3") digitalWrite(7,HIGH); //data 3 kondisi lampu hidup pada pin 7
if (x=="4") digitalWrite(8,LOW); //data 4 kondisi lampu mati pada pin 8
if (x=="5") digitalWrite(8,HIGH); //data 5 kondisi lampu hidup pada pin 8
}
void SendToESP8266 (String ATCommand, int timemax, char codefeedback[])
{
int t=0;
Serial.println("AT Command: "+ATCommand);
while(t<timemax)
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
LS 2: Membaca Data Dari Thingspeak 4 X 50
Semester 6
Menggunakan ESP8266 Wifi Modul Menit
Hal 12 dari
No Revisi : 01 Tgl : 18 Maret 2019
13
{
Serial.print(".");
esp8266.println(ATCommand);
if (esp8266.find(codefeedback))
{
Serial.println("OK");
break;
}
t++;
}
Serial.println();
}
13. Setelah program selesai dan berhasil di upload maka kembali lakukan pengiriman
data dimulai dengan data 1. Hasil dari langkah ini ialah sebagi berikut:
14. Setelah berhasil, kirimkan data 3 untuk mengubah LED pin 7 menyala. Berikut
merupakan tampilan dari percobaan tersebut