// https://github.com/jordibinefa/IoT-02/tree/master/codes
// things.cat
//
// Code written by Jordi Binefa. 20200405
// Based on: https://playground.arduino.cc/Main/I2cScanner?action=sourceblock&num=1

#include "IoT-02_pinout.h"
#include "IoT-02_common.h"

#include "SSD1306.h" // alias for `#include "SSD1306Wire.h"`

SSD1306  display(0x3c, I2C_SDA, I2C_SCL);

void vSetupScreen() {
  display.init();
  display.flipScreenVertically();
}

void vScreenDemo() {
  display.clear();

  // create more fonts at http://oleddisplay.squix.ch/
  display.setTextAlignment(TEXT_ALIGN_LEFT);
  display.setFont(ArialMT_Plain_10);
  display.drawString(0, 0, "Comptador: " + String(millis() / 1000));
  display.drawString(0, 10, String("R:OFF Y:OFF G:OFF W:OFF    "));
  display.setFont(ArialMT_Plain_16);
  display.drawString(0, 22, "Llum: ");
  display.setFont(ArialMT_Plain_24);
  display.drawString(26, 42, String(100-(100 * analogRead(LDR)) / 4095) + " %");

  display.display();
}

void setup() {
  Wire.begin(I2C_SDA, I2C_SCL);
  vSetupIO();
  vSetupScreen();
  Serial.begin(115200);
  Serial.println(__FILE__);
}

void loop() {
  vScreenDemo();
  delay(10);
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
ledW:A
ledW:C
r28:1
r28:2
r29:1
r29:2
ledR:A
ledR:C
r30:1
r30:2
ledY:A
ledY:C
r31:1
r31:2
ledG:A
ledG:C
sw1:1
sw1:2
sw1:3
r1:1
r1:2
r2:1
r2:2
sw2:1
sw2:2
sw2:3
ldr1:VCC
ldr1:GND
ldr1:DO
ldr1:AO
oled1:DATA
oled1:CLK
oled1:DC
oled1:RST
oled1:CS
oled1:3V3
oled1:VIN
oled1:GND