I have followed the documentation by entering required info in web hook.
However, no data is sent to ThingSpeak.
Manually verified by posting the following does push the data to ThingSpeak.
https://api.thingspeak.com/update?api_key=XXXXXXXXXXXXXXXX&field1=342
I tried GET and POST, both with same negative result.
The test webhook will return with sending webhook for infinity.
In Arduino code, no changes is done to parse info from measurement or Blynk to ThingSpeak. Just rely on web hook.
Please help to provide guidance. What has gone wrong?
Thanks.
Code as follows.
#define BLYNK_TEMPLATE_ID "XXXXXXXXXXXX"
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include "DHT.h"
#include <Arduino.h>
//#include <ThingSpeak.h> //ThingSpeak
BlynkTimer timer;
char auth[] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
char ssid[] = "XXXX";
char pass[] = "XXXX";
// Software Serial on Uno, Nano...
#include <SoftwareSerial.h>
SoftwareSerial EspSerial(8, 9); // RX, TX
// Your ESP8266 baud rate:
#define ESP8266_BAUD 9600
#define LED 4
#define LIGHT A6
#define SOUND A2
#define PIEZO 5
#define DHTPIN 3
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
ESP8266 wifi(&EspSerial);
const byte fanPin = 6;
int duty = 0;
double temp, humi;
int autoValue = 0;
int lightLimit = 400;
int soundLimit = 1000;
int tempLimit = 30;
int light_adc;
int soundState;
BLYNK_WRITE(V0)
{
int pinValue = param.asInt();
digitalWrite(LED, pinValue);
}
BLYNK_WRITE(V5)
{
duty = param.asInt();
digitalWrite(fanPin, duty);
Serial.println("Blynk switch V5 is: ");
Serial.println(duty);
}
BLYNK_WRITE(V6) //Automation
{
autoValue = param.asInt();
}
BLYNK_WRITE(V7) //Light Threshold
{
lightLimit = param.asInt();
}
BLYNK_WRITE(V8) //Sound Threshold
{
soundLimit = param.asInt();
}
BLYNK_WRITE(V9) //Temperature Threshold
{
tempLimit = param.asInt();
}
void myTimerEvent()
{
light_adc = analogRead(LIGHT);
soundState = analogRead(SOUND);
temp = dht.readTemperature();
humi = dht.readHumidity();
Serial.println("Light ADC: " + String(light_adc));
Serial.println("Ambient Sound: " + String(soundState));
Blynk.virtualWrite(V1, light_adc);
Blynk.virtualWrite(V2, temp);
Blynk.virtualWrite(V3, humi);
Blynk.virtualWrite(V4, soundState);
Serial.println("Blynk switch V5 is: " + String(duty));
}
void setup()
{
pinMode(LIGHT, INPUT);
pinMode(LED, OUTPUT);
pinMode(fanPin, OUTPUT);
pinMode(SOUND, INPUT);
Serial.begin(9600);
delay(10);
EspSerial.begin(ESP8266_BAUD);
delay(10);
dht.begin();
Blynk.begin(auth, wifi, ssid, pass);
timer.setInterval(1000L, myTimerEvent);
}
void loop()
{
Blynk.run();
timer.run();
if (autoValue == 1){
if (light_adc < lightLimit){
digitalWrite(LED, 1);
}
else{
digitalWrite(LED, 0);
}
if (soundState > soundLimit){
Blynk.virtualWrite(V10, "Find some quiet time.");
}
else{
Blynk.virtualWrite(V10, "It is peaceful now.");
}
if (temp > tempLimit){
digitalWrite(fanPin, 1);
}
else{
digitalWrite(fanPin, 0);
}
}
else{
Blynk.virtualWrite(V10, "I will not suggest.");
}
}```