//----------------------- DISPLAY>INICIO
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display = Adafruit_SSD1306(128, 64, &Wire);
// 'boileroff', 10x10px
const unsigned char boileroff [] PROGMEM = {
0x3c, 0x00, 0xff, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0x00, 0x81, 0xc0,
0x80, 0x40, 0xff, 0xc0
};
// 'boileron', 10x10px
const unsigned char boileron [] PROGMEM = {
0x3c, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0xc0,
0xff, 0xc0, 0xff, 0xc0
};
// 'focooff', 9x12px
const unsigned char focooff [] PROGMEM = {
0x3e, 0x00, 0x43, 0x00, 0x81, 0x80, 0x81, 0x80, 0x81, 0x80, 0x43, 0x00, 0x26, 0x00, 0x3e, 0x00,
0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x08, 0x00
};
// 'estufaoff', 11x10px
const unsigned char estufaoff [] PROGMEM = {
0x7f, 0xc0, 0x80, 0x20, 0x80, 0x20, 0x80, 0x20, 0xff, 0xe0, 0x9f, 0x20, 0x9f, 0x20, 0x80, 0x20,
0xff, 0xe0, 0x80, 0x20
};
// 'estufaon', 11x10px
const unsigned char estufaon [] PROGMEM = {
0x7f, 0xc0, 0x80, 0x20, 0xae, 0xa0, 0x80, 0x20, 0xff, 0xe0, 0x9f, 0x20, 0x9f, 0x20, 0x80, 0x20,
0xff, 0xe0, 0x80, 0x20
};
// 'focoon', 9x12px
const unsigned char focoon [] PROGMEM = {
0x3e, 0x00, 0x5f, 0x00, 0xbf, 0x80, 0xbf, 0x80, 0xbf, 0x80, 0x5f, 0x00, 0x3e, 0x00, 0x3e, 0x00,
0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x08, 0x00
};
// 'portonoff', 13x11px
const unsigned char portonoff [] PROGMEM = {
0xff, 0xf8, 0x7f, 0xf0, 0x40, 0x10, 0x40, 0x10, 0x7f, 0xf0, 0x40, 0x10, 0x40, 0x10, 0x7f, 0xf0,
0x40, 0x10, 0x47, 0x10, 0x7f, 0xf0
};
// 'portonon', 13x11px
const unsigned char portonon [] PROGMEM = {
0xff, 0xf8, 0x7f, 0xf0, 0x40, 0x10, 0x40, 0x10, 0x7f, 0xf0, 0x40, 0x10, 0x47, 0x10, 0x7f, 0xf0,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
// 'puteroff', 15x10px
const unsigned char putteroff [] PROGMEM = {
0x1f, 0xf0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1f, 0xf0, 0x2a, 0xa8, 0x55, 0x54,
0x80, 0x02, 0xff, 0xfe
};
// 'putteron', 15x10px
const unsigned char putteron [] PROGMEM = {
0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x1f, 0xf0, 0x2a, 0xa8, 0x55, 0x54,
0x80, 0x02, 0xff, 0xfe
};
// 'soff', 9x11px
const unsigned char soff [] PROGMEM = {
0x04, 0x00, 0x0c, 0x00, 0x1c, 0x00, 0x3c, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0xfc, 0x00, 0x3c, 0x00,
0x1c, 0x00, 0x0c, 0x00, 0x04, 0x00
};
// 'son', 9x11px
const unsigned char son [] PROGMEM = {
0x04, 0x00, 0x0c, 0x00, 0x1d, 0x00, 0x3c, 0x80, 0xfc, 0x80, 0xfc, 0x80, 0xfc, 0x80, 0x3c, 0x80,
0x1d, 0x00, 0x0c, 0x00, 0x04, 0x00
};
// 'tvoff', 11x10px
const unsigned char tvoff [] PROGMEM = {
0x11, 0x00, 0x0a, 0x00, 0xff, 0xe0, 0x80, 0x20, 0xbe, 0xa0, 0xbe, 0x20, 0xbe, 0xa0, 0x80, 0x20,
0xff, 0xe0, 0x20, 0x80
};
// 'tvon', 11x10px
const unsigned char tvon [] PROGMEM = {
0x11, 0x00, 0x0a, 0x00, 0xff, 0xe0, 0xfe, 0x20, 0xfe, 0xa0, 0xfe, 0x20, 0xfe, 0xa0, 0xfe, 0x20,
0xff, 0xe0, 0x20, 0x80
};
// 'shower on', 14x9px
const unsigned char showeron [] PROGMEM = {
0x80, 0x00, 0xff, 0xc0, 0xc0, 0x40, 0x87, 0xfc, 0x07, 0xfc, 0x00, 0x00, 0x04, 0x94, 0x00, 0x00,
0x02, 0x48
};
// 'showeroff', 14x9px
const unsigned char showeroff [] PROGMEM = {
0x80, 0x00, 0xff, 0xc0, 0xc0, 0x40, 0x87, 0xfc, 0x07, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00
};
// 'agua', 10x15px
const unsigned char agua [] PROGMEM = {
0x02, 0x00, 0x0e, 0x00, 0x1a, 0x00, 0x32, 0x00, 0x31, 0x00, 0x61, 0x80, 0xc4, 0x80, 0xdc, 0xc0,
0xdc, 0x40, 0xdc, 0x40, 0xcc, 0x40, 0xec, 0x80, 0x7f, 0x80, 0x3f, 0x00, 0x1e, 0x00
};
// 'luz', 13x15px
const unsigned char luz [] PROGMEM = {
0xff, 0xe0, 0x40, 0x20, 0x20, 0x20, 0x20, 0x40, 0x20, 0x40, 0x40, 0x80, 0x41, 0xf8, 0x80, 0x08,
0xc0, 0x10, 0x38, 0x20, 0x06, 0x40, 0x03, 0x80, 0x06, 0x00, 0x04, 0x00, 0x08, 0x00
};
// 'gas', 16x15px
const unsigned char gas [] PROGMEM = {
0x0f, 0x80, 0x08, 0x9c, 0x10, 0xfc, 0x10, 0xc6, 0x70, 0x02, 0xc0, 0x02, 0x80, 0x0e, 0x80, 0x06,
0x80, 0x03, 0x40, 0x01, 0x78, 0x43, 0x08, 0x66, 0x04, 0xfc, 0x07, 0x80, 0x00, 0x00
};
//----------------------- DISPLAY>FIN
bool foco1, foco2, foco3, foco4, foco5, foco6, foco7, tv, pc, bocinas, porton, estufa, boiler, regadera;
void setup()
{
//----------------------- DISPLAY>INICIO
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
// Display the splash screen (we're legally required to do so)
display.display();
display.clearDisplay();
display.display();
//----------------------- DISPLAY>FIN
}
void loop()
{
//----------------------- DISPLAY>INICIO
tv = true;
drawScreen(foco1, foco2, foco3, foco4, foco5, foco6, foco7, tv, pc, bocinas, porton, estufa, boiler, regadera);
//----------------------- DISPLAY>FIN
}
//----------------------- DISPLAY>INICIO
void drawScreen(bool _foco1,bool _foco2,bool _foco3,bool _foco4,bool _foco5,bool _foco6,bool _foco7,bool _tv,bool _pc,bool _bocinas,bool _porton,bool _estufa,bool _boiler,bool _regadera){
display.clearDisplay();
/*display.drawBitmap(71,10, focooff, 9,12, WHITE);
display.drawBitmap(83,10, focooff, 9,12, WHITE); // Position, bitmap, size, color
display.drawBitmap(96,10, focooff, 9,12, WHITE);
display.drawBitmap(108,10, focooff, 9,12, WHITE);
display.drawBitmap(71,25, focooff, 9,12, WHITE);
display.drawBitmap(83,25, focooff, 9,12, WHITE);
display.drawBitmap(96,25, focooff, 9,12, WHITE);
display.drawBitmap(68,40, putteroff, 15,10, WHITE);
display.drawBitmap(86,39, tvoff, 11,10, WHITE);
display.drawBitmap(68,40, putteroff, 15,10, WHITE);
display.drawBitmap(99,39, soff, 9,11, WHITE);
display.drawBitmap(111,39, portonoff, 13,11, WHITE);
display.drawBitmap(68,54, showeroff, 14,9, WHITE);
display.drawBitmap(86,52, estufaoff, 11,10, WHITE);
display.drawBitmap(101,52, boileroff, 10,10, WHITE);
display.drawBitmap(5,11, agua, 10,15, WHITE);
display.drawBitmap(4,29, gas, 16,15, WHITE);
display.drawBitmap(5,47, luz, 13,15, WHITE);
display.drawBitmap(71,10, focoon, 9,12, WHITE);
display.drawBitmap(83,10, focoon, 9,12, WHITE); // Position, bitmap, size, color
display.drawBitmap(96,10, focoon, 9,12, WHITE);
display.drawBitmap(108,10, focoon, 9,12, WHITE);
display.drawBitmap(71,25, focoon, 9,12, WHITE);
display.drawBitmap(83,25, focoon, 9,12, WHITE);
display.drawBitmap(96,25, focoon, 9,12, WHITE);
display.drawBitmap(68,40, putteron, 15,10, WHITE);
display.drawBitmap(86,39, tvon, 11,10, WHITE);
display.drawBitmap(68,40, portonon, 15,10, WHITE);
display.drawBitmap(99,39, son, 9,11, WHITE);
display.drawBitmap(111,39, portonon, 13,11, WHITE);
display.drawBitmap(68,54, showeron, 14,9, WHITE);
display.drawBitmap(86,52, estufaon, 11,10, WHITE);
display.drawBitmap(101,52, boileron, 10,10, WHITE);
*/
display.drawBitmap(5,11, agua, 10,15, WHITE);
display.drawBitmap(4,29, gas, 16,15, WHITE);
display.drawBitmap(5,47, luz, 13,15, WHITE);
if(_foco1){
display.drawBitmap(71,10, focoon, 9,12, WHITE);
} else {
display.drawBitmap(71,10, focooff, 9,12, WHITE);
}
if(_foco2){
display.drawBitmap(83,10, focoon, 9,12, WHITE);
} else {
display.drawBitmap(83,10, focooff, 9,12, WHITE);
}
if(_foco3){
display.drawBitmap(96,10, focoon, 9,12, WHITE);
} else {
display.drawBitmap(96,10, focooff, 9,12, WHITE);
}
if(_foco4){
display.drawBitmap(108,10, focoon, 9,12, WHITE);
} else {
display.drawBitmap(108,10, focooff, 9,12, WHITE);
}
if(_foco5){
display.drawBitmap(71,25, focoon, 9,12, WHITE);
} else {
display.drawBitmap(71,25, focooff, 9,12, WHITE);
}
if(_foco6){
display.drawBitmap(83,25, focoon, 9,12, WHITE);
} else {
display.drawBitmap(83,25, focooff, 9,12, WHITE);
}
if(_foco7){
display.drawBitmap(96,25, focoon, 9,12, WHITE);
} else {
display.drawBitmap(96,25, focooff, 9,12, WHITE);
}
if(_pc){
display.drawBitmap(68,40, putteron, 15,10, WHITE);
} else {
display.drawBitmap(68,40, putteroff, 15,10, WHITE);
}
if(_tv){
display.drawBitmap(86,39, tvon, 11,10, WHITE);
} else {
display.drawBitmap(86,39, tvoff, 11,10, WHITE);
}
if(_bocinas){
display.drawBitmap(99,39, son, 9,11, WHITE);
} else {
display.drawBitmap(99,39, soff, 9,11, WHITE);
}
if(_porton){
display.drawBitmap(68,40, portonon, 15,10, WHITE);
} else {
display.drawBitmap(111,39, portonoff, 13,11, WHITE);
}
if(_estufa){
display.drawBitmap(86,52, estufaon, 11,10, WHITE);
} else {
display.drawBitmap(86,52, estufaoff, 11,10, WHITE);
}
if(_boiler){
display.drawBitmap(101,52, boileron, 10,10, WHITE);
} else {
display.drawBitmap(101,52, boileroff, 10,10, WHITE);
}
if(_regadera){
display.drawBitmap(68,54, showeron, 14,9, WHITE);
} else {
display.drawBitmap(68,54, showeroff, 14,9, WHITE);
}
display.display();
}
//----------------------- DISPLAY>FIN