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.
ini data terbaru yang terkirim gak bisa muncul dri atas? kan ini data terbaru terkirim ke bawah kalo ke atasin gimana ya? mohon bantuannya
error disini kenapa ya ?
#include “TRIGGER_WIFI.h” //library untuk wifi
#include “TRIGGER_GOOGLESHEETS.h” //Library untuk spreadsheet
Silahkan import library Trigger Wifi dan Trigger Googlesheets ya kak.
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?
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