STM32F429 Discovery STM32F429 Discovery ile Akıllı Ev Otomasyonu By Konuk Yazar Posted on 15 Nisan 2015 11 min read 8 0 8,786 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhabalar, Arkadaşlar bu yazımızda bir akıllı ev otomasyonu için temel bilgiler verilmek amaçlanmaktadır. Bazı arkadaşlarımızın aklına gelebilir;niye akıllı ev otomasyonu terimini kullanırız.Bunun için birçok örnek vermek mümkündür. Dışarıdasınız ve eve gelince kahvenizin hazır olmasını istiyorsunuz. Dışarıdasınız ve eve gelince sıcak yatağınıza yatmak istiyorsunuz. Evinizin sıcaklık değerini,nem değerini öğrenmek istiyorsunuz. Yattıktan belli süre sonra ışığınızın kapanmasını istiyorsunuz. Yattıktan belli süre sonra oda sıcaklığınızı istediğiniz değerde tutmak istiyorsunuz. Evinizdeki elektronik aygıtları sesle vereceğiniz komutla kontrol etmek istiyorsunuz. Akşam olunca perdenizin veya storunuzun otomatik kapanmasını istiyorsunuz. Yağmur yağınca çamaşırlarınızın ıslanmasını istemiyorsunuz. Ütünüzün prizde takılı kalıp kalmadığını bilmek istiyorsunuz. Sabah olunca perdenizin veya storunuzun otomatik olarak açılmasını istiyorsunuz. Evinize yaklaşan yabancı cisimleri bilmek istiyorsunuz. Yatağınıza yattığınızda kaç kilo olduğunuz öğrenmek istiyorsunuz 🙂 Evinize hırsız girmeye çalıştığında hemen bilmek istiyorsunuz. Çocuğunuzun televizyona yakından bakmasını önlemek istiyorsunuz. Televizyonun,çocuklarınızın uyku saatlerinde çalışmasını istemiyorsunuz. Çocuğunuzun bugün evde ne kadar ders çalıştığını öğrenmek istiyorsunuz. Yatağınızdan kalkmadan önce küvetinizin hazır olmasını istiyorsunuz. İşe giderken kapınızın önünde arabanızın hazır olmasını istiyorsunuz. Yağmur yağdığında havuzunuzun kapanmasını istiyorsunuz. Örnekleri çoğaltmamız mümkün.Önemli olan yenilikçi düşüncelerle bu konuya nasıl yaklaşırım moduna geçebilmek.Bu söylediklerimin hepsini bir mikrocontroller ile kontrol etmeniz mümkündür. Biz de bu uygulamamıza temel olarak dokunmatik ekranla sistemleri nasıl kontrol edebiliriz.Kullandığımız elektronik devre nedir.Bunlar hakkında bilgi vereceğiz. Kullanılan Malzemeler STM32F429 Discovery Röle NPN Transistör 4.7k Direnç 1 adet duy 1 adet ampul Buradaki temel mantığımız,mikrodenetleyiciden gelen DC 3,3 volt ile röleyi uyararak 220 volt AC lambamızın yanmasını sağlamak. Burada lamba temel alınmıştır.Lamba yerine başka aktuatorleri uyarabiliriz. Dokunmatik ekranda kullanmak istediğiniz arayüzü gui builder programlarıyla tasarlayabilirsiniz.Biz bu çalışmamızda kütüphaneleri inceleyerek tasarım gerçekleştirdik. [php] #include "stm32f4xx.h" #include "defines.h" #include "tm_stm32f4_delay.h" #include "tm_stm32f4_disco.h" #include "tm_stm32f4_emwin.h" /* GUI modulleri */ #include "button.h" #include "DIALOG.h" int main(void) { BUTTON_Handle hButton, hB1, hB2, hB3, hB4,mm,geri; TEXT_Handle txtInfo,txtInfo1,txtInfo2,txtInfo3,txtInfo4; uint8_t i; /*Sistem başlatılıyor*/ SystemInit(); /*Delay fonksiyonları başlatılıyor */ TM_DELAY_Init(); /*LEDs başlatılıyor */ TM_DISCO_LedInit(); /*emWin başlatılıyor */ if (TM_EMWIN_Init() != TM_EMWIN_Result_Ok) { while (1) { /* Toggle Kırmızı led */ TM_DISCO_LedToggle(LED_RED); Delayms(100); } } txtInfo = TEXT_CreateEx(0,290, 260, 17, 0, WM_CF_SHOW, TEXT_CF_HCENTER, 900, "WWW.ROBOTURKA.COM"); TEXT_SetFont(txtInfo, &GUI_Font8x15B_ASCII ); TEXT_SetBkColor (txtInfo, GUI_WHITE); TEXT_SetTextColor(txtInfo, GUI_RED); txtInfo1 = TEXT_CreateEx(0,260, 260, 17, 0, WM_CF_SHOW, TEXT_CF_HCENTER, 900, "BY BILAL KAYA"); TEXT_SetFont(txtInfo1, &GUI_Font8x15B_ASCII ); TEXT_SetBkColor (txtInfo1, GUI_BLACK); TEXT_SetTextColor(txtInfo1, GUI_WHITE); txtInfo2 = TEXT_CreateEx(0,40, 260, 30, 0, WM_CF_SHOW, TEXT_CF_HCENTER, 900, "AKILLI EV OTOMASYONU"); TEXT_SetFont(txtInfo2, GUI_FONT_8X16X1X2 ); TEXT_SetBkColor (txtInfo2, GUI_BLACK); TEXT_SetTextColor(txtInfo2, GUI_WHITE); txtInfo3 = TEXT_CreateEx(0,10, 260, 30, 0, WM_CF_SHOW, TEXT_CF_HCENTER, 900, "ROBOTURKA"); TEXT_SetFont(txtInfo3, GUI_FONT_8X16X1X2 ); TEXT_SetBkColor (txtInfo3, GUI_BLACK); TEXT_SetTextColor(txtInfo3, GUI_WHITE); /*GUI_ID_OK ID numarası ile buton oluştur */ hButton = BUTTON_CreateEx(10, 120, 219, 30, 0, WM_CF_SHOW, 0, GUI_ID_BUTTON0); /* Yazı ve font ayarla*/ BUTTON_SetText(hButton, "Sisteme Giris…"); BUTTON_SetFont(hButton, &GUI_Font8x15B_ASCII); GUI_Exec(); /* Buton basılana kadar bekle*/ while (1) { /* Eğer buton basıldıysa*/ if (GUI_GetKey() == GUI_ID_BUTTON0) { /* Led kapa */ TM_DISCO_LedOff(LED_GREEN); /* Döngüyü bitir */ break; } /* Toggle yeşil led */ TM_DISCO_LedToggle(LED_GREEN); /* 100ms bekle */ GUI_Delay(100); } /* Butonun işlevini bitir */ BUTTON_Delete(hButton); /* Butonu LCD den sil */ GUI_ClearRect(10, 120, 319, 150); /*Led kontrolü için buton oluştur*/ hB3 = BUTTON_CreateEx(10, 130, 105, 50, 0, WM_CF_SHOW, 0, GUI_ID_BUTTON3); hB4 = BUTTON_CreateEx(124, 130, 105, 50, 0, WM_CF_SHOW, 0, GUI_ID_BUTTON4); /* Butonların fontunu ayarla*/ BUTTON_SetFont(hB3, &GUI_Font13HB_ASCII); BUTTON_SetFont(hB4, &GUI_Font13HB_ASCII); /* Buton yazılarını ayarla */ BUTTON_SetText(hB3, "LAMBA AC"); BUTTON_SetText(hB4, "LAMBA KAPA"); /* Butona basılmayınca arka plan rengi*/ BUTTON_SetBkColor(hB3, BUTTON_CI_UNPRESSED, GUI_DARKGREEN); /*Butona basılınca arka plan rengi */ BUTTON_SetBkColor(hB3, BUTTON_CI_PRESSED, GUI_GREEN); /* Butonları göster */ GUI_Exec(); while (1) { switch (GUI_GetKey()) { case GUI_ID_BUTTON3: /* Button 3 basılınca*/ TM_DISCO_LedOn(LED_RED); break; case GUI_ID_BUTTON4: /* Button 4 basılınca */ TM_DISCO_LedOff(LED_RED); break; default: break; } } } void TM_DELAY_1msHandler(void) { TM_EMWIN_UpdateTouch(); } [/php] STM32F429 Discovery Boardumuzun PG14 nolu pininden çıkış alınmaktadır.Bunu kullanıma göre değiştirmek mümkündür.(Datasheet incelenerek) Temel olarak burada sistemin işleyişi hakkında bilgi verilmiştir.Bu çalışma temel bir çalışmadır.Kullanmak istediğiniz sistemlere göre revize etmeniz mümkündür.Daha önce de dediğim gibi lamba yerine bir ısıtıcıyı uyarabilirsiniz.Bu tamamen size kalmış. Proje dosyalarına buradan ulaşabilirsiniz. Bu uygulamanın gerçekleştirilmesinde “http://stm32f4-discovery.com/” sitesinden yararlanılmıştır.