I’ve implemented this tutorial Cloud Data Logger
In the tutorial, they are using a delay function. This messes with Blynk.
The internet said to take a look at millis. I did. I implemented.
The problem is with the old way of doing this (Like in the tutorial) with the delays, I was getting sensible values for temperature and humidity. Now(with millis) I’m getting zeros with them
What is wrong with my code?
// #include "Ubidots/Ubidots.h"
// #define TOKEN "iNBZLODkcspwUVaEVExXolpBdAQtvQ"
// Ubidots ubidots(TOKEN);
#include "elapsedMillis/elapsedMillis.h"
#include "blynk/blynk.h"
char auth[] = "e10136e73eaf44b68c029c71439d00e8";
#include "Adafruit_DHT/Adafruit_DHT.h"
#define DHTTYPE DHT11
#define DHTPIN 5
const int lightPin = A0;
int temperature,
humidity,
light;
DHT dht(DHTPIN, DHTTYPE);
bool success; // To check if Particle.publish is a success
unsigned long previousMillis = 0;
const long interval = 5000;
void setup(void)
{
Serial.begin(9600);
dht.begin();
Blynk.begin(auth);
}
void loop(void) {
Blynk.run();
unsigned long currentMillis = millis();
// Particle.publish(const char *eventName, const char *data, int ttl, PRIVATE);
if(currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
float lightMeasurement = analogRead(lightPin);
light = (int)(lightMeasurement / 4096 * 100);
Particle.publish("Light", String(light) + "%", 60, PUBLIC);
if(!success) { Serial.println("Could not publish Light measurement"); }
temperature = dht.getTempCelcius();
success = Particle.publish("Temperature", String(temperature) + " *C", 60, PUBLIC);
if(!success) { Serial.println("Could not publish Temperature measurement"); }
humidity = dht.getHumidity();
Particle.publish("Humidity", String(humidity) + "%", 60, PUBLIC);
if(!success) { Serial.println("Could not publish Humidity measurement"); }
}
}