Σελίδα 3 από 5 ΠρώτηΠρώτη 1 2 3 4 5 ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 21 έως 30 από 43

Θέμα: Σύστημα διαχείρισης στάθμευσης αυτοκινήτων με Arduino

  1. #21
    Μέλος
    Όνομα
    Παυλος
    Εγγραφή
    Nov 2014
    Περιοχή
    Αθήνα
    Μηνύματα
    1.349

    Προεπιλογή

    καταρχήν συγχαρητήρια για την καταπληκτική δουλειά. Εγω δεν βλέπω σε αυτο το σημειο το συστημα τοσο σαθρό ή εν πάσι περιπτώση το γουστάρω λίγο καθότι μπορει να μήν μαθαινει το παιδί ο δάσκαλος, αλλα μεσα απο την προτροπή δίνει τελικά την δύναμη να υπαρχουν ουσιαστικές σχέσεις και ψυχολογικά ερεθίσματα (συνεργασία-κοπος-αποτελεσμα) μεσα στην οικογένεια που τον τελευταίο καιρό δυσκολευεται να βρει την εννοια της. Τέλος δεν υπάρχει καλύτερος δάσκαλος απο υγιη σχέση παιδιού με γονέα 1 και γονεα 2. Εστω και ελαχιστα να εχει ασχοληθει πατερας ή μητέρα με παιδί σε εργασία αυτο αποτυπώνεται στο παιδί ( ελπίζω θετικά) και αυτο ουσιαστικά ειναι παιδεία . Μορφωση δυστηχώς δεν μπορει να δώσει ουτε πατέρας ουτε μητέρα πολλές φορες και εκει τα πράγματα σκουρένουν ( λύκεια - φροντιστήρια) και αρχιζει το ποτήρι και φαινεται μισοαδειο.

    Συγχαρητηρια κ. Μάνο για την δουλεια και πρωτίστως για την σχέση σας.

    4 Not allowed! Not allowed!

  2. Ένα μέλος ευχαρίστησε τον Gaou για αυτό το χρήσιμο μήνυμα:

    manolena (13-01-20)

  3. #22
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Επανέρχομαι για λίγο, ανεβάζοντας και τα σχετικά αεχεία της κατασκευής αν χρειαστούν σε κάποιον. Είναι το δάπεδο σε 2 τμήματα και σε μορφή εικόνας & pdf (για να μπορεί να μεγεθυνθεί όσο χρειάζεται) και τα αρχεία του κώδικα (για μελέτη).
    Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Presentation1.jpg Εμφανίσεις:  137 Μέγεθος:  86,0 KBΠατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Presentation2.jpg Εμφανίσεις:  107 Μέγεθος:  52,7 KB


    Lot_10.ino
    Κώδικας:
    #include <LiquidCrystal_I2C.h>    //https://www.arduinolibraries.info/libraries/liquid-crystal-i2-c
    #include <Wire.h>                    //Ενσωματωμένη βιβλιοθήκη
    #include <Servo.h>                  //Ενσωματωμένη βιβλιοθήκη
    #include <TimerOne.h>             //https://www.arduinolibraries.info/libraries/timer-one
    #include "defines.h"                 //Αρχείο header που θα τοποθετηθεί στον ίδιο φάκελο με το αρχείο Lot_10.ino
    //================================================================
    Servo myservo;                             //Αντικείμενο κλάσσης Servo
    LiquidCrystal_I2C lcd(0x27,20,4);     //Αντικείμενο κλάσσης σειριακής οθόνης, δηλώνεται address, χαρακτήρες και γραμμές
    //================================================================
    void setup() 
    {
      Serial.begin(9600);
      lcd.init();
      lcd.backlight();
      Timer1.initialize(1000000);                           //Αρχικοποίηση του Timer1 για να προκαλεί διακοπές ανά 1 sec
      Timer1.attachInterrupt(xmit_ISR);                 //Ορισμός ρουτίνας διακοπής του Timer1 
      
      pinMode(EXIT_IR, INPUT_PULLUP);                //Ορισμός pin D4 ως εισόδου PULL UP για ανίχνευση εξόδου οχήματος
      pinMode(ENTRANCE_IR, INPUT_PULLUP);        //Ορισμός pin D5 ως εισόδου PULL UP για ανίχνευση εισόδου οχήματος
    
    
      pinMode(LedA, OUTPUT);                            //Ορισμός εισόδων A,B,C,D για το CD4511 4bit to 7 segment decoder
      pinMode(LedB, OUTPUT);                            //(βλέπε defines.h για τα definitions)
      pinMode(LedC, OUTPUT);                            //
      pinMode(LedD, OUTPUT);                            //
    
    
      digitalWrite(LedA, 0);                                 //
      digitalWrite(LedB, 0);
      digitalWrite(LedC, 0);
      digitalWrite(LedD, 0);
    
    
      pinMode(PARKING_1, INPUT_PULLUP);                    //Ορισμός εισόδων για ανίχνευση θέσεων στάθμευσης
      pinMode(PARKING_2, INPUT_PULLUP);                    //(βλέπε defines.h για τα definitions)
      pinMode(PARKING_3, INPUT_PULLUP);                    //
      pinMode(PARKING_4, INPUT_PULLUP);                    //
      pinMode(PARKING_5, INPUT_PULLUP);                    //
      pinMode(PARKING_6, INPUT_PULLUP);                    //
      pinMode(PARKING_7, INPUT_PULLUP);                    //
      pinMode(PARKING_8, INPUT_PULLUP);                    //
      
      splashScreen();                                                 
      myservo.attach(BAR);                                        
      myservo.write(BAR_LOW);                                  
      delay(2000);
      moveDown();                                                   
    }
    //================================================================
    void loop() 
    {
      checkEntrance();
      checkExit();
      scrollDataDisplay(3,250);
    }
    //================================================================
    void xmit_ISR()
    {
      Serial.write("@\n");
    }
    Utilities.ino
    Κώδικας:
    //================================================================
    void setNumber(const uint8_t n)
    {
      static const struct number
      {
        uint8_t d;
        uint8_t c;
        uint8_t b;
        uint8_t a;
      }numbers[] = {
        {0, 0, 0, 0},
        {0, 0, 0 ,1},
        {0, 0, 1, 0},
        {0, 0, 1, 1},
        {0, 1, 0, 0},
        {0, 1, 0 ,1},
        {0, 1, 1, 0},
        {0, 1, 1, 1},
        {1, 0, 0, 0},
        {1, 0, 0 ,1}, 
      };
      digitalWrite(LedA, numbers[n%10].a);
      digitalWrite(LedB, numbers[n%10].b);
      digitalWrite(LedC, numbers[n%10].c);
      digitalWrite(LedD, numbers[n%10].d);
    }
    //================================================================
    void checkEntrance()//pin 5
    {
      if (digitalRead(ENTRANCE_IR) == HIGH) 
      {
        if(Availiable != 0)
        {
          Availiable--;
          upMessage();
          moveUp();
          lcd.setCursor(6,2);
          lcd.print("ENTRANCE");
          delay(3000);
          downMessage();
          moveDown();
        }
        if(Availiable == 0)
        {
          noMoreCars();
          delay(4000);
        }
      } 
    }
    //================================================================
    void checkExit()//pin 4
    {
      if (digitalRead(EXIT_IR) == HIGH)
      {
        if(Availiable != MAX_CARS)
        {
          Availiable++;
          upMessage();
          moveUp();
          lcd.setCursor(8,2);
          lcd.print("EXIT");
          delay(3000); 
          downMessage();   
          moveDown();      
        }
      }
    }
    //================================================================
    void moveDown()
    {
      for (int counter = BAR_HIGH; counter <= BAR_LOW; counter += 1)
      {
        myservo.write(counter);
        delay(20);
      }
      delay(4000);
      checkEmpty();
    }
    //================================================================
    void moveUp()
    {
      for (int counter = BAR_LOW; counter >= BAR_HIGH; counter -= 1)
      {
        myservo.write(counter);
        delay(20);
      }
      delay(1000);
    }
    //================================================================
    void scrollDataDisplay(int line, int speed)
    {
      int i;
    
    
      if(g_nPosition < DATA_LENGTH - DISPLAY_WIDTH)
      {
        for(i=0; i<DISPLAY_WIDTH; i++)
        {
          lcd.setCursor(i, line);
          lcd.print(dataBuffer[g_nPosition + i]);
          lcd.print(dataBuffer[63] = ' ');
        }
      }
      else
      {
        int nChars = DATA_LENGTH - g_nPosition;
        for(i=0; i<nChars; i++)
        {
          lcd.setCursor(i, line);
          lcd.print(dataBuffer[g_nPosition + i]);
          lcd.print(dataBuffer[63] = ' ');
        }
        for(i=0; i<(DISPLAY_WIDTH - nChars); i++)
        {
          lcd.setCursor(nChars + i, line);
          lcd.print(dataBuffer[i]);
          lcd.print(dataBuffer[63] = ' ');
        }
      }
      g_nPosition++;
      if(g_nPosition >= DATA_LENGTH)
      {
        g_nPosition = 0;
      }
      delay(speed);   
    }  
    //================================================================
    void checkParkings()
    {
      for(int position = 1; position < 9; position++)
      {
        switch(position)
        {
          case(1):
            if(digitalRead(PARKING_1)==HIGH)
            {
              Serial.println("ΘΕΣΗ #1 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(2,1);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #1 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(2,1);
              lcd.print("X");       
            }
          break;  
          case(2):
            if(digitalRead(PARKING_2)==HIGH)
            {
              Serial.println("ΘΕΣΗ #2 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(7,1);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #2 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(7,1);
              lcd.print("X");       
            }
          break;  
          case(3):
            if(digitalRead(PARKING_3)==HIGH)
            {
              Serial.println("ΘΕΣΗ #3 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(12,1);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #3 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(12,1);
              lcd.print("X");       
            }
          break;  
          case(4):
            if(digitalRead(PARKING_4)==HIGH)
            {
              Serial.println("ΘΕΣΗ #4 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(17,1);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #4 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(17,1);
              lcd.print("X");       
            }
          break;
          case(5):
            if(digitalRead(PARKING_5)==HIGH)
            {
              Serial.println("ΘΕΣΗ #5 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(2,2);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #5 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(2,2);
              lcd.print("X");       
            }
          break;  
          case(6):
            if(digitalRead(PARKING_6)==HIGHUI)
            {
              Serial.println("ΘΕΣΗ #6 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(7,2);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #6 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(7,2);
              lcd.print("X");       
            }
          break;  
          case(7):
            if(digitalRead(PARKING_7)==HIGH)
            {
              Serial.println("ΘΕΣΗ #7 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(12,2);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #7 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(12,2);
              lcd.print("X");       
            }
          break;  
          case(8):
            if(digitalRead(PARKING_8)==HIGH)
            {
              Serial.println("ΘΕΣΗ #8 ΚΑΤΗΛΕΙΜΜΕΝΗ");
              lcd.setCursor(17,2);
              lcd.print(" ");
            }
            else
            {
              Serial.println("ΘΕΣΗ #8 ΕΛΕΥΘΕΡΗ"); 
              lcd.setCursor(17,2);
              lcd.print("X");       
            }
          break;  
        }
      }
    
    
    }
    //================================================================
    //================================================================
    //================================================================

    Lcd.ino

    Κώδικας:
    //================================================================
    void splashScreen()
    {
      lcd.createChar(fi, FI);
      lcd.createChar(psi, PSI);
      lcd.createChar(omega, OMEGA);
      lcd.createChar(gamma, GAMMA);
      lcd.createChar(delta, DELTA);
      lcd.createChar(lamda, LAMDA);
      lcd.createChar(ksi, KSI);
      lcd.createChar(pi, PEE);
    
    
      Serial.println("ΑΥΤΟΜΑΤΗ ΔΙΑΧΕΙΡΗΣΗ");
      Serial.println("PARKING ΑΥΤΟΚΙΝΗΤΩΝ\n");
      Serial.println("ΑΓΓΕΛΟΣ ΜΑΡΑΓΚΑΚΗΣ");
      Serial.println("ΤΑΞΗ Α2 - 4ο ΓΥΜΝΑΣΙΟ ΕΛΕΥΣΙΝΑΣ");
      Serial.println("ΕΤΟΣ 2019 - 2020\n");
    
    
      lcd.clear();
      lcd.print(F("      AYTOMATH"));
      lcd.setCursor(0, 1);
      lcd.print(F("     "));
      lcd.write(delta);
      lcd.print(F("IAXEIPH"));
      lcd.write(sigma);
      lcd.print(F("H"));
      lcd.setCursor(0, 2);
      lcd.print(F("      PARKING"));
      lcd.setCursor(0, 3);
      lcd.print(F("    AYTOKINHT"));
      lcd.write(omega);
      lcd.print(F("N"));
    
    
      delay(3000);
      lcd.clear();
      lcd.print(F("      A"));
      lcd.write(gamma);
      lcd.write(gamma);
      lcd.print(F("E"));
      lcd.write(lamda);
      lcd.print(F("O"));
      lcd.write(sigma);
      lcd.print(F("     A2"));
      lcd.setCursor(0, 1);
      lcd.print(F("    MAPA"));
      lcd.write(gamma);
      lcd.print(F("KAKH"));
      lcd.write(sigma);
      lcd.setCursor(0, 2);
      lcd.print(F("A' "));
      lcd.write(gamma);
      lcd.print(F("YMNA"));
      lcd.write(sigma);
      lcd.print(F("IOY-4"));
      lcd.write(degrees);
      lcd.print(F(" "));
      lcd.write(gamma);
      lcd.print(F(".E."));
      lcd.setCursor(0, 3);
      lcd.print(F("     2019-2020"));
    }
    //================================================================
    void downMessage()
    {
      lcd.clear();
      lcd.print(F(" H M"));
      lcd.write(pi);
      lcd.print(F("APA K"));
      lcd.write(lamda);
      lcd.print(F("EINEI..."));
    }
    //================================================================
    void  upMessage()
    {
      lcd.clear();
      lcd.print(F(" H M"));
      lcd.write(pi);
      lcd.print(F("APA ANOI"));
      lcd.write(gamma);
      lcd.print(F("EI..."));
    }
    //================================================================
    void checkEmpty()
    {
      lcd.clear();
      lcd.print(F("  KENE"));
      lcd.write(sigma);
      lcd.print(F(" "));
      lcd.write(thita);
      lcd.print(F("E"));
      lcd.write(sigma);
      lcd.print(F("EI"));
      lcd.write(sigma);
      lcd.print(F(": "));
      lcd.print(Availiable, DEC);
      if (Serial.available() > 0)
      {    
        incomingByte = Serial.read();
        if (incomingByte == '$')
        { 
          Serial.write('@');
          Serial.write(Availiable);
        }
        setNumber(Availiable);
        lcd.print(F(" "));
        showPlaces();
      }
    }
    //================================================================
    void noMoreCars()
    {
      lcd.clear();
      lcd.setCursor(5, 0);
      lcd.write(lamda);
      lcd.print(F("Y"));
      lcd.write(pi);
      lcd.print(F("OYMA"));
      lcd.write(sigma);
      lcd.print(F("TE,"));
      lcd.setCursor(3, 1);
      lcd.write(delta);
      lcd.print(F("EN M"));
      lcd.write(pi);
      lcd.print(F("OPOYME NA"));
      lcd.setCursor(1, 2);
      lcd.write(sigma);
      lcd.print(F("A"));
      lcd.write(sigma);
      lcd.print(F(" E"));
      lcd.write(ksi);
      lcd.print(F("Y"));
      lcd.write(pi);
      lcd.print(F("PETH"));
      lcd.write(sigma);
      lcd.print(F("OYME!"));
      lcd.setCursor(3, 3);
      lcd.print(F("KENE"));
      lcd.write(sigma);
      lcd.print(F(" "));
      lcd.write(thita);
      lcd.print(F("E"));
      lcd.write(sigma);
      lcd.print(F("EI"));
      lcd.write(sigma);
      lcd.print(F(": "));
      lcd.print(Availiable, DEC);
      setNumber(Availiable);
      lcd.print(F(" "));
    }
    //================================================================
    void showPlaces()
    {
      lcd.setCursor(0, 1);
      lcd.print(F("1=   2=   3=   4=  "));
      lcd.setCursor(0, 2);
      lcd.print(F("5=   6=   7=   8=  "));
      checkParkings();
    }
    defines.h

    Κώδικας:
    //================================================================
    #if defined(ARDUINO) && ARDUINO >= 100
    #define printByte(args)  write(args);
    #else
    #define printByte(args)  print(args,BYTE);
    #endif
    
    
    #define fi       0
    #define psi      1
    #define omega    2
    #define gamma    3
    #define delta    4
    #define lamda    5
    #define ksi      6
    #define pi       7
    #define sigma    246
    #define thita    242
    #define degrees  223
    
    
    const uint8_t LedA = 11;
    const uint8_t LedB = 12;
    const uint8_t LedC = 2;
    const uint8_t LedD = 3;
    
    
    #define BAR           9      
    #define EXIT_IR       4      
    #define ENTRANCE_IR   5       
    #define BAR_LOW       171       
    #define BAR_HIGH      112       
    #define MAX_CARS      8         
    
    
    #define PARKING_1     A0
    #define PARKING_2     A1
    #define PARKING_3     A2
    #define PARKING_4     A3
    #define PARKING_5     6
    #define PARKING_6     7
    #define PARKING_7     8
    #define PARKING_8     10
    
    
    const int DISPLAY_WIDTH = 20;
    int pos;
    int Availiable = MAX_CARS;// + 1;
    int g_nPosition = 0;
    
    
    char dataBuffer[] = " ARDUINO AUTOMATED PARKING LOT SYSTEM *** ANGEL MARAGKAKIS 2019";
    const int DATA_LENGTH = sizeof(dataBuffer);
    uint8_t incomingByte;
    //================================================================
    byte FI[8] = {
      B01110,
      B10101,
      B10101,
      B10101,
      B01110,
      B00100,
      B00100,
      B00000
    };
    byte PSI[8] = {
      B10101,
      B10101,
      B10101,
      B01110,
      B00100,
      B00100,
      B00100,
      B00000
    };
    byte OMEGA[8] = {
      B01110,
      B10001,
      B10001,
      B10001,
      B01110,
      B00000,
      B11111,
      B00000
    };
    byte GAMMA[8] = {
      B11111,
      B10000,
      B10000,
      B10000,
      B10000,
      B10000,
      B10000,
      B00000
    };
    byte DELTA[8] = {
      B00100,
      B01010,
      B10001,
      B10001,
      B10001,
      B10001,
      B11111,
      B00000
    };
    byte LAMDA[8] = {
      B00100,
      B01010,
      B10001,
      B10001,
      B10001,
      B10001,
      B10001,
      B00000
    };
    byte KSI[8] = {
      B11111,
      B00000,
      B00000,
      B01110,
      B00000,
      B00000,
      B11111,
      B00000
    };
    byte PEE[8] = {
      B11111,
      B10001,
      B10001,
      B10001,
      B10001,
      B10001,
      B10001,
      B00000
    };
    //================================================================
    Μπορούν σε πολλά σημεία του κώδικα να αφαιρεθούν γραμμές που περιέχουν την εντολή Serial.print(); ή Serial.println(); που μπήκαν για ένα υποτυπώδες
    debugging, ώστε να κερδηθεί μνήμη προγράμματος (αν και δεν έχει καθόλου σημασία αυτό).

    Όπως πάντα, χωρίς σχόλια στον κώδικα...
    Συνημμένα Αρχεία Συνημμένα Αρχεία

    2 Not allowed! Not allowed!

  4. 3 μέλη ευχαρίστησαν τον manolena για αυτό το χρήσιμο μήνυμα:

    Gaou (22-01-22), Kernel Panic (22-01-20), kioan (21-01-20)

  5. #23
    Μέλος Το avatar του χρήστη manolena
    Όνομα
    Μάνος
    Εγγραφή
    Dec 2006
    Περιοχή
    Ελευσίνα
    Μηνύματα
    2.709

    Προεπιλογή

    Και επειδή μπήκε και μια δεύτερη οθόνη OLED, ορίστε και ο κώδικας. Οδηγείται απο έναν δεύτερο Arduino NANO με σειριακή διασύνδεση με τον άλλον
    (Rx--->Tx και Tx--->Rx)
    Το τροφοδοτικό για όλα αυτά είναι ένα μικρό τύπου Meanwell στα 12V/4A επειδή το servo κάνει μεγάλες βυθίσεις τάσης όταν δουλεύει.
    Το CD4511 και το ψηφίο 7 τμημάτων, τροφοδοτείται μέσω ενός σταθεροποιητή LM7805CV απο τα 12V του κυρίως τροφοδοτικού.

    Sign_1.ino

    Κώδικας:
    #include <U8glib.h>                                                    //https://www.arduinolibraries.info/libraries/u8glib
    #include <TimerOne.h>
    
    
    //================================================================
    U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);  // I2C / TWI
    //================================================================
    int incomingByte = 0;
    int empty;
    int state = 0;
    //================================================================
    void setup() {
      Serial.begin(9600);
      Timer1.initialize(2000000);
      Timer1.attachInterrupt(changeScreen_ISR); // blinkLED to run every 0.15 seconds
      splash();
      delay(5000);
      rate();
      delay(5000);
    }
    //================================================================
    void loop() {
      Serial.write('$');
      delay(100);
      if (Serial.available())
      {
        incomingByte = Serial.read(); 
        if (incomingByte == '@')  
        { //if incoming data is the expected request (request code = 'Q' in this example)
          empty = Serial.read(); 
        } 
      }
      if(empty != 0)
      {
        switch(state)
        {
          case(0):
            remaining(); 
          break;
          case(1):
            splash(); 
          break;
          case(2):
            rate(); 
          break;
        }    
      }
      else 
      {
        switch(state)
        {
          case(0):
            full();
            delay(3000);
            noVacancy(); 
            delay(3000);     
          break;
          case(1):
            splash(); 
          break;
          case(2):
            rate(); 
          break;
        }    
      }
    }
    //================================================================
    void full()
    {
      u8g.firstPage();
      do
      {
        u8g.drawRFrame(0, 0, 128, 64, 4);
        u8g.setFont(u8g_font_courB24);
        u8g.setPrintPos(20, 25);
        u8g.print("FULL!");
        u8g.setFont(u8g_font_fub30r);
        u8g.setPrintPos(50, 60);
        u8g.print(empty);
      }
      while ( u8g.nextPage());
    }
    //================================================================
    void remaining()
    {
      u8g.firstPage();
      do
      {
        u8g.drawRFrame(0, 0, 128, 64, 4);
        u8g.setFont(u8g_font_courB24);
        u8g.setPrintPos(7, 25);
        u8g.print("EMPTY:");
        u8g.setFont(u8g_font_fub30r);
        u8g.setPrintPos(50, 60);
        u8g.print(empty);
      }
      while ( u8g.nextPage());
    }
    //================================================================
    void splash()
    {
      u8g.firstPage();
      do
      {
        u8g.drawRFrame(0, 0, 128, 64, 4);
        u8g.setFont(u8g_font_profont22r);
        u8g.setPrintPos(7, 25);
        u8g.print("24h");
        u8g.setPrintPos(7, 45);
        u8g.print("Parking");
      }
      while ( u8g.nextPage());
    }
    //================================================================
    void rate()
    {
      u8g.firstPage();
      do
      {
        u8g.drawRFrame(0, 0, 128, 64, 4);
        u8g.setFont(u8g_font_profont22r);
        u8g.setPrintPos(7, 25);
        u8g.print("Rate:");
        u8g.setPrintPos(7, 45);
        u8g.print("2$/h");
      }
      while ( u8g.nextPage());
    }
    //================================================================
    void changeScreen_ISR()
    {
      state++;
      if(state > 2) state = 0;
    }
    //================================================================
    void noVacancy()
    {
      u8g.firstPage();
      do
      {
        u8g.drawRFrame(0, 0, 128, 64, 4);
        u8g.setFont(u8g_font_profont22r);
        u8g.setPrintPos(7, 25);
        u8g.print("Sorry, no");
        u8g.setPrintPos(7, 45);
        u8g.print("Parking!");
      }
      while ( u8g.nextPage());
    }

    2 Not allowed! Not allowed!

  6. 3 μέλη ευχαρίστησαν τον manolena για αυτό το χρήσιμο μήνυμα:

    Gaou (22-01-22), Kernel Panic (22-01-20), kioan (21-01-20)

  7. #24
    Μέλος Το avatar του χρήστη Kernel Panic
    Όνομα
    Kernel Panic
    Εγγραφή
    Aug 2016
    Περιοχή
    Αθήνα
    Μηνύματα
    430

    Προεπιλογή

    πολλά μπράβο! για την εργασία και την συνεργασία με τον υιό.
    Αλλά ξέρετε πως είναι αυτά για μένα, αλλά και για τους περισσότερους τεχνικούς / μηχανικούς, βλέπεις κάτι και κοιτάς πως να το βελτιώσεις / αλλάξεις λίγο.
    Δεν αναφέρομαι στην συγκεκριμένη εργασία που το αποτέλεσμα της είναι και με το παραπάνω ολοκληρωμένο.
    Αλλά επηρεασμένος από αυτήν, θα ρίξω μια βελτιωτική ιδέα.
    Δεν θα ήταν δύσκολο, με κάτι τύπου ESP32 με κάμερα, να γίνεται και μια καταγραφή αριθμού κυκλοφορίας, η ώρα εισόδου και εξόδου και εξαγωγή σε csv.
    Βέβαια μετά θα έχουμε θέματα με το GDPRS, αλλά αυτό είναι άλλο θέμα.

    1 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη Kernel Panic : 22-01-20 στις 19:19

  8. Ένα μέλος ευχαρίστησε τον Kernel Panic για αυτό το χρήσιμο μήνυμα:

    manolena (22-01-20)

  9. #25
    Μέλος Το avatar του χρήστη rep
    Όνομα
    Χρυσοστομος
    Εγγραφή
    Oct 2009
    Περιοχή
    Μακροχωρι Βεροια
    Μηνύματα
    1.331

    Προεπιλογή

    ΕΞΕΡΕΤΙΚΗ δουλεια.οταν εχεις μικρα παιδια και μπορεις καλο ειναι απο μικρα να τους μεταδωσεις το μικροβιο.

    1 Not allowed! Not allowed!

  10. Ένα μέλος ευχαρίστησε τον rep για αυτό το χρήσιμο μήνυμα:

    manolena (30-03-20)

  11. #26
    Μέλος
    Όνομα
    Μάρκος
    Εγγραφή
    Mar 2012
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.946

    Προεπιλογή

    πολλά συγχαρητήρια και από μένα.

    μια πρόταση για βελτίωση, δεδομένου ότι ήδη ελέγχει την θέση αν είναι κατηλλειμένη, μπορεί να ανάβει ένα LED σήμανσης ελεύθερης (πράσινο) - κατηλλειμένης (κόκκινο) θέσης.
    Φυσικά για οκτώ θέσεις δεν είναι ιδιαίτερα χρήσιμο γιατί βλέπεις όλες τις θέσεις με μια ματιά, αλλά αν το parking έχει πολλές θέσεις και διαδρόμους είναι πολύ πρακτικό για να εντοπίζεις ελεύθερες θέσεις. (το έχω δει στην πράξη σε parking και είναι πολύ βολικό)

    1 Not allowed! Not allowed!
    Όταν όλα τα άλλα έχουν αποτύχει..... RTFM.
    Short instructions: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Good Luck!
    https://diyelectronics-gr.blogspot.gr https://www.facebook.com/groups/872041030200567

  12. Ένα μέλος ευχαρίστησε τον elektronio για αυτό το χρήσιμο μήνυμα:

    manolena (30-03-20)

  13. #27
    Μέλος
    Όνομα
    Παντελής
    Εγγραφή
    Apr 2017
    Περιοχή
    .
    Μηνύματα
    95

    Προεπιλογή

    Συγχαρητήρια και πάλι, χίλια μπράβο!
    Ελπίζω η προσπάθεια σας αυτή να έλαβε κάποια βραβεία ή τουλάχιστον μια σοβαρή αναγνώριση τουλάχιστον εκ των άνω (λέμε τώρα), ώστε να διαδοθεί η προσπάθεια αυτή ως πρότυπη και μοναδική, με στόχο να μπορέσουν κι άλλα παιδιά και εκπαιδευτικοί να παραδειγματιστούν.Κυρίως τα παιδιά που για αυτά γίνονται όλα, στην τελική. Η αναγνώριση πιστεύω από το τοπικό σας σχολείο θα πρέπει να είναι δεδομένη, αλλά το ζητούμενο είναι να παραδειγματιστούν κι άλλα παιδιά και να τους κάνει να σκεφτούν και να δημιουργήσουν.

    Τσατίζομαι να βλέπω διαφημίσεις με συγκεντρώσεις ψευτο-ρομποτικής από ετοιματζίδικα πρότζεκτ γνωστών εταιρειών να προβάλλονται με την κάλυψη κολοσσών εταιρειών για διαφήμιση και χρήμα και καλά κοινωνική προσφορά.

    Η δική σας προσπάθεια χωρίς βοήθεια φτιαγμένη από μεράκι και καθαρή Ελληνική Δημιουργικότητα πρέπει τουλάχιστον να διαδοθεί παντού.

    Καλή συνέχεια.

    1 Not allowed! Not allowed!

  14. Ένα μέλος ευχαρίστησε τον Raitelis για αυτό το χρήσιμο μήνυμα:

    manolena (30-03-20)

  15. #28
    Μέλος Το avatar του χρήστη ΣΑΡΑΚΗΝΟΣ
    Όνομα
    Τσαμπάζης Νίκος
    Εγγραφή
    Aug 2005
    Περιοχή
    Ξάνθη
    Μηνύματα
    923

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από elektronio Εμφάνιση μηνυμάτων
    πολλά συγχαρητήρια και από μένα.

    μια πρόταση για βελτίωση, δεδομένου ότι ήδη ελέγχει την θέση αν είναι κατηλλειμένη, μπορεί να ανάβει ένα LED σήμανσης ελεύθερης (πράσινο) - κατηλλειμένης (κόκκινο) θέσης.
    Φυσικά για οκτώ θέσεις δεν είναι ιδιαίτερα χρήσιμο γιατί βλέπεις όλες τις θέσεις με μια ματιά, αλλά αν το parking έχει πολλές θέσεις και διαδρόμους είναι πολύ πρακτικό για να εντοπίζεις ελεύθερες θέσεις. (το έχω δει στην πράξη σε parking και είναι πολύ βολικό)

    Πως μπορούμε να το εφαρμόσουμε αυτό με τα Led;Το έχω δει και εγώ σε μεγάλο Mall στο εξωτερικό και όντως είναι πολύ χρήσιμο και πρακτικό.Σκέφτομαι να φτιάξω κάτι αντίστοιχο με τον γιό μου (13 Ετών) αλλά από προγραμματισμό δεν γνωρίζω σχεδόν τίποτα.
    Μια ωραία ιδέα και εδώ. https://create.arduino.cc/projecthub...-system-95a9dc

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη ΣΑΡΑΚΗΝΟΣ : 22-01-22 στις 13:22

  16. #29
    Μέλος Το avatar του χρήστη ΣΑΡΑΚΗΝΟΣ
    Όνομα
    Τσαμπάζης Νίκος
    Εγγραφή
    Aug 2005
    Περιοχή
    Ξάνθη
    Μηνύματα
    923

    Προεπιλογή

    Μια ιδέα κάποιος πως θα μπορέσουμε να το κάνουμε;

    0 Not allowed! Not allowed!

  17. #30
    Μέλος
    Όνομα
    Μάρκος
    Εγγραφή
    Mar 2012
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.946

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από ΣΑΡΑΚΗΝΟΣ Εμφάνιση μηνυμάτων
    Μια ιδέα κάποιος πως θα μπορέσουμε να το κάνουμε;
    Διάβασε στο ποστ 2 πως ελέγχει τις θέσεις αν υπάρχει αυτοκίνητο. Από το αισθητήριο που κάνει τον έλεγχο δίνει Η ή L σε Ι/Ο του arduino. Μπορείς να πάρεις από εκεί (έχει ένα αισθητήριο δίπλα σε κάθε θέση) το Η ή L και να το δείξεις σε 2 LED

    0 Not allowed! Not allowed!
    Όταν όλα τα άλλα έχουν αποτύχει..... RTFM.
    Short instructions: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Good Luck!
    https://diyelectronics-gr.blogspot.gr https://www.facebook.com/groups/872041030200567

Σελίδα 3 από 5 ΠρώτηΠρώτη 1 2 3 4 5 ΤελευταίαΤελευταία

Παρόμοια Θέματα

  1. Project για θέση στάθμευσης
    By pcvasilis in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 4
    Τελευταίο Μήνυμα: 25-04-19, 17:52
  2. Απαντήσεις: 2
    Τελευταίο Μήνυμα: 05-09-17, 14:25
  3. Απαντήσεις: 3
    Τελευταίο Μήνυμα: 09-05-16, 12:37
  4. Πρόγραμμά διαχείρισης Εργαστηρίου
    By navar in forum Γενική Συζήτηση
    Απαντήσεις: 20
    Τελευταίο Μήνυμα: 05-11-15, 20:44
  5. Πρόγραμμα διαχείρισης e-mail...
    By Lykos1986 in forum Γενική Συζήτηση
    Απαντήσεις: 3
    Τελευταίο Μήνυμα: 02-02-08, 17:55

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας