Showing posts with label arduino. Show all posts
Showing posts with label arduino. Show all posts

Wednesday, 14 December 2016

Program Running led dengan Mode +speed set + codingnya


Kalau kita di jalan raya, kita akan melihat mobil polisi dilengkapi dengan lampu yang menyala kedip-kedip, dengan berbagai variasi.

Kita dengan program mikrokontroller dapat dengan mudah membuat lampu tersebut.
berikut simulasinya :



skematiknya :




Klik codingnya/Projectnya disini


reff : http://www.rokhmad.com/2016/02/program-running-led-dengan-mode-speed.html

SIM800L : Control Relay 4 Channel with SMS via SIM800L GSM Module

Control Relay 4 Channel Menggunakan SMS

Yang dimaksud disini adalah mengontrol 4 buah beban (misal lampu atau motor ata Home electric device) melalui Relay dan dikendalikan melalui SMS yang sudah ter-Otentikasi Nomor Pengirimnya,
artinya Relay hanya mau mengikuti instruksi dari SMS dengan Nomor yang sudah terdaftar di sistem dan mengabaikan Instruksi SMS dari Nomor yang tidak terdaftar pada sistem program.





Module yang dibutuhkan :
1pc Arduino UNO Rev.3
1pc Relay Module 4 Channel Low Active
1pc SIM800L GSM Module
1pc DC StepDown Buck Converter
+Beberapa pcs kabel dupon/jumper untuk wiring


Wiring SIM800L <--> Arduino Uno
RXD <--> D8
TXD <--> D7
VCC <--> 3.7V melalui stepdown dari 5V Arduino
GND <--> GND

Wiring Relay 4 Channel <--> Arduino Uno
GND <--> GND
CH1 <--> D2

CH2 <--> D3
CH3 <--> D4
CH4 <--> D5
VCC <--> 5V


Wiring DC StepDown Buck Converter
(-) IN <--> GND Arduino
(+) IN <--> 5V Arduino
(-) OUT <--> GND SIM800L
(+) OUT <--> VCC SIM800L

Atur VR/Trimpot pada Stepdown sampai mendapatkan tegangan 3,7VDC dan Ukur dengan Voltmeter
Sebelum disambungkan dengan Vcc pada Module SIM800L
Warning: Jangan Memberi tegangan di atas 4,2VDC pada Vcc Module SIM800L karena dapat menyebabkan kerusakan pada Module

Library GSM Seeeduino silahkan download disini

Berikut Sketch Coding yang Harus dimasukan pada Arduino Uno :



  1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include 
#include

#define TIMEOUT 5000
#define LED_PIN 13
#define ON LOW
#define OFF HIGH

const int Relay1 = 2;
const int Relay2 = 3;
const int Relay3 = 4;
const int Relay4 = 5;

int StatRelay1;
int StatRelay2;
int StatRelay3;
int StatRelay4;

GPRS gprs;

void setup() {
pinMode (Relay1 , OUTPUT); digitalWrite (Relay1, HIGH);
pinMode (Relay2 , OUTPUT); digitalWrite (Relay2, HIGH);
pinMode (Relay3 , OUTPUT); digitalWrite (Relay3, HIGH);
pinMode (Relay4 , OUTPUT); digitalWrite (Relay4, HIGH);
Serial.begin(9600);
while(!Serial);

Serial.println("Starting SIM800 Auto Read SMS");
gprs.preInit();
delay(1000);

while(0 != gprs.init()) {
delay(1000);
Serial.print("init error\r\n");
}

//Set SMS mode to ASCII
if(0 != gprs.sendCmdAndWaitForResp("AT+CMGF=1\r\n", "OK", TIMEOUT)) {
ERROR("ERROR:CNMI");
return;
}

//Start listening to New SMS Message Indications
if(0 != gprs.sendCmdAndWaitForResp("AT+CNMI=1,2,0,0,0\r\n", "OK", TIMEOUT)) {
ERROR("ERROR:CNMI");
return;
}

Serial.println("Init success");
}

//Variable to hold last line of serial output from SIM800
char currentLine[500] = "";
int currentLineIndex = 0;

//Boolean to be set to true if message notificaion was found and next
//line of serial output is the actual SMS message content
bool nextLineIsMessage = false;

void loop() {
//Write current status to LED pin
digitalWrite(Relay1, StatRelay1);
digitalWrite(Relay2, StatRelay2);
digitalWrite(Relay3, StatRelay3);
digitalWrite(Relay4, StatRelay4);

//If there is serial output from SIM800
if(gprs.serialSIM800.available()){
char lastCharRead = gprs.serialSIM800.read();
//Read each character from serial output until \r or \n is reached (which denotes end of line)
if(lastCharRead == '\r' || lastCharRead == '\n'){
String lastLine = String(currentLine);

//If last line read +CMT, New SMS Message Indications was received.
//Hence, next line is the message content.
if(lastLine.startsWith("+CMT:")){

Serial.println(lastLine);
nextLineIsMessage = true;

} else if (lastLine.length() > 0) {

if(nextLineIsMessage) {
Serial.println(lastLine);


// ########## MEMBACA KONTEN SMS DAN MENCARI+MENGARTIKAN KONTEN SMS KE PROGRAM #########
//Kendali Relay
if(lastLine.indexOf("Relay1 ON") >= 0){
StatRelay1 = ON;
Serial.println("Relay1 DINYALAKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay1 DINYALAKAN");}
else if(lastLine.indexOf("Relay1 OFF") >= 0) {
StatRelay1 = OFF;
Serial.println("Relay1 DIMATIKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay1 DIMATIKAN");}

if(lastLine.indexOf("Relay2 ON") >= 0){
StatRelay2 = ON;
Serial.println("Relay2 DINYALAKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay2 DINYALAKAN");}
else if(lastLine.indexOf("Relay2 OFF") >= 0) {
StatRelay2 = OFF;
Serial.println("Relay2 DIMATIKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay2 DIMATIKAN");}

if(lastLine.indexOf("Relay3 ON") >= 0){
StatRelay3 = ON;
Serial.println("Relay3 DINYALAKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay3 DINYALAKAN");}
else if(lastLine.indexOf("Relay3 OFF") >= 0) {
StatRelay3 = OFF;
Serial.println("Relay3 DIMATIKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay3 DIMATIKAN");}

if(lastLine.indexOf("Relay4 ON") >= 0){
StatRelay4 = ON;
Serial.println("Relay4 DINYALAKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay4 DINYALAKAN");}
else if(lastLine.indexOf("Relay4 OFF") >= 0) {
StatRelay4 = OFF;
Serial.println("Relay4 DIMATIKAN");
gprs.sendSMS ("08xxxxxxxxxx","Relay4 DIMATIKAN");}


nextLineIsMessage = false;
}

}

//Clear char array for next line of read
for( int i = 0; i < sizeof(currentLine); ++i ) {
currentLine[i] = (char)0;
}
currentLineIndex = 0;
} else {
currentLine[currentLineIndex++] = lastCharRead;
}
}
}


reff : http://www.belajarduino.com/2016/06/sim800l-control-relay-4-channel-with.html

Rangkaian Sensor Gerak untuk Lampu kamar mandi

Rangkaian sensor gerak ini terinspirasi ketika anak-anak saya mau ke kamar mandi, kebetulan posisi saklar lampu kamar mandi agak tinggi, sehingga tinggi anak-anak tidak bisa menjangkaunya. Sehingga kadang ketika akan ke kamar mandi harus memanggil orang tua untuk menyalakan lampu, memang keluarga saya sudah dibiasakan untuk mematikan lampu kamar mandi dan kamar yang lainnya yang tidak dipakai dan setelah selesai digunakan untuk menghemat Pulsa listrik. (bukan pelit tapi membiasakan disiplin)

dari alasan diatas maka saya ingin membuat asensor yang mendeteksi ada orang di dalam kamar mandi, sehingga ketika ada orang masuk kamar mandi, maka lampu kamar mandi akan menyala. Sehingga orang tua yang punya tidak selalu repot untuk mematikan dan menyalakan lampu kamar mandi.

1. Yang pertama kali saya butuh kan adalah Sensor Gerak, ini saya beli di https://www.tokopedia.com/usb/pir-sensor-dengan-moduledengan harga 35 ribu an klo ngk salah


2. Lalu saya buat design PCB untuk rangkaian penguat dan rellaynya, karena sensor ini hanya menghasilkan tegangan sekitar 3 Volt sehingga perlu dikuatkan, selain itu perlu adanya timer sehingga ketika objek tidak bergerak / sedang diam, lampu tidak langsung mati... tapi butuh beberapa saat / diatur dengan timer tertentu untuk mati. Maka saya pilih IC 555 dan decade counter 4017 sebagai rangkainnya.
PCB saya design dengan PCB Wizard.



3. Membuat PCB, merangkaia dan Uji coba... dan akhirnya berhasil...


skematiknya




Lay Out Komponen







Uji Coba



Contoh pemasangan :


unduh skema PCB dan cara kerja rangkaian klik disini

unduh ulasan tentang ABL Klik disini






reff : http://www.rokhmad.com/2014/08/rangkaian-sensor-garak-untuk-lampu.html

Mengendalikan 4 Relay dengan Jaringan Wifi melalui Aplikasi Android

");
client.println("
");
client.println("");
client.print("Control 4 LED Via Wifi");
client.println("
");
client.println("
"
);
client.println("

"
);
//Program Here


// Return the response LED1
//client.print("LED1 is now: ");
// Control LED 1
if (request.indexOf("/status1=1") != -1) {
digitalWrite(LED1, ON);
value1 = HIGH;
lcd.setCursor(0,0);
lcd.print("LED1 set to ON ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if (request.indexOf("/status1=0") != -1) {
digitalWrite(LED1, OFF);
value1 = LOW;
lcd.setCursor(0,0);
lcd.print("LED1 set to OFF ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if(value1==HIGH){
client.println("

"
);
client.print("status1=1");
}
if(value1==LOW){
client.println("

"
);
client.print("status1=0");
}

//client.println("

");

//client.println("");
//client.println("
");

//client.println("");
//Coding ini dibuat oleh dani-Rajacell untuk www.belajarduino.com
//Tutorial ini didukung oleh www.tokopedia.com/rajacell
// Return the response LED2
//client.println("

");

//client.print("LED2 is now: ");
// Control LED 2
if (request.indexOf("/status2=1") != -1) {
digitalWrite(LED2, ON);
value2 = HIGH;
lcd.setCursor(0,0);
lcd.print("LED2 set to ON ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if (request.indexOf("/status2=0") != -1) {
digitalWrite(LED2, OFF);
value2 = LOW;
lcd.setCursor(0,0);
lcd.print("LED2 set to OFF ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if(value2==HIGH){
client.println("

"
);
client.print("status2=1");
}
if(value2==LOW){
client.println("

"
);
client.print("status2=0");
}

//client.println("

");

//client.println("");
//client.println("
");

//client.println("");
//Coding ini dibuat oleh dani-Rajacell untuk www.belajarduino.com
//Tutorial ini didukung oleh www.tokopedia.com/rajacell
// Return the response LED3
//client.println("

");

//client.print("LED3 is now: ");
// Control LED 3
if (request.indexOf("/status3=1") != -1) {
digitalWrite(LED3, ON);
value3 = HIGH;
lcd.setCursor(0,0);
lcd.print("LED3 set to ON ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if (request.indexOf("/status3=0") != -1) {
digitalWrite(LED3, OFF);
value3 = LOW;
lcd.setCursor(0,0);
lcd.println("LED3 set to OFF ");
lcd.setCursor(0,1);
lcd.println("by Client Reques");
delay (delayLCD);
}
if(value3==HIGH){
client.println("

"
);
client.print("status3=1");
}
if(value3==LOW){
client.println("

"
);
client.print("status3=0");
}

//client.println("

");

//client.println("");
//client.println("
");

//client.println("");
//Coding ini dibuat oleh dani-Rajacell untuk www.belajarduino.com
//Tutorial ini didukung oleh www.tokopedia.com/rajacell
// Return the response LED4
//client.println("

");

//client.print("LED4 is now: ");
// Control LED 4
if (request.indexOf("/status4=1") != -1) {
digitalWrite(LED4, ON);
value4 = HIGH;
lcd.setCursor(0,0);
lcd.print("LED4 set to ON ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if (request.indexOf("/status4=0") != -1) {
digitalWrite(LED4, OFF);
value4 = LOW;
lcd.setCursor(0,0);
lcd.print("LED4 set to OFF ");
lcd.setCursor(0,1);
lcd.print("by Client Reques");
delay (delayLCD);
}
if(value4==HIGH){
client.println("

"
);
client.print("status4=1");
}
if(value4==LOW){
client.println("

"
);
client.print("status4=0");
}

//client.println("

");

//client.println("");
//client.println("
");

//client.println("

Membuat ESR meter dengan Arduino Uno R3




ESR meter adalah alat tester untuk mengetest komponen elektronika, terutama jenis TTL. misalnya untuk mengecek kondisi dan nama pin dari : Transistor. FET, SCR, Dioda, LED, TRIAC, DIAC, Resistor, elso, capasitor. dll.

Dengan ESR tester ini kita tidak perlu lagi mengukur dengan AVO meter jika ingin mengetahu pin BCE suatu transistor, atau pin KAG suatu SCR. Cukup pasang komponen yang akan di test pada probe tester, maka posisi kaki akan ditampilkan di layar LCD. Untuk skema dan komponen sangat mudah di dapatkan, dan sedikit sekali komponen yang dipasang.

Komponen yang dibutuhkan :

  • Arduino UNO R3
  • LCD Display 16 x 2
  • Papan Project board (kalau mau bikin langsung bisa solder di PCB)
  • Resistor 680 ohm
  • Resistor 470K
  • Resistor 1 K
  • R 100 K
  • Trimpot 100K
  • Push Button
  • Kabel jumper secukupnya
  • Software Arduino IDE jika belum punya silahkan unduh disini
Langkah Pertama Siapkan Arduino anda dan rangkai sesuai dengan skema dibawah ini :




unduh Project dan Sketch lengkap dengan KLIK disini

Kemudian bukalah software Arduino IDE anda, dan upload sketch ke Arduino Uno R3 anda.




Hasilnya di Layar LCD akan tampil sperti ini :

Pasanglah Komponen di Probe Tester anda, misal ini saya uji coba Transistor, kemudian tekan sesaat tombol tester hasilnya akan ditampilkan dilayar LCD seperti ini :

Jenis Transistor NPN, Posisi kakinya EBC, dengan pin probe 3, 1, 2.Hfe Transistor 832








Bagaimana Membuat Smart tester seperti diatas, tanpa Board Arduino ??

Langkah Pertama isilah masukkan sketch ke dalam ic Atmega 328 dengan board arduino, lalu lepaskan ICnya.

kemudian buatlah PCB seperti dibawah ini :







cetah layout diatas dengan printer laser jet, pada kertas bekas setiker, (ketika kita menempel stiker, ada kertas yang di lepas, nah gunakan kertas tersebut)





Setrika layout tersebut







Hasilnya setelah di larutkan di Ferit Chloorida









Pasang Komponennya, kemudian pasang IC atmega 328 yang sudah diisi sketch di board arduino ke pcb yang baru anda buat.... dan hasilnya seperti ini.





anda dapat modifikasi LCD di posisikan di belakang PCB untuk rangkaian yang lebih ringkas dan praktis jika di pasang di BOX.






Contoh Foto Pengukuran komponen :

Pengukuran 2 buah Resistor seri 220ohm dan 100 ohm


Pengukuran SCR Fir 3D


Pengukuran Transistor




Pengukuran Elco 100 uF


Pengukuran Capasitor 100 nF


Pengukuran dioda IN4001


Pengukran Resistor 220 Ohm


Pengukuran LED




My Video use Ardu tester and How to Calibration






unduh Project dan Sketch lengkap denganKLIK disini

Jika anda tidak punya Board Arduino, bagaimana cara buat ESR Tester ini??
baca POSTING SAYA disini



special thx for
my reference :

http://forum.arduino.cc/index.php?topic=164112.0
https://blog.adafruit.com/2013/05/02/ardutester-arduino-component-tester/
http://black-electronics.com/blog/wp-content/uploads/2013/05/ArduTester.txt
http://nicuflorica.blogspot.co.id/2015/04/ardutester-identificator-de-componente.html


reff : http://www.rokhmad.com/2016/04/membuat-esr-meter-dengan-arduino-uno-r3.html