#include <FastLED.h>
#define DATA_PIN 2
#define NUM_LEDS 4
CRGB leds[NUM_LEDS];
#include <U8g2lib.h>
#include <Wire.h>
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);
void update_oled(String lijn1, String ingetyptecode = "", String trigger = ""){
u8g2.clearBuffer();
u8g2.setCursor(0, 15); u8g2.print( lijn1);
u8g2.setCursor(0, 30); u8g2.print( ingetyptecode);
u8g2.setCursor(0, 45); u8g2.print( trigger);
u8g2.sendBuffer();
}
// gebruik pins 4,16-33 16=RX2
int rij[] = {19, 18, 33 , 23};
int kol[] = {16, 4, 32 , 15};
int pin_status_led = 17;
int pin_buzzer = 14;
int pin_panic = 35; //exernal pullup needed
int pin_door = 25;
int pin_window = 26;
int pin_PIR = 27;
int pin_relais = 12;
unsigned long timer_in = 0, timer_out = 0, timer_sir = 0;
String toetsen[4][4] = {{"1", "2", "3", "A"}, {"4", "5", "6", "B"}, {"7", "8", "9", "C"}, {"*", "0", "#", "D"}};
// of char toetsen[4][4] = {{'1','2'..........................
String geheimecode = "1111";
int alarm_status = 0;
String alarm_status_oled[] = {"SYSTEM OFF", "SYSTEM ARMING", "SYSTEM ARMED", "ALARM TRIGGERED", "ALARM"};
String ingetyptecode = "";
int my_sensor_pins[] = {35,25,26,27};
bool last_sensor_state[] = {1,1,1,1}; // opslagen van laatste stautstatus van de sensor, staat initieel op 1 zodat pixels al op groen staan de eerste keer
String my_sensor_names[] = {"PANIC","DOOR","WINDOW","PIR"};
bool force_oled_update = true;
String sensor_triggered = "";
void setup() {
// put your setup code here, to run once:
fct_init();
Serial.print("sensor panic");
Serial.println(digitalRead(2));
}
void loop() {
// put your main code here, to run repeatedly:
handle_oled();
scan_keyboard();
scan_alarm_inputs();
handle_status_led();
handle_buzzer();
handle_relais();
handle_alarm_states();
handle_timers();
delay(10);
}