• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

FID ve Arduino ile yoklama sistemi

  • Konbuyu başlatan Konbuyu başlatan ZeroWin
  • Başlangıç tarihi Başlangıç tarihi
Katılım
21 Mart 2017
Mesajlar
5
Excel Vers. ve Dili
16.0.6741.2021
İyi günler;

Bu sene okuduğum okuldan mezun oluyorum. Bitirme projesi olarak RFID ve Arduino ile Excel üzerinden yoklama sistemi yapıyorum. Yani kabaca öğrenci kartı ile giriş yapılabilecek bir yoklama sistemi.

İşin elektronik tarafını halletim. Ancak Excel'i hiç kullanmadığım için ne yapacağımı bilemiyorum. İlk olarak sistemin nasıl olması gerektiğini anlatayım.

Belirlenen tarih ve saat aralığında sisteme giriş yapan kart sahibinin isminin yanına gelip gelmediğine dair bir işaret konulacak. Kart okutulduğunda kartın ID'si, okutulduğu tarih ve saat en sol üstte görebiliyorum. Ancak bu veriyi Excel'de nasıl kullanacağımı bilmiyorum. Yani istediğim tarh ve saat aralığında kişiyi geldi/gelmedi şeklinde işaretleme işleminin nasıl yapacağımı çözemedim.

Şuanda takıldığım nokta ise "Eğer ve Yada" fonksiyonları ile kişinin ID'si ile okutulan ID'yi karşılaştırıp geldi yazdırıyorum. Ancak 2. bir kart okuttuğumda bir önceki geldi yazılan elemanı gelmediye dönüşüyor. Yani hücre içindeki veriyi koruyamıyorum...

Aşağıdaki ekte Excel dosyamın bir örneğini yolladım. Umarım imkansız bir şey istemiyorumdur.

https://www.teknovudu.com/medya/2017/03/PLX-DAQ-v2.10.xlsm
 
Son düzenleme:
şu sayfayı bi incele
http://www.instructables.com/id/Sending-data-from-Arduino-to-Excel-and-plotting-it/

excel için bi tane eklenti kurmanı istiyor.
https://www.parallax.com/downloads/plx-daq

şuan yanımda arduino yok olsa deneyecektim ama şöyle bir excel eklentisi yükletiyor.
attachment.php


şuna dikkat et
"DO NOT OPEN THE SERIAL MONITOR in Arduino IDE, it will not work with excel if you do"

excel eklentisi ile çalışırken arduino programındaki seri monitör izleme ekranını açma, hata verir diyor
 

Ekli dosyalar

  • res.jpg
    res.jpg
    20.4 KB · Görüntüleme: 33
Son düzenleme:
Merhaba
D10 hücresine yazıp aşağı doğru çekip dener misiniz
Kod:
=EĞER(YADA($A$1=A10;A10<>"");"GELDİ";"GELMEDİ")
 
Merhaba
D10 hücresine yazıp aşağı doğru çekip dener misiniz
Kod:
=EĞER(YADA($A$1=A10;A10<>"");"GELDİ";"GELMEDİ")

Hocam dediğinizi yaptım. Kart ID'si yazan yerler Geldi olarak, yazmayan yerler ise Gelmedi olarak yazıldı. Yani sol üstte yazan kart ID'sini kontorl etmedi gibi..
 
Hocam dediğinizi yaptım. Kart ID'si yazan yerler Geldi olarak, yazmayan yerler ise Gelmedi olarak yazıldı. Yani sol üstte yazan kart ID'sini kontorl etmedi gibi..

Merhaba
A10 ile A43 arasındaki verileri silip
tek tek bu iki hücre arasındaki verileri girdikçe karşısına geldi yazar
bu iki hücre arası boşsa gelmedi yazar
Yani geldi yazması için A10:A43 Arasında yazan ya A1 hücresine eşit olacak yada karşısındaki "A" sütunundaki hücre dolu olacak
eğer kişi gelmediyse o kişinin karşısındaki "A" sütununa ait hücre boş olması gerekiyor
 
Merhaba
A10 ile A43 arasındaki verileri silip
tek tek bu iki hücre arasındaki verileri girdikçe karşısına geldi yazar
bu iki hücre arası boşsa gelmedi yazar
Yani geldi yazması için A10:A43 Arasında yazan ya A1 hücresine eşit olacak yada karşısındaki "A" sütunundaki hücre dolu olacak
eğer kişi gelmediyse o kişinin karşısındaki "A" sütununa ait hücre boş olması gerekiyor

Yardımınız için çok teşekkür ederim ancak benim istediğim tam olarak bu değil. En sol üstteki satır kartı okuttukça sürekli güncelleniyor, yani okuttuğum kartın ID'si oraya yazılıyor. Ben de o kutucuğa girilen bilgiye göre kişilerin sol tarafında bulunan ID'leri karşılaştırıp Geldi veya Gelmedi yazdırmaya çalışıyorum. Ancak işlemler gerçek zamanlı yapıldığı için her kartı okuttuğumda sadece bir kişi geldi olarak gözüküyor.

Yine de yardımınız için çok teşekkür ederim. :):)
 
Merhaba
Makro ile olur dersen
Kod:
Sub numan()
Dim x As Long
Application.ScreenUpdating = False
For x = 10 To Range("A" & Rows.Count).End(3).row
If Range("D" & x).Value <> "GELDİ" Then
If Range("A1").Value = Range("A" & x).Value Then
Range("D" & x).Value = "GELDİ"
Else
Range("D" & x).Value = "GELMEDİ"
End If
End If
Next x
Application.ScreenUpdating = True
End Sub
 
Merhaba
Makro ile olur dersen
Kod:
Sub numan()
Dim x As Long
Application.ScreenUpdating = False
For x = 10 To Range("A" & Rows.Count).End(3).row
If Range("D" & x).Value <> "GELDİ" Then
If Range("A1").Value = Range("A" & x).Value Then
Range("D" & x).Value = "GELDİ"
Else
Range("D" & x).Value = "GELMEDİ"
End If
End If
Next x
Application.ScreenUpdating = True
End Sub

Hocam makro kullanmayı bilmiyorum. Biraz araştırayım, nasıl kullanıldığını öğreneyim. Öğrenip denedikten sonra geri dönüş yaparım...
 
Merhaba
kod sayfasına(sipla data sayfasının kod bölümüne
burda
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range
başlığında başka kod olamalı
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [A1]) Is Nothing Then Exit Sub    
    numan    
End Sub
Modüle
Kod:
Sub numan()
Dim x As Long
Application.ScreenUpdating = False
For x = 10 To Range("A" & Rows.Count).End(3).row
If Range("D" & x).Value <> "GELDİ" Then
If Range("A1").Value = Range("A" & x).Value Then
Range("D" & x).Value = "GELDİ"
Else
Range("D" & x).Value = "GELMEDİ"
End If
End If
Next x
Application.ScreenUpdating = True
End Sub
yapıştırıp deneyiniz
 
Son düzenleme:
Merhaba
Arduino devrelerini merak ediyorum
Örn:
1)İç ağda çalışır mı (Ip numarası ile haberleşme v.s.)
2)ekran bağlanabilir mi?
ekran ile haberleşme olursa
3)vericide herhangi bir kontak kapatıldığında
ekranda örn: 1. kontak kapatıldı yazdırılabilinir mi?
Ayrıca buzzer v.s. sesli uyarı bağlanabiliyor mu?
bir vericide maxmum kaç adet giriş ve çıkış var
kısaca bilgi verebilirmisiniz
 
Merhaba
Arduino devrelerini merak ediyorum
Örn:
1)İç ağda çalışır mı (Ip numarası ile haberleşme v.s.)
2)ekran bağlanabilir mi?
ekran ile haberleşme olursa
3)vericide herhangi bir kontak kapatıldığında
ekranda örn: 1. kontak kapatıldı yazdırılabilinir mi?
Ayrıca buzzer v.s. sesli uyarı bağlanabiliyor mu?
bir vericide maxmum kaç adet giriş ve çıkış var
kısaca bilgi verebilirmisiniz

Arduino için http://arduinoturkiye.com bu siteden bilgi alabilirsiniz.
 
Merhaba
kod sayfasına(sipla data sayfasının kod bölümüne
burda
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range
başlığında başka kod olamalı
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [A1]) Is Nothing Then Exit Sub    
    numan    
End Sub
Modüle
Kod:
Sub numan()
Dim x As Long
Application.ScreenUpdating = False
For x = 10 To Range("A" & Rows.Count).End(3).row
If Range("D" & x).Value <> "GELDİ" Then
If Range("A1").Value = Range("A" & x).Value Then
Range("D" & x).Value = "GELDİ"
Else
Range("D" & x).Value = "GELMEDİ"
End If
End If
Next x
Application.ScreenUpdating = True
End Sub
yapıştırıp deneyiniz

İyi günler Hocam;

Dediğiniz işlemi yaptım ancak hiç bir değişiklik olmadı. Belki yanlış yapmış olabilirim, bilmiyorum.

Arduino sorunuza gelecek olursam.

İç ağda çalışabiliyor. Yani bir Ethernet portu veya wi-fi modülü ile ağ içinde işlemler yaptırılabiliyor.

Ekran bağlanılabiliyor. Ancak önceden tanımlanmış bir ekran olması gerekli. Herhangi bir LCD panele takılmıyor.

Evet, kontak kapatıldığında ekrana kontağın kapandığı yazdırılabiliyor.

Buzzer veya hoparlör ile sesli uyarılar yapılabiliyor.

Ben Arduino Uno kullanıyorum. Bunda 14 tane dijital 6 tane de analog pin bulunuyor.

Çok gelişmiş bir kart Arduino. İstenilen her işlem yaptırılabiliyor. Motor sürdürülebiliyor. Akıllı ev sistemleri veya robotlar gibi bir çok karmaşık sistemler yapılabiliyor.
 
İyi günler Hocam;

Dediğiniz işlemi yaptım ancak hiç bir değişiklik olmadı. Belki yanlış yapmış olabilirim, bilmiyorum.

Arduino sorunuza gelecek olursam.

İç ağda çalışabiliyor. Yani bir Ethernet portu veya wi-fi modülü ile ağ içinde işlemler yaptırılabiliyor.

Ekran bağlanılabiliyor. Ancak önceden tanımlanmış bir ekran olması gerekli. Herhangi bir LCD panele takılmıyor.

Evet, kontak kapatıldığında ekrana kontağın kapandığı yazdırılabiliyor.

Buzzer veya hoparlör ile sesli uyarılar yapılabiliyor.

Ben Arduino Uno kullanıyorum. Bunda 14 tane dijital 6 tane de analog pin bulunuyor.

Çok gelişmiş bir kart Arduino. İstenilen her işlem yaptırılabiliyor. Motor sürdürülebiliyor. Akıllı ev sistemleri veya robotlar gibi bir çok karmaşık sistemler yapılabiliyor.
Merhaba
Sayın ZeroWin
Öncellikle açıklamaların için Teşekkür ederim
Kodlara Gelince
Aşağıdaki kodları bir modüle kopyalayıp bir düğmeye atayıp denermisiniz

Kod:
Sub numan()
Dim x As Long
Application.ScreenUpdating = False
For x = 10 To Range("A" & Rows.Count).End(3).row
If Range("D" & x).Value <> "GELDİ" Then
If Range("A1").Value <> "" And Range("A1").Value = Range("A" & x).Value Then
Range("D" & x).Value = "GELDİ"
Else
Range("D" & x).Value = "GELMEDİ"
End If
End If
Next x
Application.ScreenUpdating = True
End Sub
 
Merhaba
Zaman tetiklemeli
makro
1) F1 Ve F2 hücrelerine yazılan saatler arası çalışır
2) acil durdurmak için
Kod:
numanMakroDurdur

kodunu butona atanmalı
3)Thisworkbook sayfasının kod bölümüne
Kod:
Private Sub Workbook_Open()
numan
End Sub
Modülede
Kod:
Dim AyarZaman As Date
Sub numan()
Dim x As Long
Application.ScreenUpdating = False
Range("F1").NumberFormat = "[h]:mm:ss"
Range("F2").NumberFormat = "[h]:mm:ss"
If Time > Range("F1").Value And Time < Range("F2").Value Then
For x = 10 To Range("A" & Rows.Count).End(3).Row
If Range("D" & x).Value <> "GELDİ" Then
If Range("A1").Value <> "" And Range("A1").Value = Range("A" & x).Value Then
Range("D" & x).Value = "GELDİ"
Else
Range("D" & x).Value = "GELMEDİ"
End If
End If
Next x
Application.ScreenUpdating = True
AyarZaman = Now + TimeSerial(0, 0, 1)
Application.OnTime AyarZaman, "numan"
End If
End Sub

Sub numanMakroDurdur()
Application.OnTime AyarZaman, "numan", , False
End Sub
kopyalayıp kaydetip dosyayı kapatıp açalım
kapatmadan önce F1 F2 hücrelerine çalışmasını istediğimiz zaman aralıklarını girmeyi unutmayalım
 
Makaleniz için teşekkürler, belki zil sesleri koleksiyonum size yardımcı olabilir, ücretsiz ve günlük olarak güncellenir.
 
Geri
Üst