Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Selasa, 04 Oktober 2022

Pemrograman Bahasa C Pada Arduino

- Tidak ada komentar

Arduino dan Bahasa C

Pada dasarnya pemrograman Arduino menggunakan bahasa pemrograman C. Bahasa C merupakan bahasa  yang sangat populer dan banyak digunakan oleh para programmer. Sebenarnya masih banyak sekali bahasa pemrograman tingkat tinggi (high level language) seperti pascal, basic, cobol, phython dan lainnya. Berikut beberapa alasan para programmer masih tetap memilih bahasa C sebagai bahasa yang lebih unggul :

 

1. Bahasa C merupakan bahasa yang kuat dan fleksibel serta telah terbukti dapat menyelesaikan program-program besar seperti pembuatan sistem operasi, pengolah gambar dan pembuatan kompilator bahasa pemrograman baru. 

 

2. Bahasa C merupakan bahasa yang portabel sehingga dapat dijalankan di beberapa sistem operasi yang berbeda. Contohnya, program yang ditulis dalam sistem operasi windows dapat kita kompilasi di dalam sistem operasi linux baik dengan sedikit perubahan atau tanpa perubahan sama sekali.

 

3. Bahasa C merupakan bahasa yang banyak digunakan oleh programmer berpengalaman sehingga kemungkinan besar library pemrograman telah banyak disediakan oleh pihak luar dan dapat diperoleh dengan mudah. 

 

4. Bahasa C merupakan bahasa yang bersifat modular, yaitu tersusun dari beberapa fungsi. Fungsi-fungsi tersebut dapat digunakan kembali untuk pembuatan program-program lainnya tanpa harus menulis ulang implementasinya. 

 

5. Bahasa C merupakan bahasa tingkat menengah (middle level language) sehingga mudah untuk melakukan interface (pembuatan program antar muka) ke perangkat keras.

 

Fungsi utama dalam struktur penulisan program menggunakan bahasa C yaitu main(). Fungsi ini akan dipanggil pertama kali pada proses eksekusi program. Apabila ada fungsi lain selain fungsi utama, maka fungsi lain tersebut baru akan dipanggil pada saat digunakan. Jadi, bahasa C merupakan bahasa prosedural yang menerapkan konsep runtutan. Jika kita menuliskan fungsi-fungsi lain di bawah fungsi utama, maka kita harus menuliskan bagian prototype. Hal ini dimaksudkan untuk mengenalkan kepada kompiler terlebih dahulu daftar fungsi yang akan digunakan di dalam program. Namun jika kita menuliskan fungsi-fungsi lain tersebut di atas atau sebelum fungsi utama, maka kita tidak perlu lagi untuk menuliskan bagian prototype.

 

Selain itu, dalam bahasa C kita akan mengenal file header yang biasa di tulis dengan ekstensi h(*.h).  File header adalah file bantuan yang digunakan untuk menyimpan daftar-daftar fungsi yang akan digunakan dalam program. Dalam bahasa C, file header standar yang digunakan untuk proses input/output adalah <stdio.h>. Jika kita menggunakan file header yang telah disediakan oleh kompilator, maka kita harus menuliskannya di dalam tanda‘<’ dan ‘>’ (misalnya <stdio.h>). Namun jika menggunakan file header yang kita buat sendiri, maka file tersebut ditulis diantara tanda “ dan ” (misalnya “cobaheader.h”). Perbedaan antara keduanya terletak pada saat pencarian file tersebut. Jika kita menggunakan tanda <>, maka file tersebut dianggap berada pada direktori deafault yang telah ditentukan oleh kompilator. Sedangkan jika kita menggunakan tanda “ ”, maka file header dapat kita dapat tentukan sendiri lokasinya.

 

Selasa, 27 September 2022

Berbagai Macam Perintah pada Arduino

- Tidak ada komentar

Arduino memiliki bahasa pemrograman yang baku untuk menjalankan fungsi sederhana menggunakan bahasa pemrograman C. Bahasa C merupakan bahasa pemrograman tingkat tinggi yang sangat populer dan banyak digunakan para programmer profesional. Untuk beberapa aplikasi pemrograman, biasanya disebut hasil kodingan dengan istilah script, listing atau program. Sedangkan untuk Arduino IDE disebut dengan "sketch". Secara umum, ada 3 tahapan yang harus Anda lakukan hingga program atau sketch-mu bisa dijalankan di Arduino. 3 tahapan tersebut antara lain:

Senin, 26 September 2022

Berbagai Macam Tipe Data pada Program Arduino

- Tidak ada komentar

Tipe data merupakan kelompok data yang digunakan untuk mendeklarasikan sebuah variabel di dalam bahasa pemrograman, khususnya pada bahasa pemrograman Arduino. Tujuannya untuk memberi tahu kepada Arduino tipe data apa yang ditampung dalam sebuah variabel. Tipe data yang digunakan dalam pemrograman Arduino antara lain :

Selasa, 20 September 2022

Pengertian dan Penjelasan tentang Sensor Jarak

- Tidak ada komentar

Sensor jarak adalah sebuah sensor yang mampu mendeteksi keberadaan benda di dekatnya tanpa adanya kontak fisik. Sensor jarak sering memancarkan elektromagnetik atau berkas radiasi elektromagnetik dan mencari perubahan dalam bidang atau sinyal kembali. Pada sensor jarak terdapat sepasang tranduser ultrasonik yang satu berfungsi sebagai transmitter yang bertugas untuk mengubah sinyal elektrik menjadi sinyal pulsa gelombang suara ultrasonik dengan frekuensi 40KHz, dan satunya berfungsi sebagai receiver yang bertugas untuk menerima sinyal gelombang suara ultrasonik.

Pengertian dan Penjelasan tentang Sensor Suara

- Tidak ada komentar

Sensor suara adalah sebuah alat yang mampu mengubah gelombang Sinusioda suara menjadi gelombang sinus energi listrik (Alternating Sinusioda Electric Current). Sensor suara bekerja berdasarkan besar kecilnya kekuatan gelombang suara yang mengenai membran sensor yang menyebabkan bergeraknya membran sensor yang juga terdapat sebuah kumparan kecil di balik membran tersebut naik dan turun. Kecepatan gerak kumparan tersebut menentukan kuat lemahnya gelombang listrik yang dihasilkannya. 

Selasa, 13 September 2022

Cara Menambahkan Board STM32 ke Arduino IDE

- Tidak ada komentar

Arduino menjadi board yang banyak digunakan oleh pengguna mikrokontroler, seperti pelajar, mahasiswa dan engineer ketika mereka mulai dengan elektronik. Arduino merupakan CPU 8 bit yang kinerjanya dinilai kurang cepat, sehingga belum banyak digunakan untuk industri. Sedangkan STM32 merupakan CPU 32 bit yang banyak ditemukan di pasaran dengan harga yang terjangkau sehingga banyak digunakan untuk berbagai project. Selain itu, kita dapat menggunakan Arduino IDE yang sama untuk memprogram board STM32. STM32 merupakan sebuah development board untuk mikrokontroler ARM Cortex M3. Bentuk dan ukuran fisik STM32 hampir mirip dengan Arduino Nano. 

Selasa, 06 September 2022

Motor Induksi

- Tidak ada komentar

Motor induksi adalah motor listrik yang bekerja berdasarkan arus induksi. Motor induksi pada dasarnya mempunyai 3 bagian utama yaitu stator, celah udara dan rotor. Stator merupakan bagian mesin yang tidak bergerak. Bagian ini tersusun dari kumparan yang berperan sebagai alat untuk induksi elektromagnetik ke kumparan yang ada pada rotor. Celah udara merupakan tempat terjadinya perpindahan energi dari stator menuju ke rotor. Sementara rotor adalah bagian mesin yang dapat bergerak. Pergerakan rotor diakibatkan oleh munculnya induksi elektromagnetik dari kumparan stator menuju ke kumparan yang ada pada rotor. Penerapan motor induksi sangat umum di industri karena memiliki tingkat keandalan yang tinggi dan tingkat perawatan yang mudah. Selain itu, harga jual motor induksi lebih murah dibandingkan dengan motor arus searah dengan perbandingan setengah harga. Motor induksi bekerja dengan arus bolak-balik sehingga memiliki rasio daya listrik terhadap berat mesin yang lebih tinggi dibandingkan dengan motor arus searah.

Pengertian dan Penjelasan tentang Solenoid Valve

- Tidak ada komentar

Solenoid valve adalah katup yang dikendalikan dengan arus listrik AC maupun DC melalui kumparan atau selenoida. Solenoid valve berfungsi sebagai elemen kontrol yang paling sering digunakan dalam sistem fluida. Salah satu contohnya pada sistem pneumatik, solenoid valve bertugas untuk mengontrol saluran udara yang bertekanan menuju aktuator pneumatik (cylinder). Contoh lainnya yaitu pada sebuah tandon air yang membutuhkan solenoid valve sebagai pengatur pengisian air, sehingga tandon air tidak sampai kosong. 

Selasa, 30 Agustus 2022

Motor Stepper

- Tidak ada komentar

Motor stepper adalah perangkat elektromekanis yang bekerja dengan mengubah tenaga listrik menjadi tenaga mekanis. Motor stepper bergerak berdasarkan urutan pulsa yang diberikan kepada motor. Jadi, untuk menggerakkan motor stepper diperlukan pengendali motor stepper yang membangkitkan pulsa-pulsa periodik. 

Arduino UNO ATMega328P

- Tidak ada komentar

Arduino Uno adalah board mikrokontroler berbasis ATMega328. Memiliki 14 pin input dari output digital. Dimana 6 pin input tersebut digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya  menghubungkan board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya.

 

Arduino UNO ATMega328P

Selasa, 23 Agustus 2022

Prinsip Kerja dari LoRa RFM95 Frekuensi 915 MHz

- Tidak ada komentar

LoRa (Long Range) adalah suatu format modulasi yang unik dan mengagumkan yang dibuat oleh Semtech. Modulasi yang dihasilkan menggunakan modulasi FM. Perangkat RFM95 merupakan salah satu modul LoRa yang menggunakan komunikasi Radio Frekuensi dan mampu menjangkau jarak 8 kilometer. Modulasi adalah proses perubahan suatu gelombang periodik. LoRa (Long Range) merupakan suatu proses perubahan suatu gelombang periodik tertentu sehingga menjadikan suatu sinyal yang mampu membawa suatu informasi. Gelombang periodik adalah merupakan gerak gelombang yang secara teratur. Perubahan gelombang ini teratur dan berulang-ulang yang mempunyai sumber berupa gangguan yang bertahap atau secara bertahap yang berupa getaran.

 

Prinsip Kerja dari LoRa SX1278

- Tidak ada komentar

LoRa (Long Range) merupakan teknologi frekuensi radio nirkabel yang diproduksi dan dipatenkan oleh perusahaan Semtech dengan modulasi yang mampu mencapai sensitivitas hingga -148 dBm. Modul transceiver SX1278 yaitu sebuah seri LoRa dengan kualitas tinggi yang menyediakan fitur modem Long Range untuk komunikasi jarak jauh dengan jangkauan hingga 15 KM menggunakan daya yang cukup kecil dan tahan interferensi serta meminimalkan konsumsi arus. Pada artikel kali ini kita akan belajar bagaimana berkomunikasi dengan module LoRa.

Selasa, 16 Agustus 2022

Penjelasan tentang Mikrokontroler STM32

- Tidak ada komentar

STM32 adalah keluarga dari 32-bit sirkuit terpadu mikrokontroler oleh STMicroelectronics yang secara spesifik dikembangkan untuk aplikasi (Cortex-A), embedded (Cortex-M) dan real-time (Cortex-R). STM32 Cortex-M dirancang berdasarkan ARM®, Cortex®-M cores: Cortex®-M0 untuk STM32F0, Cortex®-M3 untuk STM32F1 dan STM32F2, Cortex®-M4 untuk STM32F3, STM32F4 dan STM32L4, serta Cortex®-M7 untuk STM32F7. Mikrokontroler ini cocok untuk melakukan pekerjaan embedded karena mengombinasikan performa tinggi dengan peripheral kelas satu, yang membuat kinerjanya STM32 lebih unggul dibandingkan dengan Arduino. STM32 digunakan di berbagai aplikasi dari printer sederhana hingga papan sirkuit kompleks sebagai hasil dari pengembangan firmware dan embedded system menggunakan mikorkontroler STM32. Mikrokontroler ini sangat cocok untuk aplikasi daya rendah.  

Selasa, 09 Agustus 2022

Penjelasan tentang Development Board STM32 ARM

- Tidak ada komentar
STM32 Development Board adalah sebuah development board untuk mikrokontroler ARM Cortex M3. Jika dibandingkan dengan board Arduino resmi dan juga perangkat open source lainnya, board ini terbilang cukup murah. Mikrokontroler yang ada di dalam STM32 adalah STM32F103C8T6 dari STMicroelectronics. Board STM32 menggunakan dua osilator kristal, satu diantaranya kristal 8 MHz dan yang lainnya adalah kristal 32 KHz. Keduanya dapat digunakan untuk menggerakkan RTC internal (Real Time Clock). Oleh sebab itu, MCU dapat beroperasi dalam mode deep sleep sehingga ideal untuk aplikasi yang dioperasikan dengan baterai.

Senin, 08 Agustus 2022

Penjelasan tentang Development Board Raspberry Pi Pico RP2040

- Tidak ada komentar

Raspberry Pi Pico merupakan development board yang dikembangkan oleh Raspberry Pi Foundation dengan mengemas chip bikinan sendiri, yaitu RP2040. Dua karakter di depan yaitu RP merupakan singkatan dari "Raspberry Pi", sedangkan angka "2" menandakan jumlah inti yang ada pada mikrokontroller tersebut. Angka "0" mengindikasikan jenis prosesor yang digunakan yaitu Cortex - M0, sedangkan "4" dan "0", jika dihitung menggunakan formula floor (log2(x/16k)) akan menghasilkan kapasitas SRAM dan penyimpanan non-volatible yang dimilikinya. Mikrokontroller RP2040 merupakan mikrokontroller yang memiliki arsitektur dual core ARM Cortex-M0+ dengan kecepatan frekuensi maksimum hingga 133 MHz.



Raspberry Pi Pico sangat cocok digunakan untuk proyek-proyek mikrokontroler maupun robotika karena memiliki performa yang baik. Raspberry Pi Pico dapat diprogram menggunakan bahasa pemrograman MicroPython dan C/C++.

Spesifikasi Utama RP2040

1. Core - Dual Cortex M0+ dengan frekuensi clock hingga 133 MHz. (48MHz default)


2. Memory – 264 kB of embedded SRAM in 6 banks

3. Peripherals

    • 30 multifunction GPIO

    • 6 dedicated I/O for SPI Flash (supporting XIP)


    • Dedicated hardware for commonly used peripherals


    • Programmable I/O for extended peripheral support


    • 4 channel ADC with an internal temperature sensor, 0.5 MSa/s, 12-bit conversion

    • USB 1.1 Host/Device

4. Debugging – SWD Debug interface

5. Package – QFN56 7x7mm


Diagram Arsitektur RP2040




Pinout RP2040



Spesifikasi Raspberry Pi Pico

    • Penyimpanan – 2MB QSPI flash


    • USB – 1x Micro USB 1.1 port used for power and programming


    • Expansion
   

    • 2x 20-pin 2.54mm pitch header and castellated holes with 26 GPIOs, 3x 12-bit ADC up to 500 Kbps, 2x UART, 2x I2C, 2x SPI, 16x PWM, 2x programmable high-speed I/O (for SD card, VGA, etc…)


• 3.3V I/O voltage


• Sensor – 12-bit temperature sensor


• Debugging – 3-pin Arm Serial Wire Debug (SWD) port


• Misc – BOOTSEL button, user LED (GP25), 1x Timer with 4x alarms, RTC

• Power Supply – 5V via Micro USB port or 2 to 5V DC via VSYS pin

• Dimensions – 51 x 21mm







Raspberry Pi Pico dirancang sebagai board yang berguna memperluas fungsionalitas dari RP2040 dan kemudahan programmer untuk mengakses sebagian besar fiturnya termasuk pin – pin GPIO, yang memiliki skema pinout sebagai berikut.







Raspberry Pi Pico sudah dilengkapi dengan rangkaian regulator daya didalamnya, sehingga dapat dicatu dengan sumber daya dengan tegangan yang bervariasi mulai dari 1.8 V hingga 5.5 V. Sehingga dua baterai ukuran AA yang disusun seri, sudah cukup untuk menjalankan board ini.



Raspberry Pi Pico memiliki fitur dan fungsionalitas yang kuat dan lebih banyak. Dilihat dari segi programming atau SDK, Raspberry Pi Pico cukup mudah apabila menggunakan bahasa MycroPython untuk setupnya dan untuk contoh program sudah terdapat dokumentasi pada website resmi Raspberry Pi. Sedangkan untuk setup SDK C/C++ Pico masih sulit, karena belum ada IDE dedicated. Selain itu, Raspberry Pi juga tidak memiliki internal Bluethooth dan WiFi yang sangat dibutuhkan untuk project-project Internet of Things.

Senin, 01 Agustus 2022

Penjelasan dan Pengertian LDMicro PLC

- Tidak ada komentar

Ladder Diagram merupakan bahasa logika pemrograman yang paling banyak digunakan dalam Programmable Logic Controller. Ladder Diagram ditulis sebagai konstruksi relay racks yang digunakan dalam dunia manufaktur dan proses kontrol. Dalam sistem otomasi, bahasa pemrograman ini menjadi salah satu yang wajib dipelajari, khususnya yang bertugas di bagian IT, teknisi dan maintenance. Hampir sama dengan bahasa pemrograman lainnya, Ladder Diagram juga terdiri dari input dan output. Input berupa kode binary, sedangkan output berupa eksekusi yang diinstruksikan dalam rangkaian kode.

 

LDMicro PLC



Fungsi utama dari bahasa pemrograman ini adalah untuk mengontrol dan memonitor tiap relay menggunakan simbol dan diagram grafik tertentu. Ladder Diagram memiliki beberapa fungsi yang fleksibel, antara lain :

1. Sebagai sistem perlindungan otomatis

2. Sebagai sistem timer

3. Sebagai sistem counter


Ladder Diagram bukan satu-satunya bahasa pemrograman yang bisa digunakan dalam Programmable Logic Controller. Ada beberapa bahasa lain seperti Structured Text, Sequential Function Charts, Function Block Diagram, dan Instruction List.

Kelebihan Ladder Diagram

1. Mudah ketika proses debugging


Ladder Diagram memiliki tools khusus yang bisa memproyeksikan kode output menggunakan animasi power flow. Jadi, apabila masih ada bug yang perlu diperbaiki bisa langsung terlihat lewat animasi.


2. Inuitif


Proses coding bisa lebih inuitif dengan representasi langsung dari tiap circuit yang sedang diprogram. Selain itu, bisa juga membuat proses coding menjadi lebih mudah karena bisa melihat input dan output dari setiap circuit di Programmable Logic Controller sejak masih dalam program di komputer.

3. Self-documentation

Bisa menulis kode perintah dan menulis desain secara bersamaan. Hal ini membuat penulisan kode memakan waktu lebih cepat daripada menggunakan bahasa lainnya.


4. Stylistic

Ladder Diagram bisa ditulis menggunakan style yang diinginkan. Dalam satu perintah bisa ditulis dengan berbagai macam cara dan tetap menghasilkan input serta output yang serupa.

Kekurangan Ladder Diagram


1. Sulit dalam mengelompokkan data structure


Apabila sedang menulis rangkaian kode yang panjang, mengelompokkan dan memproteksi data structure menjadi hal yang sangat penting. Hal ini dikarenakan tidak adanya fitur grouping membuat menulis, mengedit, hingga debugging harus dilakukan dengan sangat hati-hati.


2. Tidak ada kode dan logic encapsulation

Logic encapsulation adalah fitur dimana rangkaian kode bisa dijadikan satu bundle atau class. Fitur ini membuat proses merangkai kode jadi lebih cepat dan dapat ditemukan di hampir semua jenis bahasa pemrograman. Akan tetapi, Ladder Diagram tidak memiliki fitur ini. Sehingga, semua kode yang panjang sekalipun harus ditulis berulang-ulang secara manual. Hal ini membuat kemungkinan terdapat bug hanya karena salah ketik jadi semakin besar.


3. Hanya bisa menggunakan kombinasi artimatika sederhana

Merangkai kode yang rumit untuk sistem otomasi berskala besar tidak bisa dilakukan dengan Ladder Diagram. Sebab, bahasa ini menyimpan semua rangkaian kode di lokasi memori. Sehingga, operasi artimatika dengan variabel yang besar dan rumit akan membuat program sulit untuk digunakan.

LD-Micro adalah sebuah software IDE (Integrated Development Environment), yang merupakan penggabungkan editor, assembler, compiler, dan debugger dalam menghasilkan kode mesin (File Hex) untuk mikrokontroler. Program pada software ini tidak berbentuk teks, tetapi berbentuk diagram tangga (ladder diagram) yang nantinya akan digunakan untuk mengoperasikan PLC itu sendiri. Program yang dibuat dapat disimulasikan untuk melihat jalannya program tersebut. Mikrokontroler yang bisa menggunakan aplikasi software LDMicro ini hanya beberapa dari keluarga PIC dan keluarga AVR.

1. Keluarga PIC

    • PIC16F628(A)


    • PIC16F88


    • PIC16F819

    • PIC16F877(A)

    • PIC16F876(A)


    • PIC16F887


    • PIC16F886


2. Keluarga AVR


    • ATmega128


    • ATmega64,

    • ATmega162


    • ATmega32


    • ATmega16


    • Atmega 8


Salah satu kelebihan dari LDMicro ini yaitu tersedianya intruksi-intruksi yang cukup lengkap untuk mengembangkan aplikasi-aplikasi PLC pada umumnya.

LDmicro merupakan salah satu bahasa program yang digunakan oleh para programmer PLC. Seseorang harus menggunakan LDMicro PLC dalam pemrograman karena LDmicro adalah sebuah software pemrograman mikrokontroler keluarga PIC dan AVR yang menggunakan bahasa ladder seperti layaknya PLC atau Smart-Relay.


Oleh karena itu, software ini sangat cocok untuk praktisi listrik yang lebih familiar dengan ladder daripada mnemonic assembler dan bahasa pemrograman tingkat tinggi seperti BASIC, C, atau PASCAL. Selain itu, aplikasi ini juga sangat cocok untuk pelajar dibidang Otomasi, Eletronika & Mekatronika Karna bersifat freeware.

Selasa, 26 Juli 2022

I/O Outseal PLC Mega

- Tidak ada komentar

Outseal PLC Mega menggunakan IC ATmega128A sebagai CPU dan dilengkapi dengan board I/O yang sudah mengikuti standard IEC 61131-2. Outseal PLC Mega mempunyai 2 jalur komunikasi serial sehingga memungkinkan modbus slave dan master berjalan secara bersamaan. Outseal PLC Mega V.1 merupakan pengembangan PLC Nano dengan penambahan jumlah I/O, serial port dan high-speed counter (HSC). Outseal PLC Mega V.1 sudah menggunakan switching buck converter sebagai pengganti linear regulator dimana panas yang dihasilkan lebih kecil daripada linear regulator sehingga dapat menerima tegangan listrik catu daya 6 sampai 24V. 

Rabu, 06 April 2022

Menjalankan Kode Program Aplikasi IoT

- Tidak ada komentar


 

Beberapa kode program yang telah ditulis berikutnya perlu diunggah pada VPS. Pada contoh akan diunggah dengan fungsi dari program scp. Program ini memanfaatkan jalur komunikasi yang sama dengan ssh. Contoh perintah dari program ini adalah :

 

scp apps/*iot@206.189.94.98:/home/iotapps/apps

 

Perintah tersebut akan memindahkan semua berkas yang ada pada direktori apps di komputer ke sebuah VPS dengan alamat 206.189.94.98 pada direktori /home/iot/apps. Berikutnya simpan kode program untuk antarmuka halaman website ke dalam direktori templates.

 

 

Untuk menjalankan program tersebut pada terminal gunakan perintah Phyton webservice.py. Pada gambar di bawah ini adalah tampilan dari rekaman proses jalankan kode program webservice.py. Terdapat status kode 200 dari fungsi GET dan POST pada gambar tersebut, hal ini menandakan program telah berjalan dengan baik dalam melayani permintaan pengguna.



Opsi lain untuk menjalankan program adalah dengan perintah nohub

 

nohub Phyton /home/iotapps/webservice.py > log.txt &

 

Program ini menjadikan kode webservice.py berjalan secara daemon, jika menggunakan opsi pertama program akan tertutup saat akses ke terminal terputus. Ketika menggunakan opsi nohub sebuah berkas dengan log.txt akan terbuat, berkas tersebut sebagai luaran dari program webservice.py. Isi dari log.txt sama dengan tampilan pada gambar di atas pada berkas log.txt dapat juga berisi catatan error., jika ada konfigurasi atau kode yang salah saat program dijalankan. Karena berbasis daemon, selain dari log.txt, dapat juga dilihat dengan perintah netstat, apakah program telah berjalan.

 


Pada gambar di atas terlihat ada port 5001 yang aktif, hal itu menandakan program telah berjalan dan sudah dapat digunakan untuk menerima data dari IGD. Program ini akan berjalan pada port 5001 dan listen ke semua interface, jadi setelah dijalankan untuk fungsi POST dapat dilakukan dengan alamat :

 

https://206.189.94.98:5001/api/post

 

Sedangkan untuk meminta data berdasarkan topik dapat dilakukan dengan mengakses alamat :

 

https://206.189.94.98:5001/getData/<idTopic>

 

Setelah web services siap digunakan, jalankan internet gateway dan kirim beberapa data ke web services dengan method POST. Pada gambar di bawah ini contoh data yang telah tersimpan pada database MongoDB. Data tersebut dilihat dengan MongoShell.

 


  
 


Pada gambar di atas adalah tampilan awal aplikasi IoT berbasis web yang berjalan pada sebuah VPS. Aplikasi tersebut diakses dengan alamat https://206.189.94.98:5001/. Terlihat ada 2 topik yang tersimpan yaitu /dht dan /image. Pada gambar di atas adalah informasi terkait data apa saja yang disimpan dengan topik /dht. Sedangkan gambar di bawahnya lagi adalah gambar tampilan terkait data yang disimpan dengan topik /image.

 

Dengan demikian pembahasan terkait IoT yang terbagi antara layer infrastruktur IoT, layer middleware dan layer aplikasi telah selesai.  


Selasa, 05 April 2022

Praktik Pengembangan Aplikasi IoT Berbasis Cloud Computing

- Tidak ada komentar

Pada bagian ini disajikan bagaimana membangun sebuah aplikasi IoT yang dijalankan pada lingkungan komputasi awan (cloud computing). Aplikasi yang dicontohkan terdiri dari web services, media penyimpanan dan aplikasi visualisasi data. Sebagai contoh program ini dijalankan pada virtual private server (VPS) dengan alamat IP 206.189.94.98. Untuk mendapatkan VPS dapat dilakukan dengan cara menyewa ke penyedia jasa internet atau ISP.

 

Pada pembuatan aplikasi, ditulis menggunakan bahasa pemrograman Phyton dengan menggunakan beberapa library tambahan di antaranya :

 

1. Sebuah virtual private server dengan sistem operasi Ubuntu server

 

Pada saat pembuatan instance pada VPS terdapat pilihan sistem operasi. Pada praktik dicontohkan menggunakan Ubuntu server.

 

2. Database NoSQL MongoDB

 

Setelah VPS siap digunakan, berikutnya adalah instalasi database MongoDB. Perintahnya sudo apt-target install -y mongodb-org. Berikutnya jalankan layanan MongoDB dengan perintah sudo server mongod start

 

3. Library Phyton yang digunakan

 

    pip

 

Sebuah alat bantu untuk memasang library yang dibutuhkan pada pemrograman dengan bahasa Phyton. Cara penggunaannya pip install [nama library].


    Flask

 

Sebuah framework perangkat lunak untuk mengembangkan aplikasi berbasis web dengan bahasa pemrograman Phyton. Framework ini juga dilengkapi dengan fungsi untuk menyediakan web server, jadi kode program yang telah ditulis dapat dijalankan tanpa bantuan web server seperti apache. Cara instalasi framework ini dengan perintah pip install flask.


    Pymongo

 

Sebuah library untuk menghubungkan antara kode program dari bahasa Phyton dengan database MongoDB. Cara instalasi library ini dengan perintah pip install pymongo.


    Bootstrap

 

Sebuah framework yang menyediakan beberapa fungsi untuk membuat antarmuka atau tampilan sebuah halaman website.


    Editor program

 

Sebuah editor kode program diperlukan untuk menulis program aplikasi IoT. Setelah kode selesai ditulis berikutnya unggah ke virtual private server dengan program FTP client atau perintah scp. Cara unggah akan dijelaskan kemudian. Untuk keseluruhan kode program dapat dilihat pada kode program 9 sampai 14.

 

Kode Program Aplikasi IoT

 

Terdapat beberapa kode program yang akan digunakan untuk menjalankan fungsi seperti gambar sebelumnya, kode program tersebut meliputi :

 

1. webservices.py 

 

Berfungsi sebagai program utama, di dalamnya terdapat beberapa  fungsi yaitu method POST untuk menerima pesan dari pengirim (Node sensor atau IGD). Berikutnya data akan disimpan ke database mongodb berdasarkan topik. Jika topik yang diterima belum pernah tersimpan sebelumnya, maka akan dibuat collection baru pada MongoDB. Berikutnya method GET untuk menerima permintaan dari aplikasi lain terkait data yang telah tersimpan. 

 

2. Usershowdata.htmls

 

Sebuah kode program antarmuka untuk menampilkan topik-topik yang tersimpan.

 

3. showdataJSON.htmls

 

Kode program antarmuka untuk menampilkan data dari sensor dengan topik /DHT.

 

4. showDataFiles.html

 

Kode program untuk visualisasi isi data dari sensor yang dikirim dengan topik /image.

 

5. userNavabar.html

 

Kode program antarmuka untuk navigasi ke tampilan awal.

 

6. userHeader.html

 

Kode program antarmuka untuk memberi judul header halaman website.

 

Keenam kode tersebut membentuk sebuah hubungan yang digambarkan pada gambar di bawah ini. Fungsi utama terdapat pada webservice.py sedangkan kode lainnya berguna untuk menampilkan data secara grafis.

 

 

Berikutnya adalah pembahasan untuk masing-masing kode program. Kode program 9 dengan nama webservice.py adalah inti dari aplikasi IoT yang dicontohkan, untuk pembahasan terdapat garis penting pada kode program ditandai dengan [blok pada baris].

 

 

Pada kode program 9, terdapat beberapa fungsi yaitu :

 

a. Inisialisasi database

 

Baris 17 adalah inisialisasi database yang digunakan. Untuk database yang digunakan dalam program ini adalah MongoDB dengan alamat 127.0.0.1. Artinya database tersebut ada dalam host yang sama dengan program webservice.py. Sedangkan port yang digunakan adalah 27107. Nama database yang digunakan adalah IoTapps, pada baris 167.

 

b. Fungsi POST data 

 

Pada baris 49-83, adalah kode yang mendefinisikan method POST. Fungsi bekerja dengan menangkap parameter data dari Internet Gateway berdasarkan topik. Berikutnya data akan disimpan pada koleksi database MongoDB sesuai dengan masing-masing topik. Fungsi ini dapat diakses pada http://[alamat-host]/api/post. Pada baris ke 82 merupakan pesan response dari server ke pengirim (IGD) jika data telah berhasil disimpan pada database.

 

c. Fungsi create topic

 

Pada baris 40-47,  data yang diterima akan disimpan dalam sebuah database dan setiap topik akan dipisah pada masing-masing collection. Jika topik baru disimpan maka akan dibuat collection baru, jika topik sudah ada maka akan langsung disimpan pada collection yang sudah ada.

 

d. Fungsi melihat semua topik yang tersimpan

 

    Pada baris 85-90 berisi kode untuk menampilkan topik yang tersimpan pada database MongoDB. Hasil dari fungsi ini akan ditampilkan pada sebuah halaman website dengan memanggil kode program 10 userShowData.html.

 

 

e. Metode GET

 

Baris ke 92-144ada kode program webservice.py adalah fungsi untuk menampilkan semua data yang tersimpan pada database sesuai dengan topik. Dalam contoh terdapat kode untuk menampilkan data ke dalam halaman website. Untuk data json dengan topik /dht ditampilkan ke halaman dengan memanggil kode program 24 'showDataJSON.html', sedangkan untuk data gambar dengan topik /image, ditampilkan dengan kode program 12 yaitu 'showDataFiles.html'.

 


f. Fungsi melihat data file 

 

Baris ke 146 sampai 152 pada kode program webservice.py, digunakan untuk melihat data jenis gambar yang tersimpan pada MongoDB. Pada contoh program ini hanya menampilkan secara raw data, belum sampai ke konversi data gambar.

 

g. Fungsi delete topic

 

Baris ke 154-161 pada kode program webservice.py adalah fungsi untuk menghapus topik yang tersimpan pada database. Fungsi ini dipanggil dalam halaman yang sama pada userShowData.html. Penghapusan topik dilakukan dengan menghapus satu collection pada database MongoDB.

 

h. Fungsi navigasi pada halaman website

 

Untuk memudahkan pengguna dalam mengenali halaman website, perlu ditambahkan menu navigasi berupa "Dashboard" pada kode program userNavabar.html dan judul website "Aplikasi IoT" pada kode program userHeader.html. Kedua kode ini dipanggil pada masing-masing kode html sebelumnya.