BLYNK
HOME       📲 GETTING STARTED       📗 DOCS       ❓HELP CENTER       👉 SKETCH BUILDER

Display data from NodeMCU ESP8266 on cloud server to Raspberry Pi local server on android app

I have an ESP8266 connected to the Blynk cloud server that runs all the time. This monitors voltage and amperage draw for a rover that docks to it. This rover is operated with a Raspberry Pi that connects to its own local server which my android app connects to. This rover is off most of the time. To monitor its battery level and charging status as well as to remotely turn it off and on, I use the ESP8266 on the dock.
My question is is it possible to send the data (like voltage) from the ESP8266 on the Blynk cloud server to my android Blynk app logged in to my local server?
Right now what I have to do is log out from my local server every time I need to see data from the ESP8266 that’s on the cloud server. It’s really annoying going back and forth especially since I always have to fill in my local server settings.
Any suggestions will be greatly appreciated.

1 Like

You can’t use the bridge widget for different accounts, especially on different servers.

But you can use the Blynk API to send anything from one project to another, across accounts and servers. See https://blynkapi.docs.apiary.io/# for details.

I got this to work, runs on the local server
you are on your own for proper coding though.

var Blynk = require('/usr/local/lib/node_modules/blynk-library');
var AUTH = 'deadbeefdeadbeefdeadbeefdeadbeef';
var blynk = new Blynk.Blynk(AUTH, options = {
  connector : new Blynk.TcpClient( options = { addr: "127.0.0.1", port: 8080 } )
});
var process = require('child_process');

var v1 = new blynk.VirtualPin(1);  // ON \ OFF push button
var v2 = new blynk.VirtualPin(2);  // ON \ OFF push button

v1.on('write', function(param) {

 var theUrl = "http:\/\/127.0.0.1:8080";   // my blynk server
 theUrl += "\/deadbeefdeadbeefdeadbeefdeadbeef\/";  // my  token
 theUrl += "update\/v2?value=";  //var to update V2
 theUrl += param;

 var curlit = "curl "  //curl might be a poor choice look at httprequest
 curlit += theUrl;   // command and url ready

 console.log(curlit);  // final version

 process.exec(curlit);

});

Thank you for the ideas all. I’ve realised that it’s too much trouble to access two different servers.
I’m just going have to add another Pi as a dedicated local server.

Since you already have a Local Server (mounted on the rover I suppose?) why not keep it running all the time on dock power (and charging) when docked and obviously on battery when roving.

PS if you have further details on the build etc, I would love to see them… That is like the type of rover I wish I had the energy to build. It even includes LEGO for the win!! :smiley:

One of these days I plan to move an RPi onto this for the brain with some autonomous operation… Gunnerator

Yeah I have considered that idea but I much rather have the rover sleep most of the time. This is because while the rover is on and charging, it will draw current from the battery instead of the wall power. This will wear out the batteries sooner.

This is very much a work in progress. It’s more of a surveillance rover but mainly I put it together to learn about all the different components available for Arduino and RPi and how to make them work together. The original rover was completely built out of legos. The camera mount is all that remains. You have help me a lot on this project actually. I thank you for that :smile:

One of the next things on the list is also to add some autonomous functions as well. I already have some ultrasonic sensors installed.

Once I get a chance, I’ll post a video with more details and all the cool functions it can perform.

Below is what my dashboard looks like. I wish there was an option to hide the blynk top bar and only have it slide down when needed.

2 Likes