Tutorial NodeMCU : IoT Mengirimkan Data ke Google Sheets

Indobot Update

NodeMCU ke Google Sheets
Tutorial Membuat IoT Mengirimkan Data dari NodeMCU ke Google Sheets

Halo Sahabat Indobot! Jumpa lagi di Tutorial Project menggunakan NodeMCU. Sedang ada project apa hari ini?

Sudah pernah menggunakan NodeMCU ESP8266?

NodeMCU ESP8266 adalah salah satu mikrokontroler yang memiliki fasilitas Wifi. Fasilitas wifi ini dapat digunakan untuk mengembangkan mikrokontroler ke arah Internet of Things. Data yang dikirimkan melalui internet ini dapat diakses di cloud hingga akhirnya kita dapat melihatnya di platform yang kita gunakan.

Nah untuk mengamankan data, kita bisa menggunakan fasilitas Wifi ini untuk mengirimkan data kita ke GoogleSheet. Data yang tersimpan di googlesheet ini dapat digunakan sebagai data penelitian yang realtime. Jadi kita sudah tidak perlu repot memindahkan data ke excel. Jika  dirasa data yang tertulis di spreadsheet sudah cukup, maka kita hanya perlu untuk download.

Nah pertanyaannya adalah “apakah kita bisa mengirimkan data yang terbaca oleh nodeMCU ke googlesheet”?

Tentu saja bisa. Cara yang dapat kita gunakan adalah dengan membuat sebuah laman yang ketika kita akses, maka kita bisa langsung menambahkan data dalam googlesheet yang sudah kita sediakan. Laman ini, kemudian kita masukkan ke dalam program nodeMCU agar, NodeMCU dapat mengisi laman tersebut untuk mengirimkan data terbaru.

Bagaimana caranya? Simak yaa.

Tutorial IoT Mengirimkan Data dari NodeMCU ke Google Sheets

Pembuatan Laman

Berikut ini adalah cara untuk  membuat laman yang dapat mengisi Spreadsheet secara langsung.

Buka Spreadsheet yang baru.

Beri nama Sheet kita, kemudian tuliskan “Tanggal”, “Pukul”, dan Nilai seperti gambar berikut.

Buka Editor Script untuk membuka script untuk Spreadsheet.

baca juga: Tutorial Membuat Slider pada Webserver Menggunakan NodeMCU

Setelah sudah terbuka, masukkan Program seperti berikut.

function doGet(e) { 

  Logger.log( JSON.stringify(e) );  // melihat parameters

  var result = ‘Ok’; // verifikasi sukses 

  if (e.parameter == ‘undefined’) {

    result = ‘No Parameters’;

  }

  else {

    var sheet_id = ‘Enter your Sheet ID Here’; // Spreadsheet ID

    var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet(); // sheet aktif

    var newRow = sheet.getLastRow() + 1;

    var rowData = [];

    d=new Date();

    rowData[0] = d; // Timestamp in column A

    rowData[1] = d.toLocaleTimeString(); // Timestamp in column A

    

    for (var param in e.parameter) {

      Logger.log(‘In for loop, param=’ + param);

      var value = stripQuotes(e.parameter[param]);

      Logger.log(param + ‘:’ + e.parameter[param]);

      switch (param) {

        case ‘value1’: //Parameter 1, 

          rowData[2] = value; //Value in column A

          result = ‘Written on column A’;

          break;

        case ‘value2’: //Parameter 2,orderwise

          rowData[3] = value; //Value in column B

          result += ‘ Written on column B’;

          break;

        case ‘value3’: //Parameter 3,

          rowData[4] = value; //Value in column C

          result += ‘ Written on column C’;

          break;

        default:

          result = “unsupported parameter”;

      }

    }

    Logger.log(JSON.stringify(rowData));

    // Write new row below

    var newRange = sheet.getRange(newRow, 1, 1, rowData.length);

    newRange.setValues([rowData]);

  }

  // Return result of operation

  return ContentService.createTextOutput(result);

}

function stripQuotes( value ) {

  return value.replace(/^[“‘]|[‘”]$/g, “”);

}

[/code]

Kemudian Copy Sheet ID.

Sheet ID terletak di bagian laman untuk Spredsheet yang tadi kita buka. Contohnya seperti ini. https://docs.google.com/spreadsheets/d/17tVrZ66EUM10xd4X-S2LmPxhQOSznCytQvfxFt1gFn4/edit#gid=0

Dari laman di atas, dapat diketahui bahwa Sheet ID nya adalah 17tVrZ66EUM10xd4X-S2LmPxhQOSznCytQvfxFt1gFn4. Letak Sheet ID ada di bagian ini https://docs.google.com/spreadsheets/d/<Sheet ID>/edit#gid=0.

Baca juga : Apa Perbedaan Edge Computing dan Cloud Computing

Kemudian paste di sheet_id yang ada pada script di atas.

Buatlah Laman dengan Publikasi sebagai aplikasi web dengan cara seperti gambar berikut. Jika bagian menu bar publikasi tidak muncul, dapat klik “Gunakan Editor Lama”(Use Old Editor) di kanan atas.

Konfirmasi bahwa anda memperbolehkan pengisian data melalui laman yang akan dibuat.

Copy Laman yang sudah dibuat seperti ini.

https://script.google.com/macros/s/AKfycbzxcZ87VAWAEsazqtweKQHWmedufHst6C9yF7b3-o-LsBB/exec

Uji coba laman di atas dengan menambahkan “?value1=1&value2=2&value3=3” menjadi seperti ini.

https://script.google.com/macros/s/AKfycbzxcGF2Z87VWAtWEsatweKQHWmedufHst6C9yF7b3-o-LsBB/exec?value1=1&value2=2&value3=3

setelahnya klik enter. Coba lihat di bagian spreadsheet kita, apakah ada data yang terupdate atau tidak.

baca juga: ESP8266 NodeMcu RFID Kirim Data ke Database XAMPP

Copy dan paste Gas ID di Arduino IDE

Gas ID dapat kita lihat di laman yang sudah kita buat.

Contohnya seperti ini https://script.google.com/macros/s/AKfycbzxcGF2Z87VAWAEsazqtweKQHWmedufHst6C9yF7b3-o-LsBB/exec.

Maka gas ID nya adalah bagian ini AKfycbzxcGF2Z87VAAtWEsazqtweHWedufHst6C9yF7b3-o-LsBB.

Program Arduino IDE

Tulislah program seperti di bawah ini.

#include “TRIGGER_WIFI.h”               //library untuk wifi

#include “TRIGGER_GOOGLESHEETS.h”       //Library untuk spreadsheet

 

/**********Google Sheets Definations***********/

char column_name_in_sheets[ ][6] = {“value1″,”value2″,”value3”};  //kolom dan nama value

String Sheets_GAS_ID = “AKfycbzxcGF2Z87VAWAtWEsazqtweKQHWmedufHst6C9yF7b3-o-LsBB”;                  //memasukkan Gas ID

int No_of_Parameters = 3;             //parameter untuk banyaknya variabel yang mau dibaca

/*********************************************/

 

void setup() 

{

  Serial.begin(9600);

  while (!Serial);

 

  WIFI_Connect(“SSID”,”Password”);      //nama dan password untuk wifi

  Google_Sheets_Init(column_name_in_sheets, Sheets_GAS_ID, No_of_Parameters );    //mengatur penulisan kolom nama, gas ID, nomor parameter      

}

 

void loop() 

{

  float a = 1, b = 2, c = 3;    //demo

 

  Data_to_Sheets(No_of_Parameters,  a,  b, c);    //mengirim data ke sheets

 

  Serial.println();

  delay(10000);  //10detik untuk pengiriman

}

[/code]

Masukkan Gas ID di String Sheets_GAS_ID. Jangan lupa untuk menyesuaikan wifi yang digunakan. Jika sudah, upload program ke NodeMCU.

Hasil dari project ini adalah Data di Spreadsheet akan terupdate setiap 10 detik. Data yang dituliskan berupa tanggal, pukul, nilai1 akan terus terisi 1, nilai2 terisi 2, dan nilai3 akan terus terisi 3. Hal ini dikarenakan pengiriman data sesuai dengan demo pada program untuk NodeMCU.

Jika teman-teman ingin melakukan pembacaan data sensor, silakan dapat mengubah variabel a, b, atau c sesuai dengan variabel hasil pembacaan sensor. Sehingga yang terkirim adalah data sensor.

Selamat mencoba.

Ingin Tahu Program Kami Lebih Lanjut?

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

Baca Juga

Bagikan:

6 pemikiran pada “Tutorial NodeMCU : IoT Mengirimkan Data ke Google Sheets”

  1. ini data terbaru yang terkirim gak bisa muncul dri atas? kan ini data terbaru terkirim ke bawah kalo ke atasin gimana ya? mohon bantuannya

    Balas
  2. error disini kenapa ya ?

    #include “TRIGGER_WIFI.h” //library untuk wifi
    #include “TRIGGER_GOOGLESHEETS.h” //Library untuk spreadsheet

    Balas
  3. ka mau tanya.. pas mau deploy di spereadsheet ada tulisan Error sintaksis: SyntaxError: Invalid or unexpected token baris: 4 file: Kode.gs itu kenapa ya kak?

    Balas
  4. Bisa ga kak script tersebut untuk menghasilkan data output sensor hall effect?
    Soalnya saya udah coba pak program dan script nya tapi sensor efek hall saya menjadi delay
    Dan pada saat program spread nya saya hapus kembali sensor bekerja dengan baik

    Balas
  5. Ping-balik: Google Goes to Yogyakarta - PT Ozami Inti Sinergi

Tinggalkan komentar

whatsapp whatsapp