I use MSP432 to send sensor values through serial to NodeMCU and then send them via wifi to Blynk.
the problem shows up when i uncomment this line:
Blynk.begin(auth, ssid, pass);
my sensor values that gets parsed by a Json object suddenly becomes 0.00;
here is the code:
#define BLYNK_TEMPLATE_ID "TMPLvNuI6u_g"
#define BLYNK_DEVICE_NAME "Quickstart Device"
#define BLYNK_AUTH_TOKEN "M_JWokpG5OMGsLitRvyH6TNzpfYGDsgc"
#define BLYNK_PRINT Serial
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <Wire.h>
#include <ArduinoJson.h>
SoftwareSerial nodemcu(D7,D8);
BlynkTimer timer; //announcing the timer
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "TheVoid";
char pass[] = "000000gggggg";
float temp, temp0, hum, pt1, pt2, pt3, pt4;
long pres;
void datareceive()
{
Serial.println("datareceive starting...");
StaticJsonBuffer<1024> JsonBuffer;
JsonObject& data = JsonBuffer.parseObject(nodemcu);
if (data == JsonObject::invalid()) {
Serial.println("Invalid Json Object");
JsonBuffer.clear();
return;
}
temp = data["temperature"];
hum = data["humidity"] ;
pres = data["pressure"] ;
pt1 = data["pt1"] ;
pt2 = data["pt2"] ;
pt3 = data["pt3"] ;
pt4 = data["pt4"] ;
Serial.println("datareceive succeed");
}
void datasend()
{
Serial.println("datasend starting...");
// You can send any value at any time.
// Please don't send more that 10 values per second.
//Blynk.virtualWrite(V0, temp);
// Blynk.virtualWrite(V1, hum);
// Blynk.virtualWrite(V2, pres);
// Blynk.virtualWrite(V3, pt1);
// Blynk.virtualWrite(V4, pt2);
// Blynk.virtualWrite(V5, pt3);
// Blynk.virtualWrite(V6, pt4);
Serial.println(temp);
Serial.println("datasend succeed");
Serial.println("---------------------");
}
void setup(){
Serial.begin(115200);
nodemcu.begin(9600);
Blynk.begin(auth, ssid, pass);
// You can also specify server:
//Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
// Setup a function to be called every second
timer.setInterval(1000L, datareceive);
timer.setInterval(1000L, datasend);
}
void loop(){
Blynk.run();
timer.run();
}
thanks for any advice
Gio