18 Aralık 2016 Pazar

Raspberry Pi ile Whatshapp Kullanmak

Gömülü İşletim Sistemleri Dersi Uygulama Projesidir




Merhaba! Bugün sizinle Raspberry Pi 2 ile yaptığım Whatshapp Uygulamasını anlatacağım.
Dilerseniz öncelikle Raspberry Pi kurulumundan bahsedeyim.

Rasberry Pi 2 Kurulum Adımları

Öncelikle 
  • Raspberry Pi 2
  • ethernet kablosu, 
  • Sd kart ve 
  • güç kablosu edindim.

İkinci el aldığım raspi'yi satan vatandaş sağolsun ethernet kablosu da getirdi, toplamda 90 tl tuttu, 16 gb sd kartı da a101'den  15 tl'ye aldım :D evde güç kablosu buldum toplamda 105 tl tuttu, bence bilmek isterdiniz:)


Sd karta imaj yazma işleminden itibaren kurulum adımlarına başlayalım.

1-Raspbian Kurulumu

Rapbian'ı indirmemiz gerekiyor. Burdan indirebilirsiniz.
Win32 Disk İmager yazılımını kuruyoruz. (Bu program raspbian'ı sd karta yazmamızı sağlayacak.) Burdan indirip rahatça kurabilirsiniz.

Bununla ilgili edindiğim tecrübelere değineyim.
  • Normalde kullandığımız cihazlar gibi açma kapama tuşu olmayan RPi'ye güç kablosu ile açıp kapatıyoruz.
  • Sd kartı tak-çıkar yaparken de güç kablosunun takılı olmamasına(RPi'nin kapalı olmasına) dikkat etmeliyiz. Bodoslama çıkarınca işletim sistemi çökebiliyor ve imajı tekrar yazdırmanız gerekebilir.
  • İnternetten (kurulumu anlatan web sayfalarından) bulduğunuz imajı yazdırmaya çalışmayın. Ben yurtta kaldığım ve internet sıkıntılı olduğu için o tarz yöntemlere başvurdum ancak tamamen zaman kaybıydı. Yukarıda belirttiğim linkten indirin, Win32 Disk İmager ile karta yazdırın.

2- RPi'ye internet paylaşımı

Şimdi kartı Raspberry Pi cihazımıza takıp, ethernet kablomuzu ve güç kablosunu bağlıyoruz. 
Burdan bilgisayarımızda interneti paylaştırmamız gerekiyor. Ağ ve paylaşım merkezinden, ağ paylaştırma özelliğini açıyoruz.
Bu sayede Raspberry Pi'de internet paylaşımı yapmış bulunuyoruz.


  • Kablolu ağa internet paylaştırırken dilersek manual olarak ip adresi girebiliriz; dilersek de otomatik olarak ip adresi almasını sağlayabiliriz.

  • Ben bu noktada pek çok sıkıntı yaşadım, örnek olması adına bunları paylaşmak istiyorum. Öncelikle RPi'm için ip adresi öğrenme sıkıntısı yaşadım. Bunun için sd kartın içindeki cmdline.txt dosyasında birkaç değişiklik yapmam gerekti. Bunun sebebi, kendi ip adresimi kendim belirlemekti. 


dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1
root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

olan içeriği; 
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait ip=10.55.185.10::10.55.185.208
şeklinde değiştirdim. 
Elbette ki siz, bilgisayarınızı ip adresini öğrenip, ona göre istediğiniz ip adresini verebilirsiniz. Tabii o ip adresinin kullanılmıyor olması şartı ile :)

Bu şekilde belirlediğim ip adresim kendi belirlediğim : 10.55.185.10 olmuş oldu.


3-SSH bağlantısı

Komut ekranından da ipconfig veya arp -a komutlarını yazarak ip adresini öğrenebiliriz.

Buna ekstra olarak bilgi vermek gerekirse Advanced Ip Scanner adında bir programla da, mevcut ip adreslerini çok rahat bir şekilde öğrenebilirsiniz.
Bu yöntem biraz daha anlaşılır. Burdan indirip kurabilirsiniz.

PuTTy ile bağlantımızı yapıp RPi'nin komut ekranına geleceğiz. Burdan PuTTy'yi edinebilirsiniz.

login as: pi
password: raspberry

Bütün bu işlemlerden sonra RPi'nin komut ekranında, kartın hafıza durumunu kontrol etmek adına aşağıdaki komutu girelim.


{df -h}

İnternet bağlantısını kontrol etmek için google'a ping atalım. 


{ping google.com}



Uygulamaya başlamadan önce elbette sistem güncellemelerini yükleyelim. Aşağıdaki komutları yazıp, güncellemeleri bekliyoruz.

{sudo apt-get update && sudo apt-get upgrade}

Rpi cihazının güncellemelerini yükleyelim. 
{sudo rpi-update}


Bütün bu işlemlerden sonra esas uygulama olan kısma geldik.



RASPBERRY PI-WHATSHAPP

Raspberry Pi sadece bir mini bilgisayar değil, dış dünyayla haberleşmemizi sağlayan da bir araçtır. Sensörler, kameralar, giriş/çıkış birimleriyle kullanılabilir ve güzel sonuçlar alabiliriz.
Whatshapp, güncel zamanın popüler bir iletişim aracıdır. 
Bu uygulamada size hem bilinen bir şeyi RPi ile nasıl kullanabiliriz bunu göstermek için hem de az işlemle çok şey yapılabileceğini göstermek istiyorum.

Uygulamada Raspberry Pi'den telefonumda kullandığım Whatshapp'a mesaj göndereceğim. Böyle bi uygulamayı gerekli sensörlerle bi kapı açıldığında kişiye mesaj gitmesi, belli bir sıcaklık normalinin dışına çıkılması, ışık seviyesi gibi artırabileceğimiz örneklerle kullanabiliriz.


Günlük hayatta işlevsel olarak kullanılabilecek bir uygulama.



  1. Python kütüphanelerini yükleyerek başlayalım.



{sudo apt-get install python-dateutil}
{sudo apt-get install python-setuptools}
{sudo apt-get install python-dev}
{sudo apt-get install libevent-dev}
{sudo apt-get install ncurses-dev}

github'dan Yowsup kütüphanesini indirelim. Bu kütüphane python'la whatshapp'ı kullanmamıza yardımcı olacak kütüphanedir. 

{git clone git://github.com/tgalal/yowsup.git}

Kütüphaneyi indirdik, sıra kurmakta.

{cd yowsup}
{sudo python setup.py install}

Şimdi WhatsApp kaydı yapmamız gerekiyor.

{/usr/local/bin/yowsup-cli registration --requestcode sms --phone 905xxxxxxxxx --cc 90 --mcc 286 --mnc 2}

CC: ülke kodudur, Türkiye için 90
MC : mobil ülke kodu, Türkiye için 286
MNC: Operatör kodu. Turkcell için 0, Vodafone için 1, Avea için 2

Önemli noktalardan birine geldik, eğer işlem doğru bir şekilde yapılmışsa
telefona XXX-XXX şeklinde onay kodu gelecek.

{/usr/local/bin/yowsup-cli registration --register XXX-XXX --phone 905xxxxxxxxx --cc 90}

Şimdi ise gelin WhatsApp'ı kullanalım.
Bunun için aşağıdaki komutu yazın.

{-sudo nano /home/pi/yowsup/config}

Config dosyası açılacak.
Burada göreceğimiz : 
pw'i bir yere not alın.(='i de şifreyi girerken yazmanız gerekmektedir.)
status: ok
  kind: free
  pw: xxxxxxxxxxxxxxxxxx=

  price_expiration: 1416553637
  expiration: 1445241022
  login: 90xxxxxxxxxxx

Öğrendiğimiz password'ü buraya girelim.

cc=90
phone=90xxxxxxxxxx
password=pw

Son olarak mesajımızı gönderelim

{/usr/local/bin/yowsup-cli demos -c /home/guler/.yowsuprc -s 905xxxxxxxxx "I love you so much :D"}

Ve sonuç : 



~



Kaynakça:
https://www.raspi-tr.com/2014/10/12/raspberry-piye-ag-kablosu-ile-dogrudan-baglanma/ 
https://www.raspi-tr.com/2012/08/03/debian-raspbian-kurulumu/
http://www.instructables.com/id/WhatsApp-on-Raspberry-Pi/
https://www.youtube.com/watch?v=U64ksMRfhnE
https://www.youtube.com/watch?v=CXdH3Q2boq8









25 Kasım 2016 Cuma

Ubuntu Server 16.10 ile Web Uygulaması


Merhaba! Ben Güler, sizlere Ubuntu Server 16.10 kurulumu hakkında bilgi vereceğim. Ancak kurulumu yapmadan önce pek tabi ki bazı program ihtiyaçlarımız olacak.Gelin bu programlara ve ne işe yaradıklarına bakalım: 


VirtualBox: Sanal makine olan türkçesi bize kurulu olan bir işletim sisteminin yanında farklı bir de işletim sistemi kurmamıza yarayacak olan programdır.
Şuradan indirebilirsiniz.

Ubuntu Server: Ubuntu, Linux tabanlı bir işletim sistemidir. Açık kaynaklıdır. Sunucu serverlar için geliştirilmiştir. Ubuntu Desktop'tan farkı GUI yok ancak bunun bir önemi yok çünkü Ubuntu Server uygulaması yapıyoruz :)
Bunu da şuradan indirdim, 16.10 sürümünü edindim.

PhpMyAdmin: MySql veritabanını internet üzerinden yönetimine yardımcı olan bir sistemdir. Veritabanı işlemleri kolay bir arayüz aracılığıyla çok kolay bir şekilde yapılır.

Yukarda verdiğim linklerden Ubuntu 16.10 ve VirtualBox 5.1'i indirip kurduktan sonra VirtualBox'ı açıyoruz.


Şunu belirtmeden geçmeyeyim VirtualBox'ı kurduktan sonra Ubuntuyu çalıştırırken defalarca sorun aldım. Bunun sebebi VirtualBox'ı 64-bit olarak kurmuşum, Kurulumda Linux-Ubuntu(64-bit) olmasına dikkat etmelisiniz. Yani doğal olarak VirtualBox-Ubuntu uyumu olmalıdır. Bunu farketmek benim 3 saatimi aldı.


Uyarıdan sonra  Ubuntu kurulumuna başlayabiliriz.

Solda (mavi) Yeni sekmesinden yeni bir sanal makine kurmamız gerekiyor. Burda Linux-Ubuntu(64-bit) seçeneklerini seçip istediğimiz ismi veriyoruz. Yukardaki görünüm sanal makine kurulduğundaki ekrandır. Başlat diyoruz...



Başlat dedikten sonra bu ekran çıkacak karşımıza burdan .iso uzantılı Ubuntu 16.10 dosyamızı seçip başlat diyoruz.


Dil seçeneğinden sonra Ubuntu Sunucu Sürümünü Kurun seçeneğine enter'lıyoruz. Sanal makinemiz kurulmaya başlanıyor.

Sanal makinemi kurarken genel olarak default olan seçenekleri seçtim. Ancak aşağıdaki ekrandakilerin hepsini seçtim ne olur ne olmaz diye :) sağlama almak istedim.



Sanal makine kurulduktan sonra PuTTy ile bağlanmalıyız. Bunun öncesinde NAT ayarlarına değer veriyoruz. Ben aşağıdaki değerleri verdim, siz isterseniz ve bilgisayarınızdaki port da müsaitse istediğinizi kullanabilirsiniz.



PuTTy ekranına host name ve port'a aşağıdaki değerleri girdim ve Open dedim.


Komut ekranımız geldi. 
Login ve password değerlerimi girdim ve bağlantı tamamen sağlanmış oldu.


Konsol ekranında güncelleştirmeler yapmamız gerekiyor. 
Öncelikle adettendir: 
sudo apt-get update 
&&
sudo apt-get upgrade



Sistemin, MySql veritabanını tanıması gerekiyor. Bunun içinde güncellemeler yapmamız gerekmektedir.

sudo apt-get install mysql-server

Yazdığımız bu kodla mysql server'ı ubuntu'ya yüklüyoruz. 
Bunun sonrasındaki adımlarda ise veritabanı oluşturma, tablo oluşturma, veri ekleme gibi işlemleri normal bir veritabanında nasıl yapıyorsak burda da gerçekleştirebiliriz.
Örneğin;
CREATE DATABASE vt_ismi; //veritabanı oluştur
CREATE TABLE tablom(name VARCHAR(20) trh DATE);// 2 kolonlu bir tablo oluşturur.
SHOW tablom;
SHOW vt_ismi; // veritabanını gösterir.
USE vt_ismi;//vt_ismi isimli veritabanını kullanmamızı sağlar.
SELECT * FROM tablom; // tablom tablosunun tüm elemanlarını listeler.

~~