Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang fungsinya yaitu yang pertama dapat memanaskan secara otomatis menggunakan lampu pijar dan saat mencapai suhu tertentu lampu akan padam dan kipas akan menyala, sebaliknya jika suhu dibawah dari suhu yang ditetapkan maka lampu akan menyala dan kipas akan OFF / berhenti berputar. tidak hanya itu, alat ini saat dikirimkan pesan teks sms "Monitor" maka alat akan membalas pesan terkait informasi suhu dan kelembaban yang sedang dimonitor. Sensor yang digunakan pada alat ini adalah DHT11 yang mana sangat efektif buat mengukur suhu dan kelembaban. untuk lebih jelasnya berikut adalah program dan skemanya.
a. Arduino Mega
b. Modul SMS SIM800L
c. Modul Buck Converter
d. Lampu Pijar
e. Kipas DC12v Brushless
f. Rangkaian Kendali PC FAN 12v
g. Rangkaian Kendali Lampu AC 220v
h. LCD 16x2
i. Sensor DHT11 ( Temperature dan Humidity )
j. Program Arduino IDE
// VCC SIM800L = 4.0 volt
//Hubungkan Pin RX - TX SIM800L ke pin 50 dan 51 Arduino Mega
//Hubungkan Pin RX - TX SIM800L ke pin 50 dan 51 Arduino Mega
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;
#include "Wire.h"
#include <LiquidCrystal.h>
#include "DHT.h"
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
int lampu = 3;
int kipas = 4;
void setup() {
pinMode(lampu,OUTPUT);
pinMode(kipas,OUTPUT);
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(2400)) {
Serial.println("\nstatus=READY");
started=true;
} else Serial.println("\nstatus=IDLE");
if(started) {
//Enable this two lines if you want to send an SMS.
if (sms.SendSMS("085726496666", "Alat Ready"))
Serial.println("\nSMS sent OK");
}
lcd.begin(16, 2);
lcd.clear();
lcd.noCursor();
dht.begin();
}
void loop() {
delay(2000);
int h = dht.readHumidity();
int t = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(t);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("H: ");
lcd.print(h);
lcd.print(" %");
if(t > 40){
digitalWrite(lampu,HIGH);
digitalWrite(kipas,HIGH);
}
if(t < 40){
digitalWrite(lampu,LOW);
digitalWrite(kipas,LOW);
}
sprintf(string,"Temperature: %d Humidity: %d ", t, h );
if(gsm.begin(9600)){
started=true;
}
int pos=0;
if(started){
pos=sms.IsSMSPresent(SMS_ALL);
if(pos){
sms.GetSMS(pos,n,smsbuffer,100);
if(!strcmp(smsbuffer,"monitor")){
sms.SendSMS(n,string);
}
if(!strcmp(smsbuffer,"Monitor")){
sms.SendSMS(n,string);
}
delsms();
}
}
delay(100);
}
void delsms()
{
for (int i=0; i<10; i++)
{
int pos=sms.IsSMSPresent(SMS_ALL);
if (pos!=0)
{
if (sms.DeleteSMS(pos)==1){}else{}
}
}
}
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;
#include "Wire.h"
#include <LiquidCrystal.h>
#include "DHT.h"
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
int lampu = 3;
int kipas = 4;
void setup() {
pinMode(lampu,OUTPUT);
pinMode(kipas,OUTPUT);
//Serial connection.
Serial.begin(9600);
Serial.println("GSM Shield testing.");
//Start configuration of shield with baudrate.
//For http uses is raccomanded to use 4800 or slower.
if (gsm.begin(2400)) {
Serial.println("\nstatus=READY");
started=true;
} else Serial.println("\nstatus=IDLE");
if(started) {
//Enable this two lines if you want to send an SMS.
if (sms.SendSMS("085726496666", "Alat Ready"))
Serial.println("\nSMS sent OK");
}
lcd.begin(16, 2);
lcd.clear();
lcd.noCursor();
dht.begin();
}
void loop() {
delay(2000);
int h = dht.readHumidity();
int t = dht.readTemperature();
lcd.setCursor(0, 0);
lcd.print("T: ");
lcd.print(t);
lcd.print(" *C");
lcd.setCursor(0, 1);
lcd.print("H: ");
lcd.print(h);
lcd.print(" %");
if(t > 40){
digitalWrite(lampu,HIGH);
digitalWrite(kipas,HIGH);
}
if(t < 40){
digitalWrite(lampu,LOW);
digitalWrite(kipas,LOW);
}
sprintf(string,"Temperature: %d Humidity: %d ", t, h );
if(gsm.begin(9600)){
started=true;
}
int pos=0;
if(started){
pos=sms.IsSMSPresent(SMS_ALL);
if(pos){
sms.GetSMS(pos,n,smsbuffer,100);
if(!strcmp(smsbuffer,"monitor")){
sms.SendSMS(n,string);
}
if(!strcmp(smsbuffer,"Monitor")){
sms.SendSMS(n,string);
}
delsms();
}
}
delay(100);
}
void delsms()
{
for (int i=0; i<10; i++)
{
int pos=sms.IsSMSPresent(SMS_ALL);
if (pos!=0)
{
if (sms.DeleteSMS(pos)==1){}else{}
}
}
}
k. Cara Setting Library SIM800L
- Agar library kompatibel dengan Arduino Mega maka lakukan langkah berikut
- Buka library SIM800L lalu cari GSM.cpp
- Rubah jadi seperti berikut lalu SAVE
- Buka library SIM800L lalu cari GSM.cpp
- Rubah jadi seperti berikut lalu SAVE
l. Gambar SMS dan balasannya
m. VIDEO HASILNYA
No comments:
Post a Comment