Raspberry Pi Untuk Apa?

Kalau ada yang bertanya apa yang bisa dilakukan oleh Raspberry Pi? Untuk apa saja? Maka jawabnya akan banyak sekali. Raspberry Pi yang sering juga disebut sebagai SBC (single-board computer) itu seperti layaknya sebuah komputer, dia bisa melakukan banyak hal. Ditambah lagi fleksibilitas koneksinya yang seperti Arduino, menjadikannya bisa ditambahi piranti apa saja.

Mau dijadikan robot bisa, dijadikan drone bisa, dijadikan pengendali smarthome bisa, dijadikan server bisa, dijadikan face detection/recognition bisa, dan banyak lagi. Silakan google saja dengan keyword “Raspberry Pi projects”, maka akan ketemu banyak hal yang bisa dibuat dengan Raspberry Pi.

Kembali ke laptop… Kemarin ada teman jual Raspberry Pi 3B dengan harga murah. Langsung saja saya beli. Padahal saya sudah punya beberapa Raspi dan belum tahu mau dipakai apalagi. Makanya 2 paragraf di atas itu sejatinya pertanyaan buat saya sendiri, Raspi-nya mau dipakai apa lagi? Hahaha…

DWO_0261

Ini adalah beberapa Raspberry Pi yang saya miliki beserta peruntukannya:

  1. Raspberry Pi Original Model B. Ini Raspi pertama saya. Saat ini nganggur. Sudah saya tambahin LCD TFT dengan antar muka SPI.
  2. Raspberry Pi 3 Model B. Saya gunakan sebagai server IoT dengan alamat di http://zero-iot.com. Saat ini masih digunakan untuk penggunaan pribadi.
  3. Raspberry Pi Zero W. Digunakan sebagai sensor suhu dan kelembaban. Dalam waktu tidak lama akan meluncur ke teman yang memesannya.
  4. Raspberry Pi Zero W + DVB TV uHAT. Digunakan untuk server TVHeadEnd. Lihat posting saya sebelumnya di “Membeli DVB TV uHAT untuk Raspberry Pi” dan “Setup DVB TV uHAT di Raspberry Pi.”
  5. Raspberry Pi 3 Model B. Saya gunakan sebagai player untuk streaming dari TVHeadEnd sekaligus untuk kerja ringan mengelola server-server. Memang seringkali saya harus mengelola server di malam hari, terutama berkenaan dengan backup, replikasi dan setup yang seringkali butuh waktu lama. Jadi ketika proses saya tinggal tidur sambil berharap esok paginya proses telah selesai tanpa error.
  6. Raspberry Pi 3 Model B. Ini yang baru saya beli dari teman. Memang belum tahu kegunaannya untuk apa. Nanti cari ide dulu. Yang pasti sih saat ini saya jadikan cadangan. Oh iya, saya ada LCD HDMI khusus untuk Raspberry Pi. Tempo hari saya coba tapi karena terlalu kecil, cuma 3.5″, jadinya malah menyiksa mata karena kekecilan, hahaha…

Perkara SBC, sebenarnya saya juga punya CubieBoard versi 2 dan CHIP. Keduanya bagus kok. Tapi untuk fleksibilitas dan dukungan jelas Raspberry Pi lebih bisa diandalkan. Apalagi CHIP sudah tamat riwayatnya.

Selain Raspberry Pi yang sudah saya miliki, sebenarnya saya juga ingin mencoba Raspberry Pi 3 Model A+ dan OrangePi Zero. Tapi nanti sajalah kalau memang sudah ada rencana mau digunakan untuk apa. Mengenai OrangePi Zero sebenarnya bisa jadi alternatif lebih murah dibanding Raspi Zero W yang saat ini saya gunakan sebagai sensor IoT.

Saya tahu bahwa saya menggunakan Raspberry Pi bukan untuk hal-hal yang luar biasa. Pengen sih bisa menggunakannya untuk hal-hal yang luar biasa seperti untuk drone, robot, image/audio processor, smart home, video surveillance atau hal heboh lainnya. Tapi ya lagi-lagi masih terkendala budget dan waktu, hahaha…

Iklan

RTL-SDR Software Defined Radio | Vlog

Saya iseng beli sebuah dongle DVB-T yang sekaligus bisa difungsikan sebagai SDR (Software Defined Radio). Dengan dongle yang menggunakan chipset RTL2832U ini saya bisa mendengarkan gelombang radio dari frekuensi 24-1700 MHz. Sebuah rentang yang sangat lebar. Detail mengenai RTL-SDR bisa dibaca di: RTL-SDR.com.

C.H.I.P Radio Internet Versi 2

Baiklah, saatnya mendokumentasikan di blog. Ini masih tentang Internet Radio dengan C.H.I.P. Yang mana kali ini sedikit berbeda dengan yang sudah dituliskan sebelumnya (baca: Memanfaatkan C.H.I.P Sebagai Radio Internet, C.H.I.P Radio Internet Autostart, C.H.I.P Untuk Alarm Radio Internet). Kali ini saya menambahkan 3 tombol untuk mengganti channel, mengeraskan volume, dan mengecilkan volume.

Selain itu saya juga mengubah cara akses vlc. Kali ini menggunakan library Python-vlc sehingga lebih mudah pengaturannya. Dan saya menambahkan daftar channel radio internet.

CHIP Internet Radio
CHIP Internet Radio

Baca selebihnya »

Membuat Tombol Shutdown di C.H.I.P

Selama ini saya menggunakan C.H.I.P secara headless yang artinya tanpa monitor, tanpa keyboard, tanpa mouse. Lalu bagaimana cara aksesnya? Bagaimana cara memprogramnya?

Untuk melakukan itu semua dibutuhkan bantuan komputer lain. Saya biasanya menggunakan laptop MacBook Air atau menggunakan Raspberry Pi dengan memanfaatkan ssh atau screen (serial).

Yang jadi masalah adalah CHIP ini sejatinya sebuah komputer juga. Dia memiliki sistem operasi yang lengkap dan kompleks juga. Untuk mematikannya tidak boleh asal cabut power atau menahan tombol reset sampai mati. Karena kalau begitu caranya, maka file system bisa corrupt. Atau bahkan merusak storage internalnya. Ini tentu berbeda dengan Arduino yang kalau mematikannya langsung dengan memutuskan power supply-nya.

Selama ini rada repot mematikan CHIP karena saya harus akses secara remote dulu (via ssh atau serial) baru kemudian menjalankan perintah shutdown. Nah hari ini saya belajar bahasa pemrograman Python dan akses GPIO. Jadi sekalian saja membuat tombol Shutdown. Caranya gampang banget. Tidak pake lama.

Pertama, buatlah tombol yang terhubung ke XIO-P7 dan GND. Jadi kalau tombol ini ditekan, maka XIO-P7 akan tersambung ke ground.

Kemudian buatlah script python test_shutdown.py. Isinya adalah sebagai berikut:

#!/usr/bin/python

import CHIP_IO.GPIO as GPIO
import subprocess

GPIO.setup("XIO-P7", GPIO.IN)


while True:
  if GPIO.input("XIO-P7") == 0:
    print "Shutting down..."
    subprocess.call(["sudo","shutdown","-h","now"])

Untuk menjalankannya harus pakai sudo karena akses ke GPIO dan perintah shutdown harus dilakukan oleh superuser.

sudo python test_shutdown.py

Oh iya, jangan lupa tambahkan bit execute supaya script bisa dijalankan tanpa mengetikkan python:

chmod +x test_shutdown.py
sudo ./test_shutdown.py

Coba tekan tombol tersebut. Apakah CHIP akan shutdown?

Belajar Bahasa Pemrograman Python

Dalam rangka mengoprek C.H.I.P (dan Raspberry Pi), lebih baik kita bisa bahasa pemrograman Python. Dulu saya pernah mencoba belajar Python dan Tkinter, tapi kok mentok. Sepertinya bahasa pemrograman Python tidak nyaman. Menurut saya terlalu kaku. Menurut saya loh ya? Mungkin bagi Anda tidak.

Saat ini ada 2 bahasa yang saya hindari. Pernah belajar dan merasa kalau kedua bahasa ini bukanlah bahasa yang perlu saya pelajari. Dan saya pun selalu mencoba menghindari kedua bahasa ini, yaitu Swift dan Python.

Tapi karena harus ngoprek CHIP/Raspberry Pi, maka saya pun memaksakan diri belajar bahasa Python. Kemarin saya masih berusaha menghindari belajar Python dan menggunakan script bash. Tapi ternyata lebih ribet, walau pun dari segi sintaks lebih bisa dipahami, hahaha…

Dan hari Minggu ini (dari pagi sampai malam) saya terpaksa belajar Python, walau pun saya belajar hanya yang saya perlukan. Saya belajarnya tidak sistematis, tidak runut, tapi mencari bahasan yang saya butuhkan. Misalnya menggunakan library, akses GPIO, akses file, operasi string, dll.

Dan akhirnya jadilah radio internet dengan 3 buah tombol. Tombol pertama untuk mengganti-ganti channel. Dua tombol berikutnya untuk mengecilkan dan membesarkan volume. Senang juga akhirnya bisa ngoprek CHIP. Ternyata tidak sulit kok. Dan gaya pemrograman saya nampaknya masih mengikuti gaya Arduino. Padahal sepertinya di Python bisa lebih efisien lagi.

Rencananya besok mau menambahkan tombol untuk mematikan dan menyalakan radio. Soalnya cara akses vlc di program saya ini berbeda dengan cara yang dipakai tempo hari untuk Alarm (Baca: CHIP Untuk Alarm Radio Internet). Dan juga bentrok dengan script penampilan jam. Besok saja deh menggabungkan script-nya.

Dengan demikian akses ke radio internet benar-benar tidak memerlukan remote access. Horeee…

Mengamati Utilisasi CPU & Memory CHIP

Tempo hari kita sudah berhasil memanfaatkan C.H.I.P sebagai radio internet (baca: C.H.I.P Radio Internet Autostart dan Memanfaatkan C.H.I.P Sebagai Radio Internet). Dan saya cukup senang bahwa kenyataannya CHIP ini bisa jadi alarm radio juga (baca: C.H.I.P Untuk Alarm Radio Internet). Tapi saya penasaran dengan berapa utilisasi CPU dan memory CHIP ketika digunakan sebagai radio internet.

Sebagai informasi singkat, CHIP memiliki 1 CPU ARMv7 yang memiliki clock 1 GHz dan RAM 512 MB. Sementara internal storage-nya 4 GB. CHIP sudah dipersenjatai koneksi Wi-Fi dan Bluetooth 4.0. CHIP memiliki 1 micro USB OTG dan 1 USB 2.0 ukuran standard. Kalau melihat bagian bawah board, maka akan ditemukan 1 port JST yang bisa disambungkan ke baterai. Asyiknya adalah USB OTG bisa digunakan juga untuk men-charge baterai.

Sedangkan untuk urusan penampilan bisa menggunakan monitor composite via jack TRRS. Jika diinginkan untuk penyambungan ke monitor VGA atau HDMI, maka CHIP menyediakan VGA/HDMI adapter yang bisa dibeli terpisah. Untuk informasi lebih lanjut silakan merujuk ke website resmi C.H.I.P.

Karena saya tidak memiliki adapter VGA/HDMI, maka urusan pemantauan utilisasi CPU dan memori bisa dilakukan via ssh dengan menggunakan aplikasi htop. Namun solusi ini tidaklah praktis karena harus menggunakan laptop untuk melihatnya.

Jadi saya pun menyambungkan LCD 16×2 I2C yang praktis sehingga urusan penampilan tidaklah merepotkan. Untuk koneksi bisa membaca artikel saya sebelumnya (baca: C.H.I.P Dengan LCD 16×2). Untuk library LCD 16×2 saya ambil dari artikel HOW TO SETUP AN I2C LCD ON THE RASPBERRY PI. Ambil library I2C_LCD_driver.py di situ.

Lalu saya pun menuliskan code yang memanfaatkan library ini untuk menampilkan utilisasi CPU, utilisasi memory, suhu CPU dan jam. Berikut adalah code-nya:

import I2C_LCD_driver
import time
import datetime
import psutil

formatDate1 = ' %a %d/%m/%Y'
formatDate2 = '%H:%M:%S {:5}\'C'
format1 = 'CPU {:3}% MEM {:2}%'

lcd = I2C_LCD_driver.lcd()

cat = lambda file: open(file, 'r').read().strip()

while True:
  namafile = "/sys/class/hwmon/hwmon0/temp1_input"
  temp = cat(namafile)
  temp = float(temp)/1000

  lcd.display_string(format1.format(int(psutil.cpu_percent()), int(psutil.virtual_memor$
  lcd.display_string(datetime.datetime.now().strftime(formatDate2).format(temp), 2)
  time.sleep(1)

Hasilnya cukup mengasyikkan. Pemantauan bisa independen, tidak tergantung laptop. Dan rupanya CHIP sudah cukup powerfull dan stabil jika digunakan sebagai radio internet. Lihat saja hasil pemantauannya yang saya upload di instagram.

C.H.I.P Dengan LCD 16×2

Saat masih mentok ngoprek TouchRadio, saya pun melirik C.H.I.P yang teronggok manis di meja. Tempo hari CHIP ini saya konfigurasi sebagai Radio Internet. Saat saya nyalakan ternyata radio internet-nya berjalan dengan baik. Lalu saya ingin ngoprek CHIP ini lebih lanjut. Misalnya dengan menambahkan LCD 16×2 yang kebetulan saya masih punya stock 1 buah. Jadi saya pun menyambungkannya.

Asyiknya adalah karena header CHIP sudah ada tulisannya. Jadi gampang tahu pin mana yang dituju. Berbeda dengan Raspberry Pi yang header-nya tidak ada tulisannya. Jadi harus menghitung untuk mendapatkan pin yang benar.

Oh iya, saya menggunakan LCD 16×2 dengan backpack I2C sehingga lebih praktis. Cukup menggunakan 2 pin untuk komunikasi dengan CHIP. Berikut adalah koneksinya:

LCD i2c CHIP
VCC 5V
GND GND
SDA TWI1 SDA
SCL TWI1 SCK

Tuh kan gampang nyambungnya? Selanjutnya adalah code-nya. Silakan merefer ke: CHIP I2C LCD Project. Atau langsung download contoh source code-nya: lcd_i2c.py. Setelah itu bisa kita sesuaikan dengan kemauan kita, mau dipakai untuk menampilkan apa.

View this post on Instagram

Tinggal nambahin tombol utk ganti channel.

A post shared by Emanuel Setio Dewo (@setiodewo) on

Sepertinya bener-bener bisa dijadikan radio internet yang keren. Kita bisa menambahkan beberapa tombol. Misalnya tombol mode yang bisa mengganti mode tampilan: mode radio (menampilkan channel dan volume), mode monitoring (suhu, kelembaban, tanggal dan jam), mode system (menampilkan IP, suhu CPU dan utilitas CPU), dan banyak lagi.  Tombol kedua bisa digunakan untuk mengganti-ganti channel radio. Sedangkan untuk volume bisa menggunakan PAM8403 yang sudah build in potensiometer volume. Kebetulan ada stock-nya, hehehe…

Pasti bisa keren ya? Apalagi kalau diberi casing yang keren.