Showing posts with label shell. Show all posts
Showing posts with label shell. Show all posts

Thursday, February 6, 2014

Simple Alarm with Shell Script

In this post, we are going to develop a simple alarm with shell scripts.

To get the time we use date command. To play a sound file we use aplay command-line player. It is also a recorder. Since we are developing an alarm it must control the time continuously so we need an infinite loop. Source codes are given in the following.

Source Codes: 
#!/bin/bash
# Purpose: Demo date command 
# Author: Mustafa Demir -www.eeecoder.blogspot.com-  eeecoder@gmail.com

while :
   do
     echo "Press [CTRL+C] to stop.."
     now=$(date +"%H:%M")
     echo "Current time : $now"

     echo " is current time true ?"

     if [ "$now" == "08:06" ]; then
     echo "Yes!"
     aplay sample.wav
     else
     echo "No!"
     fi

  done

By changing the controlled time and sample.wav you can adjust it as you want.
Read More

Thursday, July 25, 2013

CPU Sıcaklık Alarmı Sistemi



Merhabalar, bu yazımda linux kernel ve linux shell in verdiği harika avantajlardan faydalanarak yaptığım CPU Sıcaklık Alarmı Sistemini anlatmak istedim.

Linux un bize sağladığı en büyük avantajlardan biri kolaylıkla hardware bileşenlerine ulaşabilmemizdir. Hardware ile iletişim şu şekilde gerçekleşir :

1. Kullanıcı isteklerini kodlar halinde yazar.
2. Shell bu kodları linux kernel in anlayabileceği dile çevirir.
3. Kernel ise hardware ile shell arasındaki iletişimi sağlayan bir nevi arayüz diyebileceğimiz bir sistemdir. Kernel bu istekleri hardware bileşenlerine iletir.

Bu basit adımları ve daha fazlasını şema olarak aşağıdaki resimden anlayabilirsiniz..

Resimden görüldüğü gibi linuxtaki uygulamalarda çalışırken önce shell ve user ile iletişime geçerler. Daha sonra shell uygulamanın isteklerini kernel e anladığı dilde iletir. Kernel de bu istekleri hardware bileşenlerine iletir. 

Düşündüm ki madem böyle o zaman:

1. CPU nun sıcaklığı için önce cpu nun sıcaklığını ölçen bir hardware bileşenimiz olan sensörlere ulaşmam lazım. Linux ta bu işi yapan basit komut : 'acpi -t' komutudur.
2. Sensors komutu şu şekilde bir çıktı verecektir: 
Thermal 0: ok, 46.0 degrees C
Buradaki 46.0 değeri cpu nun santigrat cinsinden sıcaklığıdır. 
3. Bu cevapta benim ihtiyacım olan sadece 46.0 değeridir. Bu değeri bu satırdan çekmek için ise şu komutu kullandım: awk '{print $4}'.. Herhangi bir linux dağıtımı kullanıyorsunuz, illa ki awk ı duymuşsunuzdur. Awk dilleri ya da yazıları scan ve process etme pattern idir. Benim bu adımda yaptığım gibi.( 46.0 değerini şu cevaptan çektik>>Thermal 0: ok, 46.0 degrees C)
4. Daha sonraki adımda kendi belirleyeceğim bir değerle cpu sıcaklığını karşılaştırıp, bir alarm zili çaldırmak istedim. (Eğer cpu sıcaklığı benim belirlediğim değerden yüksek ise.). Bu basit karar verme bloku için tabiki 'if else fi ' blokları yardımımıza koşacaktır. 
5. Dördüncü adımda bir alarm zili çaldırmak istediğimi söylemiştim. Bunu sağlamak için sox paketini kullandım. Sox paketindeki play komutu .wav vb. dosyaları çalıştırmamızı sağlar.

Anlattığım bu adımları gerçekleştirdiğim scripti aşağıda görebilirsiniz. Script doğru bir şekilde çalışıyor..


 Herhangi bir sorunuz ya da yardıma ihtiyacınız varsa, aşağıya yorum bırakabilirsiniz.
 Yazıyı beğendiyseniz,  beğen butonlarını kullanarak bloguma destek verebilirsiniz.




Read More