Saturday, December 12, 2020

Forwarding Dengan Fitur NAT Untuk IP Public ( Internet )

Ada kalanya server yang ada di jaringan perlu bisa diakses dari jaringan publik. Misalnya karena ada yang bersifat mobile dan harus bisa mengakses data yang ada di server tersebut. Yang dibutuhkan adalah IP publik. Ip publik statis lebih direkomandasikan.  Bisa saja langsung memasang ip publik ke server, maka server tersebut sudah bisa diakses dari internet. Masalahnya adalah bagaimana jika hanya memiliki satu ip publik, bagaimana dengan komputer lain yang juga harus terkoneksi dengan internet. Bagaimana juga dengan management keamanan untuk traffic yang menuju ke Server.

Pada mikrotik, kebutuhan tersebut bisa diatasi dengan cara port forwading menggunakan fitur NAT. Agar bandiwidth bisa di manage dan firewall filtering bisa dilakukan, tempatkan server dibawah router mikrotik. Artinya, server berada di jaringan lokal, contoh topologi : 















Agar Server bisa diakses dari internet, set fowarding di router mikrotik dengan fitur firewall NAT. Fowarding ini akan membalokkan traffic yang menuju ke IP publik yang terpasang di router menuju ke IP lokal server. Dengan begitu, seolah-olah client dari internet berkomunikasi dengan server meminjam IP public router mikrotik. Langkah pembuatan rule, masuk ke menu IP --> Firewall --> klik tab "NAT", tambahkan rule baru dengan menekan tombol "add" atau tanda "+" berwarna merah.










Sekedar tips, jika tidak yakin dengan port dan protokol yang digunakan oleh server, bisa di kosongkan terlebih dahulu. Dengan begitu, semua traffic akan difoward ke server. Jika NAT sudah berhasil, baru kemudian tentukan protokol dan port yang harus di foward ke server. Dengan konfigurasi diatas, rule fowarding sudah selesai. Akan tetapi jika memiliki lebih dari satu ip public, maka dibutuhkan satu rule lagi. Rule yang difungsikan untuk mengarahkan traffic respon dari server ke jalur yang sama dengan traffic request. Misal request masih dari IP Public A, maka respon dari server juga harus keluar dari IP Public A. Jika ternyata traffic respon keluar dari IP Public B, maka traffic tersebut tidak dikenali oleh cilent yang mencoba mengakses server. Rule yang harus dibuat seperti berikut :












Rule NAT untuk fowarding sudah selesai, jika memiliki lebih dari satu server sedangkan hanya memiliki satu IP public, maka bisa foward berdasarkan port. Misal untuk server A dapat diakses melalui port 5678, kemudian server B melalui port 8910. Dengan logika tersebut, ketika router menerima koneksi dari port 5678, maka koneksi tadi akan diteruskan ke Server A, begitu juga ketika router menerima koneksi dari port 8910, maka akan diteruskan ke server B. Sekarang coba akses server dari jaringan internet menggunakan ip public yang terpasang di mikrotik.

Hairpin NAT

Kemudian kira - kira bisa tidak server diakses dari jaringan Lokal menggunakan ip public di mikrotik tadi ?. Jawabannya adalah tidak bisa. Kenapa ?

Pada saat diakses dari internet, misal client memiliki IP Public 2.2.2.2, aliran trafficnya akan seperti berikut :






Dari aliran data diatas, ketika Server diakses dari internet data bisa dikirim dengan baik oleh router.

Tetapi lain hal, jika diakses dari jaringan Lokal, misal client memiliki IP Address 192.168.88.2, maka aliran data akan menjadi seperti berikut :






Yang terjadi adalah server langsung mengirim traffic respon langsung ke client tanpa melewati router, karena source address ada dan dikenali di jaringan Server (masih dalam 1 segmen IP). Traffic respon yang dikirim dari server akan ditolak oleh client, karena sebelumnya client me-request ke router mikrotik terlebih dahulu, bukan langsung ke Server. Client hanya mau menerima respon dari ip yang sebelumnya dituju, yakni 202.123.123.123. Nah solusinya adalah dengan menambahkan Rule NAT untuk traffic dari Lokal menuju Server. 










Rule NAT diatas akan mengubah source ip address yang sebelumnya adalah ip komputer client, digantikan dengan ip router Mikrotik ketika data diteruskan dari router Mikrotik ke server. Maka server akan mengirimkan data respon ke router Mikrotik, bukan langsung ke komputer client. Dengan rule nat baru tersebut, maka aliran data akan menjadi seperti berikut :






Dengan begitu, client dari jaringan lokal bisa mengakses ke Server dengan IP Public yang terpasang di router Mikrotik. Konfigurasi diatas disebut dengan Hairpin NAT.


Wednesday, November 18, 2020

Menghubungkan Arduino UNO dengan Komputer

Setelah mengenal Board Arduino, hal lain yang perlu diketahui adalah bagaimana memasukkan logic kedalam IC atau bagaimana melakukan programming. Untuk dapat memprogram Board Arduino, perlu software untuk melakukan programming dan menghubungkannya dengan PC atau laprop.

Arduino sudah menyediakan IDE yang cukup mudah dipakai. Untuk download IDE silakan kunjungi website resmi Arduino : https://www.arduino.cc/en/software

Setelah selesai mendownload IDE Arduino, lalu lakukan installasi, 

Berikutnya adalah menghubungkan Arduino Uno dengan PC atau Laptop untuk Windows7, Vista, or XP:
  • Hubungkan board Arduino Uno, tunggu windows untuk melakukan driver installation. kalau gagal.   
  • Buka control panel windows, lalu buka device manager.
  • Cari Ports (COM & LPT), disana ada port "rduino UNO (COMxx)", click kanan dan pilih "Update Driver Software" option.
    Lalu pilih "Browse my computer for Driver software" option.cari driver file dengan nama "arduino.inf", di folder "Drivers". Folder dapat ditemukan ditempat instal software IDE Arduino.
  • Windows akan menyelesaikan instalasi driver.

Arduino Uno sudah terhubung dengan PC atau laptop. Sekarang dapat mencoba 1 program example yang sudah disediakan untuk memastikan semuanya sudah berjalan, yaitu Blink.
























Setelah sketch terbuka pada windows software Arduino, pilih tipe board Arduino, dalam hal ini adalah Arduino Uno
























Setelah board dipilih, pilih Port yang menghubungkan PC atau laptop dengan Arduino. Lalu tekan tombol Upload pada menu bar diatas.





Setelah program terupload, terlihat di area notifikasi. Maka LED 13 dari Arduino Board akan berkedip-kedip dengan interval 1 second.

Dalam hitungan menit sudah bisa melakukan interfacing terhadap microcontroller dan bisa mencoba program lainnya.



Program Lampu Lalu Lintas Dengan Arduino

Untuk membuat Program Lampu lalu lintas, maka komponen yang diperlukan adalah sebagai berikut.

  • Breadboard
  • LED merah, kuning dan hijau
  • 3x Resistor 150 ohm
  • Kabel jumper

Rangkaian atau Skema












Sketch Lampu Lalu Lintas

// Project 3 - Traffic Lights
int ledDelay = 5000; // delay in between changes
int redPin = 10;
int yellowPin = 9;
int greenPin = 8;
 

void setup() {
  pinMode(redPin, OUTPUT);
  pinMode(yellowPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop() {
  digitalWrite(redPin, HIGH); // turn the red light on
  delay(ledDelay); // wait 5 seconds

  digitalWrite(yellowPin, HIGH); // turn on yellow
  delay(2000); // wait 2 seconds
 

  digitalWrite(greenPin, HIGH); // turn green on
  digitalWrite(redPin, LOW); // turn red off
  digitalWrite(yellowPin, LOW); // turn yellow off
  delay(ledDelay); // wait ledDelay milliseconds
  digitalWrite(yellowPin, HIGH); // turn yellow on
  digitalWrite(greenPin, LOW); // turn green off
  delay(2000); // wait 2 seconds


  
  digitalWrite(yellowPin, LOW); // turn yellow off

  // now our loop repeats
}



Logika programnya seperti ini:
  • nyalakan lampu merah, tunggu 5 detik
  • nyalakan lampu kuning, tunggu 2 detik
  • nyalakan lampu hijau, matikan lampu merah dan kuning lalu tunggu 5 detik
  • nyalakan lampu kuning, matikan lampu hijau, tunggu 2 detik.
  • matikan lampu kuning, dan program kembali ke awal fungsi loop()

Contoh Program Sederhana Arduino

 

Project Arduino Sederhana LED Blink atau Lampu Berkelip

Proyek yang sederhana namun cukup membuka pengertian akan akses pin pada Arduino Uno Board.

Led Blink, program akan mengakses pin 10 dan memerintahkan arduino untuk mengulang blink led. Dengan contoh proyek ini, maka dapat dipelajari beberapa dasar-dasar elektronik dan sketch programming Arduino.


Hal yang diperlukan

Skema

Catatan 
Karena tahap mempelajari arduino dari nol, jadi dishare juga yang  hal-hal yang mungkin terlihat simple bagi para expert. Warna kabel jumper tidak harus sesuai gambar, namun untuk kebiasaan yang baik, usahakan untuk positif gunakan warna merah, untuk ground gunakan hitam. Lubang pada breadboard pun tidak masalah, bisa memasang di lubang yang mana saja. Yang harus betul-betul diperhatikan adalah hubungan antar komponen dan pin pada arduino, harus sesuai gambar.

Sketch

// Project 1 - LED Flasher
int ledPin = 10;


void setup() {
  pinMode(ledPin, OUTPUT);
}
 

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}


setelah sketch diketik, tekan tombol verivy, bila tidak ada error, tekan tombol upload. 

Pembahasan Sketch

// Project 1 - LED Flasher
Ini adalah komentar baris yang berguna untuk dokumentasi program, kompiler akan mengabaikan bagian ini. Baris komentar berguna bagi programmer agar bisa mengerti maksud program.

int ledPin = 10;
Inisialisasi variable, dalam hal ini inisialisasi variable bernama ledPin dengan type data integer dan nilai 10.

void setup() {
  pinMode(ledPin, OUTPUT);
}

Setiap sketch arduino wajib memiliki fungsi setup() dan loop().  Fungsi setup() dipanggil hanya sekali saat pertama kali program berjalan. Fungsi setup() biasanya tempat untuk men-setup hal-hal umum agar program siap dijalankan, seperti setup pin modes, setting serial baud rates, dan lainnya.

Pada sketch Led Blink, fungsi setup hanya memiliki 1 baris perintah yaitu

pinMode(ledPin, OUTPUT);

pinMode fungsi yang berguna untuk memberitahu arduino bahwa pin pada board akan digunakan sebagai input atau output.Dalam baris program diatas,  kita memberitahu arduino untuk menset pin 10 (nilai ledPin adalah 10) sebagai OUTPUT.

void loop() {
  digitalWrite(ledPin, HIGH);
  delay(1000);
  digitalWrite(ledPin, LOW);
  delay(1000);
}


Fungsi loop() function adalah program utama yang dipanggil secara continue selama arduino menyala (dialiri power). Setiap perintah dalam fungsi loop() akan dipanggil satu persatu sampai perintah terakhir dalam blok loop dicapai, lalu Arduino akan kembali ke awal perintah di blok fungsi loop(), sampai Arduino dimatikan atau tombol reset ditekan.

Dalam contoh proyek ini Arduino akan menyalakan led, menunggu selama 1 detik, lalu mematikan led, lalu menunggu 1 detik. Urutan perintah ini akan diulang terus menerus sampai arduino dimatikan atau direset. 

Pengenalan Arduino

Arduino adalah pengendali mikro single-board yang bersifat open-source, diturunkan dari Wiring platform, dirancang untuk memudahkan penggunaan elektronik dalam berbagai bidang. Hardwarenya memiliki prosesor Atmel AVR dan software-nya memiliki bahasa pemrograman tersendiri. Banyak pemula yang belajar mengenal robotika dan elektronika lewat Arduino karena mudah dipelajari. Tapi tidak hanya pemula, para hobbyist atau profesional pun senang mengembangkan aplikasi elektronik menggunakan Arduino. Bahasa yang dipakai dalam Arduino bukan assembler yang relatif sulit, tetapi bahasa C yang disederhanakan dengan bantuan pustaka-pustaka (libraries) Arduino. Arduino juga menyederhanakan proses bekerja dengan mikrokontroler, sekaligus menawarkan berbagai macam kelebihan antara lain:

* Murah – Papan ( perangkat keras ) 

Arduino biasanya dijual relatif murah ( antara 125ribu hingga 400ribuan rupiah ) dibandingkan dengan platform mikrokontroler pro lainnya. Jika ingin lebih murah lagi, tentu bisa dibuat sendiri dan itu sangat mungkin sekali karena semua sumber daya untuk membuat sendiri Arduino tersedia lengkap di website Arduino bahkan di website-website komunitas Arduino lainnya. Tidak hanya cocok untuk Windows, namun juga cocok bekerja di Linux.

* Sederhana dan mudah pemrogramannya 

– Perlu diketahui bahwa lingkungan pemrograman di Arduino mudah digunakan untuk pemula, maupun cukup fleksibel bagi yang sudah tingkat lanjut. 

* Perangkat lunaknya Open Source 

– Perangkat lunak Arduino IDE dipublikasikan sebagai Open Source, tersedia bagi para pemrogram berpengalaman untuk pengembangan lebih lanjut. Bahasanya bisa dikembangkan lebih lanjut melalui pustaka-pustaka C++ yang berbasis pada Bahasa C untuk AVR.

* Perangkat kerasnya Open Source 

– Perangkat keras Arduino berbasis mikrokontroler ATMEGA8, ATMEGA168, ATMEGA328 dan ATMEGA1280 ( yang terbaru ATMEGA2560 ). Dengan demikian siapa saja bisa membuatnya perangkat keras Arduino ini, apalagi bootloader tersedia langsung dari perangkat lunak Arduino IDE-nya. Bisa juga menggunakan breadoard untuk membuat perangkat Arduino beserta periferal-periferal lain yang dibutuhkan.

KELEBIHAN ARDUINO

Tidak perlu perangkat chip programmer karena didalamnya sudah ada bootloadder yang akan menangani upload program dari komputer.
Sudah memiliki sarana komunikasi USB, Sehingga pengguna laptop yang tidak memiliki port serial/RS323 bisa menggunakannya.
Memiliki modul siap pakai ( Shield ) yang bisa ditancapkan pada board arduino. Contohnya shield GPS, Ethernet,dll.

SOKET USB
Soket USB adalah soket kabel USB yang disambungkan ke komputer atau laptop. Yang berfungsi untuk mengirimkan program ke arduino dan juga sebagai port komunikasi serial.

INPUT/OUTPUT DIGITAL DAN INPUT ANALOG
Input/output digital atau digital pin adalah pin pin untuk menghubungkan arduino dengan komponen atau rangkaian digital. misalnya jika ingin membuat LED berkedip, LED tersebut bisa dipasang pada salah satu pin input atau output digital dan ground. komponen lain yang menghasilkan output digital atau menerima input digital bisa disambungkan ke pin pin ini. Input analog atau analog pin adalah pin pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. contohnya , potensiometer, sensor suhu, sensor cahaya, dll.

CATU DAYA
pin pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan arduino. Pada bagian catu daya ini pin Vin dan Reset. Vin digunakan untuk memberikan tegangan langsung kepada arduino tanpa melalui tegangan pada USB atau adaptor, sedangkan Reset adalah pin untuk memberikan sinyal reset melalui tombol atau rangkaian eksternal.

Baterai / Adaptor
Soket baterai atau adaptor digunakan untuk menyuplai arduino dengan tegangan dari baterai/adaptor 9V pada saat arduino sedang tidak disambungkan ke komputer. Jika arduino sedang disambungkan ke komputer dengan USB, Arduino mendapatkan suplai tegangan dari USB, Jika tidak perlu memasang baterai/adaptor pada saat memprogram arduino.

Papan Arduino





Apa yang ada di papan Arduino?

Ada banyak jenis papan Arduino yang dapat digunakan untuk tujuan yang berbeda. Beberapa papan terlihat sedikit berbeda dari yang di bawah ini, tetapi sebagian besar Arduino memiliki mayoritas komponen yang sama:



















Power (USB / Barrel Jack)

Setiap papan Arduino membutuhkan cara untuk terhubung ke sumber daya. Arduino UNO dapat diaktifkan dari kabel USB yang berasal dari komputer atau catu daya dinding (seperti ini) yang diakhiri dengan jack barel. Pada gambar di atas koneksi USB berlabel (1) dan jack laras diberi label (2).


CATATAN:

JANGAN gunakan catu daya yang lebih besar dari 20 Volt karena akan mengalahkan dan atau karenanya bisa menghancurkan Arduino. Tegangan yang disarankan untuk sebagian besar model Arduino adalah antara 6 dan 12 Volt.


Pin (5V, 3.3V, GND, Analog, Digital, PWM, AREF)

Pin pada Arduino adalah tempat di mana menghubungkan kabel untuk membangun sirkuit  mungkin bersamaan dengan papan tempat memotong dan beberapa kawat. Biasanya memiliki 'header' plastik hitam yang memungkinkan untuk hanya memasukkan kabel tepat ke papan. Arduino memiliki beberapa jenis pin, yang masing-masing dilabeli di papan dan digunakan untuk fungsi yang berbeda.

GND (3): Singkatan dari 'Ground'. Ada beberapa pin GND di Arduino, yang salah satunya dapat digunakan untuk menghubungkan ke sirkuit.

5V (4) & 3.3V (5): Seperti yang diduga, pin 5V memasok daya 5 volt, dan pin 3,3V memasok daya 3,3 volt. Sebagian besar komponen sederhana yang digunakan dengan Arduino berjalan dengan gembira dari 5 atau 3,3 volt.

Digital (7): Di seberang pin analog adalah pin digital (0 hingga 13 pada UNO). Pin ini dapat digunakan untuk input digital ( jika tombol ditekan ) dan output digital ( menyalakan daya LED).

PWM (8): perhatikan tilde (~) di sebelah beberapa pin digital (3, 5, 6, 9, 10, dan 11 pada UNO). Pin ini bertindak sebagai pin digital normal, tetapi juga dapat digunakan untuk sesuatu yang disebut Pulse-Width Modulation (PWM). untuk saat ini, anggap pin ini mampu mensimulasikan output analog ( seperti memudarkan LED masuk dan keluar ).

AREF (9): Singkatan dari Referensi Analog. Sebagian besar waktu Anda dapat meninggalkan pin ini sendirian. Kadang-kadang digunakan untuk mengatur tegangan referensi eksternal (antara 0 dan 5 Volts) sebagai batas atas untuk pin input analog.

Tombol Atur ulang

Sama seperti Nintendo asli, Arduino memiliki tombol reset (10). Menekannya untuk sementara akan menghubungkan pin reset ke ground dan me-restart kode yang dimuat pada Arduino. Ini bisa sangat berguna jika kode tidak berulang, tetapi ingin mengujinya berulang kali. Berbeda dengan Nintendo yang asli, meniup Arduino biasanya tidak memperbaiki masalah.

Indikator Daya LED

Tepat di bawah dan di sebelah kanan kata "UNO" di papan sirkuit, ada LED kecil di sebelah kata 'ON' (11). LED ini akan menyala setiap kali dicolokkan Arduino ke sumber listrik. Jika lampu ini tidak menyala, ada kemungkinan besar ada sesuatu yang salah. Saatnya memeriksa ulang sirkuit 


LED TX RX

TX adalah kependekan dari pengiriman, RX adalah kependekan dari penerimaan. Tanda-tanda ini muncul sedikit di elektronik untuk menunjukkan pin yang bertanggung jawab untuk komunikasi serial. Dalam kasus, ada dua tempat di Arduino UNO di mana TX dan RX muncul - sekali dengan pin digital 0 dan 1, dan kedua kalinya di sebelah TX dan LED indikator RX (12). LED ini akan memberi beberapa indikasi visual yang bagus setiap kali Arduino menerima atau mentransmisikan data ( seperti ketika  memuat program baru ke papan tulis ).

IC utama

Benda hitam dengan semua kaki logam adalah IC, atau Integrated Circuit (13). Anggap saja sebagai otak Arduino. IC utama pada Arduino sedikit berbeda dari jenis papan ke jenis papan, tetapi biasanya dari garis ATmega IC dari perusahaan ATMEL. Ini bisa menjadi penting, karena mungkin perlu mengetahui jenis IC ( bersama dengan jenis papan ) sebelum memuat program baru dari perangkat lunak Arduino. Informasi ini biasanya dapat ditemukan secara tertulis di sisi atas IC. 

Regulator tegangan

Regulator tegangan (14) sebenarnya bukan sesuatu yang dapat atau harus berinteraksi dengan Arduino. Tetapi berpotensi bermanfaat untuk mengetahui bahwa itu ada dan untuk apa itu. Regulator tegangan melakukan apa yang dikatakannya - ia mengontrol jumlah tegangan yang dibiarkan masuk ke papan Arduino. Anggap saja sebagai semacam penjaga gerbang; itu akan mengubah tegangan ekstra yang dapat membahayakan sirkuit. Tentu saja, ia memiliki batasnya, jadi jangan menghubungkan Arduino dengan apa pun yang lebih besar dari 20 volt.


Tips atau clue untuk mempelajari lebih dalam Dasar Program Arduino untuk Pemula , ada tigas tips berikut langkah-langkahnya :


1. Pelajari Mikrokontroller yang ada di papan Arduino, Karena ada banyak tipe mikrokontroller yang di gunakan Arduino, cobalah pelajari tipe ATMEGA328 , dan pelajari bagian-bagian bagaimana mikrokontroller tersebut bekerja , masih bingung bentuk ATMEGA328 .


2. Pelajari lebih dalam Papan Arduino Seperti yang sudah dijelaskan diatas, Belajar Dasar Program Arduino untuk pemula tidak cukup di jenis-jenis Arduino saja, papan (board) juga harus dipelajari lebih mendetail, coba pelajar memorinya konfigurasi pin I/O baik digital maupun analog, coba perhatikan gambar di bawah yang merupakan diagram Arduino




















3. Software Arduino , terutama cara memprogram arduino dalam bahasa C, mengupload program, dan pelajari bagian-bagian aplikasi Arduino IDE (Integrated development Environment) atau Skecth , Aplikasi tersebut akan memudahkan semua hal yang berhubungan dengan software arduino , aplikasi tersebut dapat anda download disitus webnya , 

https://www.arduino.cc/en/software




























Tuesday, November 10, 2020

Cara Sharing Scanner Pada Jaringan

Biasanya hardware yang bisa di share di jaringan lokal ( Local Area Network ) adalah printer. Yang menjadi pertanyaan adalah kalau scanner bagaimana, bisakah di share secara jaringan ? ternyata bisa dengan menggunakan bantuan tools BlindScanner namanya

Cara melakukannya, supaya bisa dipakai secara Jaringan adalah :

1. Download aplikasi BlindScanner : 

     http://www.masterslabs.com/download/bs/bs.exe

2. Install BlindScanner di PC yang sudah terpasang Scanner sebagai server.

    yang harus diingat pada saat instalasi pilih "Install server"

3. Install BlindScanner di PC client, pilih "Install client"

4. Setelah instalasi selesai, sekarang pada BlindScanner yang ada di client

   Pada bagian Servers & scanners klik icon "server" 

  









5. Lalu tulis pada kotak server IP address server scannernya.

   Pada bagian Portnya ketikkan "8900". Lalu klik Add. Setelah itu klik Close









6. Tunggu sebentar, maka akan muncul daftar scanner seperti gambar dibawah












7. Untuk settingnya terserah. Lalu untuk penempatan hasil scannya pada tempat "Destination folder & format" klik icon folder lalu pilih tempat mana yang akan dijadikan tempat tujuan hasil scan

8. Pilih format gambarnya (JPEG, PNG, dll)

9. Masukkan gambar di mesin scanner anda.

10. Lalu klik "Scan"

11. Tunggu beberapa saat. Setelah itu cek hasilnya di tempat yang telah anda tentukan tadi untuk menyimpannya, atau untuk mau melihat hasilnya bisa klik preview


Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...