stm32 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
stm32 etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

24 Haziran 2018 Pazar

MESH NETWORK HABERLEŞMELİ AKILLI EV OTOMASYON SİSTEMİ ROLE KONTROLÜ





Bu çalışmamda geçen çalışmamda olduğu gibi akıllı ev otomasyonu sistemi üzerine bir uygulama hazırlandı. Geçen çalışmamdaki amacım ev içersinden alınan datalar açılan bir web siteye data gönderiyor ve telefon üzerinden bu dataları anlık çekebiliyorduk. Şimdi ki çalışmamda ise yine kurulan bir web site üzerinden android için oluşturulan program aracılığıyla ev içersindeki röle kartlarını bluetooth mesh network ile aç kapa yaptırabiliyoruz. Yani data akişı bu sefer telefondan röle'ye olacak şekildedir. 


Bu çalışamamdaki diğer bir özellik ise sistem ev içersinde wifi olmasa bile telefon yardımıyla yinede röle aç kapa yapiliyor olmasıdır.  

Kurulan sistem ARM tabalı stm32 mikrodenetleyiciler ile yapılmıştır. 


Kodlar istenirse ardiuno için uyarlanabilir yada siz yapabilirsiniz. Devre baglantı şemaları ve kodlar için iletişime geçebilirsiniz.


Telefon için hazırlanan app 









26 Mayıs 2018 Cumartesi

MESH NETWORK HABERLEŞMELİ EV OTOMASYON SİSTEMİ


Uzun bir süredir üzerinde çalıştığım IoT projemin ilk aşamasını tamamlamış bulunmaktayım. Hedefimde temel bir sistemi oluşturmak vardı ve bu saat itibariyle o temeli tamamladım.

IoT projemdeki amacım; Ev içersinde bulunan çeşitli sensörlerden (gaz, yangın, hırsız alarm, sıcaklık, nem, su baskını algılayan sensörler gibi) bluetooth ile toplanan datalar, internet ortamına wifi yardımıyla cloud'a çıkartılıp daha sonra evden uzakta herhangi bir yerde telefon için oluşturulan  android app veya bir web sitesi tarafından izlenmesidir. Hedeflediğim bu temel IoT projesi amacına ulaşmış bulunmaktayım.


Bu sistemi, her ne kadar ev otomasyonu için yaptığım gözükse bile bir çok otomasyon sistemine uyarlana bilmektedir. Örneğin; bir seranız var ve içersindeki gaz miktarını, topraktaki nemi veya ortam sıcaklığını seranız'dan uzakta olsanız bile internet yardımıyla telefonuzdan takip edebilirsiniz.

Bu IoT projemde ilk olarak kendime ait ücretsiz bir web sitesi ve veri tabanı oluşturdum. Web sitemin adı: http://www.myautomationsystem.ml/myautomationsystem.ml/hkn/sayfa.php. Bu linke giderseniz, sizin için şuanlık anlamsız gözükse bile tablo halinde sensörlerden toplanan eski datalarım gözükmektedir. Bu datalar oluşturmuş olduğum veritabanında saklanmaktadır. Link'e tıkladığınızda o veritabanına bağlanıp dataları alıyor ve tablo halinde yazdırıyor.

web sitesi


İkinci olarak telefon için android app uygulması hazırladım. Bu uygulama, check data butonuna tıklandığında yine web sitesinde olduğu gibi veritabanıma bağlanıp dataları oradan çekip son güncel datayı yazdırmaktadır.

App Uygulaması



Son olarak, işi yapan asıl kısımı hazırladım. Burada sensörler ve toplayıcım vardır. Sensörlerim mesh network protoklü ile bluetooth yardımıyla birbirleriyle haberleşmektedir. nRF24L01 bluetooth ve wifi modül olarak  ESP8266 kullanılmıştır. Sensör ve toplayıcı (gateway) kartımın üzerinde stm32 serili ARM tabanlı mikro denetleyiciler bulunmaktadır.  Toplayıcı (gateway) dataları aldıktan sonra esp8266'ya gönderir ve oradan oluşturulan veritabanına yazıdırılmaktadır.




Artık elimde IoT için temeli oluşturulmuş kodlarını tamamen kendimin hazırladığım bir proje bulunmaktadır. Bu sistemi dahada ileriye taşımak için çalışacağım. Kodlar ve proje için benimle iletişime geçebilirsiniz. Buna benzer bir proje isterseniz benimle irtibata geçebilirsiniz. 


Android apk'yı buradan indirebilirsiniz : https://drive.google.com/file/d/17vGuECcoEiz35FX00x9cmBzs14oZ7sPh/view







7 Ocak 2017 Cumartesi

RTOS (REAL TIME OPERATING SYSTEM)


RTOS (REAL TIME OPERATING SYSTEM)

Mikrodenetleyiciler, aynı anda bir komut satırını işletebilen entegrelerdir.

 Yukarıda sonuz döngü içine giren mikrodenetleyici ilk olarak birinci komut satırını işler sonra ikinci komutu daha sonra üçüncü komutu işler. Yani işleri sırayla yapar.


Örneğin; ardiuno’da loop fonksiyonun içine iki adet sonsuz döngü yerleştirelim. Mikrodenetleyici ilk sonuz döngüye girdiğinde oranın içindeki komutlaru sırayala işler fakat ikinci sonuz döngüye birinci döngüden çıkamadığı için oradaki görevleri işletemez.  

RTOS, mikrodenetleyicilerin içine gömülen bir işletim sistemidir aynı windows, linux gibi. RTOS’un en önemli özelliği görevleri parelelmiş gibi yapma yeteneği olmasıdır, bu özelliğiyle FPGA benzetebiliriz. Örneğin, Bilgisayarda müzik dinliyorsunuz spotify’de bir yandada internette gazete okuyorsunuz. Bilgisayarda bu işler parlelmiş gibi yapılıyor. İnternette gezereken internet sayfanız donsa bile veya internet sayfanız geç açılsa bile arka tarafta siz şarkınızı gayet akıcı bir şekilde dinliyor olacaksınız. Bu iki görevi yani yazılımda sanki iki farklı while sonsuz döngüsünde olduğunu düşünün. Yani bilgisayar iki farklı sonuz döngüyü aynı anda çalıştırıyor. Aynı bu yapıyı mikrodenetleyicilerdede RTOS sayesinde yaptırabilirz.

RTOS, sayesinde iki veya daha fazla sonsuz döngüyü aynı anda çalıştırabiliriz.




Yukarıdaki resimde RTOS ile çalışan iki farklı sonsuz döngü içersinden alınan iki sinyal görülmektedir.

Birinci sinyal sdkart’a data yazma zamanını, ikinci sinyalde her 6 ms’da ekg devremizden örnekleme aldığımızı düşünelim. Burada yapılan iş 6 ms örnekleme alıp onu sd kart’a yazmak fakat bunu RTOS’suz yaparsak 1.sinyalde A1’den A2’ye kadar lojik bir seviye olmuştur. Yani, sd karta yazma işi uzun sürmüş yaklaşık  60 ms. RTOS’suz yaptığımız düşünürsek 60 ms’de biz 6 adet ekg verisini kaybetmiş oluruz çünkü tek bir sonuz döngü içinde olacak önce ekg datasını okucayacak sonra onu sd kart’a kaydedecek. Kaydetme işi uzun olduğundan okuma yapıyacak ve bu durumda datalar eksik yazılacaktır.

Fakat bunu RTOS kullanarak yaparsak bu başımıza gelmeyecek. İkinci sinyalde de bu görülmektedir. A1 ve A2 süresi uzun sürse bile biz örnekleme alacağız yani datalarımız kaybolamayacak.  Burada iki farklı sonsuz döngü olacak. Birinci döngüde sd karta yazacak, ikinci döngüde örnekleme alacağız kesintisiz.