ngoprek sht11 (sensor suhu dan kelembaban)

dulu semasa kuliah pengen beli sensor sht11 ga kebeli. maklum belum punya duit sendiri. sekarang akhirnya kesampaian juga ngoprek SHT 11. sensor ini aslinya murah banget. tapi karena eh karena harganya melambung tinggi jadi 350 rebu.  maklum indonesia negara yang sangat maju sekali dalam bidang perdagangan. tiap hari motor buatan luar negeri pasti ada yang beli.

di INDONESIA motor seperti gorengan, tinggal ambil saja bayar belakangan juga bisa. dan saya pastikan project GO GREEN ga bakalan sukses selama kredit motor masih gamapang syaratnya dan laku keras.

saya aktivis kredit motor saja lah dan anti go green,

ini dia sensor sht 11 nya

untuk dasar teorinya biar orang lain saja yang bahas. saya cari cari di internet kebanyakan pakai bascom avr, saya convert ke bahasa c gaul code vision. support juga pastinya untuk avr gcc.

//=================================================================
//sht
//==============================================================
void StartSignal()
{       
    ddr_data_out;
    data_hi;;  
    delay_us(1);
    clk_lo;    
    delay_us(1);
    clk_hi;           //Clock pertama
    delay_us(1);
    data_lo;   
    delay_us(1);
    clk_lo; 
    delay_us(1);
    clk_hi;           //Clock pertama
    delay_us(1);
    data_hi;;  
    delay_us(1);
    clk_lo;
    ddr_data_out;       // PortA.0 sbg Output       
}

void ResetSHT (void)
{
    unsigned char i;
    ddr_data_out;   
    data_hi;
    clk_lo;         
    for (i=0; i<=8; i++)
      {
        clk_hi;     //Kirim Data (ShtClock rising edge), 9 kali
        clk_lo;
      }
    StartSignal();        //Transmission Start 
}

void SHTWait()
{
    unsigned char i;
    ddr_data_out;
    data_hi;          //Pin ShtData sebagai input
    ddr_data_in;
    for (i=0; i<250; i++)
      {                     
        TimeOut=(PIND&4)>>2;
        if(!((PIND&4)>>2))break;
        delay_ms(1);
      }      
}

void SHTWriteByte (unsigned char data)
{
    unsigned char i;
    ddr_data_out;       
   
    for(i = 8;i > 0; i–)
    {
        if(data & (1 << (i – 1)))data_hi;
        else data_lo;
        clk_hi;        //Kirim Data (ShtClock rising edge)
        delay_us(10);
        clk_lo;
    }
   
    ddr_data_in;
    clk_hi;             
    AckBit = (PIND&4)>>2;       //Ambil sinyal acknowledge
    delay_us(10);
    clk_lo;;
}

//Receive Data dan kirim bit “AckBit” (‘0’ untuk ACK atau ‘1’ untuk NACK)
void SHTReadByte ()
{
    unsigned char i;
    DataRead = 0x00;
    ddr_data_out;
    data_hi;          //Pin ShtData sebagai input
    ddr_data_in;
    for (i=0; i<8; i++)
      {
        DataRead<<=1;
        clk_hi;
        DataRead |=(PIND&4)>>2 ;  //Ambil Data (MSB first)
        delay_us(10);
        clk_lo;
      }
    ddr_data_out;   
    if (AckBit==1) data_hi;   //Kirim Noacknowledge
    else data_lo;             //Kirim Acknowledge
    clk_hi;         
    delay_us(10);
    clk_lo;
}

// Pembacaan Temperature dari SHt11
void SHTReadTemp (void)
{       
    StartSignal();
    SHTWriteByte(0x03);      //Command Measure Temperature
    if (AckBit==0)
      {
        SHTWait();           //Tunggu sampai pengukuran selesai
        if (TimeOut==0)
          {
           AckBit=0;                    //Kirim ACK untuk menerima byte berikutnya
            SHTReadByte();              // Ambli Byte MSB
            DataTempSHT = DataRead;
            DataTempSHT <<= 8;
            AckBit=1;                   //Kirim NACK untuk mengakhiri pengambilan data
            SHTReadByte();
            DataTempSHT |= DataRead;   //Ambil byte LSB
           
            DataRead = DataTempSHT;           
          }
      }
}

void SHTReadHumidity (void)
{
    StartSignal();
    SHTWriteByte(0x05);   //Command Measure Humidity
    if (AckBit==0)
      {
        SHTWait();
        if (TimeOut==0)
          {
            AckBit=0;
            SHTReadByte();
            DataRHSHT = DataRead;
            DataRHSHT <<= 8;
            AckBit=1;
            SHTReadByte();
            DataRHSHT |= DataRead;
           
            DataRead = DataRHSHT;
          }
      }
}

itu puisi dari saya

bermain sensor accelerometer adxl202

butuh sensor accelerometer. bisa di fungsikan untuk sensor gempa atau sensor kemiringan. ini dia sensor adxl 202. harganya murah banget Rp.250.000(bagi yang punya uang).

spesfikasi adxl 202:

– output digital pwm

– duty cycle diatur nilai R dan elco

– memiliki 2 sumbu, x dan y

– A +- 2g

nah berikut hasil ngoprek saya dengan adxl 202

untuk robot KRSI siapa kali perlu ayo pesan, atau untuk para peneliti gempa jika butuh sensor accelerometer silahkan pesan ke dhani nugraha(085228292473)

www.kei-elektronik.com

aplikasi sensor PIR dengan AVR TRAINER 2.0

Ceritanya di kontrakan saya ada yang kemalingan motor. tapi itu sudah terjadi. untuk meningkatkan keamanan kontrakan, saya sebagai sarjana lulusan t.elektro masa tidak mampu membuat alat pendeteksi maling, atau kalo tidak mampui buat pun masa tidak tahu harus beli dimana alat tersebut. .

ini baru contoh simple saja. saya tadi membeli sensor PIR di universal electronic harganya 65.000. lumayan bisa di aplikasikan untuk pendeteksi manusia. karena ini hanya modul yang mudah digunakan,saya langsung saja, pasangkan modul PIR dengan modul avr trainer 2.0.

pada modul PIR ada 3 pin terdiri dari vcc,out dan gnd, untuk supply nya saya kasih 5v.

Keluaran dari modul PIR yang saya beli ini ketika ada manusia yaitu 3.5 v, dan ketika tidak ada yaitu 0 v. nah gampang sekali. udah saja saya langsung sambungkan dengan pin biasa misalanya pind.7. nah program utamanya seperti ini.

for(;;)
{
if(bit_is_set(PIND,7))
{
lcd_clrscr();
lcd_goto(line1);
lcd_puts(“ada penjahat”);
buzzer_hi;
_delay_ms(1000);
buzzer_lo;
_delay_ms(1000);
}
else
{
lcd_goto(line1);
lcd_puts(“aman aman saja”);
}
}

ini photo sensor pir nya

 

pemasangan sensor pir di jendela

 

nah mungkin untuk ke depannya akan saya tambahkan lagi beberapa sensor, mungkin akan saya tambahkan sensor IR,

sensor suhu TPA81(kalo lampu pijar gimana ya)

Sensor Thermal Array  TPA-81 produksi Devantech ini dapat digunakan untuk mengukur nilai suhu yang ada di daerah kerja sensor.  Koneksi sensor Thermal Array ini melalui protokol I2C seperti halnya kompas elektronik. Pin SDA dihubungkan dengan pin mikrokontroler yang berfungsi sebagai serial data, dan pin SCL dihubungkan dengan pin mikrokontroler yang berfungsi sebagai serial clock.

Modul sensor Thermal Array dengan komunikasi protokol I2C ini sama dengan modul kompas elektronik seperti yang telah dijelaskan sebelumnya. Alamat fix dari sensor ini adalah 0xD0. Selanjutnyamembaca data register dengan mengirimkan nilai alamat register yang diinginkan. Data sensor ada pada alamat register 0x02-0x09 untuk data
sensor pixel 1-pixel 8. Untuk sistem komunikasi I2C secara keseluruhan sama dengan modul kompas elektronik, yang berbeda hanyalah alamat dari modul dan register-register yang dibaca. Sedangkan cara-cara komunikasinya sama, yaitu dengan menggunakan sistem komunikasi standard I2C. Data yang terbaca pada register-register yang menyimpan data sensor tiap pixel adalah data 8 bit yang mempresentasikan nilai suhu yang terukur.
Secara umum, cara untuk mendapatkan nilai-nilai suhu dari sensor thermal array sama seperti pada kompas elektronik, yang berbeda hanyalah pada alamat register yang akan dibaca dan alamat device-nya. Berikut ini adalah potongan program subrutin pembacaan data sensor  thermal array pada register dengan alamat sesuai input variabel addr.

Sub Baca_TPA(byval Pixel As Byte) ‘PIXEL DI IDI REGISTER 2-9
I2cstart
I2cwbyte &HD0
I2cwbyte Pixel
I2cstart
I2cwbyte &HD1

I2crbyte Data_tpa , Nack
I2cstop
‘Waitms 10
End Sub

sensor ultraviolet uvitron (sensor api)

Sensor ini memberikan sinyal aktif apabila mendeteksi adannya sinyal ultraviolet. Tipe sensor yang dipilih adalah Hamamatsu R2868. Prinsip kerja sensor ini adalah mendeteksi adanya gelombang ultraviolet pada range 185 – 260 nm,sensor ini bisa digunakan untuk mendeteksi api lilin karena api lilin berada pada range tersebut. sensor ini memiliki jangkauan hingga 5 meter.

Sensor diatas sangat presisi dan sangat rentan sekali. Dalam perlakuannya sensor tersebut tidak boleh dipegang secara langsung oleh tangan manusia. Hal ini disebabkan karena bisa mengurangi sensitivitas dari sensor tersebut (kata datasheetnya)

modul ini terdiri dari 2 bagian, tabung uvitron dan drivernya (C3704) Tabung UVtron terdiri ata dua kaki yaitu pin katoda dan anoda, untuk dapat beroperasi normal UVtron butuh suplay tegangan antara 350 -400 V DC, karena sumber tegangan yang digunakan hanya 5 V maka digunakanlah sebuah driver untuk memenuhi kebutuhan tersebut. Driver dc yang digunakan adalah type Hamamatsu C3704 yang mampu menghasilkan catu hingga 350V DC dengan Vcc 5 V. driver ini selain berfungsi sebagai penyedia tegangan untuk UVtron juga berfungsi sebagai pemproses sinyal yang diperoleh dari tabung UVtron R2868 dan kemudian mengolah data tersebut menjadi data digital.