Hey Im using Arduino Mega with IR tempretature sensor MLX9016, ESP8266 module with Blynk. TM1637 is used as display. But I’m looking forward to make my device can running without internet connection with trigger physical button. Does blynk library give such options if we want to make two condition which are ONLINE and OFFLINE? Does anyone use “IF” operator to make an optional for device, so the device can run with or without internet? Thanks.
#include <SimpleTimer.h>
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include "TM1637.h"
#define CLK 2//Pins for TM1637
#define DIO 3
TM1637 tm1637(CLK,DIO);
#include <Wire.h>
#include <Adafruit_MLX90614.h>
SimpleTimer timer;
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
const int relay=7;
char auth[] = "d9701cfa4c974ec89954719cedc1bcec"; //token blynk
char ssid[] = "mirwandi"; //nama hotspot
char pass[] = "geronimo"; //pass hotspot
#define EspSerial Serial3 //port serial yg dipakai modul wifi
#define ESP8266_BAUD 115200 //baudrate modul wifi
ESP8266 wifi(&EspSerial);
void setup() {
pinMode(relay,OUTPUT);//inisiasi relay 4 channel
Serial.begin(9600);
delay(10);
tm1637.init();//inisiasi 7 segment
tm1637.set(BRIGHT_TYPICAL); //inisiasi 7 segment
mlx.begin(); //inisiasi sensor mlx90168
EspSerial.begin(ESP8266_BAUD);//inisiasi modul wifi
delay(10);
Blynk.begin(auth, wifi, ssid, pass);//inisiasi koneksi ke server blynk
timer.setInterval(1000L, sendUptime); //interval pengiriman data
}
void sendUptime()
{
//float suhu=((float)mlx.readObjectTempC());
float suhu = mlx.readObjectTempC();
//int suhu=((float)mlx.readObjectTempC());//bacaan suhu sensor MLX90168
Blynk.virtualWrite(7,suhu); //virtual pin suhu
}
void loop() {
int ambient = ((float)mlx.readAmbientTempC());//pembacaan suhu lingkugan
int object = ((float)mlx.readObjectTempC());//pembacaan suhu objek
int digitoneA=ambient/10; //digit pertama dibagi 10
int digittwoA=ambient%10; //digit kedua sisa hasil pembagian
int digitoneO=object/10; //digit pertama dibagi 10
int digittwoO=object%10; //digit kedua sisa hasil pembagian
tm1637.display(0,digitoneO); //menampilkan digit pertama
tm1637.display(1,digittwoO); // menampilkan digit kedua
tm1637.display(2,18); // menampilkan simbol derajat
tm1637.display(3,12); // menampilkan huruf "C"
delay(300);
Blynk.run(); //koneksi ke server blynk
timer.run(); //timer interval pengiriman data ke server blynk
if (object > 35){//SESUAIKAN SUHU SESUAI KEINGINAN
digitalWrite(relay, HIGH);
} else {
digitalWrite(relay, LOW);
}
}