Blynk + Wemos D1 mini + TMP36

@Shadeyman Lost you hereā€¦:slight_smile: Long day and so probably having a jaded brain right nowā€¦

Example: Shouldnā€™t this

char ssid[] = ā€œWIFI NAME HEREā€;

Look like this

char ssid[] = "WIFI NAME HERE";

Aah. Now I seeā€¦ yeah, good catch.

@rav527 I fixed your code formatting as shown here

and here

Blynk - FTFC

1 Like

Tried this code and it display correct temperature over serial monitor. Now i dont know how to make this code to send data over wifiā€¦i have read the manual in the help section but still at loss at the basics. please help.

int sensorPin = 0;
 
void setup()
{
 Serial.begin(9600);
}
 
void loop()
{
 
 int reading = analogRead(sensorPin); 
 // measure the 3.3v with a meter for an accurate value
 //In particular if your Arduino is USB powered
 float voltage = reading * 3.3; 
 voltage /= 1024.0; 
 
 // now print out the temperature
 float temperatureC = (voltage - 0.5) * 100;
 Serial.print(temperatureC); 
 Serial.println(" degrees C");
 
 delay(1000);
}

Backticks, not commas for the code formatting :wink:

As for your codeā€¦ Blynk canā€™t work with too much stuff in the void loop()ā€¦ You need to use timers.

Look at this example using a couple of different sensorsā€¦

This is easily done using the value display widget. Please pick out the value display widget example from the sketch builder, run it and you will understand how it works. Fairly simple. Iā€™m sure you will then be able to integrate it into your project.

Essentially, you need to write that value to a virtual pin using blynk.virtualWrite call. Violaā€¦The widget on the phone tied to the same virtual pin will display the value.

Hi Mohan,

can you please help on how to modify the code that display data over serial and send to blynk. after you show me i will be able to compare both codes and learn from that. i understand its super easy for you but i have to see an example to learn. thank you.

So perhaps look at the examples? :stuck_out_tongue_winking_eye: This is just one of many, including the link I sent you above.

thank you. i didnt know about the example sketch generator. what is virtual pin 5? on my wemos d1 mini i dont have any such pin.

All the links for the Documentation, Help Center and Sketch Builder are at the top of this pageā€¦ you may need to scroll up to see them.

here is a link for that infoā€¦

http://help.blynk.cc/getting-started-library-auth-token-code-examples/blynk-basics/what-is-virtual-pins

Virtual pins are virtual :stuck_out_tongue_winking_eye: and are meant to transfer information between the App and the sketch, not part of the physical GPIO.

Note, when programming ESP boards with Arduino IDE you do NOT normally use the silkscreened pin designations, rather you would use the Arduino pin designations.

1 Like
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "aec5825e0cee4708b9b293f0d8755fae";

char ssid[] = "YYYY";
char pass[] = "XXXXXXX";

BLYNK_READ(V5) //Blynk app has something on V5
{
  sensorData = analogRead(A0); //reading the sensor on A0
  Blynk.virtualWrite(V5, sensorData); //sending to Blynk
}

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}

ok so i tried uploading this code after reviewing some of the examples but the code wont upload. its says sensor data was not declared in this scope.

All variables need to be declared in some way, either within the function where that are used or globally where they can be used throughout the code.

Programming 101ā€¦

https://www.arduino.cc/reference/en/language/variables/variable-scope--qualifiers/scope/

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "aec5825e0cee4708b9b293f0d8755fae";

char ssid[] = "xxxx";
char pass[] = "xxxx";

int sensorPin = 0;

BLYNK_READ(V5)
{
 int reading = analogRead(sensorPin); 
 float voltage = reading * 3.3; 
 voltage /= 1024.0;
 float temperatureC = (voltage - 0.5) * 100;
 Blynk.virtualWrite(V5, temperatureC); //sending to Blynk
}

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}

So something is happening. the code uploaded. i am getting values on the app however they not accurate. i remember with serial monitor they were making sense.

Againā€¦ Proper method for formatting posted code is as followsā€¦

Blynk - FTFC

yes i fixed the formatting now. thanks

You last code looks like it is missing libraries for the sensor?

EDIT, hard to say nowā€¦ I am unfamiliar with that sensorā€¦ however Blynk cannot alter how the sensor works. Only your code and calculations for the sensor and MCU variances matter.

What is the reading frequency you are using in the display widget?

under input
V5 pin, 0 to 1023
reading rate
push

You need a timer and BLYNK_WRITE() for that setting

Or just change the Widget to a reading rate of 1 second or more to properly work with BLYNK_READ()

Is this sensor hooked up to the Analog pin (if so, use A0 - It is in a pin category of itā€™s own) or the digital pin 0 (D3)? I donā€™t think it works on the digital, so you are probably not reading the sensor at all :stuck_out_tongue:

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

char auth[] = "";

char ssid[] = "";
char pass[] = "";

BLYNK_READ(V5)
{
 int reading = analogRead(A0); 
 float voltage = reading * 3.3; 
 voltage /= 1024.0;
 float temperatureC = (voltage - 0.5) * 100;
 Blynk.virtualWrite(V5, temperatureC); //sending to Blynk
}

void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}

void loop()
{
  Blynk.run();
}

The above code worked. Thanks Gunner! You pushing me helped for sure.

for noobs out there like me the above code gets uploaded on wemos d1 mini using adruino.

on blynk app select value widget, go to its settings set v5 as input and reading rate to anything expect push

the hardware set up is as such
connect tmp36 pin 1 to 3v3 pin on wemos d1 mini board
tmp36 pin 2 to a0 pin on wemos d1 mini board
tmp36 pin 3 to gnd on wemos d1 mini

Next is to have blynk push a notification on my android phone when the temperature drops below a set point to monitor temperature on my house pipes. Is that possible?