Rabu, 21 Februari 2018

Mengontrol lampu menggunakan modul gsm dan arduino mega

Hai para sahabat Mikrocontroler & Robotika...
Pada postingan kali ini kita akan mencoba untuk mengontol hidup dan mati lampu menggunkan modul gsm sesuai dengan judul postingan di atas.
Sebelum kita mulai project kali ini mari kita persiapkan dulu bahan-bahannya seperti berikut:
  1. Arduino Mega (terserah para sahabat menggunakan arduino apa yang penting ada arduinonya)
  2. Modul Gsm sim 800L (kita pake yang murah meriah aja modul gsm nya,bisa pake modul yg lain asalkan modul gsm)
  3. Relay 5 Volt 2 Chanel  ( disini saya menggunakan relay Aktifnya = LOW & matinya = HIGH)
  4. 2 buah bola lampu  

Setelah bahannya cukup mari kita bikin rangkaiannya seperti yang dibawah ini:

Rangkain di atas kita pergunakan untuk mengontrol 2 buah lampu dengan cara mengirimkan sms untuk menghidup dan mematikan lampu, bisa dipergunakan lebih banyak lagi untuk selanjutnya rekan - rekan berkarya aja sendiri.
Untuk modul Gsmnya kita pergunakan stepdown karna arus untuk modul Gsm menggunakan arus Dc 3,7 - 4.0 Volt, kelebihan arus modul Gsm akan rusak.
Selanjutnya kita langsung aja memulai programnya, pada postingan kali ini kita tidak memerlukan libray untuk modul gsmnya kita akan pergunakan pin serial 1 pada arduino mega yang terletak pada pin 18 dan 19, bagi rekan - rekan yang mau pake library sim 800L silahkan cari sendiri librarynya.

Berikut program Arduino & modul Gsmnya:

int lampu1 = 10;
int lampu2 = 11;

char text[500] = "";
int amak = 0;
bool abak = false;

void setup() {
 Serial.begin(9600);
 Serial1.begin(9600);

 pinMode(lampu1, OUTPUT);
 pinMode(lampu2, OUTPUT);
 digitalWrite(lampu1, HIGH);
 digitalWrite(lampu2, HIGH);

 Serial1.println("AT+CMGF=1");
 delay(200);
 Serial1.println("AT+CNMI=2,2,0,0,0");
 delay(1000);
}

void loop()
{
  if(Serial1.available()){
    char lastCharRead = Serial1.read();
      if(lastCharRead == '\r' || lastCharRead == '\n'){
        String sms = String(text);
        if(sms.startsWith("+CMT:")){
          
          Serial1.println(sms);
          abak = true;

         
        } else if (sms.length() > 0) {
          // kirim text sms 
          if(abak) {
            Serial1.println(sms);
            if(sms.indexOf("LAMPU 1 ON") >= 0){
            digitalWrite(lampu1, LOW);// lampu 1 hidup
            Serial.print("lampu 1 hidup");
            }
            else if(sms.indexOf("LAMPU 1 OFF") >= 0) {
            digitalWrite(lampu1, HIGH);// lampu 1 mati
            Serial.print("lampu 1 mati");
            } 
            else if(sms.indexOf("LAMPU 2 ON") >= 0) {
            digitalWrite(lampu2, LOW);//lampu 2 hidup
            Serial.print("lampu 2 hidup");
            } 
            else if(sms.indexOf("LAMPU 2 OFF") >= 0) {
            digitalWrite(lampu2, HIGH);// lampu 2 mati
            Serial.print("lampu 2 mati");
            } 
            else if(sms.indexOf("SEMUA ON") >= 0) {
            digitalWrite(lampu1, LOW);// lampu 1 & 2 hidup
            digitalWrite(lampu2, LOW);
            Serial.print("lampu 1 & 2 hidup");
            }
            else if(sms.indexOf("SEMUA OFF") >= 0) {
            digitalWrite(lampu1, HIGH);// lampu 1 & 2 mati
            digitalWrite(lampu2, HIGH);
            Serial.print("lampu 1 & 2 mati");
            }  
            abak = false;
          }
          
        }
        
        for( int i = 0; i < sizeof(text);  ++i ) {
         text[i] = (char)0;
        }
        amak = 0;
    } else {
      text[amak++] = lastCharRead;
    }
  }
}

Cara kerja dari program diatas silahkan kirim sms "LAMPU 1 ON" untuk mengaktifkan lampu 1 "LAMPU 1 OFF" untuk mematikannya, selanjutnya "LAMPU2 ON" untuk mengaktifkan lampu 2 "LAMPU 2 OFF" untuk mematikan lampu 2, "SEMUA ON" untuk menghidupkan lampu 1 & 2, dan "SEMUA OFF" untuk mematikan lampu 1 & 2.

Bagi rekan - rekan yang masih belum mengerti atau terkendala dengan program silahkan komentar dibawah atau mgkin kita bisa saling sering dan belajar tentang mikrocontroler & robotika.

Share:

0 komentar:

BTemplates.com


zulpandru hendra. Diberdayakan oleh Blogger.