Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- /*
- LCD in 4-Bit-Modus:
- LCD RS pin an digital pin 8
- LCD RW pin an digital pin 13
- LCD Enable pin an digital pin 9
- LCD D4 pin an digital pin 4
- LCD D5 pin an digital pin 5
- LCD D6 pin an digital pin 6
- LCD D7 pin an digital pin 7
- */
- //LCD Lib
- int p1Red = 22;
- int p2Red = 24;
- int p3Red = 26;
- int p1Green = 23;
- int p2Green = 25;
- int p3Green = 27;
- int p1Pin = 14;
- int p2Pin = 15;
- int p3Pin = 16;
- int p1Status = 0;
- int p2Status = 0;
- int p3Status = 0;
- int emptySpaces = 3;
- LiquidCrystal lcd(8, 13, 9, 4, 5, 6, 7);
- void setup() {
- Serial.begin(9600);
- Serial1.begin(115200);
- pinMode(p1Pin, INPUT);
- pinMode(p2Pin, INPUT);
- pinMode(p3Pin, INPUT);
- pinMode(p1Red, OUTPUT);
- pinMode(p2Red, OUTPUT);
- pinMode(p3Red, OUTPUT);
- pinMode(p1Green, OUTPUT);
- pinMode(p2Green, OUTPUT);
- pinMode(p3Green, OUTPUT);
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 1);
- digitalWrite(p1Red, 0);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 1);
- digitalWrite(p2Red, 0);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 1);
- digitalWrite(p3Red, 0);
- // Display initialisieren
- lcd.clear();
- lcd.begin(16, 2); // 16x2 Zeichen
- lcd.setCursor(0, 0);
- lcd.print("Parking Tracker");
- lcd.setCursor(0, 1);
- lcd.print("Initializing...");
- delay(1000);
- lcd.clear();
- //delay(50000);
- }
- void loop() {
- p1Status = digitalRead(p1Pin);
- p2Status = digitalRead(p2Pin);
- p3Status = digitalRead(p3Pin);
- /*Serial.print(p1Status);
- Serial.print(p2Status);
- Serial.println(p3Status);*/
- /////////////////////////////////////////////////////////////// 2 SPACES LEFT OPEN
- if (p1Status == 1 && p2Status == 0 && p3Status == 0) {
- emptySpaces = 2;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 0);
- digitalWrite(p1Red, 1);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 1);
- digitalWrite(p2Red, 0);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 1);
- digitalWrite(p3Red, 0);
- //Show 2 on screen
- sos2();
- //Send 2 to Nodemcu
- Serial1.write(2);
- }
- else if (p1Status == 0 && p2Status == 1 && p3Status == 0) {
- emptySpaces = 2;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 1);
- digitalWrite(p1Red, 0);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 0);
- digitalWrite(p2Red, 1);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 1);
- digitalWrite(p3Red, 0);
- //Show 2 on screen
- sos2();
- //Send 2 to Nodemcu
- Serial1.write(2);
- }
- else if (p1Status == 0 && p2Status == 0 && p3Status == 1) {
- emptySpaces = 2;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 1);
- digitalWrite(p1Red, 0);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 1);
- digitalWrite(p2Red, 0);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 0);
- digitalWrite(p3Red, 1);
- //Show 2 on screen
- sos2();
- //Send 2 to Nodemcu
- Serial1.write(2);
- }
- //////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////// 1 SPACES LEFT OPEN
- else if (p1Status == 1 && p2Status == 1 && p3Status == 0) {
- emptySpaces = 1;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 0);
- digitalWrite(p1Red, 1);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 0);
- digitalWrite(p2Red, 1);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 1);
- digitalWrite(p3Red, 0);
- //Show 1 on screen
- sos1();
- //Send 1 to Nodemcu
- Serial1.write(1);
- }
- else if (p1Status == 1 && p2Status == 0 && p3Status == 1) {
- emptySpaces = 1;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 0);
- digitalWrite(p1Red, 1);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 1);
- digitalWrite(p2Red, 0);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 0);
- digitalWrite(p3Red, 1);
- //Show 1 on screen
- sos1();
- //Send 1 to Nodemcu
- Serial1.write(1);
- }
- else if (p1Status == 0 && p2Status == 1 && p3Status == 1) {
- emptySpaces = 1;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 1);
- digitalWrite(p1Red, 0);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 0);
- digitalWrite(p2Red, 1);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 0);
- digitalWrite(p3Red, 1);
- //Show 1 on screen
- sos1();
- //Send 1 to Nodemcu
- Serial1.write(1);
- }
- //////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////// 0 SPACES LEFT OPEN
- else if (p1Status == 1 && p2Status == 1 && p3Status == 1) {
- emptySpaces = 0;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 0);
- digitalWrite(p1Red, 1);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 0);
- digitalWrite(p2Red, 1);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 0);
- digitalWrite(p3Red, 1);
- //Show 0 on screen
- sos0();
- //Send 0 to Nodemcu
- Serial1.write(0);
- }
- //////////////////////////////////////////////////////////////////////////
- /////////////////////////////////////////////////////////////// 3 SPACES LEFT OPEN
- else if (p1Status == 0 && p2Status == 0 && p3Status == 0) {
- emptySpaces = 3;
- // Car Park No.1 LED Control
- digitalWrite(p1Green, 1);
- digitalWrite(p1Red, 0);
- // Car Park No.2 LED Control
- digitalWrite(p2Green, 1);
- digitalWrite(p2Red, 0);
- // Car Park No.3 LED Control
- digitalWrite(p3Green, 1);
- digitalWrite(p3Red, 0);
- //Show 3 on screen
- sos3();
- //Send 3 to Nodemcu
- Serial1.write(3);
- }
- delay(2000);
- }
- void sos0() {
- lcd.setCursor(0, 0);
- //////////"1234567891234567"
- lcd.print("Full parking!! ");
- lcd.setCursor(1, 1);
- lcd.print("No Space Left");
- delay(500);
- }
- void sos1() {
- lcd.setCursor(0, 0);
- //////////"1234567891234567"
- lcd.print("Empty parking: ");
- lcd.setCursor(1, 1);
- lcd.print(1);
- delay(500);
- }
- void sos2() {
- lcd.setCursor(0, 0);
- //////////"1234567891234567"
- lcd.print("Empty parking: ");
- lcd.setCursor(1, 1);
- lcd.print(2);
- delay(500);
- }
- void sos3() {
- lcd.setCursor(0, 0);
- //////////"1234567891234567"
- lcd.print("Empty parking: ");
- lcd.setCursor(1, 1);
- lcd.print(3);
- delay(500);
- }
Add Comment
Please, Sign In to add comment