Raspberry Pi’nin kendi sitesinden Raspbian Lite imajını indirip, SD karta yazıp ilk boot’u yaptığınız varsayılmaktadır.
Her şeye başlamadan önce Pi’miz için ilk ayarları yapmamız gerekiyor.
Bunun için hazırladığınız Rasbian Lite imajı ile Pi’yi açın.
login ekranı geldiğinde pi yazıp entera basın, password sorulduğunda da raspberry yazarak terminale giriş yapabilirsiniz.
| Raspbian GNU/Linux 8 raspberrypi tty1
raspberrypi login : pi |
İlk ayarları yapacağımız aracımızın adı raspi-config. Çalıştırmak için
pi@raspberryipi:~ $Raspbian’ın IP adresini öğrenerek işe başlayabiliriz. Bunun için 2 yöntem mevcut. Birincisi Pi’ye monitör ve klavye bağlayarak açılış yaparız.login ekranı geldiğinde aşağıdaki şekilde giriş yapıyoruz.
| pi@raspberrypi:~ $ sudo raspi-config |
![]()
Buradaki her seçeneğin anlamını internette bulabilirsiniz. Bizim hızlıca yapmamız gereken işlemler şöyle.
Expand File System : Bu madde üzerindeyken entera bastığınızda SD kartınızdaki boş alanın tamamı Raspbian dosya sistemine bağlanır.
Change User Password : Açılışta raspberry yazarak giriş yaptığınız şifreyi değiştirmenizi sağlar. Örneklerde hep raspberry şifresi kullanılacağı için, herhangi bir karışıklık yaşamamak adına hemen değiştirmeyin bu şifreyi.
Boot Options : Açılış tercihlerini seçebilirsiniz.
B1 Console : Kullanıcı adı ve şifre girerek konsol oturumu açar.
B2 Console Autologin : Sizin adınıza otomatik login yapar ve kullanıcı adı şifre girmekle uğraşmazsınız.
B3 Desktop : Masaüstü modu
B4 Desktop Autologin : Masaüstü modda otomatik kullanıcı girişi yapar.
*** Eğer Pi’yi masaüstü bilgisayar gibi değil de teknik olarak kullanacaksanız Console modlarından her hangi birini seçiniz.
Internationalisation Option : Yerelleştirme ayarlarıdır.
Change Locale : tr_TR paketleri eklenir. Fakat default locale olarak en_GB.UTF-8 seçilmiş olmalıdır.
Change Timezone : Asia altından Istanbul seçilir. (Siz farklı bir şehirde yaşıyor olabilirsiniz fakat saat sisteminde Istanbul tüm Türkiye saat sistemini temsil eder.
Change Keyboard Layout : Önce klavye tipi seçimi gelir. Standart klavyeler için Generic 105-key (Intl) PC seçimiyle devam edilebilir. Bir sonraki ekranda English (UK) klavye ayarları görünür ve alt kısmındaki Other seçilir, daha sonra Turkish ve son olarak da tekrar Turkish seçilir. Bundan sonra bir iki ayrıntı ayarı var klavyeyle ilgili. The default for the keyboard layout ve No compose key seçimleri ile bu adımlar atlanır ve klavye ayarlarımız tamamlanır.
Advanced Options :
SSH : Pi’mizi monitör ve klavye bağlamadan uzaktan terminal bağlantısı ile yönetmemizi sağlayan servistir. Etkinleştirmeliyiz.
SPI , I2C, GPIO Server : Elektronik iletişim için aktifleştirmemiz gerekiyor.
Tüm ayarları yapıp Finish dedikten sonra Pi yeniden başlayacak.
Sistemimizi Güncel Tutalım
İlk işimiz yüklü paketlerimizi güncellemek. Konsolda sırasıyla sudo apt-get update ve sudo apt-get upgrade yazıyoruz.
| pi@raspberrypi:~ $ sudo apt-get update Get:1 http://mirrordirector.raspbian.org jessie InRelease [14,9 kB] Get:2 http://archive.raspberrypi.org jessie InRelease [13,2 kB] … … Fetched 9.280 kB in 18s (489 kB/s) Reading package lists… Done pi@raspberrypi:~ $ sudo apt-get upgrade Reading package lists… Done Building dependency tree Reading state information… Done Calculating upgrade… Done The following packages will be upgraded: … … Do you want to continue? [Y/n] Y |
Bir süre yüklemeden sonra sistemdeki tüm kurulu paketlerimiz güncellenmiş olur. Bu güncellemelerden sonra Reboot önerilir.
| pi@raspberrypi:~ $ sudo reboot |
Apache – PHP5 – MySQL kurulumu
| pi@raspberrypi:~ $ sudo apt-get install apache2 apache2-utils |
| pi@raspberrypi:~ $ sudo apt-get install libapache2-mod-php5 php5 php-pear php5-xcache |
| pi@raspberrypi:~ $ sudo apt-get install php5-mysql |
| pi@raspberrypi:~ $ sudo apt-get install mysql-server mysql-client |
mysql kurulumunda bir ekranda sizden mysql root kullanıcısıiçin bir şifre belirlemeniz istenecek. New password for the MySQL “root” user: için bir şifre belirleyip, devam edin. (Belirlediğiniz mysql root şifresini unutmayın…!)
Bu şifreyi şimdiki adımda kuracağımız phpmyadmin bize soracak.
| pi@raspberrypi:~ $ sudo apt-get install phpmyadmin |
Kurulum esnasında bize hangi web server’ı kullandığımız sorulacak. Web server to reconfigure automatically: sorusuna yanıt olarak apache2 seçin ve devam edin…(Önce Space’e sonra Enter’a basın) İlerki adımlarda az önceki root şifremizi soracak. Her bir adımda şifremizi yazarak devam ediyoruz. Konsola düştüğümüzde kurulumlar tamamlanmış olacak.
Apache – PhpMyAdmin ayarları
/etc/apache2/apache2.conf dosyasını açıyoruz.
| pi@raspberrypi:~ $ sudo nano /etc/apache2/apache2.conf |
PageDown tuşu ile dosyanın en sonuna inip aşağıdaki satırı ekliyoruz.
| Include /etc/phpmyadmin/apache.conf |
Satırı ekledikten sonra Ctrl+O ile dosyayı kaydedip, Ctrl+X ile nano’dan çıkabiliriz.
Yeni bi şeyler kuruyorsak şart olmasa da Reboot candır.
| pi@raspberrypi:~ $ sudo reboot |
Apache Web Server Testi
Web serverımızın çalışıp çalışmadığını kontrol için Pi ile aynı ağdaki bilgisayarınızın web browserına Pi’nin IP adresini http://raspberrypi-ip-adresi/ şeklinde girdiğinizde aşağıdaki gibi bir sayfa ile karşılaşıyor olmanız lazım.
phpmyadmin için ise http://raspberrypi-ip-adresi/phpmyadmin adresini kullanabilirsiniz.
Python3 Kurulumu
| pi@raspberrypi:~ $ sudo apt-get install python3 |
Kurulum sonrası Python3 testi yapmak için konsoldayken Python3 yazıp bakabiliriz.
| pi@raspberrypi:~ $ python3 Python 3.4.2 (default, Oct 19 2014, 13:31:11) [GCC 4.9.1] on linux Type “help”, “copyright”, “credits” or “license” for more information. >>> |
Ctrl+C veya Ctrl+Z basarak Python’dan çıkabiliriz.
Python3 – MySQL Kurulumu
| pi@raspberrypi:~ $ sudo apt-get install python3-pip pi@raspberrypi:~ $ sudo pip3 install pymysql |
PHP – MySQL Testi
Örnek senaryomuzda Pi’nin web arayüzü vasıtasıyla kullanıcıyla etkileşime geçip 2 adet metin girmesini isteyeceğiz. Daha sonra bu girilen metinleri MySQL veritabanına yazacağız.
Girdiğimiz metinleri okumayı ve I2C’den diğer cihazlara göndermeyi ise Python3 ile yapacağız.
İlk iş olarak MySQL veritabanımızı oluşturalım.
| pi@raspberrypi:~ $ mysql -u root -p Enter password: mysql-root-şifreniz Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.5.52-0+deb8u1 (Raspbian)Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.mysql> CREATE DATABASE pibase; Query OK, 1 row affected (0.00 sec) mysql> USE pibase; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> CREATE TABLE `messages` (
-> `id` int(11) NOT NULL AUTO_INCREMENT,
-> `text_one` varchar(16),
-> `text_two` varchar(16),
-> PRIMARY KEY (`id`)
-> );
Query OK, 0 rows affected (2.77 sec)
mysql>
|
Default PHP klasörümüz; /var/www/html/ bu klasöre girelim ve index.php isimli bir dosya oluşturalım.
| pi@raspberrypi:~ $ cd /var/www/html/ pi@raspberrypi:/var/www/html/ $ sudo nano index.php |
index.php dosyamızın içeriğini aşağıdaki gibi oluşturalım.
<!DOCTYPE html>
<html>
<body>
<form action="action_page.php">
Metin 1<br>
<input type="text" name="text1" >
<br><br>
Metin 2<br>
<input type="text" name="text2" >
<br><br>
<input type="submit" value="Gönder">
</form>
<p>Veritabanına işlenmesini istediğiniz metinleri yazıp
<strong>Gönder</strong> butonuna basınız.</p>
</body>
</html>
Aynı klasörde bir de action_page.php isimli dosya oluşturalım.
| pi@raspberrypi:/var/www/html/ $ sudo nano action_page.php |
action_page.php dosyamızın içeriği de şu şekilde olacak. Fakat dosyayı oluştururken $password = “mysql-root-şifreniz“; satırını sizin şifrenize göre düzenlemeyi unutmayın.
<?php
$text1 = $_POST["text1"];
$text2 = $_POST["text2"];
$servername = "localhost";
$username = "root";
$password = "mysql-root-şifreniz";
$dbname = "pibase";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO messages (text_one, text_two)
VALUES ('$text1', '$text2')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
<br>
<a href="index.php">Go back to index</a>
Şimdi web browserımızda http://raspberrypi-ip-adresi/index.php yazarak kodumuzu test edebiliriz.
Örnek olarak birinci kutuya Merhaba, ikinci kutuya da Pi yazıp Gönder‘e basalım.
Eğer buraya kadar olan kısımların tamamı doğru ise aşağıdaki gibi bir mesajla karşılaşmamız lazım.
Pekala, kontrol edelim, gerçekten veritabanına yazmış mı mesaj kutularımızı?
| pi@raspberrypi:~ $ mysql -u root -p Enter password: mysql-root-şifreniz Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.5.52-0+deb8u1 (Raspbian)Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.mysql> USE pibase; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> SELECT * FROM `messages`; +----+----------+----------+ | id | text_one | text_two | +----+----------+----------+ | 1 | Merhaba | Pi | +----+----------+----------+ 1 row in set (0.00 sec) mysql> |
Şu ana kadar herhangi bir sorunla karşılaşmadıysanız, Apache – PHP – MySQL üçlememiz gayet güzel çalışıyor.
Python3 – MySQL Testi
Python çalışmalarımız için /home/pi klasörünün içinde Python isimli bir klasör oluşturalım.
| pi@raspberrypi:~ $ mkdir /home/pi/Python pi@raspberrypi:~ $ cd /home/pi/Python pi@raspberrypi:/home/pi/Python/ $ |
readdb.py isimli bir dosya oluşturalım.
| pi@raspberrypi:/home/pi/Python/ $ nano readdb.py |
Dosyamızın içeriğini aşağıdaki gibi oluşturalım. Fakat tabların kaymamasına özellikle dikkat edin.
#!/usr/bin/env python3
from __future__ import print_function
import pymysql
db = pymysql.connect(host='localhost', port=3306, user='root', passwd='5632', db='pibase')
cursor = db.cursor()
try:
cursor.execute("SELECT text_one FROM messages ORDER by id DESC LIMIT 1")
results = cursor.fetchall()
for row in results:
message = row[0]
print(message)
cursor.execute("SELECT text_two FROM messages ORDER by id DESC LIMIT 1")
results = cursor.fetchall()
for row in results:
message = row[0]
print(message)
except:
print ("Error: unable to fecth data")
cursor.close()
db.close()
Kodumuzu test edelim. Bakalım neler olacak?
| pi@raspberrypi:/home/pi/Python/ $ python3 readdb.py Merhaba Pi pi@raspberrypi:/home/pi/Python/ $ |
Her şey tam olması gerektiği gibi. Artık PHP ile veri okuyup, MySQL veritabanına yazabiliyor, yazdığımız veriyi Python ile okuyabiliyoruz. Şimdi bir sonraki aşamaya geçebiliriz.
Arduino ve Pi – I2C Kurulumu
I2C protokolü ile Raspberry Pi’yi bir Arduino’ya bağlayacağız ve veritabanında okuduğumuz mesajı Arduino’ya gönderip, LCD ekranda görüntüleyeceğiz. Bunun için önce Arduino ve LCD bağlantısını aşağıdaki gibi yapalım.
Arduino’nun LiquidCrystal kütüphanesindeki HelloWorld örneği ile LCD ekranda çıktı alabiliyor olmanız gerekiyor. Bunun için Arduino Hello World linkinden faydalanabilirsiniz.
I2C Kurulumu
raspi-config ayarlarında I2C’yi etkinleştirmiş olmamız gerekiyor. Aşağıdaki adımları uygulayarak i2c kurulumunu tamamlayabilirsiniz.
| pi@raspberrypi:~ $ sudo nano /etc/modules |
bu dosyada i2c-dev satırının olduğundan emin olun. Eğer yok ise ekleyin. Başında # işareti varsa da silin. Ve dosyayı kaydedin.
| # /etc/modules: kernel modules to load at boot time. # # This file contains the names of kernel modules that should be loaded # at boot time, one per line. Lines beginning with “#” are ignored.i2c-dev |
Eğer modüllerde bir değişiklik yaptıysanız; “Reboot candır”
Şimdi i2c araçları ve Python bağlantısını sistemimize kuralım.
| pi@raspberrypi:~ $ sudo apt-get install python-smbus i2c-tools |
Kurulum tamamlandıktan sonra aşağıdaki komutu yazarak aşağıdaki gibi bir çıktı almış olmanız gerekiyor.
| pi@raspberrypi:~ $ sudo i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: — — — — — — — — — — — — — 10: — — — — — — — — — — — — — — — — 20: — — — — — — — — — — — — — — — — 30: — — — — — — — — — — — — — — — — 40: — — — — — — — — — — — — — — — — 50: — — — — — — — — — — — — — — — — 60: — — — — — — — — — — — — — — — — 70: — — — — — — — — |
Son olarak pi kullanıcısını i2c grubuna ekleylim.
| pi@raspberrypi:~ $ sudo adduser pi i2c |
Ne diyorduk? Reboot candır 🙂
Arduino ve Pi – I2C Bağlantı Devresi ve Programlar
[mks_pullquote align=”center” width=”600″ size=”18″ bg_color=”#eeeefb” txt_color=”#000000″]Ne çok şey yazdım ama hala bitmedi. Esas ilginç olansa bunu birisi okuyacak mı bilmiyorum. Ama en azından kendime rehber niteliğinde güzel notlar oldu…[/mks_pullquote]






Leave a Reply