Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk monitoring suhu dan kelembaban udara atau ruangan yang mana jika terjadi suatu kondisi misal kelembaban / RH melebihi 50 persen maka akan melakukan sms kepada teknisi untuk dilakukan pengecekan alat. fungsi utama alat ini sebenarnya untuk deteksi kestabilan suhu / kelembaban dan pemberi peringatan saat kondisi bahaya. alat ini menggunakan sensor DHT11 dan mikrokontroller ATMega16 sebagai processornya. untuk skema dan programnya bisa disimak pada penjelasan berikut ini.
a. Minumum System ATMega
b. Sensor DHT11
c. Rangkaian RS232 Cross Over
d. Modem Wavecom
e. Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 12000000
$baud = 9600
'--------------------------
Config Lcdpin = Pin , Rs = Portc.7 , E = Portc.6 , Db4 = Portc.5
Config Lcdpin = Pin , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2
Config Lcd = 16 * 2
Cursor Off
Cls
Declare Sub Get_th(t As Byte , H As Byte)
Config Serialin = Buffered , Size = 128
Config Serialout = Buffered , Size = 128
Dht_put Alias Portc.0
Dht_get Alias Pinc.0
Dht_io_set Alias Ddrc.0
Ddrb.0 = 1
Ddrb.1 = 1
Dim T As Byte
Dim H As Byte
Dim Crc As Byte
Dim Mybyte As Byte
Dim Sensor_data As String * 40
Dim Tmp_str8 As String * 8
Dim Count As Byte
Enable Interrupts
Set Dht_io_set
Set Dht_put
Dim Hx As Byte
Dim Hp1 As String * 30
Hp1 = "0813xxxxxxx"
Dim Hp2 As String * 30
Hp2 = "088xxxxxxxx"
Dim Hp3 As String * 30
Hp3 = "085xxxxxxxx"
Dim Hp4 As String * 30
Hp4 = "085xxxxxxxx"
Dim Hp5 As String * 30
Hp5 = "082xxxxxxxx"
Dim Mark As Integer
Mark = 0
Do
Waitms 1500
Call Get_th(t , H)
Cls
Hx = H + 11
Lcd "SUHU: " ; T ; "C" ; " " ; H
Lowerline
Lcd "KELEMBABAN: " ; Hx ; "%"
If Hx >= 50 Then
Portb.0 = 1
Portb.1 = 0
Elseif Hx < 50 Then
Portb.0 = 0
Portb.1 = 1
End If
If Hx >= 50 And Mark = 0 Then
Mark = 1
Print "AT+CMGS=" ; Hp1
Wait 1
Print "BAHAYA"
Print " "
Print "BAHAYA KELEMBABAN MELEBIHI 50 PERSEN"
Print Chr(26)
Wait 5
Print "AT+CMGS=" ; Hp2
Wait 1
Print "BAHAYA"
Print " "
Print "BAHAYA KELEMBABAN MELEBIHI 50 PERSEN"
Print Chr(26)
Wait 5
Print "AT+CMGS=" ; Hp3
Wait 1
Print "BAHAYA"
Print " "
Print "BAHAYA KELEMBABAN MELEBIHI 50 PERSEN"
Print Chr(26)
Wait 5
Print "AT+CMGS=" ; Hp4
Wait 1
Print "BAHAYA"
Print " "
Print "BAHAYA KELEMBABAN MELEBIHI 50 PERSEN"
Print Chr(26)
Wait 5
Print "AT+CMGS=" ; Hp5
Wait 1
Print "BAHAYA"
Print " "
Print "BAHAYA KELEMBABAN MELEBIHI 50 PERSEN"
Print Chr(26)
Wait 5
End If
If Hx < 50 And Mark = 1 Then
Mark = 0
End If
Loop
Sub Get_th(t As Byte , H As Byte)
Count = 0
Sensor_data = ""
Set Dht_io_set
Reset Dht_put
Waitms 25
Set Dht_put
Waitus 40
Reset Dht_io_set
Waitus 40
If Dht_get = 1 Then
H = 1
Exit Sub
End If
Waitus 80
If Dht_get = 0 Then
H = 2
Exit Sub
End If
While Dht_get = 1 : Wend
Do
While Dht_get = 0 : Wend
Waitus 30
If Dht_get = 1 Then
Sensor_data = Sensor_data + "1"
While Dht_get = 1 : Wend
Else
Sensor_data = Sensor_data + "0"
End If
Incr Count
Loop Until Count = 40
Set Dht_io_set
Set Dht_put
Tmp_str8 = Left(sensor_data , 8)
H = Binval(tmp_str8)
Tmp_str8 = Mid(sensor_data , 17 , 8)
T = Binval(tmp_str8)
Tmp_str8 = Right(sensor_data , 8)
Crc = Binval(tmp_str8)
Mybyte = T + H
If Mybyte <> Crc Then
H = 3
End If
End Sub
f. Cara Menggunakan Alat
Untuk menggunakan alat ini yang pertama yaitu hubungkan alat ini dengan sumber tegangan, bisa dengan adaptor 12v atau battery 9v, setelah itu hubungkan juga adaptor untuk modem wavecomnya, dan jangan lupa hubungkan kabel VGA to serial dari modem ke minimum system. setelah itu semua dilakukan maka alat siap digunakan. lakukan kalibrasi untuk sensornya.
No comments:
Post a Comment