#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 <Wire.h>
#include “Adafruit_MCP23017.h” //https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library
Adafruit_MCP23017 mcp;
SimpleTimer timer;
char auth[] = “YOUR_BLYNK_AUTH_CODE”;
char ssid[] = “yyyyyyyyyyy”;
char pass[] = “zzzzzzzzzz”;
/********************************************************************************************************/
BLYNK_WRITE(V0) // V0 is the number of Virtual Pin For Read From BLYNK APP
{
int pinValue = param.asInt();
mcp.digitalWrite(0, pinValue);
Serial.print("pinValue0 = ");
Serial.println(pinValue);
}
BLYNK_WRITE(V1) // V1 is the number of Virtual Pin For Read From BLYNK APP
{
int pinValue1 = param.asInt();
mcp.digitalWrite(1, pinValue1);
Serial.print("pinValue1 = ");
Serial.println(pinValue1);
}
BLYNK_WRITE(V2) // V2 is the number of Virtual Pin For Read From BLYNK APP
{
int pinValue2 = param.asInt();
mcp.digitalWrite(2, pinValue2);
Serial.print("pinValue2 = ");
Serial.println(pinValue2);
}
BLYNK_WRITE(V3) // V3 is the number of Virtual Pin For Read From BLYNK APP
{
int pinValue3 = param.asInt();
mcp.digitalWrite(3, pinValue3);
Serial.print("pinValue3 = ");
Serial.println(pinValue3);
}
void senddata()
{
int a = mcp.digitalRead(1);
int b = mcp.digitalRead(4);
Blynk.virtualWrite(V4, a); // Send Value to BLYNK APP V4
Blynk.virtualWrite(V5, b); // Send Value to BLYNK APP V5
}
/******************************************************************************************************************/
void setup()
{
Serial.begin(9600); // See the connection status in Serial Monitor
Blynk.begin(auth, ssid, pass);
mcp.begin();
mcp.pinMode(0, OUTPUT);
mcp.pinMode(1, OUTPUT);
mcp.pinMode(2, OUTPUT);
mcp.pinMode(3, OUTPUT);
// mcp.pinMode(1, INPUT); no need to set as input
timer.setInterval(1000L, senddata);
}
void loop()
{
Blynk.run(); // Initiates Blynk
timer.run(); // Initiates SimpleTimer
}