Bu projemizin amacı, Arduino’ya bağladığımız herhangi bir sensörden aldığımız verileri bulutta toplayıp inceleyebilmek. Bunun için Google Drive üzerinde bir tablo açıp sensörden gelen verileri bu tabloya yazıp, IOT gibi her yerden ulaşılabilir hale getireceğiz. Bunun için NodeMcu’da kullanabilirsiniz, ESP ile bir Arduino’yu da kullanabilirsiniz. Arduino ile IOT yani nesnelerin interneti proje olacak.
Google Drive’a istek atabilmemiz için, öncelikle aşağıdaki kütüphaneyi kullanmamız gerekiyor. Çünkü Google’a istek atabilmek için TLS doğrulaması yapmak yani https üzerinden haberleşmeyi sağlamak gerekiyor.
https://github.com/electronicsguy/ESP8266/tree/master/HTTPSRedirect
yukardaki kütüphaneyi kurduktan sonra, Google Drive da bir excel dosyası açıyoruz.
Açılan tablodan menüden araçlar ve komut dosyası düzenleyicisi ni seçiyoruz.
Kod ekranındaki kodları silip aşağıdaki kodu yapıştıralım.
function doGet(e) {
Logger.log( JSON.stringify(e) ); // Parametreleri görüntülevar result = ‘Ok’; // Başarılı
if (e.parameter == ‘undefined’) {
result = ‘Hatalı parametre!!’;
}
else {
var sheet_id = ‘Sizin IDniz’; // Buraya google shhet ID’nizi adres satırından alıp yapıştırın
var sheet = SpreadsheetApp.openById(sheet_id).getActiveSheet(); // ID üzerinden sheed’inize erişiyoruz
var newRow = sheet.getLastRow()+1;
var rowData = [];
rowData[0] = new Date(); // Zaman damgası A kolonuna yazıldı
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]);// Ekrana yazdırıyoruz aldığımız parametreyi
switch(param){
case’sicaklik’://Parametremiz
rowData[1]= value;//B kolonuna değeri yazdı
result = ‘Sıcaklık değeri B kolonuna yazıldı’;
break;
case ‘nem’: //Parametremiz
rowData[2] = value; //C kolonuna değeri yazdı
result += ‘ Nem değeri C kolonuna yazıldı’;
break;
default:
result = “Parametre hatalı!”;
}
}
Logger.log(JSON.stringify(rowData));var newRange = sheet.getRange(newRow, 1, 1, rowData.length);
newRange.setValues([rowData]);
}
//Sonucu döndüren fonksiyon
return ContentService.createTextOutput(result);
}
function stripQuotes( value ) {
return value.replace(/^[“‘]|[‘”]$/g, “”);
}
Kod’da yazan Sizin ID’niz yazısını aşağıdaki gibi sizin tablo sayfanızın adresinde bulunan :
https://docs.google.com/spreadsheets/d/1lUgPckCYjZIW8x4JNup75B8H4-t3itbsCWKmiDo2etA/edit#gid=0
örnekteki gibi https://docs.google.com/spreadsheets/d/ **** /edit#gid=0 yıldızlı yeri kopyalıyoruz.
Üstteki örnek için bu değer 1lUgPckCYjZIW8x4JNup75B8H4-t3itbsCWKmiDo2etA dir. Kopyaladığımız bu değeri yukarıda verilen kodun içerisindeki Sizin ID’niz yazan yere yapıştırıyoruz. yani :
var sheet_id = ‘1lUgPckCYjZIW8x4JNup75B8H4-t3itbsCWKmiDo2etA’;
yukarıdaki gibi olmalı.
Kodunuzu düzenledikten sonra.
Web uygulaması olarak dağıt dedikten sonra, projemize isim vermemizi isteyecek istediğimiz bir ismi girebiliriz.
Son olarak açılan sayfadaki ayarlar aşağıdaki gibi olmalı.
Ayarlarıda yukarıdaki gibi tamamladıktan sonra, aşağıdaki gibi bir pencere açılacak. Bu penceredeki adresi kopyalıyoruz. Adrese kodumuzda belirlediğimiz parametreleri ekliyoruz.
Kodumuzda //Parametremiz yorumuyla belirtilmiş olan parametreleri vermemiz gerekiyor. Siz isterseniz kodu değiştirip farklı parametreler verebilirsiniz.
Örnek olarak bizim kodumuz için:
https://script.google.com/macros/s/AKfycbwMH70BTvxeb8uptu4VMuO0LfH2KRCtbvyy8dgf9VEZ7QF9x9aP/exec?sicaklik=100&nem=25
adresini tarayıcıda açtığım zaman google tabloma adres satrına eklemiş olduğum 100 ve 25 değerlerinin eklendiğini görebiliyorum. Siz Arduino kodunuzda bu 100 ve 25 değerleri yerine değişken koyarak bu işlemi yapmalısınız.
Sizde Arduino veya NodeMCU’nuz ile bu yöntemle google drive’a veri aktarabilir cihazınıza bağlı sensör verilerini inceleyebilirsiniz. Her türlü IOT nesnelerin interneti projelerinizde kullanabilirsiniz. Ancak yazının başında da belirttiğimiz gibi google’un https protokolü kullanmasından dolayı istek atarken yazını başında linkini vermiş olduğumuz kütüphaneyi kullanmanız gerekmektedir. Eğer talep olursa onu da nasıl yapacağınıza dair bir yazı hazırlayabilirim.
Hepinize başarılar dilerim sağlıcakla…
“Arduino ile Google Drive a veri aktarmak IOT NodeMCU” üzerine bir düşünce
var result = ‘Ok’; // Başarılı
Syntax Error: Invalid or unexpected token satır 4 hatası veriyor