Yıllık olarak yapılan takvimde istenilen gün ve zamanlarda GPIO portunu açan ve kapatan uygulama. LED yerine Röle kullanılarak 220v ile çalışan cihazları kontrol edilebilir.
Açılış ve kapanış saat leri arasında GPIO pininde elektrik vardır, kapanış saati geldiginde pinden keser. İstenilirse toplam çalışma zamanlarını tesbit edip, aylık olarak raporlaya bilir.4'erli grup halindeki butonlarla başlangıç ve bitiş zamanlarını ayarlıyorsunuz.
Timer methodu için http://blogs.msdn.com/netmfteam/archive/2008/03/04/using-the-dispatcher.aspx deki yöntemi kullandım. Tabii bizim uygulama için bir kaç yerini özelleştirmek gerekti. İsteyene tam kaynak kodlarını verebilirim.
public class Timer
{
public string zaman="";
private Text textView;
private DateTime start;
private DispatcherTimer dispatchTimer;
public Timer(Text text)
{
textView = text;
textView.TextContent = new TimeSpan(0).ToString();
start = DateTime.Now;
}
public void Start()
{
dispatchTimer = new DispatcherTimer(textView.Dispatcher);
dispatchTimer.Tick += new EventHandler(UpdateTimerText);
dispatchTimer.Interval = new TimeSpan(0, 0, 5);
dispatchTimer.Start();
}
public void UpdateTimerText(object sender, EventArgs e)
{
textView.TextContent = DateTime.Now.ToString();
int acsaat = 0, acdak = 0,kasaat=0,kadak=0;
kasaat = Convert.ToInt16(zaman.Substring(19, 5).Substring(0, 2));
kadak = Convert.ToInt16(zaman.Substring(19, 5).Substring(3, 2));
acsaat=Convert.ToInt16(zaman.Substring(12, 5).Substring(0,2));
acdak = Convert.ToInt16(zaman.Substring(12, 5).Substring(3, 2));
if (DateTime.Now.Hour == acsaat && DateTime.Now.Minute == acdak)
Kontrol.Write(true);
if (DateTime.Now.Hour == kasaat && DateTime.Now.Minute == kadak)
Kontrol.Write(false);
}
}
Video su aşagıda