Thursday, March 11, 2021, 15:42
Layanan Nirkabel
Untuk memadukan dan memiskinkan jaringan, layanan access point dimasukkan ke komputer kemuning. Sehingga bisa dihemat satu piranti untuk fungsi tersebut.
Kemuning sudah mempunyai satu antarmuka nirkabel terpasang. Seharusnya antarmuka ini bisa digunakan, tapi ternyata piranti tersebut belum mendukung fungsi access point. Jadi perlu ditambahkan satu antarmuka nirkabel yang sudah mendukung fungsi tersebut. Cara termudah adalah dengan menambahkan antarmuka nirkabel lewat jalur USB.
Kemuning masih memiliki dua jalur USB yang belum terpakai. Selain itu antarmuka nirkabel dalam format USB mempunyai ukuran yang cukup kecil. Sehingga mudah dipadukan ke dalam kemuning. Keuntungan lainnya, yang dimaksud bisa didapatkan dengan harga relatif murah. Piranti dengan keping terpadu RTL8188EUS keluaran Realtek Semiconductor Corp. mudah didapatkan.
Software digunakan hostapd, untuk memberi layanang nirkabel. Sedangkan untuk menyuntikkan alamat jaringan dan kawan-kawan digunakan dnsmasq.
Konfigurasi hostapd di /etc/hostapd/hostapd.conf
. Ini bisa dilihat dari file /etc/default/hostapd
.
interface=wlan1
bridge=br0
driver=nl80211
country_code=ID
ssid=kemuning
hw_mode=g
channel=8
wpa=2
wpa_passphrase=password-ap
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
Konfigurasi dnsmasq adalah /etc/dnsmasq.conf
.
interface=br0
dhcp-range=192.168.255.100,192.168.255.120,8h
dhcp-option=option:router,192.168.255.1
dhcp-option=option:ntp-server,192.168.0.4,10.10.0.5
dhcp-option=option:dns-server,192.168.255.1
dhcp-option=option:netmask,255.255.255.0
dhcp-authoritative
Konfigurasi antarmuka jaringan, serperti di bawah ini.
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet manual
#--- onboard wireless adapter ---
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
#--- usb wireless adapter ---
auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
auto br0
allow-hotplug br0
iface br0 inet static
bridge_ports eth0 wlan1
address 192.168.255.1
netmask 255.255.255.0
network 192.168.255.0
-- sas
Saturday, January 09, 2021, 23:26
Kemuning di Thingspeak
Keberadaan mesin kemuning di https://thingspeak.com sangat membantu memantau status mesin dan sensor-sensor terkait. Termasuk catatan kapan mesin ini bisa diakses dan kapan tidak.
Di setelan awal ini, informasi yang dikirimkan adalah status koneksi VPN dari semanggi ke kemuning, sensor suhu internal prosessor, dan sensor suhu OneWire DS18B20 yang ditempel pada lempeng logam pendingin SOC kemuning.
Informasi lainnya akan ditambahkan seiring waktu berjalan.
Saturday, January 09, 2021, 11:00
Tombol Power
Tombol power adalah salah satu fitur yang seharusnya ada dalam setiap piranti. Sayangnya tombol ini tidak tersedia pada mesin Kemuning. Untuk itu perlu disediakan cara agar bisa mematikan piranti tanpa cara paksa. Dengan mencabut asupan tenaga dari port micro usb.
Hanya diperlukan 2 komponen yaitu tombol tactile dan sebuah resistor 10KOhm. Yang saya cabut dari sebuah board display entah piranti apa. Tentu kabel secukupnya.
Tombol ini berjenis Normaly Open, koneksi terbuka saat tidak ditekan.
Menggunakan kanal PG06 atau pin nomor 8 di header GPIO. Pin ini ditarik ke tegangan 3V3 lewat sebuah resistor 10KOhm. Saat tombol ditekan, kanal PG06 ini akan ditarik ke tegangan 0V.
Piranti lunak dibuat dengan skrip Python. Menggunakan library OPi.
Saya menggunakan Python v3, maka untuk menginstall library ini digunakan perintah,
# pip3 install --upgrade OPi.GPIO
Berikut adalah skrip yang dimaksud. Disimpan sebagai
/usr/local/bin/button.py
.
#!/usr/bin/env python3
import OPi.GPIO as GPIO # to install "pip3 install --upgrade OPi.GPIO"
import time
import subprocess
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
#Select GPIO pin to be used
InputPin = 8 #UART1_TX/PG06
LedOnPin = 10 #UART1_RX/PG07
GPIO.setup(InputPin, GPIO.IN)
GPIO.setup(LedOnPin, GPIO.OUT)
GPIO.output(LedOnPin, 1)
while True:
GPIO.wait_for_edge(InputPin, GPIO.FALLING)
GPIO.output(LedOnPin, 0)
print ("*** Shutdown sequence activated ***")
subprocess.call("/sbin/shutdown -h +1", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
GPIO.output(LedOnPin, 1)
time.sleep(2)
GPIO.wait_for_edge(InputPin, GPIO.FALLING)
GPIO.output(LedOnPin, 0)
print ("*** Shutdown sequence canceled ***")
subprocess.call("/sbin/shutdown -c", shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
GPIO.output(LedOnPin, 1)
Disini digunakan kanal PG07 seperti telah dijelaskan di posting sebelumnya. Berfungsi sebagai umpan balik saat tombol ditekan. Agar kita tahu bahwa informasi sudah sampai ke prosesor, ketika tombol ditekan.
Perulangan utama dijalankan untuk selalu menunggu perubahan yang terjadi pada kanal PG06. Ketika terdeteksi pertama kali tombol ditekan, maka akan dijalankan perintah
/sbin/shutdown -h +1
. Yaitu perintah untuk melakukan proses shutdown satu menit setelah tombol ditekan. Bila dalam waktu sebelum satu menit itu tombol ditekan lagi, maka proses shutdown akan dibatalkan dengan perintah
/sbin/shutdown -c
.
Agar skrip ini dijalankan saat awal mesin menyala, maka ditambahkan di file
/etc/rc.local
.
#!/bin/sh -e
#
# rc.local
#
/usr/local/bin/blink_led.py
/usr/local/bin/button.py
exit 0
Selamat mencoba.
Wednesday, January 06, 2021, 23:27
LED Display
Dalam beberapa kasus, kita perlu informasi akan status sebuah layanan. Dan ada berbagai macam cara melakukannya. Paling sederhana adalah memeriksa layanan tertentu terjadi kendala atau tidak, kemudian menampilkan sebuah sinyal. Baik berupa sinyal suara atau cahaya kasat mata. Tergantung keinginan dan kebiasaan masing-masing.
Kemuning, adalah mesin dengan beberapa kanal Input/Output yang dimunculkan dalam bentuk pin header 26pin. Sehingga memudahkan kita menambahkan sebuah piranti, yang bisa diakses oleh piranti lunak melalui kanal ini.
Komponen yang diperlukan untuk memasang LED display adalah sebuah LED, sebuah resistor 220Ohm, dan kabel kecil secukupnya. LED dan resistor diambil dari bekas lampu ruangan, yang biasanya masih ada beberapa LED yang masih bagus.
Rangkaian dan pemasangannya dapat dilihat dari gambar disamping.
Perangkat lunak, menggunakan skrip python. Dan menggunakan library pyA20.
#!/usr/bin/env python
import os
import sys
if not os.getegid() == 0:
sys.exit('Script must be run as root')
from time import sleep
from pyA20.gpio import gpio
from pyA20.gpio import port
led = port.PG7
gpio.init()
gpio.setcfg(led, gpio.OUTPUT)
for x in range(3):
gpio.output(led, 0)
sleep(0.2)
gpio.output(led, 1)
sleep(0.1)
gpio.output(led, 0)
sleep(0.1)
gpio.output(led, 1)
sleep(0.8)
gpio.output(led, 1)
Misalkan kita ingin menyalakan lampu LED ini saat proses boot mesin selesai. Simpan skrip di atas dengan nama
/usr/local/bin/blink_led.py
. Kemudian tambahkan baris pada file
/etc/rc.local
, untuk menjalankan skrip tersebut.
Jangan lupa mengaktifkan hak akses eksekusi pada skrip tersebut.
# chmod a+x /usr/local/bin/blink_led.py
Selamat berkreasi.
Saturday, January 02, 2021, 11:10
Kemuning Memiliki Front Panel
Sekarang kemuning.simpul.id memiliki front panel. Display OLED dengan antarmuka I2C, untuk menampilkan informasi ditel. Lampu LED 3mm biru, untuk menampilkan informasi yang tidak ditel. Misalnya notifikasi email baru yang datang.
Selain itu terdapat sensor dan LED transmitter IR. Antarmuka ini direncanakan untuk mengendalikan piranti berbasis remote control infra merah. Seperti AC dan TV.
Thursday, December 31, 2020, 23:16
Semangat tahun baru!
Hari ini tanggal 1 Januari 2021, kemuning.simpul.id akan mulai aktif di Internet. Mungkin masih belum stabil, karena belum ada akses Internet yang tetap. Ada dua pekerjaan utama untuk membuat mesin ini selalu daring, yaitu power supply yang stabil dan akses Internet.
Semoga, pekerjaan kecil ini bisa berkesinambungan.