Sei sulla pagina 1di 8

1 Inkubatek [supported by : www.tokotronik.

com]

Telemetri suhu kelembaban by request


Sistem Kerja Alat:
Arduino UNO membaca sensor DHT11 dan datanya akan dikirim setelah ada SMS masuk
pada modem SMS getway dengan format SMS “GET” jika tidak ada SMS maka suhu hanya
ditampilkan suhu dan kelembaban pada LCD 2x16.

Kebutuhan Hardware :
 Sensor DHT11
 Modem SMS Getway
 Modul Serial RS232
 Modul LCD 2x16
 Modul Arduino UNO
 Power supply +9Volt

MODEM SMS GETWAY

SENSOR DH11

INKUBATEK

MODULE RS232

Diagram Blok:

LCD 2X16
Modem SMS
Arduino UNO

GETWAY

HP
RS 232
DHT11
2 Inkubatek [supported by : www.tokotronik.com]

Schematics

INKUBATEK

Koneksi Arduino UNO dengan LCD:


Pin ARDUINO LCD

2 RS
3 EN
4 D4
5 D5
6 D6
7 D7

Koneksi Module DHT11:


Pin Module DHT11 Pin ARDUINO

VCC +5V
DATA PIN 10
GND GND

Koneksi Modul RS232:


Pin Modul RS232 Pin ARDUINO

GND GND
VCC +5V
RXD Pin 8
TXD Pin 9
3 Inkubatek [supported by : www.tokotronik.com]

Source Code/Sketch :
/*************************************
* Program : Project 114. Telemetri suhu kelembaban by request
* 125 Proyek Arduino Inkubatek
* www.inkubator-teknologi.com
* www.tokotronik.com
* ***********************************/
#include <LiquidCrystal.h>
#include <SoftwareSerial.h>
#include "DHT.h"
#define DHTPIN 10
#define DHTTYPE DHT11

LiquidCrystal lcd(2,3, 4, 5, 6, 7);


const int rxpin = 8;
const int txpin = 9;
SoftwareSerial gsm(rxpin, txpin);

DHT dht(DHTPIN, DHTTYPE);


int h,t;

char str,f;
int i,j;

String inString="";

String inString2="";
String Stemp="";
String inbox="";
String noPengirim="";

void setup(){
gsm.begin(9600);
dht.begin();
lcd.begin(16, 2);
lcd.print("Tes Koneksi...");
delay(1000);
gsm.println("AT");
getmodem();
getmodem();
lcd.setCursor(0, 1);
lcd.print(inString);
delay(2000);
lcd.clear();
4 Inkubatek [supported by : www.tokotronik.com]

lcd.print("Telemetri DHT11");
lcd.setCursor(0,1);
lcd.print("by request SMS");
delay(3000);
}

//=========================program utama
void loop(){
lcd.begin(16,2);
lcd.clear();
lcd.print("Tunggu SMS masuk");
lcd.setCursor(0,1);
lcd.print("kode:GET/Get/get");
//----------------------data ENTER
getmodem();
lcd.clear();
lcd.print("SMS Masuk...");
//----------------------data CMTI:
getmodem2();
i=inString2.indexOf(':');
if(i>0){
Stemp=inString2.substring(0,i);
if(Stemp=="+CMTI"){
i=inString2.indexOf(',');
j=inString2.length ();
i=i+1;
inbox=inString2.substring(i,j);
gsm.print("AT+CMGR=");
gsm.println(inbox);
getmodem();
getmodem();
getmodem2();
i=inString.indexOf(',');
i=i+2;
j=inString.indexOf(',',i);
j=j-1;
noPengirim=inString.substring(i,j);
//--------------------------------isi SMS jika Get
if(inString2=="GET" || inString2=="Get" || inString2=="get"){
baca_sensor();
kirim_sms();
}
//---------------------------------other sms
else {
gsm.print("AT+CMGS=");
5 Inkubatek [supported by : www.tokotronik.com]

gsm.println(noPengirim);
delay(1000);
gsm.print("Format Salah!");
gsm.write((byte)26);
gsm.println();
lcd.clear();
lcd.print("Format Salah!");
}

delay(3000);
lcd.clear();
lcd.print("Hapus SMS:");
//-------------------------hapus inbox
getmodem();
getmodem();
gsm.print("AT+CMGD=");
gsm.println(inbox);
do{
getmodem();
}
while(inString != "OK");
lcd.print(inbox);
lcd.setCursor(0,1);
lcd.print(inString);
delay(3000);
}
}
}
//===========================baca data serial
void getmodem(){
f=1;
inString="";
while(f){
if(gsm.available()){
str=gsm.read();
switch (str){
case '\r': break;
case '\n':f=0; break;
default:inString+=(char)str;
}
}
}
}
//====================================
void getmodem2(){
6 Inkubatek [supported by : www.tokotronik.com]

f=1;
inString2="";
while(f){
if(gsm.available()>0){
str=gsm.read();
switch (str){
case '\r': break;
case '\n':f=0; break;
default:inString2+=(char)str;
}
}
}
}

//===================================baca sensor DHT11


void baca_sensor(){
h = dht.readHumidity();
t = dht.readTemperature();
lcd.clear();
lcd.print("Temp:");
lcd.print(t);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Humi:");
lcd.print(h);
lcd.print("%");
delay(3000);
}

//====================================kirim SMS
void kirim_sms(){
gsm.print("AT+CMGS=");
gsm.println(noPengirim);
delay(1000);
gsm.print("Suhu:");
gsm.print(t);
gsm.print("C, Kelembaban:");
gsm.print(h);
gsm.print("%.");
gsm.write((byte)26);
gsm.println();
lcd.clear();
lcd.print("Kirim SMS....");
delay(2000);
}
7 Inkubatek [supported by : www.tokotronik.com]

Jalannya Alat :
1. Tes koneksi antara modem dengan Arduino:

Tes Koneksi...

2. Jika koneksi benar maka tampil koneksi OK:

Koneksi OK

3. Tampilan berikutnya pada LCD:

Telemetri DHT11
by request SMS
4. Selanjunta tampil kondisi normal:

Tunggu SMS masuk


kode:GET/Get/get

5. Silahkan Anda bisa SMS ke nomor yang ada di dalam modem, isi SMS bisa “GET” atau
“Get” bisa juga “get”. Format SMS hanya ada 3 format tersebut, jika tidak termasuk ke 3
format tersebut dianggap format salah.
6. Setelah SMS dikirim maka Arduino akan membaca sensor DHT11 kemudian hasilnya
dikirim via SMS (ke nomor pengirim SMS) contoh isi SMS yang dikirim “Temp:31C,
Humi:80%”.
7. Apabila format SMS yang dikirim salah maka Arduino akan mengirim SMS “Format
Salah”.
8 Inkubatek [supported by : www.tokotronik.com]

Potrebbero piacerti anche