Showing posts with label Raspbian. Show all posts
Showing posts with label Raspbian. Show all posts

Sunday, January 26, 2014

ติดตั้ง Real Time Clock ให้ Raspberry Pi

ได้ RTC (Real Time Clock) สำหรับ Raspberry Pi มาตัวนึง ขนาดเล็กมาก

มีแบตเตอรี่อยู่ด้านหลังด้วย

ทำมาเสียบกับ P1 header ได้เลย


การเสียบให้ทำตามรูป โดยหันด้านที่มีแบตเตอรี่เข้าหา Raspberry Pi ส่วนด้านที่มี IC ให้หงายขึ้น
แล้วทำการ Update/Upgrade ให้เรียบร้อยก่อนค่อยติดตั้ง Software ครับ


เริ่มจากติดตั้งเครื่องมือสำหรับ i2c โดยใช้คำสั่ง

sudo apt-get install i2c-tools

แก้ไฟล์ /etc/modules โดยใช้คำสั่ง

sudo vi /etc/modules


เพิ่มข้อมูลต่อท้ายไปสามบรรทัด

i2c-bcm2708
i2c-dev
rtc_ds1307

แล้วทำการ reboot

sudo reboot

จากนั้นตรวจดูว่ามีไฟล์ /etc/modprobe.d/raspi-blacklist.conf หรือเปล่า ถ้ามีก็ให้เข้าไปแก้

sudo vi /etc/modprobe.d/raspi-blacklist.conf

comment สองบรรทัดนี้ออก โดยเติม # ไว้ข้างหน้า ตามนี้

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

หลังจาก save แล้ว ให้ทำการ load module



sudo modprobe i2c-bcm2708

แล้วสร้าง device



echo ds1307 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device

ตรวจสอบว่าเวลาของ Raspberry Pi ถูกต้องหรือไม่ โดยใช้คำสั่ง

date

ถ้าเวลาที่แสดงไม่ถูกต้อง อาจต้อง reboot ใหม่เพื่อให้ Raspberry Pi sync เวลาจาก Internet ให้ถูกต้อง
ต่อไปทำการเขียนเวลาลงไปใน RTC โดยใช้คำสั่ง

sudo hwclock -w

จากนั้นก็ทำการสร้าง device และ sync เวลาใหม่ ทุกครั้งที่ boot
โดยไปแก้ที่ไฟล์ /etc/rc.local

sudo vi /etc/rc.local

เติมสองบรรทัดนี้ลงไปก่อนคำสั่ง exit 0


echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-1/new_device
sudo hwclock -s


หลังจาก save แล้ว ให้ทำการ reboot

ต่อไปนี้ทุกครั้งที่ boot ก็จะได้เวลามาจาก RTC เป็นเวลาเริ่มต้น



References: 

http://satorshop.lnwshop.com/product/101/real-time-clock-for-raspberry-pi
http://nicegear.co.nz/raspberry-pi/high-precision-real-time-clock-for-raspberry-pi/
http://nicegear.co.nz/blog/using-an-i2c-real-time-clock-rtc-with-a-raspberry-pi/
http://learn.adafruit.com/adding-a-real-time-clock-to-raspberry-pi/overview
http://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c

Thursday, January 2, 2014

ทำ Static IP ให้ Wi-Fi


มี Wi-Fi แล้ว อยากจะทำให้เป็น Static IP ไม่ยากครับ
เริ่มจากหาค่า Network ที่ต้องการ ตัวอย่างเช่น

   address 192.168.1.20
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255
   gateway 192.168.1.1

วิธีการหาดูตัวอย่างได้จาก เปลี่ยน Dynamic IP ให้เป็น Static IP

เมื่อได้ค่า Network ที่ต้องการแล้ว ก็ไปแก้ไฟล์ /etc/network/interfaces
โดยแก้ที่บรรทัด

iface default inet dhcp

ให้เป็น

iface default inet static
   address 192.168.1.20
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255
   gateway 192.168.1.1

จากนั้นก็ reboot

sudo reboot

เป็นอันเสร็จพิธี


Sunday, September 15, 2013

เปลี่ยน Dynamic IP ให้เป็น Static IP

เมื่อแรกติดตั้ง Raspbian OS สำหรับ Raspberry Pi นั้น ค่า IP address ของเครื่องจะเป็นแบบ dynamic คือเปลี่ยนไปตามที่ DHCP server จะกำหนดมา ทำให้ยากต่อการนำไปใช้งาน เพราะถ้าอยากรู้ว่าตอนนี้ IP address เป็นค่าใด ก็ต้องมีจอภาพกับ keyboard เพื่อทำการ login เข้าไปดู
การตั้งค่า IP address ให้เป็นค่าใดค่าหนึ่งไปเลยจะทำให้ไม่จำเป็นต้องใช้จอภาพกับ keyboard เหมาะกับการนำ Raspberry Pi ไปทำเป็น server การตั้งค่าแบบนี้เรียกว่าการทำ static IP

เข้าสู่โหมด Command Line

เปิดเครื่อง Raspberry Pi ขึ้นมา ถ้าหน้าจอเป็น GUI Desktop ให้เปิดโปรแกรม Terminal แต่ถ้าขึ้นมาถาม User & Password ก็ให้ทำการ login

ตรวจสอบค่าของ Network ปัจจุบัน

ใช้คำสั่ง
cat /etc/network/interfaces
จะมีข้อความขึ้นมาแสดงประมาณนี้
บรรทัดที่มีข้อความ
iface eth0 inet dhcp
แสดงว่า network (eth0) เป็น dhcp อยู่

ต่อไปใช้คำสั่ง
ifconfig
จะมีข้อความขึ้นมาแสดงประมาณนี้
ใต้หัวข้อ eth0 บรรทัดที่มีข้อความ
inet addr:192.168.1.142  Bcast:192.168.1.255  Mask:255.255.255.0
เป็นการบอกว่า
ip address 192.168.1.142
broadcast 192.168.1.255
netmask 255.255.255.0

ต่อไปใช้คำสั่ง
netstat -nr
จะมีข้อความขึ้นมาแสดงประมาณนี้
ค่าที่ column Destination กับ Gateway เป็นการบอกว่า
destination network 192.168.1.0
gateway 192.168.1.1

ตั้งค่า Static IP

ตอนนี้เราได้ค่า network ปัจจุบันมาครบแล้ว สมมุติว่าจะตั้งค่า IP address เป็น 192.168.1.20
ให้ใช้ editor เข้าไปแก้ไฟล์ที่ /etc/network/interfaces ใครถนัด vi หรือ nano ก็เลือกใช้กันได้ครับ
sudo vi /etc/network/interfaces
หรือ
sudo nano /etc/network/interfaces
แก้ที่บรรทัด
iface eth0 inet dhcp
ให้เป็น
iface eth0 inet static
   address 192.168.1.20
   netmask 255.255.255.0
   network 192.168.1.0
   broadcast 192.168.1.255
   gateway 192.168.1.1
ห้าบรรทัดที่เติมเข้าไปใส่ space หรือ tab ที่ด้านหน้าเพื่อให้รู้ว่าเป็นการตั้งค่าของ iface eth0
จะไม่ใส่ก็ได้นะครับ หลังจาก save แล้ว ให้ทำการ reboot
sudo reboot
เมื่อ boot เสร็จเราจะได้ IP address เป็น 192.168.1.20 ตามที่ตั้งไว้
สามารถทดสอบได้จากคำสั่ง
ifconfig


ต่อไปนี้เราสามารถติอต่อกับ Raspberry Pi จาก IP 192.168.1.20 ได้โดยตรง


References:

https://www.modmypi.com/blog/tutorial-how-to-give-your-raspberry-pi-a-static-ip-address




Friday, September 13, 2013

วิธีติดตั้ง Raspbian OS บน Raspberry Pi

Raspbian เป็น OS ซึ่งทาง Raspberry Pi Foundation แนะนำสำหรับติดตั้งบน Raspberry Pi โดยพัฒนามาจาก Debian Linux ซึ่งเป็น Distro ยอดนิยมอันหนึ่ง และทำการปรับแต่งให้เหมาะกับตัว Raspberry Pi
Raspbian สามารถติดตั้งบน SD card ขนาด 2GB ได้ แต่ขนาดที่แนะนำคือตั้งแต่ 4GB ขึ้นไป

Download

download Raspbian ได้จาก http://www.raspberrypi.org/downloads
หลังจาก download เสร็จแล้วให้ทำ unzip จะได้ไฟล์นามสกุล .img
ไฟล์ล่าสุดขณะเขียนบล็อกนี้คือ 2013-07-26-wheezy-raspbian.img

เขียนลง SD card

หลังจากได้ไฟล์ .img มาแล้วก็เตรียมเขียนลงใน SD card  
สำหรับ Windows
  • download โปรแกรมสำหรับเขียน SD card ชื่อ Win32DiskImager ได้จากที่นี่ http://sourceforge.net/projects/win32diskimager/
  • สร้าง directory สำหรับเก็บโปรแกรมนี้ เช่น C:\Win32DiskImager
  • unzip ไฟล์ที่ download ไปไว้ใน directory ที่สร้างขึ้น
  • รันโปรแกรม Win32DiskImager.exe ที่ unzip มา จะได้หน้าตาประมาณนี้
  • เลือก Image File เป็น .img ที่ unzip ไว้
  • เลือก Device ไปที่ SD card ที่จะเขียน
  • กด Write รอจนเสร็จ แล้วทำ Safely Remove Hardware ของ SD card
สำหรับ Mac
  • ใส่ SD card ลงใน card reader
  • เปิดโปรแกรม Terminal
  • ต้องหาว่า SD card อยู่ที่ device อะไร โดยใช้คำสั่ง
    diskutil list
    ตัวอย่าง SD card ขนาด 4GB จะได้ผลลัพธ์ประมาณนี้
    ดูขนาดจาก column SIZE แล้วดู device จาก column IDENTIFIER จะเห็นได้ว่า SD card ตัวนี้อยู่ที่ disk1 (ไม่ต้องสนใจ disk1s1 เพราะ s1 ที่ตามหลังคือ partition 1 ของ disk1)
  • สั่ง unmount device (ในตัวอย่าง device คือ disk1) โดยใช้คำสั่ง
    diskutil unmountDisk /dev/disk1
  • ทำการเขียน SD card โดยใช้คำสั่ง
    sudo dd bs=1m if=XX.img of=/dev/disk1
    แทนที่ XX.img ด้วยชื่อไฟล์ .img ที่ download และ unzip ไว้ตั้งแต่ต้น
    ส่วน disk1 คือ device ที่ unmount ไว้
    อาจมีการถาม password ด้วย
  • หลังจากเขียนเสร็จ Mac OS X จะทำการ mount device กลับมาให้อัตโนมัติ และทำการสร้าง directory .Trashes กับ .fseventsd เพิ่มลงใน device ซึ่งจะทำให้เกิดปัญหาตอนติดตั้ง ต้องลบสอง directory นี้ออก
    ไปที่ /Volumes/Boot โดยใช้คำสั่ง
    cd /Volumes/boot
    ทำการลบ directory ที่เกินมาโดยใช้คำสั่ง
    rm -f -r .Trashes .fseventsd
    ออกจาก /Volumes/Boot กลับไปที่ home โดยใช้คำสั่ง
    cd
  • สั่ง unmount device อีกครั้งโดยใช้คำสั่ง
    diskutil unmountDisk /dev/disk1

Boot Raspbian

  • ใส่ SD card ที่เตรียมไว้ลงใน socket ที่อยู่ด้านล่างของบอร์ด Raspberry Pi
  • ต่อจอภาพโดยใช้สาย HDMI หรือ composite RCA
  • ต่อ keyboard เข้าทางช่อง USB
  • ต่อสาย network เข้าทางช่อง RJ45
  • ต่อสายไฟเข้าที่ช่อง MicroUSB
จะเห็น boot message ออกทางจอภาพ รอจนกระทั้งเห็นเมนูตามภาพ
การเลือกหัวข้อให้ใช้ลูกศรขึ้นลงกับ Tab เมื่อต้องการทำหัวข้อนั้นให้กด Enter

ข้อควรระวัง เนื่องจาก Raspberry Pi ใช้ CPU ความเร็วต่ำกว่า PC ที่เราคุ้นเคย เวลากด Enter ต้องรอซักนิด เพราะอาจดูเหมือนมันไม่ทำงาน

หัวข้อที่ควรทำ

  • Expand Filesystem จะเป็นการขยาย file system ให้เต็มตามขนาดของ SD card และจะมีผลหลังจาก reboot ครั้งถัดไป
  • Change User Password เป็นการตั้ง password ของ user pi
  • Internationalisation Options เข้าไปเปลี่ยน timezone ให้เป็น Bangkok กับเปลี่ยน keyboard layout จาก UK เป็น US
หลังจากออกจากเมนูนี้อาจจะมีการ reboot

หากต้องการเข้าเมนูนี้อีก ก็เปิด terminal หรือ login ด้วย secure shell แล้วใช้คำสั่ง
sudo raspi-config

การปิด/เปิดเครื่อง

ตัวบอร์ด Raspberry Pi ไม่มีปุ่มเปิดปิด เวลาปิดก็ถอดสายหรือปิดไฟที่จ่ายทางช่อง MicroUSB ได้เลย
แต่หากต้องการ shutdown OS ให้สมบูรณ์ก่อน ให้ใช้คำสั่ง
sudo shutdown -h now
แล้วรอให้ไฟสถานะบนบอร์ดเหลือแค่ LED สีแดงดวงเดียว



ตอนนี้เราก็จะได้ Raspberry Pi เอาไว้ทดลองกันแล้ว
ขอให้สนุกนะครับ

References:

http://elinux.org/RPi_Easy_SD_Card_Setup