Tuesday, April 26, 2016

Solusi LCD 2x16b atau 4x20 blank saat Relay mengaktifkan beban 220 volt

di misal kan kontrol lampu dengan sensor suhu yang terdiri dari

-arduino uno r3
-sensor dht11
-lcd 16x2
-relay



pasti akan ada kendala saat relay menyalakan lampu 220v. LCD yang terhubung ke arduino langsung nge blank. solusi nya adalah pemasangan RC snubber pada NO dan Common relay


skematik pemasangan RC snubber pada relay adalah sebagai berikut :
 

Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
 
 
https://www.tokopedia.com/mikroholik

Mengendalikan angka delay dari nyala sebuah led melalui serial monitor

sebua pertanyaan dari user facebook di group arduino indonesia https://www.facebook.com/groups/ArduinoIndo/

Assalamu'alaikum. Pagi kawan.
Saya rencananya mau mengendalikan angka delay dari nyala sebuah led. Tentunya via serial. Pertanyaannya, kenapa kok tetep gak bisa dikendalikan ya? Saya pakai UNO, dan ini sketch yang saya buat.


Saya coba lagi pakai contoh dari BlinkWithoutDelay, kemudian saya modifikasi sedikit juga gak bisa.
Ada yang tau caranya atau keyword yang cocok atau link atau syukur langsung sketchnya sekalian, hehehe.
Terimakasih.

jawaban terbaik diberikan oleh om @Eka Puji Widiyanto :

// pins for the LEDs:
const int ledx = 13;
int delaymain = 1;

void setup() {
// initialize serial:
Serial.begin(9600);

// make the pins outputs:
pinMode(ledx, OUTPUT);

}

void loop(){
while (Serial.available() > 0) {
int delayxxx = Serial.parseInt();

if (Serial.read() == '\n') {
delaymain = delayxxx;
}
}

digitalWrite(ledx, HIGH);
delay(delaymain);
digitalWrite(ledx, LOW);
delay(delaymain);
}


upload sketch kemudian buka serial monitor, lalu ketikkan angka misal 1000,maka anda akan dapati led berkedip tiap 1 detik


Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
 
 
https://www.tokopedia.com/mikroholik

 

Friday, April 15, 2016

Membimbing Mahasiswa Akmil (Akademi Militer ) Magelang Mengerjakan Tugas Akhir Smart Home Berbasis Arduino - Android

Ini Adalah Beberapa Dokumentasi Saat Membimbing Mahasiswa Akmil (Akademi Militer ) Magelang Mengerjakan Tugas Akhir Smart Home Berbasis Arduino - Android. Mahasiswa Jurusan Elektro Pertahanan Keamanan



Ada 5 blok sistem dalam smart home yang dikerjakan sebagai tugas akhir
1 blok pendingin dan penerangan
ada 2 mode yakni otomatis dan manual,dimana dalam mode otomatis lampu akan menyala terang redup dan padam berdasarkan tingkat kecerahan cahaya, kipaspun demikian akan cepat , sedang dan lambat berdasarkan  level suhu, pengontrolan juga dapat dilakukan secara manual.
2 blok keamanan rumah (sistem keamanan rumah)
terdiri sensor buka tutup jendela,pintu dan garasi, sensor asap, serta sensor gerak yang dimanfaatkan untuk keamanan rumah
3 blok wateringgarden (sistem penyiraman taman otomatis)
terdiri dari selenoid valve,ph meter sensor dan sensor soil moisture
4 blok pagar garasi dan gordyn
sistem buka tutup pagar, garasi dan gordyn berbasis android, untuk gordyn ada mode manial dan otomatis,dimana saat kondisi terang otomatis gordyn akan membuka secara otomatis,dan menutup secara otomatis ketika kondisi gelap.
5 blok bel bak mandi serta info LCD
ini adalah sistem pengisian bak mandi secara otomatis jika bak mandi kosong, serta record foto tamu ketika bel di pencet,sehingga diketahui tamu yang datang, berdasarkan record foto yang ada, untuk info lcd,ini dikirimdari android tentang informasi misal sedang pergi ke jakarta, pesan ditinggalkan untuk anggota keluarga yang ada di dalam rumah

berikut ini adalah beberapa video dokumentasi
smart security


smart lcd bel


smart watering system


smart lighing and cooling


smart gordyn garasi dan pagar


Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
https://www.tokopedia.com/mikroholik


update tampilan running teks dengan android via jaringan internet menggunakan aplikasi android

update tampilan running teks dengan android via jaringan internet menggunakan aplikasi android pada tulisan kali ini dilakukan dengan menggunakan android dengan format data json, untuk melakukan pengececekan maupun update text ke server nya


arduino + wifi module yang terhubung ke access point bertugas untuk request data ke web server sehingga ketika di peroleh result dari request langsung di tampilkan ke display p 10

ini adalah gambar aplikasi android

update running text internet

sedangkan video dari uji coba update tampilan running teks dengan android via jaringan internet menggunakan aplikasi android ditampilkan sebagai berikut


butuh yang seperti ini ?

kontak saya taufik adi sanjaya 085743325070

 

Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
 
 
https://www.tokopedia.com/mikroholik
 

 

Tuesday, April 12, 2016

Update running text via wifi dengan delphi 7

Kesempatan kali ini saya menuliskan tentang Update running text via wifi dengan delphi 7.

alat dan bahan yang di gunakan untuk membuat Update running text via wifi dengan delphi 7:

arduino uno
kabel data printer (usb arduino)
kabel jumper
led panel p10
ethenet shield
kabel utp
wifi router/accesspoint
laptop

software delphi
software arduino IDE




Video Update running text via wifi dengan delphi 7



library tambahan yang diperlukan dalam membuat Update running text via wifi dengan delphi 7
1. DMD
2. timerone
3. ethernet(Library Ethernet adalah bawaan Arduino IDE)
 
Source code Update running text via wifi pada arduino
#include <SPI.h>        //SPI.h must be included as DMD is written by SPI (the IDE complains otherwise)
#include <DMD.h>       
#include <TimerOne.h>  
#include "SystemFont5x7.h"
#include "Arial_black_16.h"
#include <Ethernet.h>

// menuliskan MAC address and IP address .
// gateway + subnet disesuaikan dengan router

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1, 125);
IPAddress gateway(192,168,1, 1);
IPAddress subnet(255, 255, 255, 0);

EthernetServer server(80);
boolean alreadyConnected = false;

//setting DMD
#define DISPLAYS_SAMPING 1
#define DISPLAYS_DOWN 1
DMD dmd(DISPLAYS_SAMPING, DISPLAYS_DOWN);
     

/*--------------------------------------------------------------------------------------
setiap timer mencapai waktu yang diset misal 5000 mikro detik akan memanggil fungsi tampilkan teks ke p10
--------------------------------------------------------------------------------------*/
void ScanDMD()
{
  dmd.scanDisplayBySPI();
}

void setup(void)
{

  Ethernet.begin(mac, ip, gateway, subnet);// mensetting ip dsb
  server.begin();// memulai chat server dengan port komunkasi di nomer 80
 
   Timer1.initialize( 5000 );           //period dalam microseconds untuk mengeksekusi sub program ScanDMD. jika lebih dari 5000 (5ms) maka akan terlihat kurang bagus tampilannya
   Timer1.attachInterrupt( ScanDMD );   //saat tercapai 5000mikroseconds,akan di eksekusi sub program ScanDMD isi sub program tsb = dmd.scanDisplayBySPI(), untuk di tampilkan ke p10

   dmd.clearScreen( true );   //true artinya  semua led off, false artinya semua led on
   Serial.begin(9600);// ini nantinya untuk pemantauan data melalui komunikasi serial (via usb)
}
void loop(void)
{
    EthernetClient client = server.available();
    if (client.available() > 0) {
        for(i=0; i<99; i++){
            message[i] = '\0';
        }
        //resests the index       
        index=0;
    }
    //while is reading the message
    while(client.available() > 0){
       //the message can have up to 100 characters
       if(index < (max_char-1))
       {        
           r_char = client.read();      //baca character dari client (pc)
           message[index] = r_char;     // simpan character di variable dengan index dinaikkan 1 per satu tiap ada character masuk.
           // 12345
           // 1 -- index 0
           // 2 -- index 1
           // 5 -- index 4
           index++; // index = index+1                     // naikkan index untuk menentukan panjang data cek message[index]
           message[index] = '\0';       // kosongkan index untuk nantinya menerima data selanjutnya (data baru indexdimulai dari nol)
      
     }
   }
  
   client.print(message);// respon / feeed back
 
   dmd.clearScreen( true );// hapus dmd /p10
   dmd.selectFont(Arial_Black_16);// pilih font nya
   dmd.drawMarquee(message, max_char,(32*DISPLAYS_SAMPING)-1 ,0);// tampilkan pesan
   long start=millis();
   long timer=start;
   boolean ret=false;
   while(!ret){
     if ((timer+30) < millis()) {
       ret=dmd.stepMarquee(-1,0);
       timer=millis();
     }
   }
}

sedangkan source code pada sisi delphi Update running text via wifi dengan delphi 7

unit uCLIENT;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp;

type
  TForm1 = class(TForm)
    ClientSocket1: TClientSocket;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Edit3: TEdit;
    Button2: TButton;
    Edit4: TEdit;
    ClientSocket2: TClientSocket;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure Button2Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientSocket1Connecting(Sender: TObject;
      Socket: TCustomWinSocket);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
   if (Edit1.Text='') or (Edit2.Text='') then exit;

   if Button1.Caption='Konek Ke Server' then begin
    //Masukin Alamat Dan Port Server=========
    ClientSocket1.Host:=Edit1.Text;
    ClientSocket1.Port:=StrToInt(Edit2.Text);
    ClientSocket1.Active:=true; //konekin
    //=======================================
   end else ClientSocket1.Active:=false; //Diskonekin
end;

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9',#8,#13])  then  Key:=#0; //biar inputan hanya angka saja
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
  Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
  var ErrorCode: Integer);
begin
ErrorCode:=0; //ini penting untuk mendisablekan pesan error
ShowMessage('Server Mati?');
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//==================================================
//Bagian ini di execute pada saat Client Diskonek dari server
//==================================================
ShowMessage('Diskonek Dari Server :(');
Button1.Caption:='Konek Ke Server';
Form1.Caption:='Idle';
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//==================================================
//Bagian ini di execute pada saat Client berhasil terkoneksi dengan Server
//==================================================
Form1.Caption:='Terhubung ke = '+Edit1.Text;

ShowMessage('Berhasil terkoneksi dengan Server di '+Edit1.Text);
Button1.Caption:='Diskonek Dari Server';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if not ClientSocket1.Active then exit; //kalau ga konek yah ga di kirim chatna
//Memo1.Lines.Add('Client >>'+Edit3.Text);

ClientSocket1.Socket.SendText(trim(Edit3.Text));//Kirim Text ke Server
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//==================================================
//Bagian ini di execute pada saat ada text yang datang dari server
//==================================================
//Memo1.Lines.Add(Socket.ReceiveText);//masukin text yg di kirim oleh Server ke dalem memo
//memo1.Text:=memo1.Text+socket.ReceiveText;
edit4.Text:=socket.ReceiveText;
end;

procedure TForm1.ClientSocket1Connecting(Sender: TObject;
  Socket: TCustomWinSocket);
begin
//==================================================
//Bagian ini di execute SELAMA Client terkoneksi dengan Server
//==================================================
Form1.Caption:='Menghubungkan ke = '+Edit1.Text;
end;

end.


Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
 
 
https://www.tokopedia.com/mikroholik


Tuesday, April 5, 2016

Water Flow Sensor dengan arduino

Water Flow Sensor dengan lubang 0,5 inchi memiliki spesifikasi sebagai berikut :

Features:
Model: YF-S201
Working Voltage: 5 to 18V DC (min tested working voltage 4.5V)
Max current draw: 15mA @ 5V
Output Type: 5V TTL
Working Flow Rate: 1 to 30 Liters/Minute
Working Temperature range: -25 to +80?
Working Humidity Range: 35%-80% RH
Accuracy: ±10%
Maximum water pressure: 2.0 MPa
Output duty cycle: 50% +-10%
Output rise time: 0.04us
Output fall time: 0.18us
Flow rate pulse characteristics: Frequency (Hz) = 7.5 * Flow rate (L/min)
Pulses per Liter: 450
Durability: minimum 300,000 cycles
Cable length: 15cm
1/2" nominal pipe connections, 0.78" outer diameter, 1/2" of thread
Size: 2.5" x 1.4" x 1.4"

bagian yang perlu menjadi catatan penting dari data Water Flow Sensor di atas adalah :

Pulses per Liter: 450
Accuracy: ±10%

jadi jika keluaran Water Flow Sensor sudah mencapai 450 pulsa , artinya volume air sudah 1 liter, dengan catatan Accuracy: ±10% ada error maksimal ±10%


Water Flow Sensor
pemasangan water flow sensor ke arduino :

kabel merah ke vcc
kabel hitam ke gnd
kabel kuning ke pin 2 arduino

berikut ini adalah kode test nya

const int PinSensorWaterFlowTaman=2;// intr 0 // pin 2 //taman
float flow_countertaman,litertaman,adcph,teg,ph;
const int PinKranTaman =9;//// kran untuk taman
void setup()
{
 pinMode(PinSensorWaterFlowTaman, INPUT);
        digitalWrite(PinSensorWaterFlowTaman, HIGH);
        attachInterrupt(0, flowtaman, RISING); // Setup Interrupt 0 pada pin 2
 Serial.begin(9600);
  pinMode(PinKranTaman,OUTPUT);
        digitalWrite(PinKranTaman,LOW);

}

void loop()
{
 Serial.println(flow_countertaman);
 Serial.println(litertaman);

delay(1000);


void flowtaman () // Interrupt function taman
    {
      flow_countertaman++;
       litertaman=flow_countertaman/450;
      }

silakan uploade sketch di atas kemudian buka serial monitor, langkah selenjutnya adalah alirkan air melalui Water Flow Sensor
anda akan mendapati nilai jumlah pulsa terhitung dan volume air yang mengalir melalui Water Flow Sensor

Anda membutuhkan komponen elektronik , Arduino, Sensor, Tutorial(paket belajar), jasa pembuatan alat berbasis mikrokontroler, kendali lampu via jaringan LAN, dan sebagainya ? anda dapat membelinya di  
 
 
https://www.tokopedia.com/mikroholik


 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Hot Sonakshi Sinha, Car Price in India