#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
SoftwareSerial SIM800L(12, 11);
#define trigPin 3
#define echoPin 4
#define ledaman 5
#define led1 6
#define led2 7
#define led3 8
#define BUZZER 9
#define konveyor A1
#define speaker 10
void setup() {
lcd.begin(16, 2);
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Assalamualaikum");
lcd.setCursor(5, 1);
lcd.print("WR.WB");
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Ririn Afriza");
lcd.setCursor(0, 1);
lcd.print("NPM : 1660100080");
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("I L0VE YOU");
delay(2000);
lcd.clear();
lcd.setCursor(4, 0);
lcd.print("SKRIPSI");
lcd.setCursor(3, 1);
lcd.print("ROBOTIKA");
delay(2000);
SIM800L.begin(115200);
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(BUZZER, OUTPUT);
pinMode(konveyor, OUTPUT);
pinMode(speaker, OUTPUT);
pinMode(ledaman, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Tinggi Air:");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Kondisi :");
if(distance>=16) {
digitalWrite(ledaman, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(konveyor, HIGH);
digitalWrite(speaker, LOW);
lcd.setCursor(10,1);
lcd.print("Aman");
}
else {
digitalWrite(ledaman, LOW);
}
if(distance <= 15) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(konveyor, HIGH);
digitalWrite(speaker, LOW);
lcd.setCursor(10,1);
lcd.print("Normal");
}
if(distance < 10) {
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
digitalWrite(led3, LOW);
digitalWrite(BUZZER, LOW);
digitalWrite(konveyor, HIGH);
digitalWrite(speaker, LOW);
lcd.setCursor(10,1);
lcd.print("Siaga.");
}
if(distance <= 5) {
digitalWrite(led2, LOW);
digitalWrite(led1, LOW);
digitalWrite(konveyor, LOW);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(led3, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(led3,LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(speaker, HIGH);
delay(500);
lcd.setCursor(10,1);
lcd.print("Bahaya");
SIM800L.write("AT+CMGF=1\r\n");
delay(1000);
SIM800L.write("AT+CMGS=\"082176559542\"\r\n");
delay(1000);
SIM800L.write("Sensor Merdeteksi Adanya ketinggian air ... !!!");
delay(1000);
SIM800L.write((char)26);
delay(1000);
lcd.clear();
}
delay(500);
}
Sabtu, 21 Desember 2019
Program alat penyiram tanaman otomatis
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM800L(5, 4);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int pompa = A1;
float TANAH = A0, LEMBAB = 0;
#define power 7
#define trigPin 3
#define echoPin 2
#define hijau 8
#define kuning 9
#define merah 10
#define BUZZER 6
void setup() {
Serial.begin(9600);
SIM800L.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode( power, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode (pompa, OUTPUT);
lcd.begin(20, 4);
lcd.backlight();
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Assalamualaikum");
lcd.setCursor(7, 1);
lcd.print("WR.WB");
lcd.setCursor(2, 2);
lcd.print("SKRIPSI ROBOTIKA");
lcd.setCursor(2, 3);
lcd.print("PENYIRAM TANAMAN");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nama : Diana Yuntari");
lcd.setCursor(0, 1);
lcd.print("NPM : 1660100060");
lcd.setCursor(0, 2);
lcd.print("Prodi: Informatika");
lcd.setCursor(0, 3);
lcd.print("Fak : Teknik");
delay(4000);
lcd.clear();
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
digitalWrite( power, HIGH);
LEMBAB = analogRead(TANAH);
Serial.print("Kelembapan tanah");
Serial.print(LEMBAB);
lcd.setCursor(0,0);
lcd.print("Jarak :");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Wadah Air :");
lcd.setCursor(0,2);
lcd.print("Kelembapan :");
lcd.print(LEMBAB);
lcd.setCursor(18,2);
lcd.print("%");
lcd.setCursor(0,3);
lcd.print("Kon.Tanah :");
if(LEMBAB>900 ){
Serial.print("Tanah Kering");
lcd.setCursor(12,3);
lcd.print("KERING.");
delay(500);
digitalWrite(pompa, LOW);
delay(1000);
}
else{
Serial.print(" Kel. Normal ");
lcd.setCursor(12,3);
lcd.print("LEMBAB");
digitalWrite(pompa, HIGH);
delay(1000);
}
////Perintah Program Sensor Jarak //////
if(distance < 5) {
digitalWrite(hijau, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(300);
lcd.setCursor(12,1);
lcd.print("Penuh.");
}
else {
digitalWrite(hijau, LOW);
digitalWrite(kuning, HIGH);
lcd.setCursor(12,1);
lcd.print("Sedang");
}
if(distance >= 10) {
lcd.setCursor(12,1);
lcd.print("Kosong");
digitalWrite(hijau, LOW);
digitalWrite(kuning, LOW);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
SIM800L.write("AT+CMGF=1\r\n");
delay(1000);
SIM800L.write("AT+CMGS=\"082176559542\"\r\n");
delay(1000);
SIM800L.write("Sensor Merdeteksi Adanya ketinggian air ... !!!");
delay(1000);
SIM800L.write((char)26);
delay(1000);
lcd.clear();
}
delay(300);
}
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM800L(5, 4);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int pompa = A1;
float TANAH = A0, LEMBAB = 0;
#define power 7
#define trigPin 3
#define echoPin 2
#define hijau 8
#define kuning 9
#define merah 10
#define BUZZER 6
void setup() {
Serial.begin(9600);
SIM800L.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode( power, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(merah, OUTPUT);
pinMode(kuning, OUTPUT);
pinMode (pompa, OUTPUT);
lcd.begin(20, 4);
lcd.backlight();
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Assalamualaikum");
lcd.setCursor(7, 1);
lcd.print("WR.WB");
lcd.setCursor(2, 2);
lcd.print("SKRIPSI ROBOTIKA");
lcd.setCursor(2, 3);
lcd.print("PENYIRAM TANAMAN");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Nama : Diana Yuntari");
lcd.setCursor(0, 1);
lcd.print("NPM : 1660100060");
lcd.setCursor(0, 2);
lcd.print("Prodi: Informatika");
lcd.setCursor(0, 3);
lcd.print("Fak : Teknik");
delay(4000);
lcd.clear();
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
digitalWrite( power, HIGH);
LEMBAB = analogRead(TANAH);
Serial.print("Kelembapan tanah");
Serial.print(LEMBAB);
lcd.setCursor(0,0);
lcd.print("Jarak :");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print("Wadah Air :");
lcd.setCursor(0,2);
lcd.print("Kelembapan :");
lcd.print(LEMBAB);
lcd.setCursor(18,2);
lcd.print("%");
lcd.setCursor(0,3);
lcd.print("Kon.Tanah :");
if(LEMBAB>900 ){
Serial.print("Tanah Kering");
lcd.setCursor(12,3);
lcd.print("KERING.");
delay(500);
digitalWrite(pompa, LOW);
delay(1000);
}
else{
Serial.print(" Kel. Normal ");
lcd.setCursor(12,3);
lcd.print("LEMBAB");
digitalWrite(pompa, HIGH);
delay(1000);
}
////Perintah Program Sensor Jarak //////
if(distance < 5) {
digitalWrite(hijau, HIGH);
digitalWrite(kuning, LOW);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(300);
lcd.setCursor(12,1);
lcd.print("Penuh.");
}
else {
digitalWrite(hijau, LOW);
digitalWrite(kuning, HIGH);
lcd.setCursor(12,1);
lcd.print("Sedang");
}
if(distance >= 10) {
lcd.setCursor(12,1);
lcd.print("Kosong");
digitalWrite(hijau, LOW);
digitalWrite(kuning, LOW);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
digitalWrite(merah, HIGH);
digitalWrite(BUZZER, HIGH);
delay(500);
digitalWrite(merah, LOW);
digitalWrite(BUZZER, LOW);
delay(500);
SIM800L.write("AT+CMGF=1\r\n");
delay(1000);
SIM800L.write("AT+CMGS=\"082176559542\"\r\n");
delay(1000);
SIM800L.write("Sensor Merdeteksi Adanya ketinggian air ... !!!");
delay(1000);
SIM800L.write((char)26);
delay(1000);
lcd.clear();
}
delay(300);
}
program Pendeteksi kekeruan air dengan sensor turbidity
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
SoftwareSerial SIM800L(12, 11);
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
int pompa1 = 6;
int pompa2 = 7;
int buzzer = 2;
int ledmerah = A1;
int ledbiru = A2;
int ledhijau = A3;
int photocellPin0 = A0, photocellReading=0;
float Res0 = 10.0;
void setup() {
pinMode(pompa1, OUTPUT);
pinMode(pompa2, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(ledmerah, OUTPUT);
pinMode(ledbiru, OUTPUT);
pinMode(ledhijau, OUTPUT);
Serial.begin(9600);
lcd.begin(20, 4);
lcd.backlight();
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Assalamualaikum");
lcd.setCursor(7, 1);
lcd.print("WR.WB");
lcd.setCursor(5, 2);
lcd.print("LOLA ARFIKA");
lcd.setCursor(2, 3);
lcd.print("NPM : 1660100065");
delay(2000);
lcd.clear();
}
int i;
void loop() {
photocellReading = analogRead(photocellPin0);
float Vout0=photocellReading*0.0048828125;
lcd.setCursor(0,0);
lcd.print("Voltage :");
lcd.setCursor(10,0);
lcd.print(Vout0);
lcd.setCursor(15,0);
lcd.print(" V/t");
lcd.setCursor(0,1);
lcd.print("Volt");
lcd.setCursor(10,1);
lcd.print(photocellReading);
//Output
lcd.setCursor(0,1);
lcd.print("ADC ");
lcd.setCursor(8,1);
lcd.print(":");
lcd.setCursor(10,1);
lcd.print(photocellRea ding);
lcd.setCursor(15,1);
lcd.print("%");
lcd.setCursor(0,2);
lcd.print("Kondisi :");
if (photocellReading >= 500) {
lcd.setCursor(10,2);
lcd.print("KOSONG");
digitalWrite(pompa1, HIGH);
digitalWrite(pompa2, HIGH);
digitalWrite(ledhijau, LOW);
digitalWrite(ledbiru, HIGH);
digitalWrite(ledmerah, LOW);
digitalWrite(buzzer, LOW);
}
if (photocellReading <=500) {
lcd.setCursor(10,2);
lcd.print("KERUH.");
digitalWrite(pompa1, HIGH);
digitalWrite(pompa2, LOW);
digitalWrite(ledhijau, LOW);
digitalWrite(ledbiru, LOW);
digitalWrite(ledmerah, HIGH);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
delay(500);
digitalWrite(buzzer, HIGH);
delay(500);
digitalWrite(buzzer, LOW);
delay(500);
}
if (photocellReading >=650) {
lcd.setCursor(10,2);
lcd.print("JERNIH");
digitalWrite(pompa1, LOW);
digitalWrite(pompa2, HIGH);
digitalWrite(ledhijau, HIGH);
digitalWrite(ledbiru, LOW);
digitalWrite(ledmerah, LOW);
digitalWrite(buzzer, LOW);
}
delay(2000);//pengulangan pembacaan
lcd.clear();
}
Program robot pemadam api dan skema
#include <Servo.h>
#define RODA1 4
#define RODA2 5
Servo Roda1; Servo Roda2;
//definisi pin kipas dan pin buzzer
#define pompa 13
#define buzzer A7
bool keadaan;
//KALIBRASI KECEPATAN DAN SETPOIN SENSOR
int kecepataan =600; // NILAI GERAK BELOK 90* (500-1000);
int rodakanan =93; // NILAI BERHENTI RODA KANAN (+-90);
int rodakiri =95; // NILAI BERHENTI RODA KIRI (+-90);
int setpoin =7; // NILAI TOLERANSI JARAK HINDAR (7-15);
int lintasan =200; // NILAI TOLERANSI WARNA LINTASAN (0-1024)
int api =500; // NILAI TOLERANSI CAHAYA API (0-1024)
//inisialisasi sensor 1 sebelah kiri
#include <NewPing.h>
#define echo1 9
#define trigger1 10
NewPing sonar1(trigger1,echo1,100);
//inisialisasi sensor 2 sebelah depan
#define echo2 11
#define trigger2 12
NewPing sonar2(trigger2,echo2,100);
//inisialisasi sensor 3 sebelah kanan
#define echo3 7
#define trigger3 8
NewPing sonar3(trigger3,echo3,100);
void setup() {
Serial.begin(9600); // serial monitor "menampilkan data sensor"
diam(3000);
Roda1.attach(RODA1); //pin motor servo
Roda2.attach(RODA2);
pinMode(pompa,OUTPUT);
pinMode(buzzer,OUTPUT);
keadaan = 0;
}
void loop() {
// sensor mengukur dan membaca
int jarak1 =sonar1.ping_cm(); // sensor kiri
int jarak2 =sonar2.ping_cm(); // sensor depan
int jarak3 =sonar3.ping_cm(); // sensor kanan
int base = analogRead(A0); // pin sensor tcr5000
int api1 = analogRead(A1); // pin sensor Api A1-A5
int api2 = analogRead(A2);
int api3 = analogRead(A3);
int api4 = analogRead(A4);
int api5 = analogRead(A5);
//sensor menampilkan data yang dibaca
Serial.print(jarak1);
Serial.print(" || ");
Serial.print(jarak2);
Serial.print(" || ");
Serial.print(jarak3);
Serial.print(" || ");
Serial.print(api3);
Serial.print(" || ");
Serial.println(base);
//PEMIS 1 jika api terdeteksi maka exsekusi
if ((api2>api||api3>api||api4>api) && (jarak2>1&&jarak2<15)){
digitalWrite(buzzer,HIGH); //buzzer bunyi
digitalWrite(pompa,LOW);
diam(2000); // panggil diam "lihat inisialisasi progam pangillan void diam(x);"
tiup(kecepatan); //panggil tiup
diam(1000); //panggil diam
keadaan = 1;
}
//PREMIS 2 Jika api tidak terdeteksi maka exsekusi
else{
digitalWrite(buzzer,LOW); // buzzer mati
pinMode(pompa, INPUT); digitalWrite(pompa,HIGH); // kipas berhenti
if (base>lintasan && keadaan > 0){
maju();
delay(kecepataan);
diam (100000);//berhenti total
}
//jika sensor kiri terdeteksi maka belok kanan
else if (jarak1<setpoin&&jarak1>1){
kanan(); //panggil kanan
delay(50);
}
//jika sensor kanan terdeteksi maka belok kiri
else if (jarak3<setpoin&&jarak3>1){
kiri();
delay(50);
}
//jika sensor depan terdeteksi maka balik (balik belum ditentukan)
else if (jarak2<setpoin&&jarak2>1){
//jika sensor kiri < sensor kanan maka ditentukan "balik kanan"
if (jarak1<jarak3){
balik_kanan();
delay(kecepataan);
}
//jika sensor kanan > sensor kanan maka ditentukan "balik kiri"
else if (jarak1>jarak3){
balik_kiri();
delay(kecepataan);
}
}
//JIKA NIALI SET POIN SEMUA SENSOR TIDAK TERLAMPAUI MAKA "ROBOT MAJU"
else{
maju();
delay(100);
}
}
}
// inisialisasi progam pangillan
void maju(){ //SEMUA RODA MAJU
Roda1.write(380);
Roda2.write(-380);
}
void mundur(){ //SEMUA RODA MUNDUR
Roda1.write(-380);
Roda2.write(380);
}
void balik_kiri(){
Roda1.write(-380); //RODA1 MUNDUR
Roda2.write(-380); //RODA2 MAJU
}
void balik_kanan(){
Roda1.write(380); //RODA1 MAJU
Roda2.write(380); //RODA2 MUNDUR
}
void kanan(){
Roda1.write(380); //RODA1 MAJU
Roda2.write(rodakanan); //RODA2 BERHENTI
}
void kiri(){
Roda1.write(rodakiri); //RODA1 BERHENTI
Roda2.write(-380); //RODA2 MAJU
}
void diam(int x){
Roda1.write(93); //RODA KANAN BERHENTI
Roda2.write(95); //RODA KIRI BERHENTI
delay(x); //SEMUA RODA BERHENTI
}
void tiup(int x){ // ROBOT BERHENTI DAN MENIUP KEKANAN DAN KRKIRI
balik_kanan();
delay(x/4);
diam(x);
balik_kiri();
delay(x/2);
diam(x);
balik_kanan();
delay(x/2);
diam(x);
balik_kiri();
delay(x/4);
diam(x);
}
#define RODA1 4
#define RODA2 5
Servo Roda1; Servo Roda2;
//definisi pin kipas dan pin buzzer
#define pompa 13
#define buzzer A7
bool keadaan;
//KALIBRASI KECEPATAN DAN SETPOIN SENSOR
int kecepataan =600; // NILAI GERAK BELOK 90* (500-1000);
int rodakanan =93; // NILAI BERHENTI RODA KANAN (+-90);
int rodakiri =95; // NILAI BERHENTI RODA KIRI (+-90);
int setpoin =7; // NILAI TOLERANSI JARAK HINDAR (7-15);
int lintasan =200; // NILAI TOLERANSI WARNA LINTASAN (0-1024)
int api =500; // NILAI TOLERANSI CAHAYA API (0-1024)
//inisialisasi sensor 1 sebelah kiri
#include <NewPing.h>
#define echo1 9
#define trigger1 10
NewPing sonar1(trigger1,echo1,100);
//inisialisasi sensor 2 sebelah depan
#define echo2 11
#define trigger2 12
NewPing sonar2(trigger2,echo2,100);
//inisialisasi sensor 3 sebelah kanan
#define echo3 7
#define trigger3 8
NewPing sonar3(trigger3,echo3,100);
void setup() {
Serial.begin(9600); // serial monitor "menampilkan data sensor"
diam(3000);
Roda1.attach(RODA1); //pin motor servo
Roda2.attach(RODA2);
pinMode(pompa,OUTPUT);
pinMode(buzzer,OUTPUT);
keadaan = 0;
}
void loop() {
// sensor mengukur dan membaca
int jarak1 =sonar1.ping_cm(); // sensor kiri
int jarak2 =sonar2.ping_cm(); // sensor depan
int jarak3 =sonar3.ping_cm(); // sensor kanan
int base = analogRead(A0); // pin sensor tcr5000
int api1 = analogRead(A1); // pin sensor Api A1-A5
int api2 = analogRead(A2);
int api3 = analogRead(A3);
int api4 = analogRead(A4);
int api5 = analogRead(A5);
//sensor menampilkan data yang dibaca
Serial.print(jarak1);
Serial.print(" || ");
Serial.print(jarak2);
Serial.print(" || ");
Serial.print(jarak3);
Serial.print(" || ");
Serial.print(api3);
Serial.print(" || ");
Serial.println(base);
//PEMIS 1 jika api terdeteksi maka exsekusi
if ((api2>api||api3>api||api4>api) && (jarak2>1&&jarak2<15)){
digitalWrite(buzzer,HIGH); //buzzer bunyi
digitalWrite(pompa,LOW);
diam(2000); // panggil diam "lihat inisialisasi progam pangillan void diam(x);"
tiup(kecepatan); //panggil tiup
diam(1000); //panggil diam
keadaan = 1;
}
//PREMIS 2 Jika api tidak terdeteksi maka exsekusi
else{
digitalWrite(buzzer,LOW); // buzzer mati
pinMode(pompa, INPUT); digitalWrite(pompa,HIGH); // kipas berhenti
if (base>lintasan && keadaan > 0){
maju();
delay(kecepataan);
diam (100000);//berhenti total
}
//jika sensor kiri terdeteksi maka belok kanan
else if (jarak1<setpoin&&jarak1>1){
kanan(); //panggil kanan
delay(50);
}
//jika sensor kanan terdeteksi maka belok kiri
else if (jarak3<setpoin&&jarak3>1){
kiri();
delay(50);
}
//jika sensor depan terdeteksi maka balik (balik belum ditentukan)
else if (jarak2<setpoin&&jarak2>1){
//jika sensor kiri < sensor kanan maka ditentukan "balik kanan"
if (jarak1<jarak3){
balik_kanan();
delay(kecepataan);
}
//jika sensor kanan > sensor kanan maka ditentukan "balik kiri"
else if (jarak1>jarak3){
balik_kiri();
delay(kecepataan);
}
}
//JIKA NIALI SET POIN SEMUA SENSOR TIDAK TERLAMPAUI MAKA "ROBOT MAJU"
else{
maju();
delay(100);
}
}
}
// inisialisasi progam pangillan
void maju(){ //SEMUA RODA MAJU
Roda1.write(380);
Roda2.write(-380);
}
void mundur(){ //SEMUA RODA MUNDUR
Roda1.write(-380);
Roda2.write(380);
}
void balik_kiri(){
Roda1.write(-380); //RODA1 MUNDUR
Roda2.write(-380); //RODA2 MAJU
}
void balik_kanan(){
Roda1.write(380); //RODA1 MAJU
Roda2.write(380); //RODA2 MUNDUR
}
void kanan(){
Roda1.write(380); //RODA1 MAJU
Roda2.write(rodakanan); //RODA2 BERHENTI
}
void kiri(){
Roda1.write(rodakiri); //RODA1 BERHENTI
Roda2.write(-380); //RODA2 MAJU
}
void diam(int x){
Roda1.write(93); //RODA KANAN BERHENTI
Roda2.write(95); //RODA KIRI BERHENTI
delay(x); //SEMUA RODA BERHENTI
}
void tiup(int x){ // ROBOT BERHENTI DAN MENIUP KEKANAN DAN KRKIRI
balik_kanan();
delay(x/4);
diam(x);
balik_kiri();
delay(x/2);
diam(x);
balik_kanan();
delay(x/2);
diam(x);
balik_kiri();
delay(x/4);
diam(x);
}
Minggu, 01 Desember 2019
Program iot
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266_SSL.h>
#include <DHT.h>
#include <Servo.h>
#include <BlynkSimpleEsp8266_SSL.h>
#include <DHT.h>
#include <Servo.h>
#define DHTPIN D2
#define DHTTYPE DHT11
#define DHTTYPE DHT11
char auth[] = "..................."; //Auth dari BLYNK di email anda
char ssid[] = "...................."; //Nama wifi
char pass[] = "..................."; //Password wifi
char ssid[] = "...................."; //Nama wifi
char pass[] = "..................."; //Password wifi
#define pirPin D5
int pirValue;
int pinValue;
int pirValue;
int pinValue;
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
Servo servo;
BlynkTimer timer;
Servo servo;
BLYNK_WRITE(V0)
{
pinValue = param.asInt();
}
{
pinValue = param.asInt();
}
BLYNK_WRITE(V3)
{
servo.write(param.asInt());
}
{
servo.write(param.asInt());
}
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
//delay(10);
{
Serial.begin(9600);
//delay(10);
Blynk.begin(auth, ssid, pass);
pinMode(pirPin, INPUT);
pinMode(pirPin, INPUT);
dht.begin();
timer.setInterval(100L, sendSensor);
servo.attach(D10);
}
}
void loop()
{
Blynk.run();
Timer.run();
getPirValue();
}
{
Blynk.run();
Timer.run();
getPirValue();
}
void getPirValue(void)
{
pirValue = digitalRead(pirPin);
if (pinValue == HIGH)
{if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.notify("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}}
else{
if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}
}
}
{
pirValue = digitalRead(pirPin);
if (pinValue == HIGH)
{if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.notify("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}}
else{
if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}
}
}
Rabu, 27 November 2019
program sms arduino
#include <SoftwareSerial.h> //SIM800 TX Terhubung Arduino D8 #define SIM800_TX_PIN 8 //SIM800 RX Terhubung Arduino D7 #define SIM800_RX_PIN 7 SoftwareSerial serialSIM800(SIM800_TX_PIN,SIM800_RX_PIN); void setup() { Serial.begin(9600); while(!Serial); //Memulai Komunikasi Serial Arduino dengan SIM800 serialSIM800.begin(9600); delay(1000); Serial.println("Program Kirim SMS..."); serialSIM800.write("AT+CMGF=1\r\n"); delay(1000); //No tujuan SMS (Ganti dengan Nomor Penerima SMS) serialSIM800.write("AT+CMGS=\"08211456XXXX\"\r\n"); delay(1000); //Isi SMS serialSIM800.write("jangan memberi harapan palsu"); delay(1000); serialSIM800.write((char)26); delay(1000); Serial.println("SMS Terkirim !"); } void loop() { }
Rabu, 02 Oktober 2019
Selasa, 28 Mei 2019
sensor hujan dan ldr motor siepper
//smart dying
const int pinLDR = A0;
const int pinRS = A1;
int LEDa = 7; //variabel LED
int LEDb = 6;
int LEDc = 5;
int LEDd = 4;
int x=0;
int C1=8; //variabel motor stepper
int C2=9;
int C3=10;
int C4=11;
int step = 25; //Kecepatan putaran Motor Stepper
int delaytime = 2;
void setup() {
Serial.begin(9600);
pinMode(pinLDR,INPUT); //masukan Led
pinMode(pinRS,INPUT); //masukan RS
pinMode(LEDa,OUTPUT); // keluaran lampu Merah (1) tanda Gelap
pinMode(LEDb,OUTPUT); // keluaran lampu Hijau (1) tanda Cerah
pinMode(LEDc,OUTPUT); // keluaran lampu Merah (2) tanda Hujan
pinMode(LEDd,OUTPUT); // keluaran lampu Hijau (2) tanda Tidak Hujan
pinMode(C1,OUTPUT);
pinMode(C2,OUTPUT);
pinMode(C3,OUTPUT);
pinMode(C4,OUTPUT);
}
float total;
int dataLDR=0; // data LDR dimulai dari 0
int dataRS=0; // data RS dimulai dari 0
void loop (){
dataLDR = analogRead(pinLDR); // data LDR dibaca dari pin analog LDR
if(dataLDR>400) {digitalWrite(LEDa,HIGH);} // lampu merah (1) menyala apabila nilai LDR >400 (Gelap)
else {digitalWrite(LEDa,LOW);} // lampu hijau (1) mati apabila nilai LDR <400 (Cerah)
Serial.print("Data LDR = "); // tampilan data LDR di monitor
Serial.println(dataLDR); // Nilai dari data LDR yang akan ditampilkan
if(dataLDR<400) {digitalWrite(LEDb,HIGH);} // lampu hijau (1) menyala apabila nilai LDR <400 (Cerah)
else {digitalWrite(LEDb,LOW);} // lampu hijau (1) mati apabila nilai LDR >400 (Gelap)
dataRS= analogRead(pinRS); // data sensor hujan yang dibaca dari pin analog RS
if(dataRS<900) {digitalWrite(LEDc,HIGH);} // lampu merah (2) menyala apabila nilai RS <900 (Hujan)
else {digitalWrite(LEDc,LOW);} // lampu merah (2) mati apabila nilai RS >900 (Tidak Hujan)
Serial.print("Data RS = "); // tampilan data RS di monitor
Serial.println(dataRS); // Nilai dari data RS yang akan ditampilkan
if(dataRS>900) {digitalWrite(LEDd,HIGH);} // lampu hijau (2) menyala apabila nilai RS >900 (Tidak Hujan)
else {digitalWrite(LEDd,LOW);} // lampu hijau (2) mati apabila nilai RS <900 (Hujan)
total = (dataRS - (dataLDR+600));
Serial.print("total ");
Serial.println(total);
if (total<-10)
{ if (x==1){
Serial.print("jemuran keluar");
for (int i=0; i<2000; i++)
{mundur(); } x=0;}
}
else if (total>-10)
{ if(x==0) {
Serial.println("jemuran masuk");
for (int i=0; i<2000; i++)
{ maju(); } x=1;}
}
delay(1000);}
void mundur(){
step4();
delay(delaytime);
step3();
delay(delaytime);
step2();
delay(delaytime);
step1();
delay(delaytime);
}
void maju(){
step1();
delay(delaytime);
step2();
delay(delaytime);
step3();
delay(delaytime);
step4();
delay(delaytime);
}
void step1(){
digitalWrite(C1,LOW);
digitalWrite(C2,LOW);
digitalWrite(C3,HIGH);
digitalWrite(C4,HIGH);}
void step2(){
digitalWrite(C1,HIGH);
digitalWrite(C2,LOW);
digitalWrite(C3,LOW);
digitalWrite(C4,HIGH);}
void step3(){
digitalWrite(C1,HIGH);
digitalWrite(C2,HIGH);
digitalWrite(C3,LOW);
digitalWrite(C4,LOW);}
void step4(){
digitalWrite(C1,LOW);
digitalWrite(C2,HIGH);
digitalWrite(C3,HIGH);
digitalWrite(C4,LOW);}
sensor gas sms dan lcd
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Pin software Serial untuk komunikasi dengan module SIM800L
SoftwareSerial SIM800L(2, 3); // RX | TX
const int SensorPin = A0; // Gas Sensor Here
const int TestPin = A1; //Tombol Test
const int Speaker = 10;
const int merah = 13; //Out Digital To Emergency Lamp or Sirine drive with Relay
const int BuzzerPin = 12; //Active Buzzer
const int hijau = 11; //LED Indicator Sensor
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
float ppmGas; //Gas dalam 'ppm'->perkiraan
float GasPercent; //Gas dalam 'Percent'
const int GasMax = 50; //Persentase Maximal Gas
uint8_t SmsCount = 0; // SMS Count Variable
const int SmsMax = 3; //Maksimal SMS yang akan Dikirim
const long intervalSMS = 10; //Interval pengiriman setiap sms dalam detik
unsigned long previousMillis = 0;
String gasStat;
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
int ledState = LOW;
unsigned long previousMillis2 = 0;
long interval = 1000;
void setup() {
// put your setup code here, to run once:
pinMode (A1,INPUT_PULLUP);
pinMode (11,OUTPUT);
digitalWrite (11, LOW);
pinMode (12,OUTPUT);
pinMode (13,OUTPUT);
lcd.begin(16, 2);
lcd.init();
lcd.init();
lcd.backlight();
Serial.begin(9600);
SIM800L.begin(9600);
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
lcd.setCursor (0,0);
lcd.print(F("Sensor Kebocoran"));
lcd.setCursor (0,1);
lcd.print(F(" Gas LPG "));
delay (2000);
lcd.clear();
}
//Skecth program ini dibuat oleh Dani-Rajacell untuk www.belajarduino.com
//Silahkan pergunakan coding ini secara free dan mohon untuk tidak menghapus marking ini
//sebagai bentuk apresiasi atas free sharing program ini.
//Untuk kebutuhan Module dan Board Arduino silahkan bisa dibeli di :
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
void loop() {
// put your main code here, to run repeatedly:
GasPercent = map(analogRead(SensorPin),0,1023,0,100);
ppmGas = map(analogRead(SensorPin),0,1023,0,10000);
interval = map(analogRead(SensorPin),0,1023,1000,10);
Serial.print (GasPercent ); Serial.println (" %");
Serial.print (ppmGas,0); Serial.println (" ppm");
lcd.setCursor (0,0);
lcd.print ("P.Gas:"); lcd.print (GasPercent,1);
lcd.print ("%"); lcd.print (" ");
lcd.setCursor (0,1);
lcd.print ("C.Gas:"); lcd.print (ppmGas,0);
lcd.print ("ppm"); lcd.print (" ");
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
if( GasPercent>GasMax || digitalRead(TestPin) == LOW ){
digitalWrite(BuzzerPin,HIGH);
digitalWrite(merah,LOW);
digitalWrite(hijau, HIGH);
gasStat ="*";
if(SmsCount<SmsMax){
//lcd.backlight();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= (intervalSMS*1000)) {
previousMillis = currentMillis;
kirimSMS();
SmsCount=SmsCount+1;
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
}
}
}
else {
digitalWrite(BuzzerPin,LOW);
digitalWrite(merah,HIGH);
digitalWrite(hijau, LOW);
gasStat ="*";
SmsCount=0; //Reset hitungan SMS
//lcd.noBacklight();
}
blinkingLed (interval);
//delay scanning sensor
delay(100);
}
//Skecth program ini dibuat oleh Dani-Rajacell untuk www.belajarduino.com
//Silahkan pergunakan coding ini secara free dan mohon untuk tidak menghapus marking ini
//sebagai bentuk apresiasi atas free sharing program ini.
//Untuk kebutuhan Module dan Board Arduino silahkan bisa dibeli di :
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
void kirimSMS () {
int tes = 0;
if(digitalRead(TestPin) == LOW){tes=1;}
String PesanSMS = ("Terjadi Kebocoran Gas LPG dengan konsentrasi Gas ")+String(GasPercent)+("% ")+String(ppmGas)+(" ppm");
lcd.clear();
lcd.setCursor (0,0);
if(tes==0){lcd.print (" WARNING!!! ");}
if(tes==1){lcd.print (" TESTING!!! ");}
lcd.setCursor (0,1);
lcd.print ("Send SMS.");
Serial.println("Menyiapkan Pesan Text");
SIM800L.write("AT+CMGF=1\r\n");
delay(500);
lcd.print (".");
delay(500);
Serial.println("Set SMS ke Nomor Tujuan");
//Tulis nomor tujuan SMS pada perintah dibawah ini
SIM800L.write("AT+CMGS=\"+6285384571695\"\r\n");
delay(500);
lcd.print (".");
delay(500);
lcd.print (".");
Serial.println("Mengirim pesan SMS");
//Tulis pesan SMS pada baris perintah dibawah ini
SIM800L.print(PesanSMS);
Serial.println(PesanSMS);
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
delay(500);
lcd.print (".");
delay(500);
lcd.print (".");
Serial.println("Mengakhiri SMS");
SIM800L.write((char)26);
delay(500);
lcd.print ("..");
Serial.println("SMS Selesai Dikirim!");
delay(500);
lcd.setCursor(0,1);
lcd.print (" SMS SENT!! ");
delay(500);
lcd.clear();
}
//Skecth program ini dibuat oleh Dani-Rajacell untuk www.belajarduino.com
//Silahkan pergunakan coding ini secara free dan mohon untuk tidak menghapus marking ini
//sebagai bentuk apresiasi atas free sharing program ini.
//Untuk kebutuhan Module dan Board Arduino silahkan bisa dibeli di :
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
void blinkingLed (long in ) {
unsigned long currentMillis2 = millis();
if (currentMillis2 - previousMillis2 >= in) {
previousMillis2 = currentMillis2;
if (ledState == LOW) {
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
ledState = HIGH;
} else {
ledState = LOW;
}
lcd.setCursor (14,0);
lcd.print (gasStat);
}
}
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
//Pin software Serial untuk komunikasi dengan module SIM800L
SoftwareSerial SIM800L(2, 3); // RX | TX
const int SensorPin = A0; // Gas Sensor Here
const int TestPin = A1; //Tombol Test
const int Speaker = 10;
const int merah = 13; //Out Digital To Emergency Lamp or Sirine drive with Relay
const int BuzzerPin = 12; //Active Buzzer
const int hijau = 11; //LED Indicator Sensor
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
float ppmGas; //Gas dalam 'ppm'->perkiraan
float GasPercent; //Gas dalam 'Percent'
const int GasMax = 50; //Persentase Maximal Gas
uint8_t SmsCount = 0; // SMS Count Variable
const int SmsMax = 3; //Maksimal SMS yang akan Dikirim
const long intervalSMS = 10; //Interval pengiriman setiap sms dalam detik
unsigned long previousMillis = 0;
String gasStat;
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
int ledState = LOW;
unsigned long previousMillis2 = 0;
long interval = 1000;
void setup() {
// put your setup code here, to run once:
pinMode (A1,INPUT_PULLUP);
pinMode (11,OUTPUT);
digitalWrite (11, LOW);
pinMode (12,OUTPUT);
pinMode (13,OUTPUT);
lcd.begin(16, 2);
lcd.init();
lcd.init();
lcd.backlight();
Serial.begin(9600);
SIM800L.begin(9600);
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
lcd.setCursor (0,0);
lcd.print(F("Sensor Kebocoran"));
lcd.setCursor (0,1);
lcd.print(F(" Gas LPG "));
delay (2000);
lcd.clear();
}
//Skecth program ini dibuat oleh Dani-Rajacell untuk www.belajarduino.com
//Silahkan pergunakan coding ini secara free dan mohon untuk tidak menghapus marking ini
//sebagai bentuk apresiasi atas free sharing program ini.
//Untuk kebutuhan Module dan Board Arduino silahkan bisa dibeli di :
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
void loop() {
// put your main code here, to run repeatedly:
GasPercent = map(analogRead(SensorPin),0,1023,0,100);
ppmGas = map(analogRead(SensorPin),0,1023,0,10000);
interval = map(analogRead(SensorPin),0,1023,1000,10);
Serial.print (GasPercent ); Serial.println (" %");
Serial.print (ppmGas,0); Serial.println (" ppm");
lcd.setCursor (0,0);
lcd.print ("P.Gas:"); lcd.print (GasPercent,1);
lcd.print ("%"); lcd.print (" ");
lcd.setCursor (0,1);
lcd.print ("C.Gas:"); lcd.print (ppmGas,0);
lcd.print ("ppm"); lcd.print (" ");
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
if( GasPercent>GasMax || digitalRead(TestPin) == LOW ){
digitalWrite(BuzzerPin,HIGH);
digitalWrite(merah,LOW);
digitalWrite(hijau, HIGH);
gasStat ="*";
if(SmsCount<SmsMax){
//lcd.backlight();
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= (intervalSMS*1000)) {
previousMillis = currentMillis;
kirimSMS();
SmsCount=SmsCount+1;
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
}
}
}
else {
digitalWrite(BuzzerPin,LOW);
digitalWrite(merah,HIGH);
digitalWrite(hijau, LOW);
gasStat ="*";
SmsCount=0; //Reset hitungan SMS
//lcd.noBacklight();
}
blinkingLed (interval);
//delay scanning sensor
delay(100);
}
//Skecth program ini dibuat oleh Dani-Rajacell untuk www.belajarduino.com
//Silahkan pergunakan coding ini secara free dan mohon untuk tidak menghapus marking ini
//sebagai bentuk apresiasi atas free sharing program ini.
//Untuk kebutuhan Module dan Board Arduino silahkan bisa dibeli di :
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
void kirimSMS () {
int tes = 0;
if(digitalRead(TestPin) == LOW){tes=1;}
String PesanSMS = ("Terjadi Kebocoran Gas LPG dengan konsentrasi Gas ")+String(GasPercent)+("% ")+String(ppmGas)+(" ppm");
lcd.clear();
lcd.setCursor (0,0);
if(tes==0){lcd.print (" WARNING!!! ");}
if(tes==1){lcd.print (" TESTING!!! ");}
lcd.setCursor (0,1);
lcd.print ("Send SMS.");
Serial.println("Menyiapkan Pesan Text");
SIM800L.write("AT+CMGF=1\r\n");
delay(500);
lcd.print (".");
delay(500);
Serial.println("Set SMS ke Nomor Tujuan");
//Tulis nomor tujuan SMS pada perintah dibawah ini
SIM800L.write("AT+CMGS=\"+6285384571695\"\r\n");
delay(500);
lcd.print (".");
delay(500);
lcd.print (".");
Serial.println("Mengirim pesan SMS");
//Tulis pesan SMS pada baris perintah dibawah ini
SIM800L.print(PesanSMS);
Serial.println(PesanSMS);
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
delay(500);
lcd.print (".");
delay(500);
lcd.print (".");
Serial.println("Mengakhiri SMS");
SIM800L.write((char)26);
delay(500);
lcd.print ("..");
Serial.println("SMS Selesai Dikirim!");
delay(500);
lcd.setCursor(0,1);
lcd.print (" SMS SENT!! ");
delay(500);
lcd.clear();
}
//Skecth program ini dibuat oleh Dani-Rajacell untuk www.belajarduino.com
//Silahkan pergunakan coding ini secara free dan mohon untuk tidak menghapus marking ini
//sebagai bentuk apresiasi atas free sharing program ini.
//Untuk kebutuhan Module dan Board Arduino silahkan bisa dibeli di :
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
void blinkingLed (long in ) {
unsigned long currentMillis2 = millis();
if (currentMillis2 - previousMillis2 >= in) {
previousMillis2 = currentMillis2;
if (ledState == LOW) {
//https://www.tokopedia.com/rajacell/etalase/arduino-board-module
ledState = HIGH;
} else {
ledState = LOW;
}
lcd.setCursor (14,0);
lcd.print (gasStat);
}
}
program sensor ldr dan hujan
#include <Servo.h>
const int pinLDR = A0;
const int pinRS = A1;
int LEDa = 7; //variabel LED
int LEDb = 6;
Servo servo;
Servo servo1;
void setup() {
Serial.begin(9600);
pinMode(pinLDR,INPUT); //masukan Led
pinMode(pinRS,INPUT); //masukan RS
pinMode(LEDa,OUTPUT); // keluaran lampu Merah (1) tanda Gelap
pinMode(LEDb,OUTPUT); // keluaran lampu Hijau (1) tanda Cerah
servo.attach(5) ; // keluaran lampu Hijau (2) tanda Tidak Hujan
servo1.attach(4) ;
}
float total;
int dataLDR=0; // data LDR dimulai dari 0
int dataRS=0; // data RS dimulai dari 0
void loop (){
dataLDR = analogRead(pinLDR); // data LDR dibaca dari pin analog LDR
if(dataLDR>400) {
digitalWrite(LEDa,HIGH); // lampu merah (1) menyala apabila nilai LDR >400 (Gelap)
servo.write(0);
}
else {
digitalWrite(LEDa,LOW); // lampu hijau (1) mati apabila nilai LDR <400 (Cerah)
servo.write(180);
}
Serial.print("Data LDR = "); // tampilan data LDR di monitor
Serial.println(dataLDR);
dataRS= analogRead(pinRS); // data sensor hujan yang dibaca dari pin analog RS
if(dataRS<900) { // lampu merah (2) menyala apabila nilai RS <900 (Hujan)
digitalWrite(LEDb,HIGH);
servo1.write(0);
}
else {
digitalWrite(LEDb,LOW); // lampu hijau (1) mati apabila nilai LDR <400 (Cerah)
servo1.write(180);
} // lampu merah (2) mati apabila nilai RS >900 (Tidak Hujan)
Serial.print("Data RS = "); // tampilan data RS di monitor
Serial.println(dataRS); // Nilai dari data RS yang akan ditampilkan
}
const int pinLDR = A0;
const int pinRS = A1;
int LEDa = 7; //variabel LED
int LEDb = 6;
Servo servo;
Servo servo1;
void setup() {
Serial.begin(9600);
pinMode(pinLDR,INPUT); //masukan Led
pinMode(pinRS,INPUT); //masukan RS
pinMode(LEDa,OUTPUT); // keluaran lampu Merah (1) tanda Gelap
pinMode(LEDb,OUTPUT); // keluaran lampu Hijau (1) tanda Cerah
servo.attach(5) ; // keluaran lampu Hijau (2) tanda Tidak Hujan
servo1.attach(4) ;
}
float total;
int dataLDR=0; // data LDR dimulai dari 0
int dataRS=0; // data RS dimulai dari 0
void loop (){
dataLDR = analogRead(pinLDR); // data LDR dibaca dari pin analog LDR
if(dataLDR>400) {
digitalWrite(LEDa,HIGH); // lampu merah (1) menyala apabila nilai LDR >400 (Gelap)
servo.write(0);
}
else {
digitalWrite(LEDa,LOW); // lampu hijau (1) mati apabila nilai LDR <400 (Cerah)
servo.write(180);
}
Serial.print("Data LDR = "); // tampilan data LDR di monitor
Serial.println(dataLDR);
dataRS= analogRead(pinRS); // data sensor hujan yang dibaca dari pin analog RS
if(dataRS<900) { // lampu merah (2) menyala apabila nilai RS <900 (Hujan)
digitalWrite(LEDb,HIGH);
servo1.write(0);
}
else {
digitalWrite(LEDb,LOW); // lampu hijau (1) mati apabila nilai LDR <400 (Cerah)
servo1.write(180);
} // lampu merah (2) mati apabila nilai RS >900 (Tidak Hujan)
Serial.print("Data RS = "); // tampilan data RS di monitor
Serial.println(dataRS); // Nilai dari data RS yang akan ditampilkan
}
Langganan:
Postingan (Atom)





