So, my project is monitoring garden system, im using notify in blynk and led as the output following the sensor value. I want to make, if blynk notify and led is ON, i want the LCD display the notify too, but im confused with the code. The LCD will display notify following the blynk notify and LED, if its not, the LCD will display the sensor value
Im using :
• Nodemcu ESP8266, DHT 22 Sensor, Soil Moisture sensor (im using the A0,VCC, and GND), 2 LED, 1 LCD with I2C
• Smartphone Android
• Blynk server or local server
• Blynk Library version
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "9wiBL8RDQjWOnIHOaCIn4Szb0Ekw_n2Z"; //Enter the Auth code which was send by Blink
// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "GARPU_SIOMAY"; //Enter your WIFI Name
char pass[] = "katasandi"; //Enter your WIFI Password
#define DHTPIN 2 // Digital pin 4
const int sensorpin = A0; //Analog Pin
int greenLed = 14; // Digital Pin 5
int yellowLed = 12; // Digital Pin 6
int sensorvalue=0;
int outputvalue=0;
LiquidCrystal_I2C lcd(0x3F, 16, 2);
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11 // DHT 11
#define DHTTYPE DHT22 // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21 // DHT 21, AM2301
DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;
const int sensorPin = A0;
// This function sends Arduino's up time every second to Virtual Pin.
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
LiquidCrystal_I2C lcd(0x3F, 16, 2);
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V5, h); //V5 is for Humidity
Blynk.virtualWrite(V6, t); //V6 is for Temperature
lcd.setCursor(0, 0);
lcd.print("Humid=");
lcd.setCursor(10, 0);
lcd.print(h);
// Pindahkan kursor ke baris berikutnya dan cetak lagi
lcd.setCursor(0, 1);
lcd.print("Temp=");
lcd.setCursor(10, 1);
lcd.print(t);
}
void sendSensor2()
{
int greenLed = 14;
int yellowLed = 12;
int sensorvalue=analogRead(sensorpin);
outputvalue=map(sensorvalue,0,1023,0,100);
digitalWrite(greenLed, HIGH);
digitalWrite(yellowLed, LOW);
if(outputvalue>74)
{
Serial.println("Please give me water");
Serial.print(outputvalue);
digitalWrite(yellowLed, HIGH);
digitalWrite(greenLed, LOW);
Blynk.notify("Please give me water");
delay(60000); //delay notifikasi
}
else if(outputvalue<45)
{
Serial.println("Soil is wet enough to water");
Serial.print(outputvalue);
digitalWrite(yellowLed, LOW);
Blynk.notify("Soil is wet enough to water");
delay(60000);// delay notifikasi
}
Blynk.virtualWrite(V1, outputvalue);
}
void setup()
{
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
Serial.begin(9600); // See the connection status in Serial Monitor
Blynk.begin(auth, ssid, pass);
dht.begin();
lcd.begin(16,2);
// Setup a function to be called every second
timer.setInterval(2000L, sendSensor);
timer.setInterval(1000L, sendSensor2);
}
void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}
I’ve tried the code, but i have an error
invalid conversion from ‘int’ to ‘t_backlighPol’ [-fpermissive]
Please help