# Mesai Takip Cihazı
## Kütahya İl Özel İdaresi - Bilgi işlem müdürlüğü

Kütahya İl Özel İdaresi olarak geliştirmiş olduğumuz mesai takip cihazı. Yazılımı, devre tasarımı ve (3d yazdırılabilir) kutu tasarımı tamamen bize aittir. Tüm Raspberry Pi sürümleri ile çalışmaktadır. Fakat kutu RP3 için tasarlandığından diğer sürümleri için revizyon gerekir Cihaz 135 derece balık gözü lens ile kameraya sahiptir.

13.56 Mhz rfid kart ile uyumludur. Kart okutulduğunda personelin resmini alır, led ışık ve ses ile sinyal verir, sonra belirtilen web servisine geçiş hakkında istek gönderir. Cevap olarak bir geçiş ID 'si ve personel ismini bekler. Istenilir ise kart okutmadan sonra bir turnikeye yada diğer bir donanıma tetikleme yapılabilir.

Sunucuya ulaşamaz ise offline oalrak çalışabilir. Çekilen fotoğraflar geçiş zaman bilgileri ile birlikte tutulur. Sonra merkezi bilgi sisteminiz ftp bağlantısı ile resimleri alıp dosya sunucunuza taşıyabilir.

Uygulama çalışma esnasında logları cihazin dosya sistemine txt dosyası olarak yazar. Beklenmedik bir hata oluşur ise hem offline logu tutulup hem de bir mesaj kuyruğuna (varsayılan RabbitMQ) log olarak yazılır.

Uyguluma sorunsuz çalıştığı süre zarfında belirli aralıklarla bir Mqtt kuyruğuna sıhhat bilgisini gönderebilir.

Cihazın crontab ile uygun görülen bir zamanda günde bir sefer yeniden başlatılması önerilir.


## Kurulum

1. ISO ile kurulum
.iso dosyası indirilip micro sd karta "Win32 Disk Imager" yada benzeri bir uygulama ile yazılıp 

2. Manuel kurulum
   - Raspbian işletim sistemi sd karta yüklenir ve açılır
   - `sudo raspi-config` ile ayar ekranı açılıp  ssh, camera, i2c ve spi aktifleştirilir
   - Aşağıdaki kurulumlar yapılır.
    ```
    sudo apt-get update
    sudo apt-get upgrade

    sudo apt-get install vsftpd apache2 git  python-spidev  python-dev python-pip python-smbus python-picamera python-netifaces python-imaging python-smbus i2c-tools -y
    
    sudo chmod 777 -R /var/www/html/
    
    git clone https://github.com/lthiery/SPI-Py.git
    cd ~/SPI-Py
    sudo python setup.py install
    
    pip install pika
    pip install paho-mqtt
    
    git clone https://github.com/adafruit/Adafruit_Python_SSD1306.git
    cd Adafruit_Python_SSD1306
    sudo python setup.py install
    ```
   - `sudo crontab -e` ile zamanlanmış görevler açılıp en alta aşağıdaki 3 satır eklenir.
    ```
    @reboot sleep 5 && python /var/www/html/temizle.py &
    @reboot sleep 20 && python /var/www/html/index.py &
    30 22 * * *     /sbin/shutdown -r +1 &
    ```
   - index.py, MFRC522.py ve temizle.py /var/www/html dizinine kopyalanır.
   - Font klasöründeki lato.ttf dosyası /var/www/html/font dizinine kopyalanır.
   - Arduino klasorundeki buzzer.ino dosyası Arduino nanoya upload edilir.