Raspberry Pi Kitabım Çıktı

Uzun ve yorucu bir çalışmanın sonunda “Raspberry Pi ile Linux ve Elektronik Uygulamaları” isimli kitabım kısa bir süre önce okuyucuları ile buluştu.

Birçok yabancı ve yerli kaynağın bütünlüklü şekilde bir arada ele alındığı kitabın Raspberry Pi ile onun Linux ve elektronik uygulamaları konusundaki Türkçe kaynak eksikliğini gidereceğini temenni ediyorum.

Kitabın içeriğini ve hakkındaki soruları tanıtım sitesi olan www.raspberrypikitabi.com adresinden detaylı olarak inceleyebilirsiniz.

Sponsorlar sayesinde kitabı ücretsiz olarak temin etmek de mümkün olacak, bunun için gerekli şartları ve yapmanız gerekenleri SSS bölümünden kontrol edebilirsiniz.

Kitabın, ülkemizin geleceği olan çocuklarımızın yetişmesinde ve bilgiye erişiminin kolaylaştırılması adına fayda getirmesi temennisiyle.

Önsöz: http://www.raspberrypikitabi.com/onsoz/
İçindekiler:: http://www.raspberrypikitabi.com/icindekiler/
Sık Sorulan Sorular (SSS): http://www.raspberrypikitabi.com/sik-sorulan-sorular/

Raspberry Pi’a (Linux) MEB Kök Sertifikası Nasıl Yüklenir?

SSL (Secure Socket Layer), https gibi güvenli iletişim protokollerinin kullandığı şifreleme altyapısını sağlar. Güvenli bir protokol kullanarak gerçekleştirilen iletişim, her iki tarafta da (istemci ve sunucu) şifrelenerek aktarılır. Bunun için asimetrik şifreleme adı verilen bir yöntem kullanılır. Bu yönteme göre; özel ve açık anahtar adı verilen iki adet anahtar üretilmiştir. Açık anahtar herkesçe erişilebilirdir ve şifrelenmek istenen veri henüz istemci tarafında iken bu anahtar ile şifrelenerek gönderilir. Bu anahtarın şifrelediği veriyi sadece özel anahtar açabilir.

Diğer çağdaş işletim sistemlerinde olduğu gibi, Raspbian dağıtımı ile de dünyada en çok itibar gören yani güvenli kabul edilen açık anahtarlar yüklü olarak gelir. Bu anahtarlar sertifika adı verilen dosyalar içinde kayıt edilmiştir (uzantıları cert, crt, pem olabilir). Sözünü ettiğim sertifikaların bulunduğu dizin /etc/ssl/certs’dir. Dilerseniz bu sertifikaların depolandığı dizine yeni sertifikalar da yükleyebilirsiniz. Ancak yüklediğiniz sertifikanın güvenilir bir kaynaktan geldiğine emin olmalısınız. Ne de olsa yükleyeceğiniz bu sertifika açık ağlar üzerinde seyahat edecek olan verilerinizi şifrelemek için kullanılacak. Aksi takdirde iletişiminizin arasına giren bir saldırgan (MITM saldırı yöntemi) tüm verilerinizi deşifre edebilir ve ele geçirebilir.

Yüklemek istediğiniz sertifikanın uzak bir web sunucusunda bulunduğunu varsayarsak, öncelikle Raspberry Pi bilgisayarına indirilmesi gerekir:

[email protected]:~ $ cd /etc/ssl/certs
[email protected]:~ $ sudo su

[email protected]:~ # wget http://sertifika.meb.gov.tr/MEB_SERTIFIKASI.cer

Yukardıdaki gibi MEB_SERTIFIKASI.cer adlı sertifikanın Raspberry Pi bilgisayarında kullanılabilmesi için pem (base64) biçimine dönüştürülmesi gerekir bunun için  aşağıdaki komutu kullanabilirsiniz:

[email protected]:~ # openssl x509 -inform der -in MEB_SERTIFIKASI.cer  -out MEB_SERTIFIKASI.pem

Pem dosyası oluşturulduktan sonra cer dosyasını silebilirsiniz. Yeni yüklenen sertifikaların ağ bağlantısı ile çalışan programlar tarafından kullanılabilmesi için sertifikalara ait sembolik linklerin yeniden oluşturulması gerekir.

[email protected]:~ # rm -rf *.cer

[email protected]:~ # update-ca-certificates -f

Bu sertifika gerektiğinde ilgili istemci program tarafından otomatik olarak kullanılacak ve veri trafiği sadece uzak sunucunun çözebileceği şekilde şifrelenecektir. Tekrar hatırlatmak gerekirse; sertifikaların güvenli bir kaynaktan geldiğinden emin olmalısınız, çünkü sertifikayı oluşturan kuruluş (yani özel anahtarına sahip olan kuruluş) tüm şifreli trafiğinizi açık olarak görebilir. Bu (kök sertifika yükleme işlemi) genellikle güvenli internet bağlantılarının incelenmek/filtrelenmek istendiği güvenlik duvarı uygulamalarında kullanılır.

 

Raspberry Pi’yi SSH ile Uzaktan Yönetmek

Raspberry Pi’yi SSH kullanarak uzaktan yönetebilirsiniz. SSH (Secure SHell) uzaktaki bir bilgisayara güvenli bir şekilde bağlantı kurmak için kullanılan bir iletişim protokolü ve aynı zamanda bir ağ servisinin adıdır. Pi’de SSH servisi varsayılan olarak aktiftir. Bir PC üzerinden SSH ile Pi’nin komut konsoluna bağlanmak için bir SSH istemcisi program kullanılır. PuTTY en çok kullanılan SSH istemcisi programlardan birisidir ve ücresizdir. PuTTY’yi resmi web sitesi olan www.putty.org adresinden indirip çalıştırdığınızda sizi aşağıdaki gibi arabirim karşılar.

fig25

Okumaya devam et “Raspberry Pi’yi SSH ile Uzaktan Yönetmek”

Raspberry Pi’nin İnternet Hızını Ölçmek

Speedtest.net, geniş bant internet bağlantılarının hızını test etmek için en çok tercih edilen sitelerden birisidir. Raspberry Pi’nin internet hızını (download ve upload) komut satırından test etmek için bir speedtest.net istemcisi olan bir phyton betiğini kullanabilirsiniz. [1]

$ wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
$ chmod a+rx speedtest_cli.py
$ sudo mv speedtest_cli.py /usr/local/bin/speedtest-cli
$ sudo chown root:root /usr/local/bin/speedtest-cli

Betiği çalıştırıp Internet hızınızı test etmek için aşağıdaki komutu girmeniz yeterlidir.

$ speedtest-cli --server 4668

speedtest_net_2015-03-23_23-20-15

Komuta verdiğimiz –server parametresi ile hız testi yapılırken kullanacağımız Ankara lokasyonlu sunucunun numarasını belirttik (4668). Tüm test sunucularının listesini görmek için –list parametresini kullanabilirsiniz.

[1] https://github.com/sivel/speedtest-cli

 

Raspberry Pi’yi İnternete Bağlamak

Raspberry Pi’nin internet bağlantısını yapmak için, tüm ağ bağlantılı cihazlarda olduğu gibi temel olarak iki tanımlamaya ihtiyaç vardır. Bunlar ağ geçitinin ip adresi ve DNS sunucusunun ip adresidir.

Ağ Geçiti Adresi

Ağ geçiti adresi bulunulan ağa ait olmayan bir IP paketinin hedefine ulaştırılması için gönderileceği ağ arabiriminin adresidir. Yani iletişim kurulmak istenen bilgisayar bulunulan ağ içerisinde yer almıyorsa veri ağ geçitine yönlendirilir. Örneğin 192.168.0 adresli ağda yer alan bir bilgisayar, 194.27.16.17 numaralı bir internet adresi ile iletişim kurmak isterse iletişim isteği varsayılan ağ geçidine yönlendirilir. Dolayısıyla Raspberry Pi’nin internet bağlantısını yapmak için modeminizin yerel adresini ağ geçidi adresi olarak kullanmak yeterli olacaktır. Ağ geçidi adresini  tanımlayabileceğiniz yapılandırma dosyası /etc/network/interfaces‘dir. Aşağıdaki örnekte bu dosya düzenlenmek üzere nano metin editörü ile açılıyor.

$ sudo nano /etc/network/interfaces

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Okumaya devam et “Raspberry Pi’yi İnternete Bağlamak”

Raspberry Pi ile gmail üzerinden e-posta göndermek?

Komut satırından eposta göndermek için SSMTP aracını kullanabilirsiniz. Bu yazıda, apt-get ile kolayca yükleyebilileceğiniz SSMTP aracı ile gmail hesabınız üzerinden nasıl eposta gönderebileceğinizi anlatacağım. Öncelikle Raspberry Pi’nizi güncelleyin ve SSMTP aracını yüklemek için şu komutu verin:

sudo su
apt-get install ssmtp

SSMTDP’nin konfigürasyon dosyası olan ssmtp.conf’a gmail hesap bilgilerinizi tanımlamak için şu komutu verin:

vi /etc/ssmtp/ssmtp.conf

Dosyanın içeriğini aşağıdaki şekilde düzenleyin.

Okumaya devam et “Raspberry Pi ile gmail üzerinden e-posta göndermek?”

Wireless bağlantısını, ethernet ile Raspberry’e paylaşma

Raspberry Pi’yi çeşitli yöntemlerle kullanabiliyoruz. Eğer uygun donanımınız varsa direkt görüntü alıp kullanabilirsiniz ya da Raspberrynizi internet ağına dahil ederek ssh ile bağlanabilirsiniz. Ama koşullar her zaman istediğiniz gibi olmayabiliyor. Örneğin ben masaüstü pc kullanıyorum, modem bir başka odada. Yani Raspberry’i ethernet ile doğrudan modeme bağlasam da bu benim işime yaramıyor. Bunun için farklı bir yöntem denedim ve sizlerle paylaşmak istiyorum.

Masaüstü bilgisayarımda wireless ile bağlantı sağlıyorum. Elimde bir adet TP-Link ethernet switch vardı. PCmin bağlantısını, RPi ile paylaşabilir miyim diye araştırdığımda kolayca mümkün olduğun gördüm. Bilgisayarımda Ubuntu 14.04 yüklü. Bir adet ethernet kablosu ile bilgisayarım ve switchi bağladım. Raspbberymi ise bu switche bağladım. Bundan sonra geriye çok ufak bir ayar yapmak kalıyor.

Okumaya devam et “Wireless bağlantısını, ethernet ile Raspberry’e paylaşma”

Raspberry Pi için UPS (Yedek Güç Kaynağı) tasarlamak

Güç kesilmelerine karşı Raspberry Pi’yi korumak için iyi bir UPS sistemi nasıl olmalıdır:

UPS Donanımı

  • I2C üzerinden Raspberry Pi ile haberleşebilmeli
  • Şarj edilebilir güç kaynağının akım besleme kapasitesi Raspberry Pi üzerinden okunabilmeli (kontrollü shutdown için)
  • Yedek güç kaynağının devrede olup olmadığı okunabilmeli (I2C)
  • Yedek güç kaynağı kendi kendini şarj edebilmeli
  • UPS online modda çalışmalı (geçişlerde resetlenmeleri önlemek için)
  • 12V ile çalışabilmeli (otomobil uygulamaları)
  • Enerji geri geldiğinde güvenli boot ve shutdown sürecine yetecek kadar şarj edip Raspberry Pi’yi başlatmalı

UPS Yazılımı

  • I2C ile güç kaynağının durumunu izlemeli gerektiğinde shutdown prosedürünü başlatabilmeli
  • Yağılandırma için konsol tabanlı menü sistemli programa sahip olmalı.
  • Farklı türde bataryaların şarj katakteristiğini desteklemeli.
  • Mevcut batarya kapasitesini ve şarj sürecini görüntüleyebilmeli.
  • Ani güç kesintileri, bataryadan devam etme ve kontrollü kapanış süreçlerini loglamalı.

Raspberry Pi ile DHT11 Sensörünü Kullanarak Sıcaklık ve Nem ölçmek – 2

Daha önce burada DHT11’in C kodları ile nasıl okunacağını anlatmıştım. Şimdi de bu kodları biraz daha geliştirip, okunan sıcaklık ve nem değerlerini bir MySQL tablosuna kaydedeceğiz.

Tablomuzun yapısı şöyle:

CREATE TABLE `logs` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `date` int(11) DEFAULT NULL,
 `temp` int(255) DEFAULT NULL,
 `rh` int(255) DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;

Okumaya devam et “Raspberry Pi ile DHT11 Sensörünü Kullanarak Sıcaklık ve Nem ölçmek – 2”

Raspberry Pi’nin Wireless bağlantısını otomatik yenilemek

Daha önce burada Raspberry Pi’nin kablosuz ağa nasıl bağlanacağından bahsetmiştik. Kablosuz bağlantı yapıldıktan sonra çeşitli nedenlerle bağlantı kesilebilir. Örneğin Access Point kapsama alanı dışına çıkabilir, kilitlenebilir veya Raspberry Pi kablosuz adaptörü güç sorunundan dolayı kararsızlığa düşüp kablosuz bağlantı kesilebilir. Bu durumda tek bağlantı yöntemi kablosuz adaptör ise Raspberry Pi’nize ağ üzerinden erişemeyeceksiniz demektir.

Okumaya devam et “Raspberry Pi’nin Wireless bağlantısını otomatik yenilemek”

Raspberry Pi’nin Disk Kullanım Durumu İncelemek

Ncdu (NCurses Disk Usage) linux kullanıcılarının iyi bildiği du (disk usage) komut satırı aracının ncurses kütüphanesi ile yeniden yazılmış kullanıcı etkileşimli sürümü. ncdu da  aynı du gibi metin tabanlı ekranda hizmet veren bir araç.

Okumaya devam et “Raspberry Pi’nin Disk Kullanım Durumu İncelemek”

RTL8188eu Kablosuz Ağ Adaptörü ile Raspberry’i İnternete Bağlamak

$_12

Sizde benim gibi ebay’dan ucuz bir kablosuz ağ adaptörü satın aldıysanız benim gibi biraz uğraşacaksınız demektir. Burada Raspberry forumunda bulduğum çözümün nasıl uyguladığını anlatacağım.  Raspbian kendiliğinden aygıtı yükleyip kullanılır duruma getirmiyor malesef. İşlemlere başlamadan önce hangi marka/model bir kablosuz adaptörüne sahip olduğunuzu teşhis etmelisiniz.

Okumaya devam et “RTL8188eu Kablosuz Ağ Adaptörü ile Raspberry’i İnternete Bağlamak”

Raspberry-Pi durum ledlerinin anlamları

Model B””””de yer alan durum led””””lerinin anlamları şöyle:

rasberry_pi_status_leds

  • ACT – D5 (Green) – SD Karta (disk) erişimi
  • PWR – D6 (Red) – 3.3 V güç mevcut
  • FDX – D7 (Green) – Full Duplex ağ bağlantısı mevcut
  • LNK – D8(Green) – Ağ veri iletişimi yapılıyor
  • 100 – D9(Yellow) – 100Mbit ağ bağlantısı mevcut

Ayrıca bu ledler”den bazı önemli bilgiler elde etmek de mümkün. Ledlerden en önemlileri D5 ve D6 ledleri.

Şöyleki:

  • D6 hiç yanmıyorsa enerji beslemesinde sorun var
  • D6 yanıyor fakar D5 sönükse SD Karttaki işletim sistemi imajı okunamıyor
  • D5 3 kere yanıp sönerse start.elf dosyası bulunamadı*
  • D5 4 kez yanıp sönerse start.elf dosyası yüklenemedi*
  • D5 7 kez yanıp sönerse kernel.img dosyası bulunamadı demektir*

* Bu mesaj kodları 2012 firmware”inde kullanılan kodlardır, yeni sürümlerde bu kodlar değişiklik gösterebilir. En güncel mesaj kodlarını buradan görebilirsiniz.

Raspberry Pi ile DHT11 Sensörünü Kullanarak Sıcaklık ve Nem ölçmek

Ebay dan sipariş verdiğim DHT11 sıcaklık ve nem sensörü elime ulaşır ulaşmaz hemen bir deneme yapayım dedim. DHT11 düşük maliyetli dijital (one wire) bir sıcaklık ve bağıl nem ölçer. Tam da raspberry piye göre. DHT11 in bacak şemasını aşağıdaki şekilde de görebileceğiniz gibi. 1 bacak Vcc , ikinci bacak Data ve 4. bacak ise Toprak (Gnd) 3. bacak NC (not-connected) yani kullanılmıyor. DHT11 in veri sayfasına göre göre 3.3v-5.5v aralığında beslenebiliyor ve 50 santigrat dereceye kadar sıcaklık ölçebiliyor yaptığım denemelerde 50 derecenin de üzerinde ölçüm yapabildiğini belirtmek istiyorum.

dht11

Okumaya devam et “Raspberry Pi ile DHT11 Sensörünü Kullanarak Sıcaklık ve Nem ölçmek”

xively ile Pi’nin durumun uzaktan takip etmek

cloud-computing

xively.com bir uzaktan ölçümleme ve monitoring servisi. Cron‘a ekleyeceğimiz phyton betikleri ile Raspberry Pi’nin ram, cpu, disk kullanım ve sıcaklık durumunu uzaktan canlı olarak takip etmek için kullanabilirsiniz. xively verileri kolayca analiz edebilmek için değişken zaman aralıkları için grafiklere dönüştürüyor. Aşağıdaki resimleri inceleyebilirsiniz.

Ayrıca Xively’nin android uygulamaları ile mobil aygıtlarınızdan da takip edebilirsiniz. Örneğin Trigger özelliğini, CPU sıcaklığı yada CPU yükü belirlediğiniz bir değere ulaşınca, veya disk alanı azalınca  SMS ve E-posta ile haber verilmesini sağlayabilirsiniz. Okumaya devam et “xively ile Pi’nin durumun uzaktan takip etmek”