Bir Elektronikçinin Android Macerası
IoT’nin oldukça popüler olduğu günümüzde, bir çok cihaz ile bağlantı yapmak, bunları birbirleriyle haberleştirmek özellikle önem kazanmaya başladı. Bu tür uygulamalar genellikle ev kullanıcılarına yönelik, günlük hayatı kolaylaştırma amacında olsa da, gelişen teknoloji ve düşen fiyatlar karşısında endüstriyel alanda da IoT benzeri uygulamalar yaygınlaşmaya başladı. Son günlerde büyük oyuncuların çıkardığı son tasarımlarda, cihazlardaki çeşitli parametrelerin telefon ya da tablet üzerinden ayarlanması fikri oldukça yaygınlaştı ve kullanıcılar tarafından benimsendi. Bunun getirisi olarak ekranlı kontrol panellerinin, küçük bir haberleşme ile, tüm bilgilerini aktardığı scada benzeri mobil uygulamaların gelecekte oldukça popülerleşeceğini öngörmek de yanlış olmaz.
Cihazların birbirleriyle bağlantılarında, Wi-Fi, Bluetooth ve GPRS gibi bir çok yöntem ürün geliştiriciler tarafından sıkça tercih edilmektedir. Bundan önceki yazı serimde Wi-Fi ile ilgili örnekler vermiş ve bir uygulama örneği vermiştim. Bu bölümde ise bluetooth ve android yazılım konusuna eğileceğiz.
Bluetooth Module: HC-06
HC-06 ve türevleri günümüzde bir çok kullanıcı tarafından kullanılan, kaynağı ESP8266 gibi Çin olan bir ürün. Ürünün kullanımı ise oldukça basit; ilgili AT komutlarıyla Bluetooth ismi ve şifreleri belirleyebiliyor ve baud ayarlarını da istediğiniz gibi yapabiliyorsunuz. Modülle ilgili daha fazla ayrıntıya internet üzerinden basit bir aramayla ulaşabilirsiniz.
Android Yazılım Geliştirme: MIT App Inventor 2
Günümüzde bir elektronikçinin, bilgisayar tarafında yazılım yazması bir ihtiyaç haline gelmiştir. Gerek kontrol, gerek çeşitli haberleşmelerin testi bu anlamda tasarımcıyı bu yöne kaydırmıştır. Bu anlamda çoğu kişi Windows ortamını ve onun yan ürünü olan Visual Studio ve C# özelinde bir çok program yapmaktadır. Android tarafına geçildiğinde ise tam tersi bir şekilde Java ortamında kod yazımı önem kazanmaktadır. Daha önce Eclipse ve Android SDK üzerinde gelişen tasarım ortamları daha sonrasında Android Studio ve C#’ta yazılım yazmaya uygun ortam sağlayan Xamarin ile birlikte bir çok ayrı noktaya dağılmıştır.
Kendi tecrübelerimi bu konuda paylaşmam gerekirse; low level programlarla haşır neşir olan bizlerin hakkı ile Android yazılım tarafına yönelmesi için ciddi zaman ayrılması gerekiyor. Geliştirme ortamlarındaki sıkıntılardan sonra yavaş derleme ve simülasyon yapma problemleri aşıldıktan sonra ilk “.apk” uzantılı dosyanızı yazmak için bile ciddi süreler ayırmak gerekiyor. Eğer yapılacak şey ciddi bir kontrol ve kayıt sistemi ve kullanıcılara maksimum imkanlar sunulacak ise bu şekilde ilerlemekten başka fazla seçenek yok.
Yalnız, benim gibi, bir kaç cihazı kontrol etmek ve veri almak istiyorsanız bunca zahmete girmenize hatta kod bilmenize dahi gerek yok. Algoritma yeteneğiniz ve biraz da İngilizceniz var ise dünyanın bir numaralı mühendislik okulu MIT’nin sunduğu MIT App Inventor web sayfası üzerinden istediğiniz uygulamayı geliştirebilirsiniz.
App Inventor ile yapboza benzer parçaları uygunlarıyla birleştirerek programlarınızı yazıyorsunuz. PLC tasarımcıların ladder diyagramlarına benzettiğim bu yapıların her birinin içerisindeki koda ulaşmak ise mümkün değil. Geliştirilen her yeni sürümle birlikte daha fazla ek komponent de tasarımın içerisine eklenebiliyor. Bunun yanında yapboz parçaları gibi program yazmanın özünde çocukların hedeflendiğini de belirtmek de fayda var.MIT App Inventor’u kullanabilmek için öncelikle Android bir cihaza sahip olmanız gerekiyor. Daha sonrasında siteye ücretsiz üye olabiliyor ve hemen programlamaya başlayabiliyorsunuz. Denemelerinizi ise Google Play üzerinden indirebileceğiniz MIT AI2 Companion programı ile aynı ağ üzerinden internete bağlanan bilgisayarınız ve telefonunuz arasında online bir şekilde görerek yapabilirsiniz.
Uygulama Zamanı!
Bluetooth ve Android uygulaması için seçtiğim uygulama klasik haline gelmiş led yakıp söndürme uygulaması olacak. Bu kısımda daha önce söylediğim gibi STM32F072 Discovery ile uygulamayı geliştirme yoluna gittim. Android tarafında da bahsettiğim üzere MIT App Inventor’dan yararlandım. İlgili uygulamaya ait videoyu aşağıdan izleyebilirsiniz.
Uygulamada ledlere istenilen şekilde aç/kapa işlemi yapılabileceği gibi otomatik modda sırayla yanıp sönmeleri de slider ile kontrol edilebilir. Uygulamaya ait MIT App Inventor dosyasını buradan indirebilirsiniz. Dosyayı indirdikten sonra aşağıdaki şekilde projeyi import edebilirsiniz. Projeyi kendiniz MIT App Inventor üzerinden derleyebileceğiniz gibi buradan programa ait .apk dosyasını indirebilir ya da aşağıdaki QR kodu telefonunuzla taratarak uygulamayı telefonunuza yükleyebilirsiniz.Uygulama Google Play üzerinden paylaşılmadığından kurmaya çalıştığınızda bazı izinlerin verilmesi gerektiğini göreceksiniz. Android Ayarlar/Güvenlik/Bilinmeyen Kaynaklar üzerinden yüklemeye onay vererek uygulamayı kurmanız mümkün olacaktır.
HC-06’yı STM32F072 Discovery’e bağlamak için ise PA9 (USART1_TX) ve PA10 (USART1_RX) bacakları ile bağlamak yeterli olacaktır. HC-06, 3V3 ile çalıştığından enerjisini yine kit üzerinden almanız mümkün olacaktır. STM32F072 için yazılmış kodu buradan indirebilir, isterseniz ledlerin bağlı oldukları çıkışlara bir adet röle vb. kontak bağlayarak bazı cihazları açıp kapayabilirsiniz.
Gelecek yazıda görüşmek dileğiyle.
Fırat bey merhaba,
Bir sorum olacak ama konu ile ilgili değil. Anlattığınız konu ile ilgili güzel bir video hazırlamışsınız. Görüntüde yazılım ve elektronik kart yan yana gözüküyor. El ile çekilmiş kalitesiz bir görüntüden ziyade çok güzel bir çekim olmuş. Bu tarz profesyonel video görüntülerinin nasıl hazırlandığını hep merak etmişimdir. Bu konuda bilgi verebilirmisiniz? Teşekkür ederim.
Merhabalar Alaattin Bey,
Bu tür videoları hazırlarken profesyonel video düzenleme yazılımlardan yararlanıyorum bunları ücretsiz olarak internet üzerinden bulabilirsiniz. Bunun yanında özellikle elektronik kart çekimi ve buna benzer durumlarda DSLR kamera kullanıyorum. Özellikle elektronik kart üzerinde ayrıntıların öne çıkması için odak/ışık/sahne gibi durumlara dikkat ediyorum. Bir daha ki videoda çekim ortamını da göstermeye çalışırım. İyi günler dilerim.
Bluetooth yerine wifi modül ile aynı işlem yapılamaz mı?
Merhaba Alper Bey,
Benzer işlem Wi-Fi modüllerle de yapılabilir fakat bunun için bir ağ oluşumu söz konusu olmalıdır.
Merhaba Hocam,
bu kullandığınız donanımı Eclipse kullanan bir Android kullanıcısı olarak Java kütüphanesi olarak eklemem mümkün mü? Yani illa ki MIT App Inventor mı kullanmalıyım?
Anlamadım açıkçası dediğinizi.
Mustafa Bey
MIT App Inventory proje dosyası sadece kendi IDE’si üzerinde anlam kazanacağı ve yorumlanacağı için Eclipse veya Android Studio üzerinde açılamayacak veya kütüphane olarak eklenemeyecektir. Muadil bir Bluetooth kütüphanesi veya github projesi bulmanızı öneririm. Arduino ile yapılmış bluetooth uygulamaları, testi kolay başlangıç uygulamalarıdır.
Kolay Gelsin.