Selasa, 08 September 2020

Tutorial Komunikasi Serial Jarak Jauh menggunakan Modul HC-12

     Halo semuanya, kembali lagi di website AlterTronics. Pada post kali ini, saya akan berbagi tutorial tentang komunikasi serial jarak jauh dengan menggunakan modul radio. Modul radio yang akan saya gunakan adalah HC-12. Modul ini dapat berkomunikasi tanpa kabel dengan Arduino lainnya dengan jarak paling jauh yaitu sekitar 1,8 KM. Kalian bisa menonton video yang telah saya sediakan dibawah ini. 

    


    Komponen yang akan saya gunakan adalah sebagai berikut:

  1. 2x Arduino (bebas mau tipe board apa saja)
  2. 2x Modul HC-12
  3. 1x Sensor Door Magnetic
  4. 1x Buzzer
  5. Beberapa kabel jumper
  6. Software Arduino IDE
        Barang-barang diatas dapat kalian beli lewat online (Tokopedia, Bukalapak, Shopee dsb) atau kalian bisa datangi toko Mikrokontroler terdekat di daerah kalian. Setelah semua barang telah terkumpul, mari kita buat rangkaiannya. Kalian bisa mencontoh rangkaian sederhana yang telah saya buat seperti digambar dibawah ini:








        Setelah selesai kalian tinggal memasukkan code yang ada dibawah ini. Terdapat 2 code program, yaitu program Transmitter dan juga program Receiver. Sebelum Upload program ke arduino, perhatikan Port yang kalian gunakan dan juga Board Arduino yang harus kalian sesuaikan dengan Arduino yang kalian gunakan.
    

// Program Transmitter
#include <SoftwareSerial.h>
SoftwareSerial HC12(10, 11); 
const int DOOR_SENSOR_PIN = 13; 
int doorState;

void setup() {
  Serial.begin(9600);             
  HC12.begin(9600);               
  pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP);
}
void loop() { 
       sensor();
}
void sensor(){
  doorState = digitalRead(DOOR_SENSOR_PIN);
  if(doorState==HIGH){
    HC12.write('1'); 
  }
  else if (doorState==LOW)
  {
  HC12.write('0');  
  }
}

// Program Receiver
#include <SoftwareSerial.h>
SoftwareSerial HC12(10, 11); // HC-12 TX Pin, HC-12 RX Pin
int data;
const int buzz = 2;
void setup() {
  Serial.begin(9600);            
  HC12.begin(9600);              
  pinMode(buzz, OUTPUT);
}
void loop() {
  while (HC12.available()) {       
    data = HC12.read();
    Serial.println(data);      
  if (data == 1 || data == 49 || data == 138)
{
  digitalWrite(buzz, HIGH);
}
else if(data == 0 || data == 48 || data == 130)
{
  digitalWrite(buzz, LOW);
}
  }  
}
       
     Setelah selesai, hasil dari program dapat dilihat dengan melepas Sensor Door Magnetic yang berada di  Arduino Transmitter, maka pada Arduino Receiver akan menyalakan Buzzer. Sebaliknya, ketika Sensor Door Magnetic pada Arduino Transmitter tertutup maka Buzzer pada Arduino Receiver akan berhenti berbunyi. Kalian dapat mendownload Source Code dan Library pada link dibawah ini. 

Download
Transmitter Server 1
Receiver Server 1