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