Tutorial Thingspeak – Halo Fanbot! Sedang ada project apa hari ini?
Pada artikel kali ini, Minbot akan membagikan tutorial Thingspeak secara keseluruhan.
Internet of Things (IoT) adalah sistem teknologi yang terintegrasi untuk dapat melakukan monitoring maupun controlling dengan menggunakan koneksi internet. IoT memungkinkan pengguna dapat melakukannya kapanpun dan di manapun. IoT di prediksi akan menjadi teknologi yang paling banyak di gunakan untuk kedepannya.
[lwptoc numeration=”none” title=”Daftar Isi”]
Platform Thingspeak adalah salah satu platform yang dapat di gunakan untuk membuat project IoT. Thingspeak dapat di akses secara free dengan berbagai fasilitas yanng dapat di gunakan. Namun jika kita ingin mendapatkan fasilitas yang lebih banyak lagi, silakan dapat upgrade platform ini dengan membayar.
Thingspeak dapat di gunakan secara open source untuk menjalankan aplikasi dengan menggunakan API. Data yang sudah masuk pada Thingspeak juga dapat di pantau pada tampilan Thingspeak.
Kita dapat menghubungkan Thingspeak ini pada suatu mikrokontroler. Pada contoh project di artikel ini, kita akan menggunakan NodeMCU ESP8266. Perhatikan Langkah-langkah yang kita gunakan untuk project-project kali ini.
Pengiriman Data
Pengiriman data kali ini, kita akan menggunakan contoh Pengiriman Data suhu dengan Sensor DHT11.
Alat dan Bahan
Alat dan bahan yang digunakan pada project ini adalah sebagai berikut.
- NodeMCU ESP8266 (1)
- DHT11 (1)
- Project Board (1)
- Kabel Jumper (Secukupnya)
Rangkaian
Rangkai perangkat di atas menjadi seperti berikut.
Program Dasar Pengiriman Data
Program pengiriman data untuk Thingspeak adalah sebagai berikut.
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ThingSpeak.h> //library untuk thingspeak const char *ssid = "indobot.co.id"; //nama Hotspot yang const char *password = "belajariot"; //Password Hotspot WiFiClient client; unsigned long myChannelNumber = 1614486; //channel ID const char * myWriteAPIKey = "HE2CO3UZC7BPNCTM"; //write APIKey void setup() { Serial.begin(115200); delay(10); Serial.print("Connecting to "); Serial.println(ssid); //menampilkan nama hotspot ke Serial monitor WiFi.begin(ssid, password); //memulai untuk terhubung WiFi //memastikan koneksi dengan hotspot while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //menandakan sudah terkoneksi Serial.println(WiFi.localIP()); //menampilkan Alamat IP ThingSpeak.begin(client); //memulai thingspeak } void loop() { int nilaiSensor; //variabel Nilai sensor ThingSpeak.writeField(myChannelNumber, 1, nilaiSensor, myWriteAPIKey); //pengiriman ke data thingspeak delay(20000); //jangka pengiriman 20 detik } |
Jangan lupa untuk mengubah ssid dan password sesuai dengan yang di gunakan.
Sesuaikan juga MychannelNumber dengan Channel yang kalian gunakan.
Gunakan MyWriteAPIKey (bukan MyreadAPIKey).
Pada bagian Void Loop ada variabel tambahan seperti NilaiSensor. Jika teman-teman ingin mengirimkan data, maka ubah NilaiSensor ini menjadi data sensor yang ingin dikirimkan ke Thingspeak.
Program Pengiriman Data Suhu
Jika teman-teman sudah memahami program dasar di atas, maka program ini adalah contoh penggunaan pengiriman data. Yaitu pengiriman data suhu ke Tingspeak.
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ThingSpeak.h> //library untuk thingspeak #include "DHT.h" //library untuk DHT #define DHTPIN D2 //deklarasi pin D2 untuk output dari DHT11 #define DHTTYPE DHT11 //menggunakan DHT11 DHT dht(DHTPIN, DHTTYPE); const char *ssid = "indobot.co.id"; //nama Hotspot yang const char *password = "belajariot"; //Password Hotspot yang WiFiClient client; unsigned long myChannelNumber = 1614486; //channel ID const char * myWriteAPIKey = "HE2CO3UZC7BPNCTM"; //write APIKey void setup() { Serial.begin(115200); delay(10); Serial.print("Connecting to "); Serial.println(ssid); //menampilkan nama hotspot ke Serial monitor WiFi.begin(ssid, password); //memulai untuk terhubung WiFi //memastikan koneksi dengan hotspot while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //menandakan sudah terkoneksi Serial.println(WiFi.localIP()); //menampilkan Alamat IP ThingSpeak.begin(client); //memulai thingspeak dht.begin(); //memulai mengaktifkan DHT } void loop() { int t = dht.readTemperature(); //pembacaan temperatur //menampilkan pada serial monitor Serial.print("Temperature: "); Serial.print(t); Serial.println (" *C "); int nilaiSensor = t; //variabel Nilai sensor untuk ThingSpeak.writeField(myChannelNumber, 1, nilaiSensor, myWriteAPIKey); //pengiriman ke data thingspeak delay(20000); //jangka pengiriman 2 detik } |
Pada Program di atas, semua keperluan program untuk pembacaan DHT11 di masukkan dan pada bagian NilaiSensor, dibuat sama dengan t (nilai suhu).
Silakan upload program dan buka thingspeak pada bagian Channel Stats. Dimana data yang masuk akan ditampilkan di sana.
baca juga: IoT Pertanian : Monitoring pH dan Kelembaban Tanah Menggunakan Platform Thingspeak
Penerimaan Data
Penerimaan Data kali ini kita akan menggunakan contoh kendali LED. Sistem kerja untuk mengendalikan LED ini, kita menggunakan 2 nilai saja untuk project digital. Contohnya kita menggunakan nilai 0 dan 1. Untuk lebih lengkapnya, perhatikan cara berikut.
Alat dan Bahan
Alat dan bahan yang digunakan pada project ini adalah sebagai berikut.
- NodeMCU ESP8266 (1)
- LED (1)
- Resistor 470 Ohm(1)
- Project Board (1)
- Kabel Jumper (Secukupnya)
Rangkaian
Rangkai perangkat di atas menjadi seperti berikut.
Program Dasar Penerimaan Data
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ThingSpeak.h> const char *ssid = "**********"; //nama hotspot const char *password = "belajariot"; //password hotspot WiFiClient client; unsigned long myChannelNumber = 1640008; //Nomor channel Thingspeak const char * myReadAPIKey = "SKEASLRR2OQ2T15J"; //kode ReadAPIKey void setup() { Serial.begin(115200); // Initialize serial delay(10); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); //menghubungkan dengan hotspot while (WiFi.status() != WL_CONNECTED) //memastikan koneksi { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //menandakan sudah terkoneksi Serial.println(WiFi.localIP()); WiFi.mode(WIFI_STA); ThingSpeak.begin(client); // Initialize ThingSpeak } void loop() { int statusCode = 0; //membuat statusCode bernilai nol kembali long count = ThingSpeak.readLongField(myChannelNumber, 1, myReadAPIKey); //pembacaan nilai pada thingspeak di field 1 statusCode = ThingSpeak.getLastReadStatus(); if(statusCode == 200){ //200 adalah kode status dari thingspeak Serial.println("Data Thingspeak : " + String(count)); //tuliskan nilai pada serial monitor } else{ //jika bukan 200 artinya mengalami error Serial.println("Problem reading channel. HTTP error code " + String(statusCode)); } } |
Data yang dibaca adalah data terakhir. Jadi jika kita lihat di serial Monitor, maka akan muncul data terakhir yang digunakan. Nah pada program di atas, ada status Code. Status code ini adalah kode dari Thingspeak. Jadi jika kode yang masuk adalah bukan 200, maka tidak dianggap sebagai data thingspeak.
Program Penerimaan Data untuk Kendali LED
Jika teman-teman sudah memahami program dasar di atas, maka program ini adalah contoh penggunaan penerimaan data. Yaitu kendali LED.
#include <ESP8266WiFi.h> #include <WiFiClient.h> #include <ThingSpeak.h> const char *ssid = "**********"; //nama hotspot const char *password = "belajariot"; //password hotspot WiFiClient client; unsigned long myChannelNumber = 1640008; //Nomor channel Thingspeak const char * myReadAPIKey = "SKEASLRR2OQ2T15J"; //kode ReadAPIKey #define LED D1 void setup() { Serial.begin(115200); // Initialize serial delay(10); pinMode (LED, OUTPUT); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); //menghubungkan dengan hotspot while (WiFi.status() != WL_CONNECTED) //memastikan koneksi { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); //menandakan sudah terkoneksi Serial.println(WiFi.localIP()); WiFi.mode(WIFI_STA); ThingSpeak.begin(client); // Initialize ThingSpeak } void loop() { int statusCode = 0; //membuat statusCode bernilai nol kembali long count = ThingSpeak.readLongField(myChannelNumber, 1, myReadAPIKey); //pembacaan nilai pada thingspeak di field 1 statusCode = ThingSpeak.getLastReadStatus(); if(statusCode == 200){ //200 adalah kode status dari thingspeak if (count == 1){ digitalWrite(LED,1); Serial.println ("LED Menyala"); } else if (count == 0){ digitalWrite(LED,0); Serial.println ("LED Mati"); } else Serial.println ("Data yang dimasukkan salah"); } else{ //jika bukan 200 artinya mengalami error Serial.println("Problem reading channel. HTTP error code " + String(statusCode)); } } |
Pada program di atas, LED akan menyala hanya dengan menggunakan data dengan nilai 1 dan akan mati ketika dapat nilai 0. Hal ini harus disesuaikan dengan data yang akan dimasukkan dalam field nantinya. Coba teman-teman bandingkan dengan program sebelumnya ya.
baca juga: Kelebihan Thingspeak yang Bikin Nagih
Cara Pembuatan Channel di Thingspeak
Cara pembuatan channel di Thingspeak untuk keperluan penerimaan maupun pengiriman data, tergolong sama. Karena sebenarnya kedua hal tersebut memang diperlukan untuk keperluan IoT. Perbedaan pada project di atas adalah fungsi dari mikrokontrolernya sebagai penerima atau pengirim.
Berikut langkah-langkah yang diperlukan untuk pembuatan channel di Thingspeak.
Buat Akun
Dalam pembuatan akun, gunakan email pribadi yang ingin digunakan untuk Platform Thingspeak. Ikuti saja pengarahan dari Thingspeak. Di bagian ini anda perlu menentukan email, verifikasi email, hingga pembuatan password untuk bisa masuk ke Thingspeak nantinya.
New Channel
Buatlah channel baru untuk membuat project baru.
Setting Channel
Setting pada bagian Name dan centang field untuk membuat wadah data baru. Jangan lupa centang juga untuk “Show Status”. Kemudian klik Save Channel.
Channel Stats
Klik Private View untuk melihat Channel stats. Bagian ini akan ditampilkan grafik sederhana dari data yang masuk.
Channel ID
Channel ID berfungsi sebagai Channel number yang di perlukan untuk dapat mengetahui channel yang dapat di hubungkan. Pada program di atas, Channel ID di tuliskan menjadi myChannelNumber. Gunakan Channel ID di bagian ini untuk dapat terkoneksi dengan channel Thingspeak anda.
APIKeys
Dalam tutorial thingspeak ini kita juga akan memahami tentang APIKeys. APIKeys digunakan sebagai kunci untuk dapat masuk ke data. API adalah singkatan dari Application Programming Interface. APIKeys yang disediakan di Thingspeak memiliki 2 jenis, yaitu Write API key dan Read API Key. Write API Key berfungsi sebagai API Key untuk pengiriman data ke Thingspeak. Sedangkan Read API Key berfungsi sebagai API Key untuk pembacaan data dari Thingspeak ke perangkat lainnya (mikrokontroler atau interface).
Yap. Sementara sampai sini untuk untuk pembahasan Thingspeak. Bagi teman-teman yang ingin belajar menu-menu Thingspeak, silakan dapat kunjungi link berikut : Belajar Thingspeak : Penjelasan Menu dan Tutorial IoT
Silakan dapat di coba-coba project di atas yaa. Semangat!
Jangan lupa tetap upgrade skill kamu di Indobot Academy. Kamu bisa mendapatkan berbagai tutorial project. Selanjutnya tutorial bisa kamu terapkan di dalam kehidupan sehari-hari. Tak hanya itu, Indobot sudah menyediakan semua source coding yang dibutuhkan. Sehingga kamu hanya cukup membuka satu website saja. Oleh karena itu penting untuk mempelajari hal itu.
Bang, kenapa muncul titik-titik terus ya, padahal laptop sudah terhubung wifi?