Archive for 2017

Getting Started Particle Photon Development Board

By : M yunus

Baru dapet semalem di pinjemin buat project langsung coba buat oprek, hehe....


Kali ini kita bakal coba bermain main dengan development board yang satu ini, mungil menawan dan MAHAL..... hmmm... Development Board yang di desain untuk keperluan pengembangan IoT (Internet Of Things) ini memang fiturnya mirip mirip Dev Board besutan AI-Thinker, yup... pasti udah pada tau, ESP8266, kalo dibandingkan dari sisi harganya saja kita akan berfikir dua kali untuk memilih "Particle Photon" ini. Tapi jangan salah, ada harga ada kualitas, cekidot detail hardwarenya .... 

Particle Photon ini merupakan Dev Board yang menggunakan Wi-Fi module dengan kelengkapan chipset Broadcom BCM43362 untuk Wi-Fi (802.11b/g/n Wi-Fi) dan mikrokontroller STM32F205RGY6 dengan clock speed 120Mhz dan SoC ARM Cortex M3. Selain itu Dev Board ini memiliki 1MB flash, 128KB RAM. Cukup luar biasa mengingat sizenya yang amat mungil dan sangat powerfull untuk aplikasi IoT. Kejutanya (bagi gua sihh... hehe) ,Dev Board ini sudah support Real-Time Operating System (FreeRTOS), jadi nunggu apa lagi, buruan beli ... :D . Info lengkap kamu bisa dapatkan disini.



Installation Particle CLI

Nah setelah kita bahas sedikit tentang hardware, kita mulai cari gmna cara programnya. Kebetulan karena gua Linux Lover lahh.. (padahal masih Noob wkwkwk) nyari mekanisme coding yang Linux banget. Ehh nemu deh Particle CLI, dengan ini kita bisa coding Dev Board Particle lewat CLI Linux. hmmmm... macem hacker di film-film dahh... :v 
Note : gua pake Ubuntu 14.04

1. Instal NPM dan NodeJS

$ sudo apt-get install python-software-properties python g++ make
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs

2. Instal Particle CLI

$ sudo npm -g install particle-cli

3. Selanjutnya kalian bisa coba compile program yang kalian bikin.


Referensi :
https://community.particle.io/t/how-to-install-spark-cli-on-ubuntu-12-04/3474
http://codefrieze.blogspot.co.id/2015/08/using-particle-cli-on-ubuntu-1404.html


Install Quantum GIS on Ubuntu 14.04

By : M yunus
Install Quantum GIS on Ubuntu 14.04 ( Thrusty Tahr)

1. berikut adalah versi Quantum GIS yang dapat digunakan,

a. Rilis terbaru (versi : 2.18.x Las Palmas )
repository :
http://qgis.org/debian  | rilis untuk Debian dan Ubuntu
http://qgis.org/ubuntugis | rilis dengan ubuntugis dependencies
http://qgis.org/debian-nightly-release | upcoming release untuk Debian dan Ubuntu
http://qgis.org/ubuntugis-nightly-release | upcoming release dengan Ubuntugis dependencies

b. Long Term Release LTR (versi: 2.14.x Essen)
repository :
http://qgis.org/debian-ltr | rilis untuk Debian dan Ubuntu
http://qgis.org/ubuntugis-ltr | rilis dengan ubuntugis dependencies
http://qgis.org/debian-nightly-ltr | upcoming release untuk Debian dan Ubuntu
http://qgis.org/ubuntugis-nightly-ltr | upcoming release dengan Ubuntugis dependencies

c. versi Development (versi: 2.99.x master)
repository :
http://qgis.org/debian-nightly | upcoming release untuk Debian dan Ubuntu
http://qgis.org/ubuntugis-nightly | upcoming release dengan Ubuntugis dependencies

2. versi Debian dan Ubuntu yang di dikung


Distribution      Version               Codename         ubuntugis
Debian 8.x jessie
testing stretch
unstable sid
Ubuntu 16.04 (LTS) xenial  yes
14.04 (LTS) trusty yes
12.04 (LTS) precise yes

3. PERHATIAN!!!! jika anda sebelumnya belum pernah menginstall Quantum GIS pada ubuntu anda, ikuti langkah berikut :

3.a. buka terminal dan jalankan,

sudo nano /etc/apt/sources.list

3.b. setelah terbuka, tmabahkan repository yang anda ingin gunakan (bersesuaian dengan versi QGIS yang anda sukai), mengikuti format berikut,

deb     *repository* *codename* main
deb-src *repository* *codename* main


contohnya, untuk pengguna Ubuntu Trasty Tahr (14.04)

deb     http://qgis.org/debian trusty main
deb-src http://qgis.org/debian trusty main


3.c. jika diperlukan anda juga dapat menambahkan Repository Ubuntu GIS, tambahkan setelah tugas diatas,

deb     http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu *codename* main

3.d tambahkan repositori public key kedalam apt-key ubuntu ataupun debian, jalankan,

wget -O - http://qgis.org/downloads/qgis-2016.gpg.key | gpg --import
gpg --fingerprint 073D307A618E5811


outputnya kurang lebih seperti berikut,

pub   2048R/618E5811 2016-08-17 [expires: 2017-08-17]
      Key fingerprint = 942D 6AD5 DF3E 75DE A9AF  72B2 073D 307A 618E 5811
uid                  QGIS Archive Automatic Signing Key (2016) <qgis-developer@lists.osgeo.org>
sub   2048R/D34A963D 2016-08-17


3.e. tambahkan key ke apt list, jalankan,

gpg --export --armor 073D307A618E5811 | sudo apt-key add -

3.f install QGIS dan PythonQGIS, jalankan,

sudo apt-get update
sudo apt-get install qgis python-qgis qgis-plugin-grass


3.g setelah itu anda dapat membuka Quantum GIS yang telah anda install,


4. PERHATIAN!!!! jika anda pernah menginstall Quantum GIS sebelumnya dan hendak pindah versi, ikuti langkah" berikut,

4.a hapus apt data qgis versi sebelumnya, jalankan,

sudo rm /var/lib/apt/lists/qgis*

4.b buka apt source, jalankan,

sudo nano /etc/apt/sources.list
pada bagian bawah, sesuaikan dengan repositori versi yang hendak digunakan, (dijelaskan diatas)

4.c hapus QGIS dan PythonQGIS, jalankan,

sudo apt-get remove qgis python-qgis

4.d padtikan dependecies versi sebelumnya terhapus, jalankan, 

sudo apt-get autoremove

4.e bersikan konfigurasi versi sebelumnya, jalankan,

sudo apt-get autoclean

4.f pastikan semua hal berkaitan dengan QGIS benar-benar terhapus, jalankan,

sudo apt-get purge qgis python-qgis
sudo apt-get remove --purge qgis python-qgis



4.g install Qgis dan PythonQGIS, jalankan

sudo apt-get update
sudo apt-get install qgis python-qgis


4.h anda misalkan menginstall versi develompment maka hasilnya akan terlihat seperti berikut,

*NOTE : 

B. Pada beberapa versi terdapat bugs, seperti hilangnya icon Project Property pada software, install dari repository debian-nightly lebih disarankan, sumber terkait : http://qgismalaysia.blogspot.co.id/2012/04/ubuntu-1204-qgis-1990-installation.html

C. Jika setelah instal dengan repository debian nightly masih ditemui bugs, anda bisa mencoba versi lama dari Quantum GIS, Ikuti langkah ke 4 hanya saja pada saat anda membuka /etc/apt/sources.list hapus semua repository QGIS, pada kondisi ini anda akan menginstall QGIS dari main repository ubuntu.

QGIS ver 2.0 akan terlihat seperti ini,



Sumber Tutorial :

Raspberry Pi | Intall Mjpg Streamer

By : M yunus

Ini adalah tutorial tentang bagaimana meng-instal mjpg streamer pada Raspberry Pi dengan kamera Raspicam (camera official Raspberry Pi).

1. pastikan raspberry dalam keadaan terupdate,

sudo apt-get update

2. Instal cmake dan libjpeg8-dev,

sudo apt-get install cmake libjpeg8-dev  
 
3. Download mjpg streamer,

git clone https://github.com/jacksonliam/mjpg-streamer.git

4. Instal mjpg streamer,

cd mjpg-streamer-experimental
make
sudo make install

5. cara menjalankanya, masuk kedalam folder mjpg streamer experimental,

cd mjpg-streamer/mjpg-streamer-experimental 

selanjutnya jalankan,

export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so"

6. buka browser komputer anda ( harus satu network dengan raspberry pi), pada address bar arahkan ke alamat

http://<ip raspberry pi>>:8080

misalkan ip Raspberry Pi adala 192.134.3.20, maka pada address bar browser tuliskan,

192.134.3.20:8080

note: mjpg streamer secara default menggunakan port 8080,

7. klik tab streamer pada web aplikasi mjpg streamer, hasilnya anda akan melihat streaming dari kamera Raspicam,


 sumber :
https://github.com/jacksonliam/mjpg-streamer

UBUNTU FIX | Mounting Partisi Ubuntu Yang Error

By : M yunus
 Kali ini saya akan membahas bagaimana mengembalikan partisi pada Ubuntu yang tidak bisa di mount, permasalahan ini bisa muncul akibat adanya file sistem yang error pada partisi yang mengakibatkan partisi gagal untuk di mount. bisa di akibatkan karena sebelumnya anda melakukan force shutdown atw komputer mati secara mendadak.

Saat anda menemui masalah seperti ini, pada terminal Ubuntu biasanya akan memberikan feedback sebagai berikut,

mount: wrong fs type, bad option, bad superblock on /dev/sda3,        
            missing codepage or helper program, or other error       
            In some cases useful info is found in syslog - try        
            dmesg | tail  or so

1. Terlibih dahulu kita cek partisi pada Ubuntu, buka terminal ubuntu dan jalankan,

df -h

akan keluar output seperti berikut,

Filesystem      Size  Used Avail Use% Mounted on
udev            472M  8,0K  472M   1% /dev
tmpfs            97M  1,1M   96M   2% /run
/dev/sda1        47G   35G   11G  77% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
none            5,0M     0  5,0M   0% /run/lock
none            483M   15M  468M   4% /run/shm
none            100M   60K  100M   1% /run/user


pada kasus saya, saya kehilangan partisi /dev/sda3 yang harusnya di-mount ke direktori /media/yunus/DATA.

2. Selanjutnya pastikan kalo partisi terbaca oleh Ubuntu, jalankan

ls /dev/sda3

jika outputnya menghasilkan /dev/sda3, maka pasrtisi terbaca oleh Ubuntu (Sesuaikan untuk partisi anda akan di-mounting)

3. Sekarang kita akan merecoveri sistem dalam partisi termasuk recoveri jurnal jika terjadi error disana dan membaca blok partisi yang error untuk diperbaiki, pada terminal Ubuntu, jalankan perintah berikut,

sudo fsck /dev/sda3

setelah itu akan keluar konfirmasi pembacaan blok partisi ( tekan Y untuk 'yes' hingga semuanya selesai terbaca). Hasinya akan tampak seperti berikut,

fsck from util-linux 2.20.1
e2fsck 1.42.9 (4-Feb-2014)
DATA: recovering journal
Error reading block 23990179 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>? yes
Force rewrite<y>? yes
Error reading block 23988631 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>? yes
Force rewrite<y>? yes
yError reading block 23989875 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>? yes
Force rewrite<y>? yes
yError reading block 23990027 (Attempt to read block from filesystem resulted in short read).  Ignore error<y>? yes
Force rewrite<y>? yes
Setting free inodes count to 11865650 (was 11865646)
Setting free blocks count to 11388787 (was 11941107)
DATA: clean, 152014/12017664 files, 36660877/48049664 blocks

 4. Setelah itu mount partisi /dev/sda3 ke direktori /media/yunus/DATA, jalankan perintah berikut,

sudo mount -rw /dev/sda3 /media/yunus/DATA

setelah itu cek keseluruhan partisi,

df -h

dan akan terlihat hasilnya,

Filesystem      Size  Used Avail Use% Mounted on
udev            472M  8,0K  472M   1% /dev
tmpfs            97M  1,1M   96M   2% /run
/dev/sda1        47G   35G   11G  77% /
none            4,0K     0  4,0K   0% /sys/fs/cgroup
none            5,0M     0  5,0M   0% /run/lock
none            483M   15M  468M   4% /run/shm
none            100M   56K  100M   1% /run/user
/dev/sda3       181G  137G   35G  80% /media/yunus/DATA


untuk memastikan file dalam partisi terbaca atw tidak, masuk kedalam direktori yang kita tuju untuk proses mounting partisi diatas, pada kasus saya di direktori /media/yunus/DATA, pada terminal Ubuntu jalankan,

cd /media/yunus/DATA

ls 

dan kalo file anda semuanya ada disana berarti proses mounting berhasil.



Sumber :
https://ubuntuforums.org/archive/index.php/t-1832087.html

Raspberry Pi | Install Driver Wifi Dongle TP LINK TL-WN725N ( 8188eu )

By : M yunus
Kali ini saya akan menjelaskan tutorial menginstal wifi dongle pada Raspberry Pi, terutama untuk seri Raspberry Pi A+, B, B+ dan Rpi 2 yang tidak memiliki built-in wifi. Driver available untuk wifi dongle TP LINK TL-WN725N V2 dan yang serupa,  cek disini untuk melihat kompatibilitas wifi dongle pada Raspberry Pi dengan OS Raspbian.

1. buka terminal Raspberry Pi, dan jalankan,

uname -a

contohnya akan terlihat seperti berikut,

Linux raspberrypi 4.4.38+ #938 Thu Dec 15 15:17:54 GMT 2016 armv6l GNU/Linux

perintah diatas berfungsi meng-cek  versi kernel yang digunakan oleh OS Raspbian saat itu (pada Raspberry Pi saya terlihat Kernel Linux versi 4.4.38+ #938). [kernel Build]


>> kernel linux versi 3.18, 4.1, 4.4, 4.8/9 <<
 
2.  nama file driver berikut avalable untuk kernel linux versi 3.18, 4.1, 4.4, dan 4.8/9.

8188eu-kernel-build.tar.gz

sehingga pada kasus saya, driver yang harus digunakan adalah,

8188eu-4.4.38-938.tar.gz

3. Download driver 8188eu, jalankan perintah berikut pada terminal Raspberry Pi,

wget https://dl.dropboxusercontent.com/u/80256631/8188eu-4.4.38-938.tar.gz
tar xzf 8188eu-4.4.38-938.tar.gz
./install.sh


Note: Ingat sesuaikan dengan Kernel - Build Raspberry Pi anda!!


>> Kernel Linux Lama <<
4. panduan lengkap ikuti langkah disini.

Sumber :
https://www.raspberrypi.org/forums/viewtopic.php?p=462982


Raspberry Pi | Install MySQL

By : M yunus

Kali ini saya akan menjelaskan bagaimana menginstal MySQL di Raspberry Pi. MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus di mana penggunaannya tidak cocok dengan penggunaan GPL.[1]

Langkah-langkah instal MySQL pada Raspberry Pi sebagai berikut,

1. Pastikan Raspberry Pi dalam kondisi update dan upgrade,

sudo apt-get update && sudo apt-get upgrade -y

2. Instal MySQL , jalankan perintah berikut,

sudo apt-get install mysql-server --fix-missing

3. Masukan password untuk username root,

   
ulangi password, 


 4. Jika anda ingin menggunakan MySQL bersama dengan PHP untuk membuat sebuah webpage di webserver Raspberry Pi, maka jalankan perintah berikut,

sudo apt-get install mysql-client php5-mysql

Sumber :
https://www.stewright.me/2014/06/tutorial-install-mysql-server-on-raspberry-pi/

Raspberry Pi | Install Webserver NGINX + PHP-FPM on Raspberry Pi

By : M yunus
Nginx (baca: engine x) adalah server HTTP dan Proxy dengan kode sumber terbuka (open source) yang bisa juga berfungsi sebagai proxy IMAP/POP3. Source code nginx ditulis oleh seorang warga negara Rusia yang bernama Igor Sysoev pada tahun 2002 dan dirilis ke publik pada tahun 2004. Nginx terkenal karena stabil, memiliki tingkat performansi tinggi dan minim mengonsumsi sumber daya.[1]

Tutorial kali ini kita akan mencoba meng-instal webserver Nginx pada Raspberry Pi, setelah itu dilanjutkan dengan instal PHP-FPM untuk web programming. Mari kita simak langkah-langkahnya :

1. Pastikan Raspberry Pi dalam keadaan terupdate,

sudo apt-get update

2. Install Webserver Nginx, buka terminal Raspberry Pi, dan jalankan perintah berikut,

sudo apt-get install nginx

3. Lakukan step berikut untuk meng-aktifkan webserver Nginx, 

sudo /etc/init.d/nginx start

4. Setelah itu buka browser Raspberry Pi (anda juga bisa menggunakan browser laptop/komputer dengan syarat satu network dengan Raspberry Pi). masukan IP Raspberry Pi pada address bar browser (untuk melihat IP Raspberry Pi , jalankan pada terminal Raspberry Pi : hostname -I ). Anda juga bisa menggunakan IP Lokal Raspberry Pi dengan mengarahkanya pada http://localhost/ (hanya digunakan jika anda menggunakan browser Raspberry Pi bukan browser laptop/komputer).

jika berhasil maka akan tampak sebagai berikut :

 
5. Secara default file halaman web akan disimpan di direktori /var/www/html , anda dapat mengganti direktori penyimpananya dengan mengkonfigurasi ulang nginx, 

sudo nano /etc/nginx/sites-available/default

arahkan pada line ke 30, anda akan melihat konfigurasi sebagai berikut,

root /var/www/html

ganti lokasi web page jika anda menginginkanya, misalkan di direktori /home/pi/web-nginx


6. Instal PHP-FPM, jalankan perintah berikut pada terminal Raspberry Pi

sudo apt-get install php5-fpm


7. Mengaktifkan PHP pada Nginx, buka file config Nginx pada terminal Raspberry Pi,

sudo nano /etc/nginx/sites-enabled/default

temukan baris yang memuat,

index index.html index.htm;

tambahkan index.php, sehingga terlihat seperti berikut,

index index.php index.html index.htm;

setelah itu scroll kebawah hingga anda menemukan baris yang memuat config berikut,

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
# location ~ \.php$ {

edit dengan menghapus tangda # sehingga hasilnya terlihat seperti berikut,


location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
}

Reload hasil config, jalankan perintah berikut,


sudo /etc/init.d/nginx reload 

8. Tes PHP pada browser, masuk ke direktori  web page nginx dilanjutkan dengan me-rename index.html dengan index.php,

cd /var/www/html
sudo mv index.html index.php

setelah itu buka file php tersebut,

sudo nano index.php

dan masukan program php info berikut,

<?php echo phpinfo(); ?>

save dan refresh webpage , jika berhasil maka akan terlihat seperti berikut:




Sumber :
https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md

Arduino Projects #1 | Image to Binner for I2C Oled Display

By : M yunus

Oke kali ini kita bakal bikin tampilangambar yang di konversi ke list arduino menggunakan I2C OLED 64x128.

1. terlebih dahulu kita rangkaikan Aduino dan OLED seperti berikut,


2. selanjutnya kita download library OLED disini, dan masukan hasil ekstraknya pad folder sketchbook/libraries.
3. buka file example OLED file/example/...
4. untuk custom gambar agar dapat ditampilkan pada oled, anda perlu merubahnya dari format gambar (bmp, png, jpg, dll) menjadi list 1 dimensi, monokrom, dan bernilai binner)

berikut adalah program konversi gambar menjadai list arduino 1 dimensi, monokrom dan bernilai binner, ditulis dengan menggunakan proram python dan anda membutuhkan library numpy dan opencv untuk pengolahanya,

import cv2 as cv
import numpy as np

img = cv.imread('/arahkan/ke/lokasi/folder/gambar')
bmp = (img[:,:,0] + img[:,:,1] + img[:,:,2])/3
 

#sesuaikan ukuran size yang dinginkan, maks 128x64
bmp2 = cv.resize(bmp, (128,64))


for x in range(bmp2.shape[0]):
   for y in range(bmp2.shape[1]):

         if bmp2[x,y] >0:
            bmp2[x,y] =255

         else:                             
            bmp2[x,y] =0

cv.imwrite("my.jpg", bmp2)

for x in range(bmp2.shape[0]):
   for y in range(bmp2.shape[1]):
             if bmp2[x,y] >0:
                bmp2[x,y] =0
             else:
                bmp2[x,y] =1
            
def loop(x,y):                   
      if x==0:

         result = str(bmp2[y,0])+str(bmp2[y,1])+str(bmp2[y,2])+str(bmp2[y,3])+str(bmp2[y,4])+str(bmp2[y,5])+str(bmp2[y,6])+str(bmp2[y,7])     
     
      if x==1 :
         result = str(bmp2[y,8])+str(bmp2[y,9])+str(bmp2[y,10])+str(bmp2[y,11])+str(bmp2[y,12])+str(bmp2[y,13])+str(bmp2[y,14])+str(bmp2[y,15])      
     
      if x==2 :                        
         result = str(bmp2[y,16])+str(bmp2[y,17])+str(bmp2[y,18])+str(bmp2[y,19])+str(bmp2[y,20])+str(bmp2[y,21])+str(bmp2[y,22])+str(bmp2[y,23])
     
      if x==3 :
         result = str(bmp2[y,24])+str(bmp2[y,25])+str(bmp2[y,26])+str(bmp2[y,27])+str(bmp2[y,28])+str(bmp2[y,29])+str(bmp2[y,30])+str(bmp2[y,31])
     
      if x==4 :

        result = str(bmp2[y,32])+str(bmp2[y,33])+str(bmp2[y,34])+str(bmp2[y,35])+str(bmp2[y,36])+str(bmp2[y,37])+str(bmp2[y,38])+str(bmp2[y,39])
     
      if x==5 :
         result = str(bmp2[y,40])+str(bmp2[y,41])+str(bmp2[y,42])+str(bmp2[y,43])+str(bmp2[y,44])+str(bmp2[y,45])+str(bmp2[y,46])+str(bmp2[y,47])
     
      if x==6 :

        result = str(bmp2[y,48])+str(bmp2[y,49])+str(bmp2[y,50])+str(bmp2[y,51])+str(bmp2[y,52])+str(bmp2[y,53])+str(bmp2[y,54])+str(bmp2[y,55])
     
      if x==7 :
         result = str(bmp2[y,56])+str(bmp2[y,57])+str(bmp2[y,58])+str(bmp2[y,59])+str(bmp2[y,60])+str(bmp2[y,61])+str(bmp2[y,62])+str(bmp2[y,63])

      if x==8:   

 result = str(bmp2[y,64])+str(bmp2[y,65])+str(bmp2[y,66])+str(bmp2[y,67])+str(bmp2[y,68])+str(bmp2[y,69])+str(bmp2[y,70])+str(bmp2[y,71])
     
      if x==9:                                             
         result = str(bmp2[y,72])+str(bmp2[y,73])+str(bmp2[y,74])+str(bmp2[y,75])+str(bmp2[y,76])+str(bmp2[y,77])+str(bmp2[y,78])+str(bmp2[y,79])
     
      if x==10: 
         result = str(bmp2[y,80])+str(bmp2[y,81])+str(bmp2[y,82])+str(bmp2[y,83])+str(bmp2[y,84])+str(bmp2[y,85])+str(bmp2[y,86])+str(bmp2[y,87])
     
      if x==11:                                             
         result = str(bmp2[y,88])+str(bmp2[y,89])+str(bmp2[y,90])+str(bmp2[y,91])+str(bmp2[y,92])+str(bmp2[y,93])+str(bmp2[y,94])+str(bmp2[y,95])
     
      if x==12: 
         result = str(bmp2[y,96])+str(bmp2[y,97])+str(bmp2[y,98])+str(bmp2[y,99])+str(bmp2[y,100])+str(bmp2[y,101])+str(bmp2[y,102])+str(bmp2[y,103])
     
      if x==13:                                             
         result = str(bmp2[y,104])+str(bmp2[y,105])+str(bmp2[y,106])+str(bmp2[y,107])+str(bmp2[y,108])+str(bmp2[y,109])+str(bmp2[y,110])+str(bmp2[y,111])
     
      if x==14: 
         result = str(bmp2[y,112])+str(bmp2[y,113])+str(bmp2[y,114])+str(bmp2[y,115])+str(bmp2[y,116])+str(bmp2[y,117])+str(bmp2[y,118])+str(bmp2[y,119])
      if x==15:                                             
         result = str(bmp2[y,120])+str(bmp2[y,121])+str(bmp2[y,122])+str(bmp2[y,123])+str(bmp2[y,124])+str(bmp2[y,125])+str(bmp2[y,126])+str(bmp2[y,127])

      return result

bmp3 = [["B"+loop(x,y) for x in range(bmp2.shape[1]/8)]for y in range(bmp2.shape[0])]

print ", ".join(np.array(bmp3).flatten())


program diatas akan menghasilkan output contohnya sebagai berikut, list arduino untuk gambar dengan resize 16x16 :

B00000000, B00000000, 
B00111110, B01111100, 
B01111111, B11111110, 
B11111111, B11111111, 
B11111111, B11111111, 
B11111111, B11111111, 
B11111111, B11111111, 
B01111111, B11111110, 
B01111111, B11111110, 
B00111111, B11111100, 
B00011111, B11111000, 
B00001111, B11110000,
B00000111, B11100000, 
B00000011, B11000000, 
B00000001, B10000000, 
B00000000, B00000000

gambar aslinya adalah sebagai berikut :











sisipkan list array pada program arduino seperti berikut :


#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);

static const unsigned char PROGMEM page2[] = 
{
B00000000, B00000000,
B00111110, B01111100,
B01111111, B11111110,
B11111111, B11111111,
B11111111, B11111111,
B11111111, B11111111,
B11111111, B11111111,
B01111111, B11111110,
B01111111, B11111110,
B00111111, B11111100,
B00011111, B11111000,
B00001111, B11110000,
B00000111, B11100000,
B00000011, B11000000,
B00000001, B10000000,
B00000000, B00000000
};

void setup()   {               
  Serial.begin(9600);

  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.display();
  delay(1);

  display.clearDisplay();

  display.clearDisplay();
  testdrawbitmap(page2, 16, 16);
}


void loop() {
}


void testdrawbitmap2(const uint8_t *bitmap, uint8_t w, uint8_t h) {
      display.clearDisplay();
      display.drawBitmap(0, 0, bitmap, h, w, WHITE);
      display.display();
      delay(2000);
}


sumber :
https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples

USB Modem Linux #2 | USB Mode Switch (from source)

By : M yunus
Ini adalah tutorial pilihan untuk menginstal USB mode switch dari sumber (from source) di Linux. Tutorial sebelumnya dapat dilihat disini.

untuk menginstal USB mode switch dari sumber ikuti langkah" berikut.

1. Download Aplikasi USB Mode Switch disini (release 2017-01-17), cek versi terbaru disini.
2. Download database rule untuk modem disini.
3. Install libusb module, buka terminal jalankan perintah berikut.

sudo apt-get update
sudo apt-get install libusb-dev 

4. Buat folder untuk menampung file hasil download dan unpack file yang telah di download ( file no 1 dan 2) ke dalam folder yang telah di buat.

cd
sudo mkdir USBModem
cd USBModem
sudo tar -xjvf  *.tar.bz2

5. masuk kedalam file telah di download pada langkah ke 1, dan jalankan perintah berikut,

cd  usb-modeswitch-2.5.0
sudo make install

6. jika proses installasi berhasil dilakukan, tancapkan USB modem pada komputer dan jalankan

lsusb | grep modem

maka akan keluar list device usb modem yang terhubung ke komputer, tampak seperti berikut

Bus 001 Device 005: ID 12d1:1446 Huawei Technologies Co., Ltd. E173 3G Modem (HSPA modem)

ID 12d1:1446 merupakan ID vendor dan ID produk default pada USB modem yang saya gunakan (saya mengunakan USB modem huawei E177).

7.Restart komputer pada keadaan USB modem masih terhubung.

sudo reboot

8.  setelah komputer kembali berjalan, buka terminal kembali dan jalankan,

lsusb | grep modem

seharusnya ID vendor dan ID produk USB modem akan berubah, paling tidak terlihat sebagai berikut.

Bus 001 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

ID 12d1:1436 merupakan ID vendor dan ID produk target.

9. pada langkah selanjutnya kita akan mengatur ulang konfigurasi aplikasi USB mode switch untuk modem huawei E177 yang saya gunakan ( default ID 12d1:1446 , target ID 12d1:1436 ).

masuk kedalam folder yang telah di download pada langkah ke 2.

cd ~/Downloads/usb-modeswitch-data-20170205/usb_modeswitch.d

setelah itu buka file yang namanya sama dengan target ID yang kita gunakan (target ID 12d1:1436 ).

sudo nano 12d1\:1436

note : untuk keluar dari editor nano, ctrl+x dilanjutkan shift+y, untuk mengcopy dari editor nano, ctrl+shift+c
file konfigurasi yang di copy paling tidak berisi Default dan Traget (vendor , product) dan messae yang sesuai untuk masing" jenis modem. terlihat sebagai berikut,

DefaultVendor=  0x12d1
DefaultProduct= 0x1446

TargetVendor=0x12d1
TargetProduct=0x1436
MessageContent="55534243123456780000000000000011062000000101000100000000000000"
 
10.  buka file konfigurasi usb modeswitch dan paste konfigurasi modem untuk id 12d1:1436 dibaris paling bawah ( paste pada editor nano, ctrl+shift+v).

sudo nano /etc/usb_modeswitch.conf

terus simpan dengan ctrl+x dilanjut shift+y, setelah itu aktifkan printah usb mode switch dg langkah berikut. jalankan perintah berikut :

sudo nano /etc/rc.local

ketika sudah terbuka tambahkan perintah berikut pada baris paling bawah sebelum bagian exit 0 .

sudo usb_modeswitch -c /etc/usb_modeswitch.conf
 
sehingga akan terlihat seperti berikut :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
sudo usb_modeswitch -c /etc/usb_modeswitch.conf
exit 0


terus simpan dengan ctrl+x dilanjut shift+y.

11. untuk memastikan semuanya berjalan, reboot komputer dan setelah kembali hidup, jalankan perintah berikut,

ls /dev/ttyUSB*

maka paling tidak akan menghasilkan

/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2

interface default untuk USB modem biasanya pada /dev/ttyUSB0

selanjutnya anda membutuhkan aplikasi WVDIAL dan PPP untuk memanage konektifitas modem pada komputer linux disini.

Artikel Terkait : USB Modm Linux #1 | USB Mode Switch

sumber :
http://www.draisberghof.de/usb_modeswitch/#download

*) dengan beberapa penambahan

USB Modem Linux #1 | USB Mode Switch

By : M yunus
Hai, kali ini gua mau share sedikit tutorial tentang menggunakan USB modem 3G pada komputer dengan OS distro Linux (ubuntu, kali linux, linux mint, fedora dll). Kalo menggunakan komputer windows sudah pasti menggunakan USB modem sangatlah mudah, tinggal plug and play dengan software yang sudah tertanam pada USB modem. Namun menjadi masalah saat kita gunakan di komputer dengan distro Linux, software default pada USB modem hanya kompatible untuk windows (.exe format) , sehingga kita perlu menginstal software untuk membantu berjalanya USB modem pada komputer dengan OS Linux.
Pada saat USB modem pertama kali ditancapkan pada komputer linux, kebanyakan dikenali sebagai Mass Storage Device, bukan sebagai modem. sehingga kita perlu aplikasi yang dapat merubah mode Storage ke mode Modem. Aplikasi yang akan kita gunakan adalah USB mode switch.

berikut adalah tutorial yang saya gunakan untuk menjalankan USB mode switch pada komputer Linux distro Ubuntu.

1. pastikan anda terhubung pada jaringan internet.
2. buka terminal dan pastikan komputer dalam kondisi update, ini bertujuan untuk menambah/ memperbaiki/ memperbaharui program pada sistem komputer [1].

sudo apt-get update

3. instal usb mode switch

sudo apt-get install usb-modeswitch

4. tancapkan USB modem pada komputer dan jalankan

lsusb | grep modem

maka akan keluar list device usb modem yang terhubung ke komputer, tampak seperti berikut

Bus 001 Device 005: ID 12d1:1446 Huawei Technologies Co., Ltd. E173 3G Modem (HSPA modem)

ID 12d1:1446 merupakan ID vendor dan ID produk default pada USB modem yang saya gunakan (saya mengunakan USB modem huawei E177).

5.Restart komputer pada keadaan USB modem masih terhubung.

sudo reboot

6.  setelah komputer kembali berjalan, buka terminal kembali dan jalankan,

lsusb | grep modem

seharusnya ID vendor dan ID produk USB modem akan berubah, paling tidak terlihat sebagai berikut.

Bus 001 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

ID 12d1:1436 merupakan ID vendor dan ID produk target.

7. pada langkah selanjutnya kita akan mengatur ulang konfigurasi aplikasi USB mode switch untuk modem huawei E177 yang saya gunakan ( default ID 12d1:1446 , target ID 12d1:1436 ).

masuk pada folder temporary dan untar config pack USB mode switch.

cd /tmp 
tar -xzvf /usr/share/usb_modeswitch/configPack.tar.gz 12d1\:1436 

perhatikan saya menggunakan back slice untuk mengambil file konfigurasi ID 12d1:1436

8. buka file konfigurasi dengan editor nano dan copy seluruh isi file tersebut,

sudo nano 12d1\:1436

note : untuk keluar dari editor nano, ctrl+x dilanjutkan shift+y, untuk mengcopy dari editor nano, ctrl+shift+c

file konfigurasi yang di copy paling tidak berisi Default dan Traget (vendor , product) dan messae yang sesuai untuk masing" jenis modem. terlihat sebagai berikut,

DefaultVendor=  0x12d1
DefaultProduct= 0x1446

TargetVendor=0x12d1
TargetProduct=0x1436
MessageContent="55534243123456780000000000000011062000000101000100000000000000"
 
9.  buka file konfigurasi usb modeswitch dan paste konfigurasi modem untuk id 12d1:1436 dibaris paling bawah ( paste pada editor nano, ctrl+shift+v).

sudo nano /etc/usb_modeswitch.conf

terus simpan dengan ctrl+x dilanjut shift+y, setelah itu aktifkan printah usb mode switch dg langkah berikut. jalankan perintah berikut :

sudo nano /etc/rc.local

ketika sudah terbuka tambahkan perintah berikut pada baris paling bawah sebelum bagian exit 0 .

sudo usb_modeswitch -c /etc/usb_modeswitch.conf
 
sehingga akan terlihat seperti berikut :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
sudo usb_modeswitch -c /etc/usb_modeswitch.conf
exit 0


terus simpan dengan ctrl+x dilanjut shift+y.

10. untuk memastikan semuanya berjalan, reboot komputer dan setelah kembali hidup, jalankan perintah berikut,

ls /dev/ttyUSB*

maka paling tidak akan menghasilkan

/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2

interface default untuk USB modem biasanya pada /dev/ttyUSB0

selanjutnya anda membutuhkan aplikasi WVDIAL dan PPP untuk memanage konektifitas modem pada komputer linux disini.

Artikel terkait: USB Modem Linux #1 | USB Mode Switch (dari source)

sumber :
https://www.thefanclub.co.za/how-to/how-setup-usb-3g-modem-raspberry-pi-using-usbmodeswitch-and-wvdial

*) dengan beberapa modifikasi

Python : Control Banyak Relay Dengan Raspberry Pi Via SMS

By : M yunus
untuk mengontrol banyak relay menggunkan raspberry, terlebih dahulu ikuti tutorial berikut : Control Relay dengan Raspberry Pi via SMS .

untuk dapat mengontrol banyak relay kita buat skema konten sms yang akan dikirimkan ke raspberry.

konten sms menghidupkan relay:
poweronrelay1
poweronrelay2
poweronrelay3
dst..

konten sms mematikan relay :
poweroffrelay1
poweroffrelay2
poweroffrelay3
dst..

sekarang misal kita akan menggunakan 3 buah relay yang terhubung ke GPIO21, GPIO20 dan GPIO19.
GPIO21 --- > Relay 1
GPIO20 --- > Relay 2
GPIO19 --- > Relay 3

ubah program python yang terdapat pada folder /home/pi/Script_relay, jalankan perintah berikut pada terminal Raspberry pi:

sudo nano /home/pi/Script_relay/sms_relay.py

ubah isi skrip python menjadi seperti berikut:


#!/usr/bin/env python
import RPi.GPIO as GPIO
import os, glob

filename = max(glob.glob('/home/pi/Script_relay/inbox_sms/*'), key = os.path.getctime)

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.OUT)
GPIO.setup(20, GPIO.OUT)
GPIO.setup(19, GPIO.OUT)

sms_file=open(filename,"r")
message=sms_file.read(160)
print filename, message

if (message.find("poweronrelay1") <> -1):
   GPIO.output(21, GPIO.HIGH)
elif (message.find("poweroffrelay1") <> -1):
   GPIO.output(21, GPIO.LOW)
elif (message.find("poweronrelay2") <> -1):
   GPIO.output(20, GPIO.HIGH)
elif (message.find("poweroffrelay2") <> -1):
   GPIO.output(20, GPIO.LOW)
elif (message.find("poweronrelay3") <> -1):
   GPIO.output(19, GPIO.HIGH)
elif (message.find("poweroffrelay3") <> -1):
   GPIO.output(19, GPIO.LOW) 

terus simpan dengan ctrl+x dilanjut shift+y, jangan lupa untu membuat file python tersebut menjadi executable, jalankan printah berikut :

sudo chmod +x /home/pi/Script_relay/sms_relay.py

sekarang reboot raspberry pi ( sudo reboot ) dan setelah raspberry pi menyala, kita dapat mengontrol lebih banyak relay.

Raspberry Pi : Control Relay Dengan Gammu-smsd

By : M yunus

Oke kali ini kita bahas bagaimana cara menghidupkan dan mematikan relay yang terhubung pada Raspberry Pi melalui SMS, kita akan gunakan gammu, gammu adalah sebuah aplikasi yang dapat digunakan untuk mengelola berbagai fungsi pada handphone, modem dan perangkat sejenis lain. langsung aja kita ke step - step berikut.

HARDWARE SIDE :
Rangkaikan Raspberry Pi bersama relay module sebagai berikut :
 SOFTWARE SIDE :

1. pastikan raspberry dalam kondisi terupdate, buka terminal raspberry pi dan jalankan :

sudo apt-get update

2. install gammu, gammu-smsd dan usb_modeswitch :

sudo apt-get install gammu gammu-smsd usb-modeswitch

3. buka atur config gammu-smsd, jalankan printah brikut :

sudo nano /etc/gammu-smsdrc

hapus seluruh file di dalamnya, dan ganti dg config berikut :

# Configuration file for Gammu SMS Daemon

# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/ttyUSB0
connection = at
# Debugging
#logformat = textall

# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = /home/pi/log-gammu.txt
# Increase for debugging information
debuglevel = 0

RunOnReceive = sudo /home/pi/Script_relay/sms_relay.py

# Paths where messages are stored
inboxpath = /home/pi/Script_relay/inbox_sms/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

terus simpan dengan ctrl+x dilanjut shift+y

4. buat folder untuk inbox sms, jalankan perintah berikut:

cd ~
sudo mkdir Script_relay
cd Script_relay
sudo mkdir inbox_sms
sudo chmod 777 inbox_sms

5. buat file control relay :

cd ~
cd Script_relay
sudo nano sms_relay.py

ketika editor nano muncul pada terminal masukan script python berikut :

#!/usr/bin/env python
import RPi.GPIO as GPIO
import os, glob

filename = max(glob.glob('/home/pi/Script_relay/inbox_sms/*'), key = os.path.getctime)

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(21, GPIO.OUT)

sms_file=open(filename,"r")
message=sms_file.read(160)
print filename, message

if (message.find("poweron") <> -1):
   GPIO.output(21, GPIO.HIGH)
elif (message.find("poweroff") <> -1):
   GPIO.output(21, GPIO.LOW)

terus simpan dengan ctrl+x dilanjut shift+y, jangan lupa untu membuat file python tersebut menjadi executable, jalankan printah berikut :

sudo chmod +x /home/pi/Script_relay/sms_relay.py

6. buat log file untuk mendiagnosa error pada gammu-smsd

cd ~
sudo touch log-gammu.txt

7. tancapkan usb modem pada raspberry (saya gunakan modem huawei e177, mungkin akan sama dengan modem huawei e173), dan jalankan perintah berikut :

lsusb | grep modem

hasil yang didapatkan :

Bus 001 Device 005: ID 12d1:1446 Huawei Technologies Co., Ltd. E173 3G Modem (HSPA modem)

id di atas menunjukan kalo modem terbaca sebagai Mass Storage, untuk membuatnya berjalan dengan mode modem 3g kita akan gunakan usb-modeswitch yang sudah diinstall sebelumnya.

8. buka file konfigurasi usb modeswitch,

sudo nano /etc/usb_modeswitch.conf

pada baris paling bawah tambhkan :

DefaultVendor=  0x12d1
DefaultProduct= 0x1446

TargetVendor=0x12d1
TargetProduct=0x1436
MessageContent="55534243123456780000000000000011062000000101000100000000000000"

terus simpan dengan ctrl+x dilanjut shift+y, setelah itu aktifkan printah usb mode switch dg langkah berikut. jalankan perintah berikut :

sudo nano /etc/rc.local

ketika sudah terbuka tambahkan perintah berikut pada baris paling bawah sebelum bagian exit 0 .

sudo usb_modeswitch -c /etc/usb_modeswitch.conf
 
sehingga akan terlihat seperti berikut :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
sudo usb_modeswitch -c /etc/usb_modeswitch.conf
exit 0


terus simpan dengan ctrl+x dilanjut shift+y.

9. reboot raspberry pi ( sudo reboot ) , dan setelah kembali hidup (raspberry), buka terminal dan jalankan :

lsusb | grep modem

selanjutnya akan keluar hasil berikut, disini kita telah berhasil menjalankan usb modem.

Bus 001 Device 005: ID 12d1:1436 Huawei Technologies Co., Ltd. E173 3G Modem (modem-mode)

10. kirim sms ke nomor pada modem ( poweron -> menghidupkan relay, poweroff -> mematika relay). tunggu beberapa saat, jika relay tidak aktif buka file log gammu dg perintah berikut :

cd ~
cat log-gammu.txt

11. jika error masih terjadi, troubleshoot berikut akan bermanfaat :
- periksa nomor tujuan sudah bnar atw belum
- pastikan pastikan usb modem sudah dalam kondisi modem mode (langkah 7 - 9)
- periksa folder /home/pi/Script_relay/inbox_sms , buka file txt pada folder tsb. itu adalah isi sms yang diterima raspberry,
- jika smsnya terkirim dan terdapat pada folder /home/pi/Script_relay/inbox_sms , cek apakah program sms_relay.py sudah executable atw belum, untuk meyakinkan jalankan kembali perintah berikut : sudo chmod +x /home/pi/Script_relay/sms_relay.py
- jika program sms_relay.py sudah executable tapi relay belum menyala, cek pin GPIO yang dipilih sudah sesuai atw belum, pada script diatas digunakan pin GPIO 21 pada mode GPIO.BCM.
- jika pin sudah benar dan relay belum aktif ada kesalahan dalam penulisan program.


sumber : https://garretlabs.wordpress.com/2014/05/21/raspberry-pi-a-remote-controlled-relay-using-sms-messages/
*) dengan bebrapa modifikasi

- Copyright © Legendre-electronics - Date A Live - Powered by Blogger - Designed by Johanes Djogan -