Sunday, June 29, 2014

การตั้งค่า Internert sharing บน Ubuntu และการตั้งค่า Wi-Fi บน Raspberry pi

การตั้งค่า Internet sharing

     เนื่องจากการเชื่อมต่อ RPi  ผ่าน SSH โดยการต่อสาย LAN เข้ากับ router อาจไม่สะดวกในการใช้งาน จึงใช้อีกวิธีในการเชื่อมต่อ RPi แต่ยังคงใช้งานผ่าน PuTTY ซึ่งวิธีการใช้งานโดย Internet sharing มีข้อดีคือ อาจช่วยประหยัดพื้นที่ และลดการใช้อุปกรณ์ลงได้



อุปกรณ์ที่ใช้

1. บอร์ด Raspberry Pi Model B
2. SD card ที่ติดตั้ง Raspbian แล้ว
3. Ethernet connection LAN(RJ-45)
4. Micro USB

ขั้นตอนการตั้งค่า Internet sharing 

1. ต่ออุปกรณ์บอร์ด RPi รวมทั้งสาย LAN เข้ากับคอมพิวเตอร์
2. ไปยัง network และเลือก edit connections
3. เลือก wire connection และ edit
4. ไปยัง IPv4 setting เลือก method เป็น Shared to other computers กด save
5. เปิด terminal และ run command line ดังต่อไปนี้เพื่อดูหมายเลข IP ใหม่ ของ บอร์ด RPi
    cat /var/lib/misc/dnsmasq.leases





การตั้งค่า Wi-Fi บน Raspberry Pi


อุปกรณ์ที่ใช้

1. บอร์ด Raspberry Pi
2. SD card ที่ติดตั้ง Raspbian (Wheezy) แล้ว
3. Ethernet connection LAN(RJ-45)
4. Micro USB
5. wireless usb

ขั้นตอนการตั้งค่า Wi-Fi

1. log in เข้า RPi ผ่าน putty โดยการเชื่อมต่อด้วยสาย LAN
2. ต่อ Wi-Fi USB เข้ากับบอร์ด Raspberry Pi และตรวจสอบการเชื่อมต่อด้วยคำสั่ง
    ifconfig

    สังเกต wlan0 หมายถึง wireless adapter
3. list รายชื่อ USB device ที่ได้ติดตั้งเข้ามาใน บอร์ด RPi ด้วยคำสั่ง
    sudo lsusb


4. ติดตั้ง wireless-tools 
    sudo apt-get install wpasupplicant wireless-tools
5. อัพเดทไฟล์ /etc/network/interfaces
    sudo nano /etc/network/interfaces
    - ถ้าเป็นการเชื่อมต่อระบบความปลอดภัยแบบ WPA ให้อัพเดทดังนี้

      auto lo
      
      iface lo inet loopback
      iface eth0 inet dhcp

      auto wlan0
      allow-hotplug wlan0
      iface wlan0 inet dhcp
      wpa-ssid "your network"
      wpa-psk "password-here"

   - ถ้าเป็นการเชื่อมต่อระบบความปลอดภัยแบบ WEP ให้อัพเดทดังนี้

      auto lo
      
      iface lo inet loopback
      iface eth0 inet dhcp

      auto wlan0
      allow-hotplug wlan0
      iface wlan0 inet dhcp
      wireless-essid your network
      wireless-key your key

6. รีบูทบอร์ด Raspberry pi
      sudo reboot

7.login เข้า Raspberry pi และตรวจสอบการเชื่อมต่อกับ Wi-Fi สังเกตหมายเลข IP สำหรับใช้ใน  การเชื่อมต่อแบบ SSH โดยใช้ Wi-Fi
   หรือ
เปิด terminal และสแกนหา หมายเลข IP ด้วยคำสั่ง
      sudo nmap -sP 192.168.1.0/24  # computer จะต้องเชื่อมต่อ network เดียวกับบอร์ด RPi

นำหมายเลข IP ที่ได้เปิดใช้งานด้วย PuTTy

ที่มา :

How to set up Wi-Fi on a Raspberry Pi 

WiFi (with WEP security) on Raspberry Pi

Monday, June 16, 2014

Work Process - การเรียกใช้ข้อมูลแผนที่ Google Map


จากบทความที่ผ่านมา ได้ทำ การติดตั้ง Google Play Service SDK และ การขอ API Key ไปแล้ว ต่อไปจะทำการ อิมพอร์ต Google Map มาในแอพพลิเคชั่น

ขั้นตอนแรก สร้าง ชื่อโปรเจคให้ตรงกับค่า Android apps ในตอนที่ขอ API Key โดยที่ชื่อโปรเจคในที่นี้คือ bicydroid_v1


เมื่อสร้างโปรเจคเสร็จแล้วขั้นตอนต่อไปเราจะทำการอ้างอิง Google Play Service ที่อิมพอร์ตใน Eclipse แล้ว เข้ามาในแอพพลิเคชั่น ให้ทำการคลิกขวาที่โฟล์เดอร์โปรเจคที่เราเพิ่งสร้างขึ้นแล้วเลือก Properties


เมื่อเข้ามาที่หน้าต่าง Properties แล้ว จะเห็นแถบหัวข้อทางด้านซ้าย เลือก Android 

ในหัวข้อ Android นั้น จะมีกรอบของ Project Build Target กับ Library ในที่นี้เราสนใจที่ Library ในกรอบของ Library จะมีปุ่ม Add ทางด้านขวา ทำการคลิก Add 

เมื่อทำการคลิกแล้วจะปรากฎหน้าต่างของ Project Selection จะเจอ Library ที่ชื่อว่า google-play-service_lib การเลือกแล้วคลิกปุ่ม OK 


เมื่อกลับมาในหน้าต่าง Properties ในกรอบ Library จะพบว่าในแถบ Reference จะมีชื่อ Library  google-play-service_lib เพิ่มขึ้นมา แสดงว่าเราทำการอ้างอิงเสร็จเรียบร้อยแล้ว ก็ทำการกดปุ่ม OK 


ขั้นตอนต่อไปจะเข้าไปแก้ไขไฟล์ AndroidManifest.xml โดยภายในไฟล์ AndroidManifest.xml นั้นจะเห็นสองแท็กหลักๆ คือ แท็ก Manifest กับ แท็ก Application ซึ่งเราจะเพิ่มแท็ก กำหนด meta-data กับ permission ในการขอใช้งานที่เกี่ยวข้องกับ Google map

*ทำการเพิ่มแท็กต่อไปนี้ให้อยู่ ภายในแท็ก Aplication ในการประกาศเวอร์ชั่นของ Google Play Service

<meta-data  android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />


ต่อไปจะทำการแอด API Key ที่เราทำการขอใช้ GoogleMap API ก่อนหน้านี้ ในแอพพลิเคชั่นของเรา
โดยที่ MAP API จะทำการอ่านค่า API key เพื่อใช้ในการเข้าถึงเซิฟเวอร์ของ Google Map 

*ทำการเพิ่มแท็กต่อไปนี้ให้อยู่ ภายในแท็ก Aplication เช่นเดียวกัน ที่สำคัญในที่นี้คือ ภายในแท็กจะมีค่าของ android:value ให้เราทำการใส่ API Key ที่เราได้มาในส่วนนี้

<meta-data  android:name="com.google.android.maps.v2.API_KEY"
            android:value="หมายเลข API ของคุณ" />

ที่นี้เรามาทำการกำหนด permission ที่ต้องทำการแอดให้กับแอพพลิเคชั่นที่จะใช้ Google Map Android API จะมีที่สำคัญๆอยู่ 5 แท็กด้วยกัน 

*ทำการเพิ่มแท็กต่อไปนี้ให้อยู่ ภายในแท็ก Manifest 

<uses-permission android:name="android.permission.INTERNET" />
แท็กนี้จะถูกใช้โดย API ในการดาวน์โหลด Map tile จาก Google Map Server

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
แท็กนี้จะอนุญาตให้ API ในการเช็คสถานะการเชื่อมต่อเพื่อใช้ในการตัดสินใจในการโหลดข้อมูล

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
แท็กนี้จะอนุญาตให้ API แคชข้อมูล map tile ไว้ภายในหน่วยความจำภายนอกของอุปกรณ์ที่ติดตั้งแอพพลิเคชั่น

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
แท็กนี้จะอนุญาตให้ API สามารถใช้ WiFi หรือ Mobile cell data หรือทั้งสองในการค้นหาที่อยู่ของอุปกรณ์

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
แท็กนี้จะอนุญาตให้ API ใช้ GPS(Global Positioning System) ในการค้นหาที่อยู่ของอุปกรณ์ที่อยู่ภายในพื้นที่เล็กๆ

Google Map Android API ต้องการใช้ OpenGL version 2 ในการแสดงแผนที่ ถ้าไม่ทำการติดตั้งแผนที่ก็จะไม่แสดง เราต้องเพิ่มอีกแท็กในการแสดงแผนที่ 

*ทำการเพิ่มแท็กต่อไปนี้ให้อยู่ ภายในแท็ก Manifest 

<uses-feature  android:glEsVersion="0x00020000"
               android:required="true" />

เมื่อทำการเพิ่มแท็กทั้งหมดแล้วก็เป็นอันเสร็จสิ้นในการแก้ไขไฟล์ AndroidManifest.xml ดังรูปตัวอย่าง


ต่อไปเราจะทดสอบโดยวิธีที่ง่ายสุดคือการเพิ่ม Simple Map เข้าไปในแอพพลิเคชั่น 

ขั้นตอนนี้เราจะไปเพิ่ม Fragment ที่ Layout XML File ที่อยู่ใน Folder res/layout/activity_main.xml 
ทำการเปิดไฟล์ขึ้นมาแล้วทำการแก้ไขโดยการนำโค้ดต่อไปนี้ แทนที่โค้ดเดิมทั้งหมด (ถ้าสร้างโปรเจคใหม่) 

<?xml version="1.0" encoding="utf-8"?>
<fragment  xmlns:android="http://schemas.android.com/apk/res/android"
                 android:id="@+id/map"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:name="com.google.android.gms.maps.MapFragment" /> 


ส่วนไฟล์ MainActivity.java ไม่ต้องไปทำการแก้ไขใดๆ ถ้าทำครบตามที่ได้เขียนไว้ เมื่อรันแอพพลิเคชั่นก็จะปรากฎแผนที่เต็มหน้าจอบนอุปกรณ์ที่ทำการติดตั้ง  

อัพเดท : หลังจากได้มีการตรวจพบเจอ Error ในไฟล์  MainActivity.java เนื่องจากเราทำการนำโค้ดไปแทนที่ใน activity_main.xml ทำให้ R.id.container ในไฟล์ MainActivity.java หายไป ให้ทำการลบ ส่วนนั้นทิ้งไป ดังรูปตัวอย่าง



หน้าตาของแอพพลิเคชั่น



Sunday, June 15, 2014

Work Process-ติดตั้งโปรแกรมที่ใช้งานร่วมกับ Raspberry pi ( PuTTy ,IP Scanner และ xrdp )

ระบบปฏิบัติการที่ใช้

  • Ubuntu  12.10

    วิธีการ ตรวจสอบ version ของ Ubuntu ทำได้โดยการพิมพ์ command line

        lsb_release -a


การติดตั้งโปรแกรม PuTTy 

1. ใช้คำสั่งดังต่อไปนี้ เพื่อ download และติดตั้งโปรแกรม
    sudo apt-get install putty

  



2. เมื่อติดตั้งเรียบร้อยแล้วให้ไปที่ Dash home และ ค้นหา โปรแกรม PuTTy จะได้โปรแกรมพร้อมใช้งาน




การติดตั้งโปรแกรม IP Scanner

    โปรแกรมที่เลือกใช้ คือ โปรแกรม nmap ซึ่งเป็นโปรแกรมที่มีความสามารถในการสแกนหา port และเหมาะที่จะเป็น IP scanner และมีการรายงานผลการสแกนพร้อมกับ MAC ADDRESS

ขั้นตอนการติดตัั้ง

1. ใช้คำสั่งดังต่อไปนี้ เพื่อ download และติดตั้งโปรแกรม
    sudo apt-get install nmap


2. คำสั่งในการสแกน IP ADDRESS
   sudo nmap -sP 192.168.1.0/24  # สแกนตั้งแต่ 192.168.1.0 ถึง 255.255.255.0
     


    เมื่อพบหมายเลข IP ของบอร์ด Raspberry pi แล้วก็นำไประบุในช่อง Host name(IP Address)บนโปรแกรม PuTTy และ log in เข้าสู่ระบบ Raspbian

การ Remote Desktop โดยใช้ xrdp

     xrdp คือ Remote Desktop Protocal ที่ช่วยให้เข้าใช้งานเครื่อง server โดยจะเชื่อมต่อไปยัง Raspberry Pi และจะใช้ร่วมกับ Program Rammina Remote Desktop Client ซึ่งส่วนใหญ่จะติดตั้งไว้แล้วในระบบปฏิบัติการ Ubuntu

การติดตั้ง

ใช้คำสั่ง command line ต่อไปนี้ในการติดตั้ง xrdp
    sudo apt-get install xrdp เมื่อติดตั้งแล้วโปรแกรม xrdp จะ run โดยอัตโนมัติ


ขั้นตอนการเข้าใช้งาน  Remote Desktop
1. ไปที่ Dash Home และค้นหาโปรแกรม Rammina Remote Desktop Client


2. เลือกเมนู create a new remote desktop file


3. เลือก Protocol เป็น RDP - Remote Desktop Protocol กรอก username และ password ที่ใช้ในการ log in เข้าใช้งาน RPi เลือก color depth เป็น 256 colors (8 bpp) จากนั้นให้เลือก connect





ที่มา:

How to use Remote Desktop in Ubuntu
Video การติดตั้ง Remote Desktop บน Raspberry pi
FTP Server Samba Server » IP and Port scanning using ‘nmap (Network Mapper)’ in Ubuntu