Tutorial Thingspeak Lengkap : Pengiriman dan Penerimaan Data

Indobot Update

Pengiriman dan Penerimaan Data
Tutorial Thingspeak Lengkap : Cara Pengiriman dan Penerimaan Data

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.

  1. NodeMCU ESP8266 (1)
  2. DHT11 (1)
  3. Project Board (1)
  4. 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.

  1. NodeMCU ESP8266 (1)
  2. LED (1)
  3. Resistor 470 Ohm(1)
  4. Project Board (1)
  5. 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.

 

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Satu pemikiran pada “Tutorial Thingspeak Lengkap : Pengiriman dan Penerimaan Data”

Tinggalkan komentar

whatsapp whatsapp