Merhaba arkadaşlar; uzun bir aradan sonra bir projeyi daha sizlerle paylaşmak istiyorum. Arduino Otomatik Sulama Sistemi. Bu projeyi 3 aşamada bitirmeyi düşünüyorum.

1) Amaç ve Malzemeler
2) Devre Şeması
3) Kodlama

1) Amaç ve Malzemeler

Evimde bir kaç çiçek ve kaktüs var. Kaktüsler her ne kadar çok fazla suya ihtiyaç duymasada bazen ne zaman suladığımı unutabiliyorum. Bunu çözmek içinde toprakdaki nem miktarına bakarak otomatik bir sulama sistemi yaparak sulamasını istiyorum. Şuan sadece kaktüslerim için bir sulama sistemi geliştireceğim. 5 kaktüsüm var. Ortalama 2 haftada bir 3 su bardağı su veriyorum. Ve ölçmem gereken bir konu var. nem miktarı sürekli azalıyormu yoksa belirli bir süre sonra sabit mi devam ediyor? Yani 10 gün sonra toprakdaki nem yüzde 5’e düşüp kalan 4 gün hep yüzde 5 olarak mı devam ediyor yoksa düşmeye devammı ediyor. Bunu uzun bir süre takip edeceğim. Böylelikle bu bilgiyi öğrenip devreye timer eklemem gerekiyor mu onu öğreneceğim.

Bu şekilde kafama takılan noktayı hallettikten sonra hesaplamaları ve kodları ona göre hazırlayacağım.

Kullanılması gereken malzemeleri paylaşalım ardından bir kaç bilgi ve nerden temin edebileceğinizin bilgisini vereceğim 🙂

Edit:

Biraz deneme ve araştırmadan sonra kaktüsümü sulamak için timer’a ve bunun içinde bir kaç malzemeye gerek var aşağıda belirtiyorum. Timer’a kullanma sebebim nem 0 olduktan sonra sulamak için 4 gün daha beklemek gerekiyor. Eğer basit nem oranı 0’a düşmeyecek ve bekleme yapmayacak sistem düşünüyorsanız bu proje biraz büyük kapsamlı kalır. Onun için internete bulunan basit sistemleri kullanmanız sizin yararınıza olacaktır.

Malzemeler:

  • Arduino Uno
  • 9V Pil
  • Breadboard
  • Bolca erkek-erkek,dişi-erkek,dişi-dişi Jumper kablo
  • 1 Adet Sıvı Pompalama Motoru (Dalgıç pompa veya harici pompa alabilrisiniz.)(RS-360SH Harici pompa alacağım)
  • Toprak Nem Sensörü
  • Timer(DS 1307 Kit)
  • AT24C02 EEPROM

Tedarikçiler:

Timer(DS 1307 Kit): http://www.roboweb.net/ds1307-real-time-clock-kit-rw-ml-1517.html
Diğer Malzemeler: http://www.robotistan.com

Merhaba arkadaşlar uzun bir aradan sonra mysql’de replikasyon yaptığımızda verilerin (aslında id diye belirttiğimiz benzersiz alanların) çakışmaması için ne yapılması gerektiğini(MySQL Auto-Increment Replikasyonu) ele alacağız.

Oldukça basit bir kullanımı var. Kaç veritabanı sunucusu olduğu ve hangi sırada olduğunu belirteceğiz. Ardıdan işlemi tamamlamış olacağız.

MySQL Auto-Increment Replikasyonu Başlıyoruz:

my.cnf ve my.ini dosyamızı açıyoruz.(Varsayılan Konum: Ubuntu: /etc/my.cnf; Windows: C:/ProgramData/MySQL/MySQL Server x.x/my.ini)

auto_increment_increment
auto_increment_offset

Bu iki satırı ekleyerek işlemi tamamlayacağız. Fakat bunu bütün replikasyondaki sunucularımıza yapmamız gerekiyor.

auto_increment_increment Kaç tane sunucumuz varsa onu yazıyoruz.
auto_increment_offset Her sunucuya benzersiz index numarası diyebiliriz. 3 tane replikasyonda cihazımızın olduğunu düşünürsek; sırayla 1-2-3 vermemiz gerekiyor.

3 serverimiz olduğunu ve bunlara A,B,C diye isimlendirdiğimizi varsayıyorum.

A Server

 

B Server

 

C Server

 

Configrasyon dosyalarını bu şekilde ayarladıktan sonra hepsini restart ediyoruz.

Burda gerçekleşen işlemi bahsetmek gerekirse;

AI=(AI_increment*artan AI)+AI_offset
(AI=autoincrement değeri)

Yani 3 serverda da;

Server A=(3*1)+1 //4
Server B=(3*1)+2 //5
Server C=(3*1)+3 //6

Server A=(3*2)+1 //7
Server B=(3*2)+2 //8
Server C=(3*2)+3 //9

Bu şekilde sürekli artarak gidecektir. Görüldüğü üzere asla farklı serverler asla birbiri ile çakışmayacaktır.

Daha fazla bilgi için: http://dev.mysql.com/doc/refman/5.7/en/replication-options-master.html

Biraz karışık anlattım sanırım; affola 🙂

Shoutcast Server Auto Dj, yayın yapmasanız bile ses dosyalarını istenilen sırayla çalıp yayın yapmanızı sağlayan sistemdir.

Daha önce Shoutcast Server kurulumunu yapmıştık. Onun üzerinden giderek kurulumu gerçekleştireceğiz. radyo kullanıcısıyla sisteme giriş yapıyoruz.

Kurulum

autodj adında klasör oluşturuyoruz(/home/radyo/autodj). Ardından auto dj için gerekli dosyayı sunucuya indiriyoruz ve arşivden çıkarıyoruz.

 

sc_trans.conf dosyasını düzenliyoruz. Auto Dj uygulamamız bu yapılandırma dosyası ile çalışacak. Dosya içeriğimiz aşağıdaki şekildedir. Server Ip adresini ve farklı port kullanıyorsak düzenliyoruz.

 

  • PlayListFile : Ses dosyalarının konumlarını tuttuğumuz dosyadır.lst uzantılıdır.
  • ServerIP : Serverin ipisini belirtiyoruz.
  • ServerPort : Serverin portunu belirtiyoruz.

Muzik klasörüne ses dosyalarımızı yükledikten sonra(mp3 uzantılı) example.lst dosyasına ses dosyası yollarını belirtiyoruz.

 

autodj klasöründe sc_trans_linux dosyasına çalıştırma izni veriyoruz.

 

Bu işlemden sonra ilk testimizi gerçeklştirebiliriz.

 

İşlemimiz bu kadar. Auto Dj yi başlatmak için radyo servisimizi durdurmamız gerekiyor. Auto djden canlı radyo yayınına dönmek için, auto djyi durduruyoruz. Ardından tekrar radio start komutunu çalıştırarak canlı yayına dönebiliriz.

Shoutcast ücretsiz ses yayını, özellikle internette radyo yayını yapmanızı sağlayan, Shoutcast Radyo Server olarak isimlendirdiğimiz, genel olarak tüm platformda çalışabilen, nullsoft’un geliştirdiği bir araçtır.

Linux/Ubuntu üzerine kurulum gerçekleştireceğiz. Centos, Fedora, Debian, Linux Mint vb işletim sistemlerinede benzer şekillerde kurabilirsiniz.

Kurulum

1. Shoutcast Server İnidirilmesi ve Kurulması
İndirme ve kurma işlemine başlamadan önce radyo server için kullanıcı oluşturup çalıştıracağız. Çünkü işletim sistemimizde güvenlik gerekçesi ile root kullanıcısında çalıştırmıyoruz.

Sisteme root olduktan sonra radyo isimli kullanıcı oluşturuyoruz. Ardından radyo kullanıcımızla giriş yapıyoruz.

Radyo kullanıcısı ile sisteme giriş yapıyoruz. Download ve server isimli iki klasör oluşturuyoruz.

Şimdi, Shoutcast serveri indiriyoruz.
http://download.nullsoft.com/shoutcast/tools
linkine girerek sunucumuz için uygun yazılımı belirliyoruz

İndirme işlemi bittikten sonra, arşivimizi açıyoruz ve çalıştırılabilir binary dosyamızı server klasörüne taşıyoruz.

Şimdide server klasörüne logs ve controls isimli iki klasör oluşturuyoruz ve böylelikle kurulumumuz tamamlanmış oluyor.

2. Shoutcast Yapılandırma Dosyası Oluşturma
Çalıştırıp yönetebilmek için bir yapılandırma dosyasını ihtiyacımız var. Yapılandırma dosyamızın adı: sc_serv.conf.

Yapılandırma dosyasını oluşturmak için server klasöründe olduğunuzdan emin olun.( /home/radyo/server)

sc_serv.conf dosyasına aşağıdaki bölümü ekleyiniz(Örnek yapılandırma).

 

Burda bazı önemli ayarları içermektedir. Güvenlik için aşağıda belirttiğim şifre alanlarını değiştirin.

  • adminpassword : Web arayüzü üzerinden erişiminizi bu şifre ile sağlıyorsunuz.
  • streampassword_1 : Uzaktan Mixxx,Winamp,SAM gibi programlarla yayın yapacağınızda kullanılan şifredir. Kısacası yayın yapacağınızda bu şifreyi kullanıyorsunuz.

Alternatif olarak download klasöründeki setup.sh ile oluşturabilir veya içerisindeki examples klasörünü inceleyerek yapılandırma dosyası oluşturabilirsiniz.

Urlmiz hazır.

Tabiki şuanda açılmayacaktır. Öncelikle çalıştırılabilir dosyamızı çalıştıracağız ve portu açmamız gerekiyor.

Dosyamıza çalışma izni verip, çalıştırıp (& komutu ile arkaplanda çalışmasını sağlayacağız), netstat komutu ile çalışıp çalışmadığını kontrol edeceğiz.

LISTEN …sc_serv yazısını görüyorsanız buraya kadar bir sorun yok.

3. Güvenlik Duvarından Port Açmak
Sırada güvenlik duvarından belirlemiş olduğumuz porta(8000) izin vereceğiz.

Bu işlemden sonra artık web arayüzümüze erişebiliriz.(http://websitesiveyaipiniz:8000)

4. Shoutcast Server Yönetimi İçin Servis Hazırlamak
Basit bir servis hazırlayarak, başlatma durdurma işlemlerini çok daha kolaylaştıracağız ve sunucunun kapanıp açılmasında otomatik çalışmasını sağlayacağız.

Şuanda basitçe start ve stop komutlarımızı hazırlayacağız. Bunun için root olarak işlem yapacağız. /usr/local/bin/ klasörüne radio isimli dosya oluşturarak başlıyoruz.

Şimdi aşağıdaki satırları ekliyoruz.

Dosyamızı oluşturduktan sonra, çalışma izni veriyoruz ve root kullanıcısından çıkış yapıyoruz.

Evet, şuanda sevis olarak radyomuzu yönetebilriz. Komutlarımız aşağıda:

  • radio start : Shoutcast serveri önyüzde başlatır.
  • radio start_daemon : Shoutcast serveri daemon olarak başlatır.
  • radio stop : Shoutcast serveri durdurur.

Eğer server kapanıp açıldığında tekrar açılmasını istiyorsanız aşağıdaki işlemide gerçekleştirmeniz gerekmektedir. Dikkat edilmesi gereken işlemi radyo kullanıcısıyla yapılması gerekiyor. whoami komutu hangi kullanıcıda olduğumuzun bilgisini veriyor. Sonucunda radyo göremiyorsanız su radyo komutu ile radyo kullanıcısı olarak giriş yapın.

 

İşte bu kadar! Artık test edebilir yayına başlayabilirsiniz. Linux üzerinden Mixxx programı ile yayın yapabilirsiniz.

http://www.shoutcast.com/

http://www.tecmint.com/install-shoutcast-in-linux/

Shoutcast Server Auto Dj Kurulumu için tıklayınız.

Ayrıca örnek olarak; webden, aşağıdaki dosyanın 13.satırını değiştirerek yayınınızı herkese ulaştırabilirsiniz.

 

 

Merhaba arkadaşlar, daha önce Master-Slave replikasyonu anlatmaştık. Bu yazımızda Master-Master replikasyonu anlatacağız.

MySQL için 2(iki) tür replikasyon türü bulunmaktadır.

  1. Master-Slave Replikasyon
  2. Master-Master Replikasyon

Master Master Replikasyon

Master Master replikasyonda; herhangi bir master sunucuda yapılan değişiklik diğer master sunucuya aynı şekilde aktarılır.

Master sunucularımızın iplerini belirliyoruz.

Master Sunucu 1(Master1): 192.168.1.17
Master Sunucu 2(Master2): 192.168.1.18

MySQL portuna(varsayılan 3306) izin veriyoruz.

 

MySQL’i durduruyoruz.

 

Master Sunucu Ayarları
my.cnf veya my.ini dosyasını açıyoruz.(Varsayılan Konum: Ubuntu: /etc/my.cnf; Windows: C:/ProgramData/MySQL/MySQL Server x.x/my.ini)

Windows için bir IDE veya metin editörü ile açıyoruz. Konfigrasyon dosyasının içinde

bu satırlar bulunuyorsa başına diez (#) işareti koyarak etkisizleştiriyoruz. Gerekli ayarları [mysqld] altında gerçekleştiriyoruz;
server-id=x sunucuların birbirinden farklı idye sahip olması gerekiyor.
log-bin=mysql-bin replikasyon işlemi için binary loglarını kullanacağımızı belirtip, aktif ediyoruz.
bin-log-do-db=veritabanıadı hangi veri tabanını/tabanlarını replikasyon olacağını belirtiyoruz. Toplarsak;

MySQL’i tekrar başlatıyoruz.

 

Master sunucu için ayarlarımız bunlar. Diğer master sunucu için master sunucu üzerinde bir kullanıcı oluşturacağız.

Burda MySQL’e bağlanıyoruz, replikasyon işlemleri için kullanıcı oluşturuyoruz. Master sunucusunda log dosyasının pozisyon bilgilerini alıyoruz. Bu bilgiler birazdan gerekecek.

-psifre kısmında dikkat edilmesi gereken, burası bir yazım hatası değildir. Şifrenin 1234 olduğunu varsayarsak -p parametresi ile bitişik yazıyoruz: -p1234

Veritabanımızı dışa aktardık. Diğer Master sunucuda içe aktaracağız.

Veri tabanımızı kitlemiştik, UNLOCK TABLES ile kilidi açmış olduk.

Master2 Sunucu Ayarları

MySQL’i durduruyoruz.

Veritabanını oluşturuyoruz.

Master1 sunucudan aldığımız veritabanı kopyasını içeri aktarıyoruz.

MySQL konfigrasyonunu yapıyoruz. my.cnf veya my.ini dosyasını açıyoruz, aşağıdaki şekilde düzenliyoruz.

Sıra geldi aldığımız pozisyon bilgilerini girmeye.

Buraya kadar yaptıgımız işlemler Master-Slave Replikasyon ile aynı işlemlerdi. Şimdi bir kaç ekleme yapıyoruz. Master2 Sunucuda öncelikle master1 için kullanıcı oluşturup master bilgilerini alıyoruz.

Burdan almış olduğumuz master bilgilerini diğer sunucuda (master1) kullanacağız.

Master 1 Ek Sunucu Ayarları:

MySQL’i başlatıyoruz.

Bitti şimdi test edebilirsiniz.

Genel olarak; Master-Slave replikasyon işleminin aynısı olarak, Master slave replikasyondaki slave sunucya, master; master sunucuya slave özelliğini ekledik.

Kaynak:https://www.digitalocean.com/community/tutorials/how-to-set-up-mysql-master-master-replication

Bir sonraki yazımızda iki sunucunun verilerinin çakışmamasını sağlayacağız.(örneğin internet bağlantısı koptugunda girilen verilerin çakışması)