Translate

Jasa Programming PLC, TRAINER PLC, JUAL BELI PLC, UPGRADE MESIN PLC, Pemasangan dan Perakitan PLC / HMI

Jasa Programming PLC, TRAINER PLC, JUAL BELI PLC, UPGRADE MESIN PLC, Pemasangan dan Perakitan PLC / HMI


          Kami Perusahaan I-TECH dibawah naungan CV INDI GLOBAL Surabaya menyediakan Berbagai macam kebutuhan, baik itu untuk industri, universitas, tugas akhir maupun untuk perkantoran, harga ditempat kami sangat terjangkau dan bisa dibandingkan dengan lainnya, Kami menyediakan layanan dan jasa seperti berikut ini :

1. Jasa programming PLC dan HMI
2. Jasa upgrading mesin berbasis PLC dan HMI
3. Supplier PLC dengan harga terjangkau
4. Jasa training atau pelatihan PLC dan HMI
5. Jasa Pemasangan dan perakitan system berbasis PLC dan HMI
6. Troubleshoot / konsultan masalah instalasi dan wiring 



Adapun jenis-jenis PLC yang kami miliki yaitu:


1. PLC SCHNEIDER
  
a. PLC Zelio Smart Relay



b. PLC TWIDO




c. PLC MODICON M221



d. PLC MODICON M340













2. PLC SIEMENS:

a. Smart Relay logo 



b. PLC S7 200



c. PLC S7 300



d. PLC S7 400












 
e. PLC S7 1500














3. OMRON:

a. Smart Relay ZEN

















b. PLC CPM2A














Membuat Alat Monitoring Suhu - Kelembaban dan Kendali Pompa Berbasis SMS Gateway

Membuat Alat Monitoring Suhu - Kelembaban dan Kendali Pompa Berbasis SMS Gateway


           Pada penjelasan kali ini saya akan menerangkan mengenai bagaimana membuat sebuah alat yang berfungsi untuk mengendalikan pompa atau peralatan lain berdasarkan set point yang telah diberikan, alat ini akan mengirimkan sms jika suhu melebihi nilai set point dan kelembaban kurang dari set point, alat ini jika kita SMS ke nomer yang ada di alat dengan tulisan "monitor" maka alat akan mengirimkan pesan balik ke nomer handphone pengirim dengan isinya berupa nilai suhu dan kelembaban. alat ini dilengkapi dengan 4 buah button untuk set nilai batas atas suhu dan batas bawah kelembaban, alat ini sangat cocok untuk monitoring kumbung jamur tiram dan kendali pompa untuk pengkabutan. untuk lebih jelasnya berikut adalah program dan skemanya.
 


a. Arduino Uno





b. Modul SMS SIM800L





c. Rangkain Driver kontroller AC





d. Program Arduino IDE

#include "SIM900.h"
#include <SoftwareSerial.h>
#include "sms.h"
SMSGSM sms;

#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(A0, A1, A2, A3, A4, A5);
#include "DHT.h"


#define DHTPIN 4     // what digital pin we're connected to
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

const int tbset = 11;
const int tbnext = 9;
const int tbdown = 10;
const int tbup = 12;

int butset = 0;
int butnext = 0;
int butup = 0;
int butdown = 0;
int z = 0;
int zz = 0;

int settemp;
int sethum;
int v;

int batassuhu;
int batashum;
char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];


void setup() {
 
       //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("085726496643", "Arduino SMS"))
          //Serial.println("\nSMS sent OK");
    // }
    
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();
 
  pinMode(13,OUTPUT);
  pinMode(tbset,INPUT);
  pinMode(tbnext,INPUT);
  pinMode(tbdown,INPUT);
  pinMode(tbup,INPUT);
 
  dht.begin();
 
  digitalWrite(tbset,HIGH);
  digitalWrite(tbnext,HIGH);
  digitalWrite(tbup,HIGH);
  digitalWrite(tbdown,HIGH);
 
  digitalWrite(13,LOW); 
   
}



void loop() {
  v = 0;
delay(2000);

  int h = dht.readHumidity();
  int t = dht.readTemperature(); 
  int hic = dht.computeHeatIndex(t, h, false);

  lcd.setCursor(0, 0);
  lcd.print("Temp= ");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(13, 0);
  lcd.print(settemp);
 
  lcd.setCursor(0, 1);
  lcd.print("hum= ");
  lcd.print(h);
  lcd.print(" %");
  lcd.setCursor(13, 1);
  lcd.print(sethum);
 
  butset = digitalRead(tbset);
 
  if(butset == LOW){
  delay(500);
    lcd.clear();
    settingsuhu();
 
  }
 
 
  if((t < settemp)&&(z == 1)){
  z = 0;
    digitalWrite(13,LOW); 
  }
 
  if((h < sethum)&&(zz == 1)){
    digitalWrite(13,LOW); 
  zz = 0;
  }
 
  if((t > settemp)&&(settemp > 0)&&(z == 0)){
      if (sms.SendSMS("085726496000", "Suhu Melebihi Batas")) 
      digitalWrite(13,HIGH);    
      z = 1;
     }
 
  if((h < sethum)&&(sethum > 0)&&(zz == 0)){
       if (sms.SendSMS("085726496000", "Kelembaban Melebihi Batas"))
       digitalWrite(13,HIGH);    
      zz = 1;
     }
 
  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);
    }

  
    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{}
      }
  }
}


void settingsuhu(){

lcd.setCursor(0, 0);
lcd.print("  SETTING TEMP  ");
lcd.setCursor(0, 1);
lcd.print("TEMP= ");
lcd.print(batassuhu);

butup = digitalRead(tbup);
butdown = digitalRead(tbdown);
butnext = digitalRead(tbnext);

if(butup == LOW){
delay(200);
  batassuhu++;

}

if(butdown == LOW){
delay(200);
  batassuhu--;

}

if(butnext == LOW){
delay(200);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LOADING......");
delay(2000);
lcd.clear();

settemp = batassuhu;

 settinghum();

}

if(v == 1){
return;
}

settingsuhu();


}



void settinghum(){

lcd.setCursor(0, 0);
lcd.print("SETTING HUMIDITY");
lcd.setCursor(0, 1);
lcd.print("Hum= ");
lcd.print(batashum);

butup = digitalRead(tbup);
butdown = digitalRead(tbdown);
butnext = digitalRead(tbnext);

if(butup == LOW){
delay(200);
  batashum++;

}

if(butdown == LOW){
delay(200);
  batashum--;

}

if(butnext == LOW){
delay(200);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("LOADING......");
delay(3000);
lcd.clear();

sethum = batashum;

v = 1;
 return;

}

settinghum();

}





e. CONTOH SMS





e. VIDEO ALATNYA










Membuat Alat Kendali Menggunakan SMS GATEWAY dan ARDUINO

Membuat Alat Kendali Menggunakan SMS GATEWAY dan ARDUINO


           Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat untuk kendali peralatan rumah tangga atau lainnya menggunakan sms, jadi alat ini bisa mengaktifkan dan mematikan alat menggunakan perintah SMS. aplikasi dari alat ini yaitu bisa digunakan untuk kendali peralatan rumah seperti lampu, kipas angin dll. ataupun untuk kendali industri seperti pintu kantor atau kendali valve. pada contoh ini menggunakan kipas angin dan sms yang di izinkan yaitu "Kipason" dan "Kipasoff". untuk penjelasan program dan skemanya seperti berikut.



a. Arduino Uno





b. Modul SMS SIM800L





c. Rangkaian Driver AC





d. Program Arduino IDE

#include "SIM900.h"
#include "sms.h"
#include "SoftwareSerial.h"
#include "sms.h"

SMSGSM sms;
boolean started=false;
char smsbuffer[160];
char n[20];

void setup(){
  pinMode(13,OUTPUT);
  digitalWrite(13,LOW);
 
  if(gsm.begin(9600)){
    started=true;
   
  }
 
  if(started){
   delsms();
  }
  delay(1000);
  sms.SendSMS("085726496000","SIAP EKSEKUSI");
}

void loop(){

 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,"Kipason")){
     
      digitalWrite(13,HIGH);
      sms.SendSMS(n,"KIPAS TELAH AKTIF");
    }
    if(!strcmp(smsbuffer,"Kipasoff")){
     
      digitalWrite(13,LOW);
      sms.SendSMS(n,"KIPAS TELAH NON-AKTIF");
    }

  
    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{}
      }
  }
}




e. CONTOH SMS





f. VIDEO HASILNYA








Membuat Tongkat Penunjuk Arah untuk Tuna Netra Menggunakan Arduino dan Sensor Jarak SRF05 / SRF04

Membuat Tongkat Penunjuk Arah untuk Tuna Netra Menggunakan Arduino dan Sensor Jarak SRF05 / SRF04


       Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang fungsinya untuk membantu kaum difabel dalam kehidupan sehari-hari, alat ini bertujuan untuk menentukan objek atau benda yang berada di depan, samping kiri dan kanannya, alat ini menggunakan output suara atau buzzer dengan nada yang berbeda untuk tiap halangan yang terbaca, misal ada halangan didepan maka akan berbunyi intonasi nada 1, jika ada halangan di samping kiri atau kanan maka akan mengeluarkan bunyi intonasi nada 2 dan seterusnya, jarak deteksi sensor agar dia berbunyi adalah 1 meter, jadi jika kurang dari satu meter maka buzzer akan berbunyi sesuai intonasi nada yang terkait. alat ini menggunakan sensor jarak SRF05 atau bisa juga menggunakan SRF04, mikrokontroller yang dipakai adalah Arduino. untuk lebih jelasnya berikut adalah skema dan programnya.




a. Arduino Uno





b. Sensor Jarak SRF04





c. BUZZER





d. Program Arduino IDE

#include <Wire.h>
#define trigPin 2
#define echoPin 3
#define trigPin1 4
#define echoPin1 5
#define trigPin2 6
#define echoPin2 7

long duration, distance;
long duration1, distance1;
long duration2, distance2;


void setup(){
  pinMode(8,OUTPUT);
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
 
  digitalWrite(8,HIGH);
 
}
 
 
void loop(){
delay(200);

  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
 
//  Serial.print(distance);
//  Serial.println(" cm");
 
 
  digitalWrite(trigPin1, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin1, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin1, LOW);
  duration1 = pulseIn(echoPin1, HIGH);
  distance1 = (duration1/2) / 29.1;
//  Serial.print(distance1);
//  Serial.println(" cm");
 
   
  digitalWrite(trigPin2, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin2, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin2, LOW);
  duration2 = pulseIn(echoPin2, HIGH);
  distance2 = (duration2/2) / 29.1;
//  Serial.print(distance2);
//  Serial.println(" cm");
 
  if(distance < 100){
    digitalWrite(8,LOW);
    delay(200);
    digitalWrite(8,HIGH);
    delay(200);
   
  }
 
  if(distance1 < 100){
    digitalWrite(8,LOW);
    delay(100);
    digitalWrite(8,HIGH);
    delay(100);
    digitalWrite(8,LOW);
    delay(100);
    digitalWrite(8,HIGH);
    delay(500);
   
  }


  if(distance2 < 100){
    digitalWrite(8,LOW);
    delay(50);
    digitalWrite(8,HIGH);
    delay(50);
    digitalWrite(8,LOW);
    delay(50);
    digitalWrite(8,HIGH);
    delay(50);
    digitalWrite(8,LOW);
    delay(50);
    digitalWrite(8,HIGH);
    delay(500);
   
  }


  if((distance < 100)&&(distance1 < 100)&&(distance2 < 100)){ 
  digitalWrite(8,LOW);
  }

  if((distance > 100)&&(distance1 < 100)&&(distance2 < 100)){ 
  digitalWrite(8,LOW);
  }
 
  if((distance < 100)&&(distance1 > 100)&&(distance2 < 100)){ 
  digitalWrite(8,LOW);
  }

  if((distance < 100)&&(distance1 < 100)&&(distance2 > 100)){ 
  digitalWrite(8,LOW);
  }


 
  
 

 
 e. VIDEO HASILNYA














LOWONGAN KERJA PART TIME SURABAYA

LOWONGAN KERJA MALAM / PART TIME SURABAYA


        Kami adalah perusahaan yang bergerak dibidang pembuatan alat elektronika berbasis mikrokontroller dan mikroprocessor, alat-alat kami yang dibuat meliputi alat-alat untuk industri dan alat-alat untuk trainer atau pelatihan, selain itu kita juga melayani alat-alat untuk tugas akhir teknik yang berhubungan dengan elektronika. 
         Sistem kerja kami part time bisa dilakukan kapan saja, bisa dilakukan dirumah maupun ditempat mana saja, waktu fleksibel yang penting adalah memenuhi target deadline dan juga bisa berkomitmen dalam suatu tanggung jawab yang diberikan. jadi setiap hari atau setiap satu minggu hanya melakukan progress yang telah diampu dan juga progres laporan hasil.   
            Sistem rekruitment kami tidak ada batas waktu, jadi pihak HRD kami akan melakukan seleksi terkait surat lamaran yang masuk jika kami membutuhkan karyawan baru, jadi jika berminat segera kirimkan surat lamaran beserta identitas lengkapnya ke email kami berikut. jangan lupa cantumkan juga posisi yang dilamar di subjek email. Jika Anda terpilih menjadi calon anggota kami, maka kami akan menghubungi melalui WA atau telpon untuk melakukan interview. Atas perhatian dan kerjasamanya kami ucapkan terima kasih.

EMAIL = yanuarm@hotmail.com



a. PROJECT MANAGEMENT

kualifikasi:
- Wanita
- Beragama Islam
- Belum menikah
- Umur maksimal 28 
- Bersedia menjadi customer service project
- Pendidikan minimal SMA atau SMK
- Diutamakan yang masih aktif kuliah di perguruan tinggi di Surabaya 
- Masih aktif atau sudah Lulus Kuliah / Sekolah
- Bersedia mengikuti training / pelatihan
- Berkeinginan untuk belajar pcb design dan programming
- Bersedia membuat jadwal project dan schedule deadline




b. TEKNISI PENDUKUNG 

kualifikasi:
- Pria / Wanita
- Beragama Islam
- Belum menikah
- Umur maksimal 28
- Bersedia menjadi Project Consultant
- Pendidikan minimal SMA atau SMK
- Diutamakan yang masih aktif kuliah di perguruan tinggi di Surabaya
- Masih aktif atau sudah Lulus Kuliah / Sekolah
- Bersedia mengikuti training / pelatihan
- Berkeinginan untuk belajar pcb design dan programing
- Bersedia membantu teknisi utama dalam pembuatan alat




PERHATIAN:

         Sistem rekruitment kami tidak memungut biaya apapun, jika ada pihak-pihak yang mengataskan namakan kami, sebaiknya konfirmasi kepada kami terlebih dahulu, baik itu melalui SMS, Telpon atau Email. Demikian informasi dari kami, silahkan bertanya jika ada yang kurang jelas tentang hal yang tertera diatas. pertanyaan bisa ditujukan ke nomor berikut.

WhatsApp = 085726496643
ID LINE = yanuarmx


Didukung Oleh:
I-Tech Group member of CV INDI GLOBAL Surabaya
                      




JUAL alat pemutus stop kontak berdasarkan timer dan setting dari Android

JUAL alat pemutus stop kontak berdasarkan timer dan setting dari Android


        Kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang bisa dikendalikan waktu nyala dan matinya menggunakan device Android, jadi device Android baik itu berupa HP atau Tablet bisa di gunakan untuk mengendalikan misalnya lampu AC atau pompa air yang watt-nya rendah. Alat ini dilengkapi dengan RTC (Real Time Clock) yang berfungsi untuk memproses hari, tanggal dan jam sekarang, sehingga pada saat alat ini mati atau OFF, RTC akan tetap berjalan / ON, yang akan mengakibatkan saat mikrokontroller menyala, waktu yang ditunjukkan adalah waktu sekarang. Komunikasi antara Alat dengan Device Android menggunakan Bluetooth HC-05.



DEMO ALAT









Membuat alat kendali led 12v dengan menggunakan suara atau ketukan / led dance ( ARDUINO PROJECT)

Membuat alat kendali led 12v dengan menggunakan suara atau ketukan / led dance ( ARDUINO PROJECT)


           Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat kendali nyala - mati led berdasarkan ketukan atau irama nada ketukan, jadi jika terdapat suara atau ketukan maka led akan menyala. alat ini menggunakan mikrokontroller Arduino dan sensor yang digunakan adalah sound sensor / sensor suara. aplikasi dari alat ini yaitu untuk variasi drum saat dihentakkan, jadi saat drum di ketuk maka led akan menyala disertai dengan cipratan air yang muncrat sehingga terkena led. untuk lebih jelasnya berikut adalah skema dan programnya. 




a. Arduino Uno





b. Sensor Suara





c. Led Bar 12v





d. Driver Led / Rangkaian Kendali Led 12 v





e. Program Arduino IDE

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  pinMode(13,OUTPUT);
 
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:

//  Serial.println(sensorValue);
//  delay(200);        // delay in between reads for stability

if(sensorValue > 26){
digitalWrite(13,LOW);
}
else{
digitalWrite(13,HIGH);
}

}






f. VIDEO HASILNYA









Membuat Alat Simulasi Lampu Mobil Menggunakan Kendali REMOTE TV

Membuat Alat Simulasi Lampu Mobil Menggunakan Kendali REMOTE TV


            Pada kesempatan yang istimewa kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang mana alat ini untuk edukasi ke pelajar tentang sistem-sistem yang ada di mobil atau mini bus. jadi dengan menggunakan penunjuk remote tv, jika tombol ditekan maka akan menghidupkan bagian yang telah diisyaratkan sebelumnya, misalnya lampu sore atau lampu kota, kemudian klakson dan suara mesin. Alat ini menggunakan mikrokontroller ATMega16 dan receiver TSOP yang biasa digunakan untuk receiver TV. untuk lebih jelasnya berikut adalah skema dan programnya.



a. Minimum System ATMega





b. IR TSOP 





c. Remote TV for Sony





d. Program Bascom AVR

$regfile = "m16def.dat"
$crystal = 12000000

'Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2
'Config Lcdpin = Pin , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
'Config Lcd = 16 * 2

'Cursor Off
'Cls

Config Timer0 = Timer , Prescale = 256
Stop Timer0
Config Pind.3 = Input
Set Portd.3
Pin_ir Alias Pind.3
Config Int1 = Falling
On Int1 Isr_int1


Ddrb = &B11111111
Ddra = &B11111111
Ddrd.0 = 1
Ddrd.1 = 1
Ddrd.2 = 1
Ddrd.6 = 1
Ddrd.7 = 1

Porta.7 = 1

Dim M As Integer
Dim Data_ir As Word
Dim Cnt_ir As Byte
Dim Flag_ir_start As Bit
Dim Flag_ir_ok As Bit
Dim Suhu_ref As Word
Dim Suhu As Word
'Cls
'Cursor Off
'Locate 1 , 3
'Lcd "SONY DECODERx"
Wait 1
Enable Interrupts
Enable Int1

Data_ir = 0
Porta.3 = 1
M = 0


Ddrc.6 = 1
Portc.6 = 1

Ddrc.4 = 1
Portc.4 = 1
Ddrc.5 = 1
Portc.5 = 1

Portd.6 = 1
Portd.7 = 1
Portb.0 = 1
Portb.1 = 1
Portb.4 = 1
Portb.6 = 1
Porta.4 = 1

Ddrc.7 = 1
Portc.7 = 1

Ddra.0 = 1
Porta.0 = 1
Ddra.1 = 1
Porta.1 = 1


Do

If Flag_ir_ok = 1 Then
   Reset Flag_ir_ok
   Disable Int1
   Gosub Isr_int1
   Cls
   Cursor Off
   Locate 1 , 3
   Lcd "Data= " ; Data_ir

If Data_ir = 137 And M = 0 Then

   Portb.0 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 137 And M = 1 Then

   Portb.0 = 1

   M = 0

   Data_ir = 0

End If


If Data_ir = 128 And M = 0 Then

   Portb.1 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 128 And M = 1 Then

   Portb.1 = 1

   M = 0

   Data_ir = 0

End If


If Data_ir = 129 And M = 0 Then

   Portb.4 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 129 And M = 1 Then

   Portb.4 = 1

   M = 0

   Data_ir = 0

End If




If Data_ir = 130 And M = 0 Then

   Portb.6 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 130 And M = 1 Then

   Portb.6 = 1

   M = 0

   Data_ir = 0

End If


If Data_ir = 134 And M = 0 Then

   Porta.4 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 134 And M = 1 Then

   Porta.4 = 1

   M = 0

   Data_ir = 0

End If


If Data_ir = 135 And M = 0 Then

   Porta.3 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 135 And M = 1 Then

   Porta.3 = 1

   M = 0

   Data_ir = 0

End If

If Data_ir = 148 And M = 0 Then

   Porta.7 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 148 And M = 1 Then

   Porta.7 = 1


   M = 0

   Data_ir = 0

End If



If Data_ir = 146 And M = 0 Then

   Portd.7 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 146 And M = 1 Then

   Portd.7 = 1


   M = 0

   Data_ir = 0

End If



If Data_ir = 147 And M = 0 Then

   Portd.6 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 147 And M = 1 Then

   Portd.6 = 1


   M = 0

   Data_ir = 0

End If


If Data_ir = 149 And M = 0 Then

   Portc.7 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 149 And M = 1 Then

   Portc.7 = 1


   M = 0

   Data_ir = 0

End If


If Data_ir = 136 And M = 0 Then

   Portc.6 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 136 And M = 1 Then

   Portc.6 = 1


   M = 0

   Data_ir = 0

End If


If Data_ir = 131 And M = 0 Then

   Porta.0 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 131 And M = 1 Then

   Porta.0 = 1


   M = 0

   Data_ir = 0

End If


If Data_ir = 132 And M = 0 Then

   Porta.1 = 0


   M = 1

   Data_ir = 0

End If


If Data_ir = 132 And M = 1 Then

   Porta.1 = 1


   M = 0

   Data_ir = 0

End If


If Data_ir = 133 And M = 0 Then

   Porta.0 = 0
   Porta.1 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 133 And M = 1 Then

   Porta.0 = 1
   Porta.1 = 1

   M = 0

   Data_ir = 0

End If





If Data_ir = 229 And M = 0 Then

   Portb.0 = 0
   Portb.1 = 0
   Portb.4 = 0
   Portb.6 = 0
   Porta.0 = 0
   Porta.1 = 0
   Porta.4 = 0
   Porta.3 = 0
   Portc.6 = 0
   Portc.7 = 0

   M = 1

   Data_ir = 0

End If


If Data_ir = 229 And M = 1 Then

   Portb.0 = 1
   Portb.1 = 1
   Portb.4 = 1
   Portb.6 = 1
   Porta.0 = 1
   Porta.1 = 1
   Porta.4 = 1
   Porta.3 = 1
   Portc.6 = 1
   Portc.7 = 1

   M = 0

   Data_ir = 0

End If



Data_ir = 0

   Reset Flag_ir_ok
   Enable Int1
 End If
 Wait 1
Loop








Isr_int1:
 Timer0 = 0
 Start Timer0
 Bitwait Pin_ir , Set
 Stop Timer0
 If Cnt_ir = 0 Then
 If Timer0 > 110 And Timer0 < 120 Then
 Set Flag_ir_start
 Incr Cnt_ir
 End If
 End If
 If Flag_ir_start = 1 And Cnt_ir > 0 Then
 Decr Cnt_ir
 If Timer0 < 32 Then
 Data_ir.cnt_ir = 0
 Else
 Data_ir.cnt_ir = 1
 End If
 Cnt_ir = Cnt_ir + 2
 If Cnt_ir > 11 Then
 Shift Data_ir , Right , 1
 Reset Flag_ir_start
 Set Flag_ir_ok
 Cnt_ir = 0
 End If
 End If
Return






e. VIDEO HASILNYA











Membuat Alat Penunjuk Arah Kiblat Dengan Arduino, SRF04 sensor jarak, dan magnetometer / compass sensor hmc5883l

Membuat Alat Penunjuk Arah Kiblat Dengan Arduino, SRF04 sensor jarak, dan magnetometer / compass sensor hmc5883l


           Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang fungsinya adalah untuk menunjukkan arah kiblat bagi tuna netra, jadi alat ini dilengkapi dengan dua buah sensor yaitu sensor jarak dan sensor magneto / compass, fungsi dari sensor compass adalah untuk menentukan arah kiblat yang telah disetting, kemudian fungsi dari sensor jarak / SRF04 yaitu untuk mendeteksi jarak benda yang ada didepannya, jadi si tuna netra juga tahu apakah didepannya ada benda ataukah tidak. Alat ini memberikan indikator berupa bunyi jadi jika bunyi buzzernya dua kali mengindikasikan bahwa didepan ada benda dengan jarak kurang dari 1,5 meter, kemudian jika bunyi buzzer hanya sekali dan panjang, berarti itu merupakan arah kiblat. untuk lebih jelasnya berikut adalah skema dan programnya. 




a. Arduino Uno





b. Sensor Jarak SRF04





c. Sensor Compass / Magneto HMC5883L





d. Buzzer 





e. Program Arduino IDE

#include <Wire.h>
#include <HMC5883L.h>
#define trigPin 2
#define echoPin 3

HMC5883L compass;

void setup(){
  pinMode(8,OUTPUT);
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
 
 
  // Initialize Initialize HMC5883L
  Serial.println("Initialize HMC5883L");
  while (!compass.begin())
  {
    Serial.println("Could not find a valid HMC5883L sensor, check wiring!");
    delay(500);
  }

  // Set measurement range
  compass.setRange(HMC5883L_RANGE_1_3GA);

  // Set measurement mode
  compass.setMeasurementMode(HMC5883L_CONTINOUS);

  // Set data rate
  compass.setDataRate(HMC5883L_DATARATE_30HZ);

  // Set number of samples averaged
  compass.setSamples(HMC5883L_SAMPLES_8);

  // Set calibration offset. See HMC5883L_calibration.ino
  compass.setOffset(0, 0);

}


void loop(){
   
  Vector norm = compass.readNormalize();

  // Calculate heading
  float heading = atan2(norm.YAxis, norm.XAxis);

  float declinationAngle = (4.0 + (26.0 / 60.0)) / (180 / M_PI);
  heading += declinationAngle;

  // Correct for heading < 0deg and heading > 360deg
  if (heading < 0)
  {
    heading += 2 * PI;
  }

  if (heading > 2 * PI)
  {
    heading -= 2 * PI;
  }

  // Convert to degrees
  float headingDegrees = heading * 180/M_PI;

  Serial.print(" Degress = ");
  Serial.print(headingDegrees);
  Serial.println();

  long duration, distance;
  digitalWrite(trigPin, LOW);  // Added this line
  delayMicroseconds(2); // Added this line
  digitalWrite(trigPin, HIGH);
//  delayMicroseconds(1000); - Removed this line
  delayMicroseconds(10); // Added this line
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/2) / 29.1;
  Serial.print(distance);
  Serial.println(" cm");
 
  if((headingDegrees >= 140.0)&&(headingDegrees <= 160.0)){
  digitalWrite(8,LOW);
  }
  else{
  digitalWrite(8,HIGH); 
  }
 
  if(distance < 150){
 
  digitalWrite(8,LOW);
  delay(200);
  digitalWrite(8,HIGH);
  delay(200);
  digitalWrite(8,LOW);
  delay(200);
  digitalWrite(8,HIGH);
  delay(200);
 
  }
 
  delay(200);

}






f. VIDEO HASILNYA