#include <Wire.h>
#include <WiFi.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_SSD1306.h> // Memanggil Library OLED SSD1306
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 20, 4);
#define SCREEN_WIDTH 128 // Lebar Oled dalam Pixel
#define SCREEN_HEIGHT 64 // Tinggi Oled dalam Pixel
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int dataInt; //Mendeklarasi varibel dataInt
int pinBuzzer= 33;
int pb = 14;
bool typeData = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
lcd.begin(20, 4);
lcd.init();
lcd.setCursor(0,0);
lcd.setBacklight(255);
lcd.print("Absen Connecting");
//setup wifi
WiFi.mode(WIFI_STA);
pinMode(pinBuzzer, OUTPUT);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // alamat I2C 0x3C untuk 128x32
Serial.println(F("SSD1306 Gagal"));
for(;;); // mengulang terus, hingga bisa menghubungkan ke I2C Oled
}
display.display();
pinMode(pb,INPUT_PULLUP);
}
void loop() {
Serial.println("Scan Wifi..");
int Networks = WiFi.scanNetworks();
if(Networks == 0){
Serial.println("No Found Wifi");
}else{
Serial.println(Networks);
Serial.println("Networks Found!..");
for(int i= 0; i< Networks; i++){
Serial.println(WiFi.SSID(i));
Serial.println(WiFi.RSSI(i));
delay(10);
}
}
if(digitalRead(pb) == 0 ){
typeData = !typeData;
digitalWrite(pinBuzzer, HIGH);
delay(1000);
digitalWrite(pinBuzzer, LOW);
delay(200);
}
if(typeData == false ){
display.clearDisplay(); //Membersihkan tampilan
display.setTextSize(2); //Ukuran tulisan
display.setTextColor(SSD1306_WHITE); //Warna Tulisan
display.setCursor(0,0); // Koordinat awal tulisan (x,y) dimulai dari atas-kiri
display.println(F("Absen")); //Menampilkan Tulisan RobotikIndonesia
display.setCursor(0, 21); // Koordinat awal tulisan (x,y) dimulai dari atas-kiri
display.println(F("Keluar")); //Menampilkan Tulisan RobotikIndonesia
display.display(); //Mulai Menampilkan
}else{
display.clearDisplay(); //Membersihkan tampilan
display.setTextSize(2); //Ukuran tulisan
display.setTextColor(SSD1306_WHITE); //Warna Tulisan
display.setCursor(0,0); // Koordinat awal tulisan (x,y) dimulai dari atas-kiri
display.println(F("Absen")); //Menampilkan Tulisan RobotikIndonesia
display.setCursor(0, 21); // Koordinat awal tulisan (x,y) dimulai dari atas-kiri
display.println(F("Masuk")); //Menampilkan Tulisan RobotikIndonesia
display.display(); //Mulai Menampilkan
}
}
//RFID MODUL pin
//Vcc <-> 3V3 (or Vin(5V) depending on the module version)
//RST (Reset) <-> D0
//GND (Masse) <-> GND
//MISO (Master Input Slave Output) <-> 19
//MOSI (Master Output Slave Input) <-> 23
//SCK (Serial Clock) <-> 18
//SS/SDA (Slave select) <-> 5