Ali Sidik Thiingspeak IoT
Ali Sidik Thiingspeak IoT
Hal 1 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
1. Kompetensi
Setelah melakukan praktik, mahasiswa memiliki kompetensi: dapat memahami dan
mengimplementasikan teknik kendali dan akusisi data dengan menggunakan
ESP8266
2. Sub Kompetensi
Setelah melakukan praktik, mahasiswa memiliki sub kompetensi :
a. Memahami konsep internet of things (IOT)
b. Memahami piranti ESP8266
c. Memahami service Thingspeak
d. Memahami komunikasi ESP8266 dengan Thingspeak
3. Dasar Teori
Internet of Things
Hal 2 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Hal 3 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
ESP8266
Hal 4 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Thingspeak
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
U1 : Membuat Akun Thingspeak
4 X 50
Semester 6
Menit
Hal 5 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
"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.
Cara Kerja :
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
U1 : Membuat Akun Thingspeak
4 X 50
Semester 6
Menit
Hal 6 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Gambar 4. ThingSpeak
5. Langkah Kerja
Berikut ini langkah-langkah yang harus dilakukan
a. Kunjungi http://thingspeak.com
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
U1 : Membuat Akun Thingspeak
4 X 50
Semester 6
Menit
Hal 7 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Hal 8 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Hal 9 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Hal 10 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Hal 11 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
i. Buatlah channel
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
U1 : Membuat Akun Thingspeak
4 X 50
Semester 6
Menit
Hal 12 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
k. Ini adalah alamat untuk menulis dan membaca data pada channel thinspeak
yang dibuat
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
U1 : Membuat Akun Thingspeak
4 X 50
Semester 6
Menit
Hal 13 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
b. Pastikan untuk melakukan langkah awal dalam LS1 untuk mengubah kecepatan
ESP8266 dari 115200 menjadi 9600.
c. 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
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
LAB SHEET Praktik Kendali Dan Akusisi Data
U1 : Membuat Akun Thingspeak
4 X 50
Semester 6
Menit
Hal 14 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
Hal 15 dari
No Revisi : 01 Tgl : 1 Maret 2019
12
d. Tulis kembali program tersebut dan perhatikan setiap komentar yeng tertera pada
program untuk lebih memahami program.
e. Setelah selesai dan program benar semua saat di compail selanjutnya buka
ThingSpeak anda terlebih dahulu dan pastikan api key yang dimasukan pada program
sama dengan yang ada pada ThingSpeak.
f. Kemudian buka laman baru pada browser lalu masukan
https://api.thingspeak.com/update?api_key=J77APDLPL6A4GY1V&field1=9
WZM8VV9EPFA2CGP4= write api key anda
9 = data yang akan anda kirim
g. Setelah data terkirim kemudian dapat di lihat data tersebut pada field ThingSpeak
anda. Berikut merupakan contoh dari pengaplikasian tahap diataas
Lebar data
h. 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);
}
i. 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);
}
j. 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);
}
#include <SoftwareSerial.h>
#define RX 2
#define TX 3
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");
SendToESP8266("AT+CWMODE=1",5,"OK");
SendToESP8266("AT+CWJAP=\""+ ssid +"\",\""+ pass +"\"",20,"OK");
}
FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA
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=WZM8VV9EPFA2CGP4";
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
{
Serial.print(".");
esp8266.println(ATCommand);
if (esp8266.find(codefeedback))
{
Serial.println("OK");
break;
}
t++;
}
Serial.println();
}
m. Setelah program selesai dan berhasil di upload maka kembali lakukan pengiriman
data dimulai dengan data 1. Hasil dari langkah ini ialah sebagi berikut:
n. Setelah berhasil, kirimkan data 3 untuk mengubah LED pin 7 menyala. Berikut
merupakan tampilan dari percobaan tersebut