Stap 8: OpenCV Server
//Opencv node server for sending Images var Firebase = require('firebase'); var fs = require("fs"); var firebaseRef = new Firebase('https://greenbit.firebaseio.com'); var image_original = "/home/akshay/Desktop/IoT/images/sepia.jpg"; //Attach watcher on snap value in firebase //This value is set to True everytime a snap request comes from the App or web-app firebaseRef.child('snap').on('value',function(snapShot){ var value = snapShot.val(); // If there's a snap request if(value){ fs.writeFile("/home/akshay/Desktop/IoT/write.txt", "D", function(err) { if(err) { return console.log(err); } console.log("The file was saved!"); func(); }); // Wait for two seconds because opencv will click the photo and save it in a file setTimeout(function(){ //Read the file from the saved location fs.readFile(image_original, function(err, original_data){ //Get the string var base64Image = original_data.toString('base64'); //Add a new snap in Snaps array in Firebase firebaseRef.child('snaps').push(base64Image); }); firebaseRef.child('snap').set(false); }, 2000); } }); fs.readFile(image_original, function(err, original_data){ var base64Image = original_data.toString('base64'); console.log(base64Image); }); //Execute Opencv var exec = require('child_process').execFile; fs.writeFile("/home/akshay/Desktop/IoT/write.txt", "C", function(err) { if(err) { return console.log(err); } console.log("The file was saved!"); func(); }); // start the server var func = function(){ console.log("Server starts!!"); exec('/home/akshay/Desktop/IoT/laptop', function(err, data){ console.log(err); console.log(data); }); }