TTGO - TCALL_GSM Fail to send and Update Sensor Values

Hello, I have a project for my Thesis, i Want to upload to blynk the values from several sensors with TTGO-TCALL through GSM network.
The project connecting to internet, connecting to blynk server (:80 old one),and seems to upload data correctly but nothink appears in web dashboard even if the tag in dashboard is (online).
Attach and some images Connecting to Internet and Blynk Server

This is my code with only one sensor connecting for testing porpose, if anyone can help i apreciate.

#define BLYNK_DEVICE_NAME "4AssistanceV2"  REDACTED
#define BLYNK_AUTH_TOKEN "R2_cYvJJnWDejCG3ticRZ-nyY4kN1r-4"  REDACTED

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space

// Default heartbeat interval for GSM is 60
// If you want override this value, uncomment and set this option:
// #define BLYNK_HEARTBEAT 30

// Please select the corresponding model

#define SIM800L_IP5306_VERSION_20190610
// #define SIM800L_AXP192_VERSION_20200327
// #define SIM800C_AXP192_VERSION_20200609
// #define SIM800L_IP5306_VERSION_20200811

#include "utilities.h"
#include "secrets.h"
#include "ThingSpeak.h"
#include "Wire.h"
#include "OneWire.h"
#include "DallasTemperature.h"
#define ONE_WIRE_BUS_1 2
OneWire ourWire1(ONE_WIRE_BUS_1);
DallasTemperature sensor1(&ourWire1);

float RawLow = 0.75;
float RawHigh = 100.12;
float ReferenceLow = 0;
float ReferenceHigh = 100.06;
float RawRange = RawHigh - RawLow;
float ReferenceRange = ReferenceHigh - ReferenceLow;

float RawValue =0;
float TrueValue =0;
char TmpStr[8];

// Select your modem:

// Set serial for debug console (to the Serial Monitor, default speed 115200)
#define SerialMon Serial

// Set serial for AT commands (to the module)
// Use Hardware Serial on Mega, Leonardo, Micro
#define SerialAT Serial1

// See all AT commands, if wanted

// Define the serial console for debug prints, if needed
#define TINY_GSM_DEBUG SerialMon

// set GSM PIN, if any
#define GSM_PIN ""

// Your GPRS credentials, if any
const char apn[] = "internet";  // search for apn of your network provider on Google
const char gprsUser[] = "";
const char gprsPass[] = "";

#include <TinyGsmClient.h>
#include <BlynkSimpleTinyGSM.h>

#include <StreamDebugger.h>
StreamDebugger debugger(SerialAT, SerialMon);
TinyGsm modem(debugger);
TinyGsm modem(SerialAT);
TinyGsmClient client(modem);

float Body_Tmp_Flag1_previous_Value = 0;

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
const char auth[] = BLYNK_AUTH_TOKEN;
BlynkTimer timer;

void Vupdate()
  RawValue = sensor1.getTempCByIndex(0);
  TrueValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;
  dtostrf(TrueValue, 5, 2, TmpStr);
  Serial.print("Sens. 1 ");
  Serial.println(TrueValue, 1);
  Blynk.virtualWrite(V1, TmpStr); 

  if (TrueValue != Body_Tmp_Flag1_previous_Value)
      Body_Tmp_Flag1_previous_Value = TrueValue;
      Serial.println("Values Updated");


void setup()
  // Set console baud rate




  // Set GSM module baud rate and UART pins
  SerialAT.begin(115200, SERIAL_8N1, MODEM_RX, MODEM_TX);


  // Restart takes quite some time
  // To skip it, call init() instead of restart()
  SerialMon.println("Initializing modem...");
  // modem.init();

  String modemInfo = modem.getModemInfo();
  SerialMon.print("Modem Info: ");

  // Unlock your SIM card with a PIN

  Blynk.begin(auth, modem, apn, gprsUser, gprsPass);

   // Setup a function to be called every second
  timer.setInterval(1000L, Vupdate);


void loop()

@Lateras Please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:

Copy and paste these if you can’t find the correct symbol on your keyboard, do not use Blockquotes as you are at the moment.

Also, you appear to have deleted some important lines from the beginning of your sketch. Ple sea post your FULL sketch, and redact any sensitive credentials by replacing them with the word “REDACTED”


Sory about that, i think its ok now.

This appears to be your problem. I’d send the TrueValue variable to Blynk, not the TempStr value.

Also, you need to remove the Blynk.syncVirtual(V1); line of code. It shouldn’t be used like this and serves no purpose anyway in your sketch.


This is not the problem, i trying everything i found in the net, i change it and thats what ive got…

void Vupdate()



  RawValue = sensor1.getTempCByIndex(0);

  TrueValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;


  Serial.print("Sens. 1 ");

  Serial.println(TrueValue, 1);

  Blynk.virtualWrite(V1, TrueValue);

  if (TrueValue != Body_Tmp_Flag1_previous_Value)



      Body_Tmp_Flag1_previous_Value = TrueValue;

      Serial.println("Values Updated");



I have no idea what your screenshots are supposed to convey, but they tell me nothing about what your supposed problem is.

Screenshots of serial output should be avoided wherever possible - copy the text and paste it between triple backticks the same way as your code.

As far as your web dashboard is concerned, that means nothing without some explanation or screenshots that show which datastreams the various widgets are attached to, and details of how you’ve configured those datastreams, especially regarding data types, min/max values, default values etc.


I need to apologise for my Behavior, the moment I went to record the variable data to send it to you, I realized that at the minimum value I had given 32 degrees Celsius thinking that the body temperature could not drop any lower. Big mistake. The problem has been corrected and thank you for making me to see my mistake.