Kirim Data Serial Arduino ke Firebase melalui NodeJS Server

phonegap17

Tutorial ini menunjukkan kemampuan firebase menangani data yang dikirim secara realtime dari arduino. Namun yang perlu dibuat catatan bahwa telah dilakukan pengujian dengan interval waktu pengiriman dibawah setengah detik menyebabkan kegagalan komunikasi dengan firebase, menurut analisa Saya interval waktu dibawah setengah detik membuat kinerja firebase menjadi berat sehingga menyebabkan modul NPM Firebase menjadi error. Berdasarkan pengujian disarankan menggunakan interval waktu pengiriman minimal dengan selang waktu setengah detik, seperti dalam tutorial ini.

Script Sketch Arduino :

// Potmeter vars
const int analogInPin = A0;
int sensorValue = 0; // value read from the potmeter
int prevValue = 0; // previous value from the potmeter
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);

}

// the loop routine runs over and over again forever:
void loop() {
// Potmeter
sensorValue = analogRead(analogInPin);
// read the analog in value:
if(prevValue != sensorValue){
Serial.print("B"); // begin character
Serial.print(sensorValue*5);
Serial.print(",");
Serial.print(sensorValue);
Serial.println("E"); // end character
prevValue = sensorValue;
}
delay(500); // Berikan waktu delay pengiriman minimal 1/2 detik.
}

Skrip program server.js
</pre>
<pre>var serialport = require("serialport");
var SerialPort = serialport.SerialPort;
var Firebase = require('firebase');

var dataKiri = new Firebase('https://iotmoko.firebaseio.com/kiri/');
var dataKanan = new Firebase('https://iotmoko.firebaseio.com/kanan/');


var receivedData ;
var sendData;
var serialPort = new SerialPort("/dev/ttyACM0", { // Menggunakan COM 6
baudrate: 9600,
parser: serialport.parsers.readline("\n")
});

serialPort.on("open", function () { // Komunikasi serial dibuka
console.log('open');

serialPort.on('data', function(data) { //Menerima dan Mengirim data ke Arduino


receivedData += data.toString();
//console.log(receivedData);

if (receivedData .indexOf('E') >= 0 && receivedData .indexOf('B') >= 0) {
sendData = receivedData .substring(receivedData .indexOf('B') + 1, receivedData .indexOf('E'));
receivedData="";
k=sendData.split(",");
var a=k[0];
var b=k[1];
console.log("nilai A ="+a);
console.log("nilai B ="+b);

dataKiri.set(a);
dataKanan.set(b);

}




});
});

Facebook Comments

Leave a Reply

Your email address will not be published. Required fields are marked *