mirror of
				https://github.com/zyphlar/open-access-control-minimal-http.git
				synced 2024-03-08 15:57:47 +00:00 
			
		
		
		
	Added extend button
This commit is contained in:
		
							parent
							
								
									02435a78b1
								
							
						
					
					
						commit
						5f8d01fc27
					
				@ -112,6 +112,10 @@ void setup(){           // Runs once at Arduino boot-up
 | 
			
		||||
  //Clear and initialize readers
 | 
			
		||||
  wiegand26.initReaderOne(); //Set up Reader 1 and clear buffers.
 | 
			
		||||
 | 
			
		||||
  // Initialize button input
 | 
			
		||||
  pinMode(A5, INPUT);
 | 
			
		||||
  digitalWrite(A5, HIGH);
 | 
			
		||||
 | 
			
		||||
  //Initialize output relays
 | 
			
		||||
  for(byte i=0; i<4; i++){        
 | 
			
		||||
    pinMode(relayPins[i], OUTPUT);                                                      
 | 
			
		||||
@ -132,12 +136,81 @@ void setup(){           // Runs once at Arduino boot-up
 | 
			
		||||
void loop()                                     // Main branch, runs over and over again
 | 
			
		||||
{ 
 | 
			
		||||
  
 | 
			
		||||
  //////////////////////////
 | 
			
		||||
  // Normal operation section
 | 
			
		||||
  //////////////////////////  
 | 
			
		||||
  
 | 
			
		||||
  // check timer -- if expired, remove authorization
 | 
			
		||||
  
 | 
			
		||||
  if(authorized && relay1high) {
 | 
			
		||||
    
 | 
			
		||||
    // Detect button push
 | 
			
		||||
    lcd.setCursor(12,0);
 | 
			
		||||
    lcd.print(analogRead(A5));
 | 
			
		||||
    lcd.print("  ");
 | 
			
		||||
    if (analogRead(A5) < 50) {  
 | 
			
		||||
      relay1timer = millis(); 
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // calculate current time elapsed
 | 
			
		||||
    long currentTime = millis() - relay1timer;
 | 
			
		||||
    // if time entirely elapsed, deauthorize.
 | 
			
		||||
    if(currentTime >= RELAYDELAY) {
 | 
			
		||||
      authorized = false;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // calculate for display
 | 
			
		||||
    long remaining = (RELAYDELAY - currentTime) / 1000;
 | 
			
		||||
    long secRemaining = (RELAYDELAY - currentTime) / 1000 % 60;
 | 
			
		||||
    long minRemaining = (RELAYDELAY - currentTime) / 1000 / 60 % 60;
 | 
			
		||||
    long hrsRemaining = (RELAYDELAY - currentTime) / 1000 / 60 / 60;
 | 
			
		||||
 | 
			
		||||
    // display timer & username
 | 
			
		||||
    lcd.setCursor(0, 0);    
 | 
			
		||||
    lcd.print(username);
 | 
			
		||||
    lcd.setCursor(0, 1);
 | 
			
		||||
    lcd.print(hrsRemaining);
 | 
			
		||||
    lcd.print(":");
 | 
			
		||||
    lcd.print(minRemaining);
 | 
			
		||||
    lcd.print(":");
 | 
			
		||||
    lcd.print(secRemaining);
 | 
			
		||||
    lcd.print(" remain    ");
 | 
			
		||||
  }
 | 
			
		||||
  if(!authorized && relay1high) {
 | 
			
		||||
    lcd.clear();
 | 
			
		||||
    lcd.setCursor(0, 0);  
 | 
			
		||||
    lcd.print("Turning off.");
 | 
			
		||||
    delay(500);    
 | 
			
		||||
    lcd.clear();    
 | 
			
		||||
    
 | 
			
		||||
    // not authorized -- turn off relay
 | 
			
		||||
    relayLow(1);
 | 
			
		||||
  }
 | 
			
		||||
  if(authorized && !relay1high) {
 | 
			
		||||
    lcd.clear();
 | 
			
		||||
    lcd.setCursor(0, 0);  
 | 
			
		||||
    lcd.print("Turning on.");
 | 
			
		||||
    delay(500);
 | 
			
		||||
    lcd.clear();
 | 
			
		||||
 | 
			
		||||
    // authorized -- turn on relay
 | 
			
		||||
    relayHigh(1);
 | 
			
		||||
  }
 | 
			
		||||
  if(!authorized && !relay1high) {
 | 
			
		||||
    // display login message
 | 
			
		||||
    lcd.setCursor(0, 0);  
 | 
			
		||||
    lcd.print("Please login.");
 | 
			
		||||
      
 | 
			
		||||
    //////////////////////////  
 | 
			
		||||
    // Reader input/authentication section  
 | 
			
		||||
    //////////////////////////
 | 
			
		||||
    if(reader1Count >= 26)
 | 
			
		||||
    {                           //  When tag presented to reader1 (No keypad on this reader)
 | 
			
		||||
  
 | 
			
		||||
       lcd.clear();
 | 
			
		||||
       lcd.print("connecting...");
 | 
			
		||||
       delay(150);
 | 
			
		||||
       lcd.clear();
 | 
			
		||||
       
 | 
			
		||||
       Serial.println("connecting...");
 | 
			
		||||
    
 | 
			
		||||
@ -221,65 +294,12 @@ void loop()                                     // Main branch, runs over and ov
 | 
			
		||||
      client.stop();
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
  //////////////////////////
 | 
			
		||||
  // Normal operation section
 | 
			
		||||
  //////////////////////////  
 | 
			
		||||
  
 | 
			
		||||
  // check timer -- if expired, remove authorization
 | 
			
		||||
  
 | 
			
		||||
  if(authorized && relay1high) {
 | 
			
		||||
    // calculate current time elapsed
 | 
			
		||||
    long currentTime = millis() - relay1timer;
 | 
			
		||||
    // if time entirely elapsed, deauthorize.
 | 
			
		||||
    if(currentTime >= RELAYDELAY) {
 | 
			
		||||
      authorized = false;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
    // calculate for display
 | 
			
		||||
    long remaining = (RELAYDELAY - currentTime) / 1000;
 | 
			
		||||
    long secRemaining = (RELAYDELAY - currentTime) / 1000 % 60;
 | 
			
		||||
    long minRemaining = (RELAYDELAY - currentTime) / 1000 / 60 % 60;
 | 
			
		||||
    long hrsRemaining = (RELAYDELAY - currentTime) / 1000 / 60 / 60;
 | 
			
		||||
 | 
			
		||||
    // display timer & username
 | 
			
		||||
    lcd.setCursor(0, 0);    
 | 
			
		||||
    lcd.print(username);
 | 
			
		||||
    lcd.setCursor(0, 1);
 | 
			
		||||
    lcd.print(hrsRemaining);
 | 
			
		||||
    lcd.print(":");
 | 
			
		||||
    lcd.print(minRemaining);
 | 
			
		||||
    lcd.print(":");
 | 
			
		||||
    lcd.print(secRemaining);
 | 
			
		||||
    lcd.print(" remain");
 | 
			
		||||
  }
 | 
			
		||||
  if(!authorized && relay1high) {
 | 
			
		||||
    lcd.clear();
 | 
			
		||||
    lcd.setCursor(0, 0);  
 | 
			
		||||
    lcd.print("Turning off.");
 | 
			
		||||
    delay(500);    
 | 
			
		||||
    lcd.clear();    
 | 
			
		||||
    
 | 
			
		||||
    // not authorized -- turn off relay
 | 
			
		||||
    relayLow(1);
 | 
			
		||||
  }
 | 
			
		||||
  if(authorized && !relay1high) {
 | 
			
		||||
    lcd.clear();
 | 
			
		||||
    lcd.setCursor(0, 0);  
 | 
			
		||||
    lcd.print("Turning on.");
 | 
			
		||||
    delay(500);
 | 
			
		||||
    lcd.clear();
 | 
			
		||||
 | 
			
		||||
    // authorized -- turn on relay
 | 
			
		||||
    relayHigh(1);
 | 
			
		||||
  }
 | 
			
		||||
  if(!authorized && !relay1high) {
 | 
			
		||||
    // display login message
 | 
			
		||||
    lcd.setCursor(0, 0);  
 | 
			
		||||
    lcd.print("Please login.");
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
} // End of loop()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void lcdprint(int x, int y, char text) {
 | 
			
		||||
  // set the cursor to column 0, line 1
 | 
			
		||||
  // (note: line 1 is the second row, since counting begins with 0):
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user