Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Arduino.h>
- #include <U8x8lib.h>
- #include <SPI.h>
- #include <MFRC522.h>
- constexpr uint8_t RST_PIN = 9; // Configurable, see typical pin layout above
- constexpr uint8_t SS_PIN = 10; // Configurable, see typical pin layout above
- MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
- MFRC522::MIFARE_Key key;
- U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(A5, A4, U8X8_PIN_NONE);
- int buttonState = 0;
- int buttonPin = 7;
- bool conn = false;
- bool stopClear = false;
- void setup() {
- // put your setup code here, to run once:
- //OLED
- u8x8.begin();
- u8x8.setPowerSave(0);
- u8x8.setFlipMode(0);
- u8x8.setFont(u8x8_font_pxplusibmcgathin_f);
- delay(500);
- //Deel 2
- Serial.begin(9600);
- SPI.begin(); // Init SPI bus
- mfrc522.PCD_Init(); // Init MFRC522 card
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- void loop() {
- buttonState = digitalRead(buttonPin);
- if (buttonState == HIGH) {
- Serial.println("&ButtonHIGH");
- }
- if (conn == false) {
- u8x8.drawString(0, 4, "Geen connectie");
- }
- if (Serial.available()) {
- digitalWrite(4, HIGH);
- String reader = Serial.readString();
- if (reader.indexOf("STARTEDUP") > 0) {
- u8x8.clear();
- u8x8.drawString(0, 0, "Connectie");
- u8x8.drawString(0, 1, "gemaakt");
- conn = true;
- delay(4000);
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("PARKING") > 0) {
- u8x8.drawString(0, 0, "Auto wordt");
- u8x8.drawString(0, 1, "geparkeerd");
- delay(4000);
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("ERROR") > 0) {
- u8x8.drawString(0, 0, "Er was een");
- u8x8.drawString(0, 1, "Error opeens..");
- delay(4000);
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("UNKNOWNUSER") > 0) {
- u8x8.clear();
- u8x8.drawString(0, 0, "Kaart niet");
- u8x8.drawString(0, 1, "herkent");
- delay(4000);
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("NOMONEY") > 0) {
- u8x8.clear();
- u8x8.drawString(0, 0, "Niet genoeg geld");
- delay(4000);
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("UNPARK") > 0) {
- u8x8.clear();
- u8x8.drawString(0, 0, "Auto wordt");
- u8x8.drawString(0, 1, "gehaald");
- Serial.println("@refresh");
- delay(4000);
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("UNPARKED") > 0) {
- u8x8.clear();
- float money = reader.indexOf('|');
- u8x8.drawString(0, 0, "Auto gehaald");
- u8x8.drawString(0, 1, "balans: ");
- u8x8.setCursor(9, 1);
- u8x8.print(String(money));
- delay(2000);
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- if (reader.indexOf("SCAN") > 0) {
- u8x8.clear();
- int moneyIndex = reader.indexOf('|');
- int moneyIndex2 = reader.indexOf('|', moneyIndex + 1);
- String money = reader.substring(moneyIndex , moneyIndex2);
- u8x8.drawString(0, 0, "Kaart gescanned");
- u8x8.drawString(0, 2, "balans: ");
- u8x8.setCursor(8, 2);
- u8x8.print(String(money));
- bool parked;
- if (reader.indexOf(" USERPARKED") > 0) {
- u8x8.drawString(0, 3, "Klik op de knop ");
- u8x8.drawString(0, 4, "om uw auto ");
- u8x8.drawString(0, 5, "op te halen");
- parked = true;
- Serial.println("&parked = true");
- } else if (reader.indexOf(" USERNOTPARKED") > 0) {
- u8x8.drawString(0, 3, "Klik op de knop ");
- u8x8.drawString(0, 4, "om uw auto ");
- u8x8.drawString(0, 5, "te parkeren");
- parked = false;
- Serial.println("&parked = false");
- }
- //wachten voor pushbutton om te parkeren
- bool timeOut = false;
- int counter;
- while (timeOut == false) {
- buttonState = digitalRead(buttonPin);
- if (buttonState == HIGH) {
- timeOut = true;
- Serial.println("&Ding is ook klaar");
- delay(200);
- if (parked == false) {
- Serial.println("@parkeren ");
- } else if (parked == true) {
- Serial.println("@unparken ");
- }
- u8x8.clear();
- delay(500);
- }
- counter++;
- delay(10);
- if (counter == 700) {
- Serial.println("&Counter is ook klaar");
- timeOut = true;
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- }
- }
- if (reader.indexOf("ABO") > 0) {
- Serial.println("&User scanned");
- u8x8.drawString(0, 0, "Kaart gescanned");
- u8x8.drawString(0, 1, "Type: Abonnement. ");
- bool parked;
- if (reader.indexOf(" USERPARKED") > 0) {
- u8x8.drawString(0, 3, "Klik op de knop om");
- u8x8.drawString(0, 4, "Auto op te halen");
- parked = true;
- Serial.println("&parked = true");
- } else if (reader.indexOf(" USERNOTPARKED") > 0) {
- u8x8.drawString(0, 3, "Klik op de knop om");
- u8x8.drawString(0, 4, "Auto te parkeren");
- parked = false;
- Serial.println("&parked = false");
- }
- //wachten voor pushbutton om te parkeren
- bool timeOut = false;
- int counter;
- while (timeOut == false) {
- buttonState = digitalRead(buttonPin);
- if (buttonState == HIGH) {
- timeOut = true;
- Serial.println("&Ding is ook klaar");
- delay(200);
- if (parked == false) {
- Serial.println("@parkeren ");
- } else if (parked == true) {
- Serial.println("@unparken ");
- }
- u8x8.clear();
- delay(500);
- }
- counter++;
- delay(10);
- if (counter == 700) {
- Serial.println("&Counter is ook klaar");
- timeOut = true;
- u8x8.clear();
- u8x8.drawString(0, 0, "Klaar om een");
- u8x8.drawString(0, 1, "Kaart te scannen");
- }
- }
- }
- delay(100);
- digitalWrite(4, LOW);
- } else {
- // put your main code here, to run repeatedly:
- if ( ! mfrc522.PICC_IsNewCardPresent())
- return;
- if ( ! mfrc522.PICC_ReadCardSerial()) {
- return;
- } else {
- MFRC522::StatusCode status;
- byte buffer[16];
- byte block;
- byte size = sizeof(buffer);
- byte len;
- String content = "";
- for (byte i = 0; i < mfrc522.uid.size; i++)
- {
- content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
- content.concat(String(mfrc522.uid.uidByte[i], HEX));
- }
- content.toUpperCase();
- Serial.println("#" + content);
- delay(1000);
- }
- }
- }
- void dump_byte_array(byte *buffer, byte bufferSize) {
- for (byte i = 0; i < bufferSize; i++) {
- Serial.print(buffer[i] < 0x10 ? " 0" : " ");
- Serial.print(buffer[i], HEX);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement