Skip to main content

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


Comments

Popular posts from this blog

GROUND bagian 1 by Sarono Elektronika Blog Adi Sanjaya Global Techno Solution - AS-GTS

GROUND bagian 1
Banyak pertanyaan kepada saya apa itu ground ? apa guna nya ? apakah selalu ground itu negatif ? Apa yang di maksud titik netral pada pencatu daya terbelah ?
Agak sulit menerangkan dengan kata kata, bahkan dari hasil diskusi saya dengan beberapa teman yang sudah pakar elektronik juga mereka menemukan kesulitan nya mengungkapkan dengan kata kata walau kita mengerti tentang ground.
Untuk itu saya mencoba menerangkan semaksimal mungkin, tetapi sesungguh nya yang"mendengar" mestinya sudah punya ilmu elektronika minimal sampai teknik penguat audio.
Jadi, jika belum memehami tentang teknik audio dan masih bingung tentang konsep dan aplikasi ground masih di maklum kan.
Pada rangkaian listrik sederhana tidak di perlukan ground, misalkan senter, (body nya terbuat dari plastik) itupun sering negatif nya di hubungkan dengan body senter terbuat dari logam.
a. Pengertian Ground
Ground adalah titik yang dianggap sebagai titik kembali nya arus listrik arus seara…

HAMBATAN LISTRIK by Sarono Elektronika Blog Adi Sanjaya Global Techno Solution - AS-GTS

HAMBATAN LISTRIK
Pada bahasan sebelumnya sudah di tegaskan bahwa menghubungkan langsung positip dan negatip battery tidak boleh di lakukan, karena jumlah elektron yang mengalir menjadi sangat besar dan selama mengalir antara elektron saling berbenturan dan menimbulkan panas yang besar.
TETAPI
1) Jika jalan yang di lalui panjang (kawat nya panjang), maka kawat itu akan menjadi perlawanan listrik, makin panjang kawat maka perlawanan terhadap arus listrik juga semakin besar.
2) Atau kalau jalan nya arus di kawat juga di kecilkan (tebal kawat) nya di tipiskan juga akan menghasilkan Hambatan bagi arus semakin besar (Hambatan listrik membesar).
Dengan demikian kita bisa menghambat arus listrik itu dengan membuat kawat yang panjang dan mengatur tipis nya (luas penampang) kawat.
Ada faktor ke 3 yaitu jenis kawat.
Jenis kawat tertentu lebih mudah melewatkan arus, sementara kawat yang lain lebih sulit melewatkan arus.
Dalam teori elektron dapat di jelas kan : kawat tertentu daya ika…

Cara menggunakan modul relay dengan arduino UNO.

Material yang di butuhkan:
- Relay module 2 channel
- Arduino UNO.
- kabel jumper male - female

Relay module 2 channel  5V dengan 2 channel output dapat digunakan sebagai saklar elektronik untuk mengendalikan perangkat listrik yang memerlukan tegangan dan arus yang besar. Kompatible dengan semua mikrokontroler khususnya Arduino


Spesifikasi
•    Jumlah Relay : 2
•    Control signal : TTL level (ACTIVE LOW) ini artinya relay akan aktif jika kita memberikan logika LOW ke pin trigger relay (pin in1 /in 2)

Catatan : gambar bisa jadi berbeda dengan fisik relay yang dikirim, tapi pin pin pasti terdiri dari pin Vcc GND dan pin in1/in2 … untuk jumlah channel lainnya maka pin in1 2, dst akan sesuai dengan jumlah channel relay modul
•    Rating arus : 10A 250VAC, 10A 30VDC, 10A 125VAC, 10A 28VDC
•    Contact action time : 10ms/5ms
•    Indikator LED untuk masing masing channel



Catatan : gambar bisa jadi berbeda dengan fisik relay yang dikirim, tapi pin pin pasti terdiri dari pin Vcc GND dan pin in1/in2…