yakut özcan kişisel blog: 2017

27 Haziran 2017 Salı

Android Studio "no permissions" Hatası ve Çözümü

Tablet Modeli
Merhaba arkadaşlar letgo'dan debug işlemlerim için 50TL bir ultra-uber tablet aldım. Android Studio ile deneme için uygulama yazdım taktım tableti veee tabi ki hata ile karşılaştım. 
Ve hemen google da aradım ve stack overflow da çözümü buldum ve burada da bulunsun diye yazıyorum. 
Android Studio Terminal

Evet tek yaptığımız adb server öldürüp tekrar başlatmak oldu :) 

18 Haziran 2017 Pazar

Android Things ve RaspberryPi ile Blink Led Uygulaması

Uzun zamandır denemeyi düşündüğüm android things i sonunda bu akşam raspberry pi 3 ile denedim ve ilk led uygulamamı yaptım. Tahmin ettiğimden kısa sürdü uygulamam ve sorunsuz çalıştı.
Şu adresten raspberry pi için olan imajı indirdim.
https://developer.android.com/things/preview/download.html

Etcher ile imajı 8GB bir hafıza kartına yazdırdım ve aşağıda ki işlemleri yaptım.
Öncelikle imaj yazdırma bittikten sonra modeme ethernet kablosu ile bağlamanız gerekiyor ve cihaz ip aldıktan sonra terminalden adb yardımı ile bağlanabiliyorsunuz.
"adb connect Android.local" 
Bu şekilde bağlandı mesajı aldıktan sonra başarıyla bağlandınız demektir. Sırada kolaylık olsun diye Wi-Fi bağlantısı da yapalım onun içinde adb yardımı ile yapacağız.
"adb shell" yazıyoruz sonrasında da
"am startservice \
    -n com.google.wifisetup/.WifiSetupService \
    -a WifiSetupService.Connect \
    -e ssid "WiFiAdi" \
    -e passphrase "WiFiSifre"  "
yazıp enter ile işlemimiz bitiyor sonra Android Studio LogCat de bağlanıp bağlanmadığını görebilirsiniz. 
Android Things için pin isimleri farklı ona da şu adresten ulaşabilirsiniz.
https://developer.android.com/things/hardware/raspberrypi-io.html

Ben örneğimde GND ye yakın olan "BCM4" kullandım.

Örnek projenin github linki aşağıda iyi çalışmalar.
https://github.com/yakutozcan/HelloAndroidThings

**https://developer.android.com/things/hardware/raspberrypi.html


Ücretsiz MQTT Araçları


Merhaba arkadaşlar benim nesnelerin interneti ve mqtt çalışmalarımda kullandığım bazı araçları github da listeledim ve sizlerle de paylaşmak istedim iyi çalışmalar. Araçlar ile ilgili bir sorunuz olursa her zaman sorabilirsiniz. İyi çalışmalar.

15 Haziran 2017 Perşembe

Ücretsiz MQTT Sunucuları


Merhaba arkadaşlar bu yazımda elimizin altında dursun niteliğinde Mqtt sunucu hizmeti veren yerleri yazacağım. Bu servisleri de github da tutacağım ki sizinde eklemek istediklerinizi ekleye-bilelim. 



11. sırada ki en çok kullandığım.
Umarım ilerleyen günlerde güncelleme ve ekleme fırsatım olur iyi çalışmalar.. 

11 Haziran 2017 Pazar

Arduino NodeMCU ile aRest Kullanımı


Merhaba arkadaşlar NodeMCU ile olan maceralara kaldığımız yerden devam ediyoruz. Şimdi size bir arduino kütüphanesi tanıtmaya çalışacağım. ESP8266'li bir cihazınıza uzaktan veya local erişmenize olanak sağlıyor. İsmi arest.io isminde REST geçiyor şimdi burada REST ne diye anlatmayalım google'da var :)

Bu yazımda localde çalıştırmayı göstereceğim.

Örneğin hem arayüzü mevcut hemde asıl özelliği olan GET methoduna JSON çıktı verebiliyor olması :)



Kodlarda ingilizce açıklama mevcut ben kullanımı için TR açıklama yaptım.
3 Ana özelliği ile localde led açıp kapatabilirsiniz.
  //http://192.168.1.104/digital/6/0 pin 6 kapat  //http://192.168.1.104/digital/6/1 pin 6 aç  //http://192.168.1.104/mode/56/o output ayarla
Yukarıda ki şekilde basit bir kullanımı var bu istekleri gönderdiğimiz de aşağıda ki gibi bir çıktı veriyor.
{"message": "Pin D6 set to 1", "id": "1", "name": "esp8266", "hardware": "esp8266", "connected": true}  
{"message": "Pin D6 set to 0", "id": "1", "name": "esp8266", "hardware": "esp8266", "connected": true}
{"message": "Pin D6 set to output", "id": "1", "name": "esp8266", "hardware": "esp8266", "connected": true}

İlgili Kütüphane:
arest.io

7 Haziran 2017 Çarşamba

Arduino String veriyi Char veri tipine dönüştürme.

Merhaba arkadaşlar arduino ile uğraşırken kullandığım bir fonksiyonu sizinle paylaşmak istedim String giren veriyi char olarak çıkartıyor :) Maksat blog da bulunsun..

6 Haziran 2017 Salı

ESP8266 ile Telegram Bot Kullanımı

Telegram uygulaması
Merhaba arkadaşlar yine ıvır-zıvıra İnternet erişimi verip herhangi bir servise, mesajlaşma uygulama botlarına bağladığım bir yazı ile karşınızdayım..
Olay zaten çok aşırı efsane zor bir şey değil kütüphane hazır ben sadece sizinde bilginiz olsun "aaa böyle bir şey varmış" demenizi ve test etmek için böyle bir yazı yazdım :) Botun kütüphanesine gelecek olursak çok stabil değil bağlanması uzun sürüyor galiba kaynak kodlarını incelemedim ama bir kere komutları almaya başladığında sorunsuz çalışmaya devam ediyor.
Şu yazıda nasıl telegram botu oluşturulur değinmiştim.
https://yakutozcan.blogspot.com.tr/2016/11/raspberrypi-telegram-botu-hareket-sensoru.html

9 Mayıs 2017 Salı

RaspberryPi Toggle Switch ile SSH Aktif Etme

RaspberryPi SSH Toggle
Merhaba arkadaşlar RaspberryPi yazılarımıza kaldığım yerden devam ediyorum. Yine ufak bir python scripti ve elektronik bilgisi ile RaspberryPi için bir pratik uygulama yapacağız.

Sorun: RaspberryPi'nin SSH bağlantısını açık bırakmak güvenlik açığı oluşturabiliyordu. 

Çözüm: Bende bunun için bir fiziksel switch ekledim eğer switchden açık konumuna getirirseniz, python kodumuz sayesinde SSH serviside aktif hale geliyor. Bence basit ama etkili bir çözüm oldu. :)


Benim ortam böyle :) 

14 Mart 2017 Salı

Android Studio 2.3 instant run hatasi ve çözümü

Merhaba arkadaşlar Android Studio güncelledikten sonra Asus Zenfone 2 telefonumda uygulamalar instant run hatası vermeye başlamıştı

Yukarıda ki gibi bir hata ile karşılaşıyordum ufak bir araştırmadan sonra Asus'un kendi optimizasyon yazılımı benim uygulamamın servisini engelliyormuş. Aşağıda ki görselde ki gibi

Sizde benzer bir hata ile karşılaşırsabilirsiniz diyerekten paylaştım iyi çalışmalar.


10 Mart 2017 Cuma

En çok kullandığım linux komutları

Merhaba arkadaşlar bu yazımda daha önce bahsettiğim Linux komutlarının devamı ve daha kapsamlı halde toparlayıp kısa açıklamalar ile sizinle paylaşacağım. Genelde “$” işareti görürsünüz yanlış hatırlamıyorsam “root” yetkisi gereken komutlar için dolar işareti kullanılıyordu.

  • lsb_release -a “Dağıtım bilgisine erişmeyi sağlar”
  • dmidecode --type bios “ ile sisteminizin donanım özelliklerinin bilgisine ulaşabilirsiniz.”
    • system
    • Baseboard
    • Processor
    • Memory
  • uname -a “Kernel(Çekirdek) bilgisini öğrenmek için kullanabilirsiniz.
  • fdisk -l “Disk bölümlerini görüntüleme”
  • uptime “Sistemin açık kalma süresi”
  • free -m “Kullanılan ram miktarı”
  • cd /dizinadi “Dizinler arası gezinme”
  • cp kopyalanacak_dosya kopyalanan_dosya “Dosya kopyalamaya yarar”
  • mv kopyalanacak_dosya kopyalanan_dosya “Dosya taşımaya yarar, aynı zamanda isim değiştirme için kullanılır”
  • pwd “bulunduğun dizini gösterir
  • ls “Dosyaları listeler”
  • mkdir klasör_adi “Klasör oluşturmaya yarar”
  • mkdir -p klasor_adi/altklasor_adi/son “Alt dizinler oluşturarak klasör oluşturma”
  • rm -rf “İzin istemeden klasör silme”
  • ls -la “Gizli dosya ve dizinleri de listeler”
  • cat dosya_ismi “Dosya içeriğini terminalde okuma”
  • nl dosya_ismi “Dosya içeriğini terminalde satır sayıları ile birlikte gösterir”
  • tail -n 5 dosya_ismi “Son 5 satırı terminalde okumamızı sağlar”
  • head -n 5 dosya_ismi “İlk 5 satırı terminalde okumamızı sağlar”
  • wc dosya_ismi “-l satır, -c karakter, -w ile de kelime sayısını görürüz”
  • find /dizin_adi -name dosya_adi.txt “Dizinde arama yapmak için kullanılır”
  • find /dizin_adi -perm 777 “Dizinde 777 ile izin verilmiş dosyaları bulur”
  • whereis program_adi “Programın çalıştırılabilir dizinin olduğu yeri gösterir”
  • clear[CTRL+L] “Terminali temizler”
  • history “Terminal geçmişini gösterir” (Ev dizininde .bashrc ile HISTORY size değiştirebiliriz)
  • !! “Terminalde son kullandığınız komutu çalıştırır”
  • !k “k ile başlayan daha önce kullandığınız komutu çalıştırır”
  • history -c “Terminal geçmişini siler”
  • komut1&&komut2 “iki komut çalıştırmak için kullanılır”
  • [TAB] “Terminalde kod tamamlamaya yarar iki kez üst üste bastığınızda liste şeklinde gösterir.
  • shutdown -h now “Sistemi kapatır”
  • shutdown -h now+10 “Sistemi 10dk sonra kapatır”
  • reboot “Sistemi yeniden başlatır”
  • ps aux “Sistemde çalışan işlemleri görüntüler”
  • top “Bir başka sistem işlemlerini gösteren komut”
  • kill 785 “Çalışan uygulamayı sonlandırır 785 = pid”
  • who “Sistem üzerindeki kullanıcıları listeler”
  • whoami “O an komutu çalıştıran kullanıcının kim olduğunu söyler”
  • su - kullaniciadi “Kullanıcılar arası geçişi sağlar”
  • dpkg -i paketadi.deb “Debian sistemlerde paket kurmaya yarar”
  • dpkg --purge remove programadi “Sistemde kurulu paketi kaldırma”
  • rpm -ivh paketadi.rpm “RedHat sistemlerde paket kurmak için kullanılır”
  • rpm -ev paketadi “RedHat sistemlerde kurulu paketi kaldırma”
  • apt-get install programadi “Debian sistemlerde program kurmaya yarar”
  • apt-cache search programadi “Debian sistemlerde depolarda programadi var mı diye arar”
  • apt-cache show programadi “Debian sistemlerde programadi ile ilgili bilgileri gösterir”
  • apt-get update “Debian sistemlerde güncelleme için kullanılır”
  • apt-get uprade “Debian sistemlerde yükseltme için kullanılır”
  • apt-get dist-upgrade “Debian sistemlerde Debian dağıtımınızın versiyonunu yükseltir”
  • apt-get autoremove “Debian sistemlerde kullanılmayan paketleri kaldırır”
  • apt-get autoclean “Debian sistemlerde program kalıntılarını siler”
  • yum install programadi “RetHat sistemlerde program kurmaya yarar”
  • ifconfig “Sistemimizin ağ ayarlarını görüntülemek için kullanılır”
  • iwconfig “Sistemimizin wireless ayarlarını görmek için kullanılır”
  • ping -c 3 ip_adresi “Ip adresine 3 adet sorgu gönderir”

Şimdilik bu kadar arkadaşlar. 

14 Şubat 2017 Salı

Java ile seriport haberleşmesi

Uygulama Ekran Görüntüsü
Merhaba arkadaşlar bu yazımda Java ile serialport ile arduino haberleşmesi için önceki yazımda kullandığım uygulama üzerinden daha gelişmiş ve düzenli hale getirdiğim uygulamayı tekrar paylaşıyorum kodlar da açıklama satırları mevcut. Uygulama serimonitörü açık kaldığı sürece dinliyor ve altta ki "Gelen Veri" kısmına yazıyor.

9 Şubat 2017 Perşembe

RaspberryPi ile barkod okuma işlemi

Merhaba yine belki bir işe yarar diyerek yazdığım ve dilim döndüğünce anlatmaya çalıştığım bir konu ile karşınızdayım. 

Örnek QR kodu
Python, raspberry pi ve usb web cam ile bar kod okuduktan sonra NodeJS mini web servisimize GET isteği ile bu okunan barkod içerisinde ki veriyi göndereceğiz.


İlk önce python için kurmamız gereken araçları aşağıda ki komut ile raspberrypi kuruyoruz.
sudo apt-get install ipython python-opencv python-scipy python-numpy python-setuptools  python-pip

Kurulum bittikten sonra
sudo pip install https://github.com/sightmachine/SimpleCV/zipball/master
SimpleCV kuruyoruz daha sonra barkodları okumamıza yardımcı olacak "Zbar" isimli uygulamayı kuruyoruz.
sudo apt-get install python-zbar
Bu kurulum işlemi de bittikten sonra aşağıdaki komut ile usb de bağlı olan webcam i kontrol ediyoruz. 
lsusb 
lsusb görünüm
Eğer tüm işlemler sorunsuz gerçekleşirse işlemin sonunda benim yaptığım uygulama şu şekilde bir hal aldı.
Sol tarafta raspberry pi üzerinde çalışan barkod okuma uygulamamız ortada bakodumuz, sağ tarafta ise NodeJS web servisimiz var.

htop
Uygulama kodları

4 Şubat 2017 Cumartesi

Stacer - Ubuntu sistem optimizasyon aracı


Merhaba arkadaşlar uzun bir yazı değil sadece geliştiren arkadaşa destek olmak ve tasarımını beğendiğim için paylaşma gereği duydum. 
Başlıktan da anlaşılacağı üzere uygulama Ubuntu için bir sistem optimizasyon aracı bu araç ile sistem önbelleği, sistem servisleri, sistem başlangıç uygulamalarını görüp kontrol edebiliyorsunuz. 
Kurulum için debian paketi mevcut .deb indirdikten sonra aynı dizinde
sudo dpkg --install Stac*
komutunu çalıştırmanız yeterli olacaktır.

Github:
İndirme link:
Stacer/releases

Etcher ile işletim sistemi bağımsız ön yüklenebilir diskler oluşturma

Etcher
Merhaba arkadaşlar 101. yazım ile karşınızdayım. Bu yazımda başlıktan da anlaşılacağı üzere işletim sistemi bağımsız yani çoğu işletim sisteminde kullanabileceğiniz bir bootable usb disk ve sd kart hazırlama programından bahsedeceğim. Ben ubuntu üzerinde raspberry pi için sd kart oluşturmakta kullanıyorum. Grafiksel arayüz ve stabil olması benim çok hoşuma gitti.


Kendi sitesinde hazırlanmış olan bu gif ile ne kadar basit olduğu anlaşılıyor. Kullanacak olduğunuz imajı seçiyorsunuz ardından sd kart veya usb belleği son olarak "flash" yazma işlemini başlatıyorsunuz.


Ben yazımı yazarken desteklenen işletim sistemleri ve güncel sürümleri.

Etcher indirmek için

Github link

3 Şubat 2017 Cuma

Android ile arduino bluetooth kullanımı

Merhaba arkadaşlar yeni bir android, arduino yazısı ile karşınızdayım. Bu yazım da Adafruit'in NeoPixel isimli RGB ledi ile HC05 bluetooth modülünü birlikte kullanarak bir android uygulamanın kaynak kodlarını paylaşacağım. 

Bağlanti Şeması

14 Ocak 2017 Cumartesi

Android, NodeJS ve Arduino ile sıcaklık bilgisi olayları


Merhaba blog okuyucularım bu yazımızda yine 2-3-5 tane platformu bağlayıp bir şeyler ortaya çıkartacağız. NodeJS ile bir web servisi buna GET ile sıcaklık değeri gönderecek bir NodeMCU ve bu gelen değerleri SQLite ile kayıt edeceğiz daha sonra da Android ile GetTemp diyerek gelen JSon verisini grafiğe dökeceğiz :) Yazı kısa olacak gibi şu yüzden kod açıklamayı beceremiyorum veya anlamsız geliyor. Kodlar yine Github üzerinde sizlerle olacak. Sunucu ise her zaman ki gibi DigitalOcean üzerinde. 

10 Ocak 2017 Salı

Arduino ve Java ile MQTT uygulaması

yakut ozcan

Hala iş arama sürecinde oluşum ve sürecin git-gide kötüye gittiği günlerde tek eğlencem ve neşe kaynağım diyebileceğim blog yazılarına devam..
Bu yazımda yine bence dolu-dolu bir içerik ile karşınızdayım. İçeriğinden bahsetmek gerekirse Nodemcu ve esp8266 için hazırlanmış bir Wi-Fi yönetim arayüzünden bahsedeceğim, Nodemcu da arduino kodları ile shiftr.io  MQTT protokolü üzerinden haberleşeceğim. Son olarak da işin içine birazcık Java girecek :) 
Kısaca yaptığım şeyler aslında belirli kütüphanelerin kullanımı ve basit bir örnek diyebiliriz.

7 Ocak 2017 Cumartesi

Galiba en iyi yaptığım şey şiir hissetmek.

Naber ? Ben galiba kötü.
O yüzden de en iyi yaptığım şey olan hissettiğim şiirleri paylaşacağım. (Daha önce kir yazımda şiir dinlenmez, okunmaz hissedilir demiştim.)

dünya adaletsiz cocuk


5 Ocak 2017 Perşembe

Raspberry pi Java blink örneği

Merhabalar hep python paylaşıyordum sonra dedim ki neden Java yok. Benim en sevdiğim programlama dili olan Java ile basit bir şekilde led yakıp söndürme uygulaması kodları paylaşacağım.

Led bağlantı şekli
Led +(Anot) RPi_Pin=GPIO_07 
Led -(Katot) RPi_Pin=Ground
 Uygulamayı dizüstü bilgisayarımda Netbeans ile yazdım ve derledim. 
Derledikten sonra dist klasörünü sıkıştırıp yine dizüstü bilgisayarımda kurulu olan web server(NGINX,Apache..) ile raspberry pi içerisine indirdim.(wget 192.168.10.10/dist.zip) 
Uygulama ekran görüntüsü

Uygulama Github:
dist.zip içinde derlenmiş java uygulaması mevcut. Netbeans için gerekli kütüphane de dist içerisinde mevcut.

4 Ocak 2017 Çarşamba

Raspberry Pi ile max7219 dot matrix kullanımı

Merhaba raspberry pi ile maceralarım devam etmekte bu yazımda max7219 kullanımından bahsedeceğim python ile yine Telegram bot yardımı ile bir uygulama üzerinde göstereceğim.


Python üzerinde kullandığım kütüphane şu adreste
https://max7219.readthedocs.io/en/latest

RaspberryPi bağlantı şekli 
max7219_Pin=1 VCC  RPi_Pin=2 5V
max7219_Pin=2 GND  RPi_Pin=6 GND
max7219_Pin=3 DIN   RPi_Pin=19 GPIO10(MOSI)
max7219=4 CS     RPi_Pin=24 GPIO8(SPI CSO)
max7219_Pin=5 CLK  RPi_Pin=23 GPIO11(SPI CLK)
Yukarıda ki şekil pek anlaşılır olmadı ve bende ki dot matrix 5 pinli şekilde ki 6 o yüzden aşağıda ki metinden de yardım alabilirsiniz.
Her zaman ki gibi kodlarım Github üzerinde ve yorum satırları ile anlatmaya çalıştım. 
Github Link: