This is the Ellis “All your Remotes to Smartphone” sketch you referenced; this is the one as well as my code that gets the IRsend() error when compiling.
Compile it on your IDE and see if you get the same error —
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
// IR remote
#include <IRremoteESP8266.h>
char auth[] = "yourauthcode";
char ssid[] = "your wifi network";
char pass[] = "your wifi password";
char server[] = "blynk-cloud.com";
SimpleTimer testingTimer;
IRsend irsend(0); ///an IR led is connected to GPIO 0 --> D4
// ======= SKETCH IR
int pinValueV1;
int pinValueV4;
int pinValueV5;
unsigned int ScreenUp[63] = {1400, 400, 1400, 400, 1400, 400, 1400, 400, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 1350, 400, 500, 1200, 500, 1200, 500, 1200, 1400, 400, 1400, 400, 1400, 400, 500, 1200, 1350, 400, 1350, 400, 1350, 400, 500, 1200, 1400, 400, 1400, 400, 1400, 400, 500, 1200, 1400, 400, 1400, 400, 1350, 400, 1350, 400, 500};
unsigned int ScreenDown[63] = {1400, 400, 1350, 400, 1400, 400, 1400, 400, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 1350, 400, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 500, 1200, 1400, 400, 1400, 400, 1400, 400, 1400, 400, 550, 1200, 1350, 400, 1350, 400, 1400, 400, 550, 1200, 500, 1200, 500, 1200, 500, 1200, 1400, 400, 1400, 400, 1400, 400, 1400, 400, 1400};
// ====== DEVICE SELECTOR
void mySetPropertyFunction1notneeded(){
Blynk.setProperty(V2, "color", "#23C48E"); //GREEN
Blynk.setProperty(V4, "color", "#23C48E"); //GREEN
Blynk.setProperty(V5, "color", "#23C48E"); //GREEN
Blynk.setProperty(V6, "color", "#23C48E"); //GREEN
}
void mySetPropertyFunction1(){
Blynk.setProperty(V7, "color", "#23C48E"); //GREEN
Blynk.setProperty(V13, "color", "#23C48E"); //GREEN
Blynk.setProperty(V14, "color", "#23C48E"); //GREEN
Blynk.setProperty(V15, "color", "#23C48E"); //GREEN
}
void mySetPropertyFunction2notneeded(){
Blynk.setProperty(V2, "color", "#D3435C"); //RED POWER
Blynk.setProperty(V3, "color", "#D3435C"); //RED SOURCE
Blynk.setProperty(V3, "label", "HOME");
Blynk.setProperty(V4, "color", "#D3435C"); //RED SOURCE
}
void mySetPropertyFunction2(){
Blynk.setProperty(V4, "label", "LEFT/RIGHT");
Blynk.setProperty(V5, "color", "#D3435C"); //RED SOURCE
Blynk.setProperty(V13, "color", "#D3435C"); //RED SOURCE
Blynk.setProperty(V15, "color", "#D3435C"); //RED SOURCE
}
BLYNK_WRITE(V1) {
switch (param.asInt())
{
case 1: // Item 1 - TV LIVING
pinValueV1 = 1;
Blynk.setProperty(V2, "color", "#23C48E"); //GREEN
Blynk.setProperty(V4, "color", "#23C48E"); //GREEN
Blynk.setProperty(V5, "color", "#23C48E"); //GREEN
Blynk.setProperty(V6, "color", "#23C48E"); //GREEN
testingTimer.setTimeout(300,mySetPropertyFunction1); // perform the second function 400ms later
break;
case 2: // Item 2 - DVD
pinValueV1 = 2;
Blynk.setProperty(V2, "color", "#D3435C"); //RED POWER
Blynk.setProperty(V3, "color", "#D3435C"); //RED SOURCE
Blynk.setProperty(V3, "label", "HOME");
Blynk.setProperty(V4, "color", "#D3435C"); //RED SOURCE
testingTimer.setTimeout(300,mySetPropertyFunction2); // perform the second function 400ms later
break;
case 3: // Item 3 - AUX
pinValueV1 = 3;
Blynk.setProperty(V2, "color", "#04C0F8"); //BLU
Blynk.setProperty(V4, "color", "#04C0F8"); //BLU
delay(1000);
break;
case 4:
pinValueV1 = 4;
break;
case 5: // Item 5 - Projector Screen
pinValueV1 = 5;
Blynk.setProperty(V15, "color", "#ED9D00"); //YELLOW
break;
}
}
// ========== END DEVICE SELECTOR
BLYNK_WRITE(V2) // ON/OFF
{
if ( param.asInt() && pinValueV1 == 1 ) // ON/OFF TV
{ irsend.sendNEC(0xFB38C7, 32);
} else if ( param.asInt() && pinValueV1 == 2 ) // ON/OFF DVD
{ irsend.sendSAMSUNG(0xB4B40CF3, 32);
} else if ( param.asInt() && pinValueV1 == 3 ) // ON/OFF AUX
{ irsend.sendNEC(0x7E8154AB, 32);
}
}
BLYNK_WRITE(V3) // SOURCE
{
if ( param.asInt() && pinValueV1 == 1 )
{ irsend.sendNEC(0xFBE817, 32); //
} else if ( param.asInt() && pinValueV1 == 2 ) // SAMSUNG
{ irsend.sendSAMSUNG(0xB4B4E619, 32);
}
}
BLYNK_WRITE(V4) // AUDIO + / -
{
pinValueV4 = V4 ;
if ( param.asInt() == 4 && pinValueV1 == 1 )
{ irsend.sendNEC(0xFBD22D, 32); // + AUDIO
} else if ( param.asInt() == 3 && pinValueV1 == 1 )
{ irsend.sendNEC(0xFBF20D, 32); // - AUDIO
} else if ( param.asInt() == 3 && pinValueV1 == 3 ) // AUDIO AUX -
{ irsend.sendNEC(0x5EA1D827, 32); // - AUDIO
} else if ( param.asInt() == 3 && pinValueV1 == 3 ) // AUDIO AUX +
{ irsend.sendNEC(0x5EA158A7, 32); // - AUDIO
} else if ( param.asInt() == 3 && pinValueV1 == 2 ) // DVD Left
{ irsend.sendSAMSUNG(0xB4B49A65, 32); // - AUDIO
} else if ( param.asInt() == 3 && pinValueV1 == 2 ) // DVD Right
{ irsend.sendSAMSUNG(0xB4B45AA5, 32); // - AUDIO
}
}
BLYNK_WRITE(V5) // CHANNELS + / -
{
pinValueV5 = V5 ;
if ( param.asInt() == 4 && pinValueV1 == 1 )
{ irsend.sendNEC(0xFB906F, 32); // + CH
} else if ( param.asInt() == 3 && pinValueV1 == 1 )
{ irsend.sendNEC(0xFBA05F, 32); // - CH
} else if ( param.asInt() == 3 && pinValueV1 == 2 ) // DVD CH -
{ irsend.sendSAMSUNG(0xB4B41EE1, 32); // - CH
} else if ( param.asInt() == 4 && pinValueV1 == 2 ) // DVD CH +
{ irsend.sendSAMSUNG(0xB4B4EE11, 32); // - CH
}
}
BLYNK_WRITE(V6) // TXT
{
if ( param.asInt() && pinValueV1 == 1 )
{ irsend.sendNEC(0xFB807F, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V7) // INFO
{
if ( param.asInt() && pinValueV1 == 2 )
{ irsend.sendNEC(0xFB1AE5, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V8) // Rewind
{
if ( param.asInt() && pinValueV1 == 2 )
{ irsend.sendSAMSUNG(0xB4B44CB3, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V9) // Play
{
if ( param.asInt() && pinValueV1 == 2 )
{ irsend.sendSAMSUNG(0xB4B48C73, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V10) // Stop
{
if ( param.asInt() && pinValueV1 == 2 )
{ irsend.sendSAMSUNG(0xB4B49C63, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V11) // Forward
{
if ( param.asInt() && pinValueV1 == 2 )
{ irsend.sendSAMSUNG(0xB4B44CB3, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V12) // Eject
{
if ( param.asInt() && pinValueV1 == 2 )
{ irsend.sendSAMSUNG(0xB4B46C93, 32); //
} else {
//LOW - OFF
}
}
BLYNK_WRITE(V13) // OK
{
if ( param.asInt() && pinValueV1 == 1 )
{ irsend.sendNEC(0xFB609F, 32); //
} else if ( param.asInt() && pinValueV1 == 2 ) // SAMSUNG
{ irsend.sendSAMSUNG(0xB4B41AE5, 32);
}
}
BLYNK_WRITE(V14) // KO
{
if ( param.asInt() && pinValueV1 == 1 )
{ irsend.sendNEC(0xFB50AF, 32); //
} else {
// LOW - OFF
}
}
BLYNK_WRITE(V15) // UP/DOWN-
{
pinValueV5 = V15 ;
if ( param.asInt() == 4 && pinValueV1 == 1 ) //+ CH
{ irsend.sendNEC(0xFB58A7, 32); //
} else if ( param.asInt() == 3 && pinValueV1 == 1 ) // - CH
{ irsend.sendNEC(0xFB12ED, 32); //
} else if ( param.asInt() == 3 && pinValueV1 == 2 ) // DVD UP
{ irsend.sendSAMSUNG(0xB4B4E21D, 32); //
} else if ( param.asInt() == 4 && pinValueV1 == 2 ) // DVD DOWN
{ irsend.sendSAMSUNG(0xB4B412ED, 32); //
} else if ( param.asInt() == 3 && pinValueV1 == 5 ) // SCREEN UP
{ irsend.sendRaw(ScreenUp, 63, 32);
} else if ( param.asInt() == 4 && pinValueV1 == 5 ) // SCREEN DOWN
{ irsend.sendRaw(ScreenDown, 63, 32);
}
}
// ========LOOP
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.println(F("Started"));
irsend.begin();
Blynk.begin(auth, ssid, pass, server);
Blynk.syncAll();
}
void loop()
{
Blynk.run();
testingTimer.run();
}
Yeah, going back to the old IDE is not an option. And I’m not using any RobotIRRemote files mentioned either. I tried compiling for the Wemos D1 R1 and the generic ESP8266 module; same result. I’m using latest IDE 1.8.10.