วันอังคารที่ 21 มกราคม พ.ศ. 2557

ติดตั้ง vsftpd (FTP server) เพื่อการโอนถ่าย file

    ในการเล่น RPi สิ่งที่ขาดไม่ได้เลยก็คือ การโอนถ่ายข้อมูลระหว่าง RPi กับเครื่อง PC
    มีโปรแกรมให้เล่นหลายตัว แต่ในที่นี้ผมเลือก vsftpd เป็น FTP server (File Transfer Protocol)
    FTP server ก็คือ เซอร์วิส ในการโอนย้ายถ่ายเทข้อมูล จากเครื่องหนึ่งไปสู่อีกเครื่องหนึ่ง ซึ่งเราจะติดตั้งไว้ที่บอร์ด Rpi แล้วให้เครื่อง PC เป็น client remote เข้ามา
    วิธีการติดตั้ง vsftpd ที่เครื่อง RPi
    sudo apt-get install vsftpd
.
    เมื่อติดตั้งเสร็จแล้ว ให้เข้าไปแก้ไข configure file
    sudo nano /etc/vsftpd.conf
    แก้ไข anonymous_enable=YES ให้เป็น anonymous_enable=No
    เอาเครื่องหมาย # ออก local_enable=YES
    เอาเครื่องหมาย # ออก write_enable=YES
    เพิ่ม force_dot_file=YES ที่บรรทัดสุดท้ายของ file
ทำการ restart service ใหม่ เพื่อให้ที่เราแก้ไขไป เริ่มต้นการทำงาน
sudo service vsftpd restart

ที่เครื่อง windows pc ของเรา ให้ทำการ download FTP client ได้จากที่นี่ https://filezilla-project.org/download.php

เนื่องจากถ้าเรา download มาเป็นจุด exe แล้ว install ไม่ได้ ผมจึงได้ download มาเป็น .zip แทน
เมื่อโหลดเสร็จแล้วก็แตก zip ออกมา จากนั้นให้ copy fzdefaults.xml จากใน folder doc มาวางไว้ที่เดียวกับ FileZilla.exe ก่อน แล้วก็ต้องแก้ไข file fzdefaults.xml โดยการลบ ที่เขียนว่า $SOMEDIR ออก


ต่อมาให้ดับเบิ้ลคลิกที่ FileZilla.exe เมื่อเปิดขึ้นมาแล้ว ให้ไปที่เมนู แฟ้ม, ตัวจัดการที่ตั้ง จะเห็นหน้าจอตามด้านล่าง ให้ใส่ ip, ผู้ใช้, รหัสผ่าน ตามที่เราได้ตั้งไว้ก่อนหน้านี้ เลือกโปรโตคอลเป็น FTP, ใช้ SFTP


ถ้าตั้งค่าถูกก็จะเชื่อมต่อได้ทันที


เมื่อทำตามนี้แล้ว ผมยังไม่สามารถวาง file ได้ เพราะว่าไม่มีสิทธิ์ ผมต้องไปตั้ง password ให้กับ user root ที่บอร์ด RPi ใหม่ก่อน ด้วยคำสั่ง
sudo passwd root

เท่านี้เราก็สามารถ รับ-ส่ง file กับบอร์ด RPi ได้แล้ว

แถมให้อีกหน่อย
ถ้าใช้เครื่อง PC Linux ก็ให้เปิด termianl แล้วพิมพ์ sftp pi@192.168.0.x ครับ
ถ้าต้องการนำไฟล์จากเครื่องเราไปวางพิมพ์ put /source_directory/source_file /target_directory
ถ้าต้องการดึงไฟล์จาก RPi ก็พิมพ์ get /directory/file
โดยส่วนตัวผมชอบเล่นบน linux pc มากกว่าเล่นบน windows pc เพราะรู้สึกว่าสะดวกกว่าเล็กน้อย

คงเป็นประโยชน์ต่อเพื่อนๆบ้างนะครับ

ติดต่อ RPi ผ่าน SSH โดยเครื่อง PC windows

    สำหรับตอนที่แล้ว เราหา IP ของ RPi โดยผ่านโปรแกรม nmap บนเครื่อง PC Windows กันแล้ว เผื่อว่าใครอยากจะใช้ windows ในการเล่น RPI ต่อ (ควบคุมเจ้าบอร์ด Rpi ผ่าน Windows) ก็มีวิธีดังต่อไปนี้ครับ

    ให้ download โปรแกรม putty สำหรับ Windows มาครับ http://www.putty.org/
    เมื่อ download มาแล้ว ก็เปิดเลยครับ


    จะเห็นช่องให้ใส่ Host Name(or IP address) ก็ให้เราใส่ IP ของ RPi ของเราลงไปครับ บอร์ดของผม IP 192.168.0.2
    เราต้องการจะใช้ SSH ในการควบคุม RPi ดังนั้นให้เราคลิกเลือก SSH ในบรรทัดถัดมา ส่วนในช่อง port จะเปลี่ยนให้เองอัตโนมัติ SSH ใช้ port 22 ในการสื่อสารครับ
    ใส่ข้อมูลครบแล้วก็กด open

    ถ้าติดต่อได้ จะเจอหน้าจอดำๆ ให้เราใส่ user name ลงไป( default = pi ), password (raspberry)
    ทีนี้เราก็จะสามารถควบคุมบอร์ด raspberry pi ผ่าน windows กันได้แล้ว

วันอังคารที่ 7 มกราคม พ.ศ. 2557

หา ip address ของ raspberry pi โดยใช้เครื่อง windows pc

    ในบางครั้ง เรานำ raspberry pi ไปต่อกับ network ที่เป็น dhcp และก็ไม่มีทั้งจอและคีบอร์ด เอาล่ะสิ ทีนี้จะทำยังไงดี

    ให้เราหาเครื่อง PC windows ที่ต่อ network เดียวกันกับ RPi แล้ว download program namp มาก่อน สามารถ download ได้ที่นี่ http://nmap.org/download.html

    เมื่อได้โปรแกรมมาแล้ว ก็ install ไปตามปกติ I agree, next ไปเรื่อยๆจนจบ แล้วก็เปิดโปรแกรมขึ้นมา
    จากนั้นเราก็ใส่คำสั่ง "nmap -sV -p 22 192.168.0.2-50" ลงไปในช่อง command ตามภาพเลยครับ โดย ip ที่ระบุก็ต้องให้เป็นวงเดียวกันกับระบบ network ที่เราไปเชื่อมต่อด้วยนะครับ

   

    แล้วก็กด scan เราจะเห็น output ออกมาเยอะเลย ให้เรามองหาชื่อเครื่อง RPi ของเรา
    RPi ของผมชื่อ PATO (ที่วงสีแดงไว้)

    ทีนี้เราก็ได้ ip ของ raspberry pi แล้ว

    หวังว่าเพื่อนๆคงได้ประโยชน์กันบ้างครับ




วันจันทร์ที่ 6 มกราคม พ.ศ. 2557

หา IP address ของ RPi โดยใช้โปรแกรม nmap Linux PC

ที่เครื่อง PC Linux ของเรา สามารถหา ip address ของเจ้าบอร์ด RPi ได้โดยการใช้โปรแกรม scan port เพื่อหาเครื่องที่เปิด port 22 ไว้ ซึ่งเป็น port ที่เปิดไว้สำหรับการ Remote SSH
  - sudo apt-get update
  - sudo apt-get upgrade
  - วิธีติดตั้งโปรแกรม nmap ให้พิมพ์ "apt-get install nmap"
  - เมื่อติดตั้งเสร็จแล้ว เริ่มทำการ scan ด้วยคำสั่ง "nmap -sV -p 22 192.168.0.2-50" เป็นการ scan port 22 โดยเริ่มจาก IP 192.168.0.2 ไปจนถึง 192.168.0.50

วันอาทิตย์ที่ 5 มกราคม พ.ศ. 2557

ติดต่อกับ RPi ผ่านทาง SSH โดยเครื่อง PC Linux

    หลังจากที่เราได้ติดตั้ง Raspbian ลงใน RPi เรียบร้อยแล้ว สิ่งที่ต้องทำต่อไปคือการติดต่อ RPi ผ่าน LAN
    เพราะว่าในการเขียนโปรแกรมขึ้นมาใหม่ ถ้าเป็นโปรแกรมเล็กๆ เราสามารถเขียนโปรแกรมบนตัว RPi แล้ว compile ได้เลย แต่ถ้าเป็นโปรแกรมขนาดใหญ่ขึ้นมาหน่อย การเขียนโปรแกรมบน RPi ก็ทำได้ แต่ว่าเวลา compile ค่อนข้างเสียเวลานาน เนื่องจากความเร็วของ CPU เร็วไม่เท่าเครื่องคอมฯทั่วไป

    ดังนั้นเวลาที่เราเขียนโปรแกรมขนาดใหญ่ เพื่อเป็นการประหยัดเวลา ต้องเขียนบนเครื่อง PC ก่อน แล้ว compile เมื่อได้โปรแกรมออกมาแล้ว จึงติดต่อกับบอร์ด Rpi ผ่าน LAN เพื่อที่จะวาง file ที่เรา compile เสร็จแล้ว ลงไปที่บอร์ด RPi อีกทีหนึ่ง

    เราเรียกวิธีที่ compile บนเครื่อง PC ไม่ว่าจะเป็น windows หรือ Linux แล้วให้โปรแกรมสามารถ run บน Rpi ได้ ว่า "cross compile"

    ส่วนวิธีที่เราติดต่อกับบอร์ด Rpi ผ่าน LAN เรียกว่า "Remote"
    วิธีการ Remote มีหลายวิธี เช่น telnet, secure shell(ssh), vsftpd, remote desktop เป็นต้น แต่วิธีที่เราจะใช้เป็นประจำก็คือ ssh และ vsftpd

    สิ่งที่เราต้องเตรียม มีดังต่อไปนี้
1. Router ที่ติดต่อโลกภายนอกได้(Internet) และมี port สำหรับเสียบสาย LAN
2. บอร์ด RPi เสียบสาย power, สาย LAN ที่มาจาก Router
3. เครื่อง PC พร้อมเสียบสาย LAN เรียบร้อย ในที่นี้ผมใช้ Linux Ubuntu

    เมื่อเราเตรียมอุปกรณ์ตามที่กล่าวแล้ว ทีนี้เราก็เริ่มติดต่อกับ RPi ได้เลย เริ่มจาก
- เราต้องทราบ IP Address ของบอร์ด RPi ก่อน ทำได้ 2 วิธี
  วิธีที่ 1. ที่บอร์ด RPi ต่อจอ TV , keyboard, mouse แล้วเปิด Terminal ขึ้นมา (หน้าต่างดำๆ) พิมพ์คำว่า "ip addr" ในหน้าต่าง Terminal จะแสดงหมายเลย ip address ออกมา

  วิธีที่ 2. หา IP address ของ RPi โดยใช้โปรแกรม nmap
  - ที่เครื่อง PC Linux ของเรา สามารถหา ip address ของเจ้าบอร์ด RPi ได้โดยการใช้โปรแกรม scan port เพื่อหาเครื่องที่เปิด port 22 ไว้ ซึ่งเป็น port ที่เปิดไว้สำหรับการ Remote SSH
  - วิธีติดตั้งโปรแกรม nmap ให้พิมพ์ "apt-get install nmap"
  - เมื่อติดตั้งเสร็จแล้ว เริ่มทำการ scan ด้วยคำสั่ง "nmap -sV -p 22 192.168.0.2-50" เป็นการ scan port 22 โดยเริ่มจาก IP 192.168.0.2 ไปจนถึง 192.168.0.50

    เมื่อเรารู้ IP address ของ RPi แล้ว ก็เริ่มติดต่อกับบอร์ดนี้ได้
    ที่เครื่อง Linux PC ให้เราเปิด Terminal แล้วพิมพ์ "ssh user@ip-addr" ซึ่งในที่นี้จะได้ว่า"ssh pi@192.168.0.5" เมื่อกด Enter แล้ว จะเห็นคำถามให้ใส่ password เราก็ใส่ "raspberry" ไป หรือว่าหากเพื่อนๆแก้ password เป็นอย่างอื่นไปแล้ว ก็ให้ใส่ตามที่ได้แก้ไป

    ทีนี้เราก็เหมือนกับนั่งอยู่ที่หน้าจอของเจ้าบอร์ด RPi นี้แล้ว
    ตอนต่อไปจะกล่าวถึงเรื่อง การ transfer file ไปวางที่บอร์ด RPi กัน

    ที่มา
http://raspberry-pi-th.blogspot.com/2012/09/raspberry-pi-ssh-setup-ssh-and.html

การลง OS Linux Raspbian

ในบทนี้จะกล่าวถึงการลง Operating System (OS) Linux สำหรับเจ้า RPi ตัวนี้กัน

    Linux สำหรับ RPi จะไม่เหมือนกับที่ใช้ในเครื่องคอมฯ ปกติทั่วไป เนื่องจากต้องมีการดัดแปลงให้ใช้กับเจ้าบอร์ด RPi ดังนั้นเราจะไม่สามารถนำ Linux ทั่วๆไปมาใช้กับบอร์ดนี้ได้

    OS สำหรับ RPi ที่เป็นที่นิยมเล่นกันอย่างแพร่หลายก็มี ARCH Linux กับ Raspbian

    ARCH Linux เป็น OS ที่เบา เนื่องจากไม่มีส่วนของ x-windows หรือหน้าต่าง windows, ไม่มี application หรือเครื่องมือใดๆติดตั้งมาให้เลย จะมีก็แต่ Terminal หน้าต่างดำๆ ให้เราพิมพ์อักษรสื่อสารกับ OS เพียงอย่างเดียว เวลาหาข้อมูลค่อนข้างจะลำบากหน่อยเพราะว่ามีคนเผยแพร่น้อย ทำให้เวลาที่เราเล่น ARCH อาจจะรู้สึกโดดเดี่ยวสักหน่อย

    Raspbian เป็น OS ที่ได้รับความนิยมมากกว่า เนื่องจากใช้งานง่าย มี x-windows ติดต่อกับผู้ใช้ได้ง่าย, มี application และ เครื่องมือบางอย่างติดตั้งมาให้แล้ว การหาข้อมูลก็ง่ายกว่า ดังนั้นผมจึงเลือกใช้ Raspbian ในการทดลองใช้งาน

    Raspbian คือ Debian(Linux) ที่นำมาดัดแปลงให้เข้ากับ CPU ARM1176JZF-S core
 
    เรามาลง OS Raspbian กันเลยดีกว่า
    สิ่งที่เราต้องเตรียม มีดังนี้
1. เครื่องคอมฯ windows ที่อ่าน SD card ได้
2. SD card 4 GB ขึ้นไป

    เมื่อมีอุปกรณ์ครบแล้ว ขึ้นตอนต่อไปคือ
1. download raspbian ล่าสุด
2. download โปรแกรม Win32DiskImager
3. เมื่อได้ image และ โปรแกรม win32diskimager มาแล้ว ให้ใส่ sd-card เข้าไปในเครื่องคอมฯ แล้วเปิดโปรแกรม win32diskimager ขึ้นมา ถ้าเครื่องคอมฯของคุณเป็น win7 หรือ 8 ให้คลิกขวาแล้วเลือก "Run as administrator"

4. ให้เราเลือก Image ที่เรา download มา ใส่ลงไปใน sd-card แล้วกด write รอจนเสร็จ 100%

5. เมื่อวาง file เสร็จ ให้เราถอด SD-card ออกมา แล้วนำไปใส่ในบอร์ด RPi ก็สามารถใช้งานได้เลย

    การใช้งาน RPi ครั้งแรก

    ให้เราต่อทุกสิ่งทุกอย่างที่เราเตรียมไว้ ได้แก่ สาย HDMI, Keyboard, micro usb power adaptor
    เมื่อเราเปิด RPi ขึ้นมาครั้งแรก จำเป็นที่จะต้องตั้งค่าบางอย่างให้กับเจ้าบอร์ดนี้ก่อน
    เราจะเห็นเมนู Raspi-config
- ให้เลือก expand-rootfs แล้วกด enter
- ให้ Enable ssh ตอน start up ด้วยครับ อันนี้จำเป็น เพราะว่าเราจะใช้ต่อจากนี้ไป
- ยังมีการปรับแต่งอื่นๆอีก ลองเลือกกันดูแล้วกันครับ ว่าชอบแบบไหน
- เลือก finish
    หลังจากที่ reboot แล้ว อาจจะรอนานสักนิด ในการ boot เนื่องจากต้องรอให้บอร์ดทำการแตก file ให้เรียบร้อยก่อน จากนั้นหน้าจอจะมาหยุดอยู่ที่หน้า longin ให้เราใส่
username : pi
password : raspberry
    login เรียบร้อยแล้ว ก็ให้พิมพ์ startx ครับ เพื่อเข้าโหมดกราฟฟิก เราจะเห็นหน้าจอขึ้นมา

    เท่านี้เราก็เริ่มใช้งานเจ้าบอร์ด RPi นี้ได้แล้ว
    ในบทหน้า จะกล่าวถึงการติดต่อกับเจ้า RPi นี้กันครับ