เมื่อเครื่องในมือเราเป็น rpi2 wheezy ต้องการทำให้เป็น jessie ทำดังนี้
1. โหลด image ใหม่เลย ทำตั้งแต่เริ่มต้นใหม่ทั้งหมด
2. upgrade โดยทำตามวิธีต่อไปนี้
2.1 copy sources.list ไว้ก่อน
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
2.2 เข้าไปแก้ไข sources.list
sudo nano /etc/apt/sources.list
แก้ไขจากคำว่า wheezy เป็น jessie
กด ctrl+x, y เพื่อออกและบันทึกไฟล์
จากนั้น
sudo apt-get update
sudo apt-get dist-upgrade นานเบยยยย 4 ชม.
sudo reboot
จบ
ที่มา
https://www.youtube.com/watch?v=54BF-SJpkGI
blog นี้จะกล่าวถึง Raspberry Pi Raspbian เป็นหลัก โดยจะอธิบายทั้งการใช้ windows และ Linux ในการเชื่อมต่อ วิธีอ่าน : ให้เริ่มอ่านตั้งแต่หัวข้อแรกๆขึ้นมา(ให้ดูที่ "คลังบทความ" ทางด้านขวามือ จะมี วัน-เวลา ไล่เรียงอยู่) ไม่งั้นอาจจะงงได้ สำหรับมือใหม่ หรือท่านใดที่ไม่เข้าใจ สามารถ mail มาถามกันได้ครับ ที่ kongimi1980@gmail.com หรือที่ line : 0814282425
วันเสาร์ที่ 5 ธันวาคม พ.ศ. 2558
วันพุธที่ 22 กรกฎาคม พ.ศ. 2558
kill process by python script
โดยปกติ เวลาที่ผมใช้โปรแกรม python ผมจะเปิด terminal แล้วสั่ง sudo python AAA.py
แต่มีความต้องการว่าให้ user ที่ไม่ค่อยมีพื้นฐาน linux ใช้งานง่ายๆ ก็เลยต้องเขียนเวป แล้วให้ user กดปุ่มสั่งให้ python ทำงานอีกทีนึง
แต่ก็ติดปัญหาอีกว่าจะให้ user สั่งให้โปรแกรมหยุดทำงานได้ยังไง ก็นั่งหากันอยู่นาน ทดสอบไปมา ได้ผลดังนี้
ในโปรแกรมที่เราสั่งให้ทำงาน(AAA.py) ผมได้แทรก code ลงไป ให้สร้างไฟล์ขึ้นมาไฟล์นึง ในนั้นให้บันทึก PID เอาไว้ มี code ดังนี้
import os
pid = os.getpid()
f = open('PID.txt',"w")
f.write(str(pid))
จาก code ด้านบน เมื่อเราสั่งให้ AAA.py ทำงาน, จะได้ไฟล์ที่ชื่อว่า PID.txt ที่มีหมายเลข PID อยู่ข้างใน
PID คือ Process ID เป็นหมายเลขประจำโปรแกรมที่ทำงานอยู่
จากนั้นผมก็ได้สร้างไฟล์ใหม่อีกไฟล์นึง ที่มีชื่อว่า killAAA.py มี code ดังนี้
import os
import sys
import signal
f = open('PID.txt',"r")
pid = f.readline()
print pid
os.kill(int(pid), signal.SIGKILL)
sys.exit()
ถ้าเราสั่งให้ killAAA.py ทำงาน โปรแกรมนี้ก็จะไปสั่งให้ AAA.py หยุดทำงาน ได้ตามต้องการ
สรุป
บนหน้าเวป จะมีปุ่มที่สั่งให้หยุดการทำงานของโปรแกรมได้ เพื่อให้ user สามารถใช้งานได้ง่ายๆ ไม่ต้องเข้า terminal
แต่มีความต้องการว่าให้ user ที่ไม่ค่อยมีพื้นฐาน linux ใช้งานง่ายๆ ก็เลยต้องเขียนเวป แล้วให้ user กดปุ่มสั่งให้ python ทำงานอีกทีนึง
แต่ก็ติดปัญหาอีกว่าจะให้ user สั่งให้โปรแกรมหยุดทำงานได้ยังไง ก็นั่งหากันอยู่นาน ทดสอบไปมา ได้ผลดังนี้
ในโปรแกรมที่เราสั่งให้ทำงาน(AAA.py) ผมได้แทรก code ลงไป ให้สร้างไฟล์ขึ้นมาไฟล์นึง ในนั้นให้บันทึก PID เอาไว้ มี code ดังนี้
import os
pid = os.getpid()
f = open('PID.txt',"w")
f.write(str(pid))
จาก code ด้านบน เมื่อเราสั่งให้ AAA.py ทำงาน, จะได้ไฟล์ที่ชื่อว่า PID.txt ที่มีหมายเลข PID อยู่ข้างใน
PID คือ Process ID เป็นหมายเลขประจำโปรแกรมที่ทำงานอยู่
จากนั้นผมก็ได้สร้างไฟล์ใหม่อีกไฟล์นึง ที่มีชื่อว่า killAAA.py มี code ดังนี้
import os
import sys
import signal
f = open('PID.txt',"r")
pid = f.readline()
print pid
os.kill(int(pid), signal.SIGKILL)
sys.exit()
ถ้าเราสั่งให้ killAAA.py ทำงาน โปรแกรมนี้ก็จะไปสั่งให้ AAA.py หยุดทำงาน ได้ตามต้องการ
สรุป
บนหน้าเวป จะมีปุ่มที่สั่งให้หยุดการทำงานของโปรแกรมได้ เพื่อให้ user สามารถใช้งานได้ง่ายๆ ไม่ต้องเข้า terminal
วันอังคารที่ 9 มิถุนายน พ.ศ. 2558
เปลี่ยน keyboard layout
พอดีผมได้ซื้อ Rpi2 มาใหม่ ก็เลยลองเล่นดู เล่นไปเล่นมา ปรากฎว่าต้องการจะพิมพ์เครื่องหมาย # ไม่ได้ ก็เลยไปหาดูในเน็ต ก็ง่ายๆ ไม่มีไรมาก ตามนี้เลยครับ
sudo nano /etc/default/keyboard
ให้เราแก้จาก "gb" เป็น "us"
แล้วกด control+x เพื่อ save และออก
จากนั้น sudo reboot
แค่นี้เราก็พิมพ์ # ได้แล้ว
ที่มา
https://www.youtube.com/watch?v=L1F-TxTPyiM
sudo nano /etc/default/keyboard
ให้เราแก้จาก "gb" เป็น "us"
แล้วกด control+x เพื่อ save และออก
จากนั้น sudo reboot
แค่นี้เราก็พิมพ์ # ได้แล้ว
ที่มา
https://www.youtube.com/watch?v=L1F-TxTPyiM
วันจันทร์ที่ 16 มีนาคม พ.ศ. 2558
หา PID, memory usage ของ raspberry pi
พอดีวันนี้ได้ความรู้ใหม่มาเลยมา update กันหน่อย
ในกรณีที่เราต้องการทราบหมายเลขของโปรแกรมอะไรสักอย่าง (PID)
มีวิธีง่ายๆดังนี้ครับ
เปิด terminal แล้วพิมพ์ ps -A แล้วกด enter
หน้าจอก็จะแสดง PID ของโปรแกรมที่รันอยู่ทั้งหมดขึ้นมา ง่ายมาก
และในกรณีที่เราต้องการอยากทราบว่า memory ของ rpi เราเหลืออยู่เท่าไหร่
มีวิธีดังนี้
เปิด terminal แล้วพิมพ์ free -htl แล้วกด enter
หน้าจอจะแสดงรายละเอียดออกมาให้เห็น
หรือจะพิมพ์คำว่า top แล้วกด enter ก็ได้
หวังว่าคงเป็นประโยชน์แก่พี่น้องชาวไทยบ้างนะครัชชช :)
ที่มา
https://extremeshok.com/1081/raspberry-pi-raspbian-tuning-optimising-optimizing-for-reduced-memory-usage/
ในกรณีที่เราต้องการทราบหมายเลขของโปรแกรมอะไรสักอย่าง (PID)
มีวิธีง่ายๆดังนี้ครับ
เปิด terminal แล้วพิมพ์ ps -A แล้วกด enter
หน้าจอก็จะแสดง PID ของโปรแกรมที่รันอยู่ทั้งหมดขึ้นมา ง่ายมาก
ps -A
และในกรณีที่เราต้องการอยากทราบว่า memory ของ rpi เราเหลืออยู่เท่าไหร่
มีวิธีดังนี้
เปิด terminal แล้วพิมพ์ free -htl แล้วกด enter
หน้าจอจะแสดงรายละเอียดออกมาให้เห็น
free -htl
หรือจะพิมพ์คำว่า top แล้วกด enter ก็ได้
top
แล้วกด control พร้อมกับ c เพื่อออกจากคำสั่ง topหวังว่าคงเป็นประโยชน์แก่พี่น้องชาวไทยบ้างนะครัชชช :)
ที่มา
https://extremeshok.com/1081/raspberry-pi-raspbian-tuning-optimising-optimizing-for-reduced-memory-usage/
วันอังคารที่ 4 พฤศจิกายน พ.ศ. 2557
format sd-card
สวัสดีครัช พี่น้อง
หายกันไปนานเบย(อีกแล้ว) คราวนี้มาบอกเกร็ดเล็กเกร็ดน้อยครับ
เมื่อเรานำ sd-card ไปลง image rasbian แล้ว เมื่อเราถอด sd-card ไปเสียบที่เครื่อง pc เราจะเห็นพื้นที่เหลืออยู่นิดเดียว ซึ่งถ้าเราต้องการ format ทั้งหมดเพื่อนำไปใช้อย่างอื่นต่อ จะมีวิธีการดังต่อไปนี้ครับ
1. download โปรแกรม SD Formatter ก่อน ถ้าเราใช้เครื่อง pc windows ก็เลือกของ windows ถ้าเราใช้เครื่อง pc mac ก็เลือกของ mac
2. install SD Formatter
3. เปิดโปรแกรม SD Formatter แล้วเลือก drive ที่เสียบ SD Card ไว้
4. เลือก option
5. เลือก format size adjustment เป็น on แล้วกด ok
6. คลิก format และ ok
size ของ sd card ก็จะกลับมาใหญ่เหมือนเดิม
หายกันไปนานเบย(อีกแล้ว) คราวนี้มาบอกเกร็ดเล็กเกร็ดน้อยครับ
เมื่อเรานำ sd-card ไปลง image rasbian แล้ว เมื่อเราถอด sd-card ไปเสียบที่เครื่อง pc เราจะเห็นพื้นที่เหลืออยู่นิดเดียว ซึ่งถ้าเราต้องการ format ทั้งหมดเพื่อนำไปใช้อย่างอื่นต่อ จะมีวิธีการดังต่อไปนี้ครับ
1. download โปรแกรม SD Formatter ก่อน ถ้าเราใช้เครื่อง pc windows ก็เลือกของ windows ถ้าเราใช้เครื่อง pc mac ก็เลือกของ mac
รูปที่ 1 download โปรแกรม SD Formatter
2. install SD Formatter
3. เปิดโปรแกรม SD Formatter แล้วเลือก drive ที่เสียบ SD Card ไว้
รูปที่ 2 โปรแกรม SD Formatter
4. เลือก option
5. เลือก format size adjustment เป็น on แล้วกด ok
รูปที่ 3 size adjustment
6. คลิก format และ ok
รูปที่ 4 หลังจาก Format เรียบร้อยแล้ว
size ของ sd card ก็จะกลับมาใหญ่เหมือนเดิม
วันจันทร์ที่ 13 ตุลาคม พ.ศ. 2557
การตั้งวันที่ เวลา ให้ raspberry pi
การตั้งวันที่
sudo date mmddHHMMCCYY
mm = เดือน
dd = วันที่
HH = ชั่วโมง
MM = นาที
CCYY = ปี เช่น 2014
ยกตัวอย่างเช่น เดือน 10 วันที่ 13 15.50 น. ปี 2014
sudo date 101315502014
แล้วลองใช้คำสั่ง date ดูครับ เวลาควรจะเปลี่ยนตามที่เราได้ตั้งไว้
ที่มา
http://spalinux.com/2012/04/change-linux-date-time-using-command-date
ข้อความด้านล่างนี้ ผู้เขียนได้ลองแล้ว แต่ไม่ได้ผล อาจจะเพราะ ทำไม่ถูกเอง หรือ ไม่ได้ผลจริงๆ ก็ไม่แน่ใจเหมือนกัน ใครทำได้ ลองช่วยมาแชร์ให้หน่อยก็ดีครับ จะขอบคุณอย่างยิ่ง
แต่หลังจากตั้งวันที่ให้ Rpi แล้ว เราก็จะเกิดปัญหาใหม่ คือ เมื่อเราปิดไฟหรือ shutdown ไปแล้ว แล้วมาเปิดเครื่องใหม่ เวลาของ Rpi จะไม่ update
ดังนั้นเราต้องมี script ไว้สำหรับ update time เมื่อฟื้นขึ้นมาใหม่ แต่วิธีนี้ก็มีเงื่อนไขอยู่ตรงที่ว่าต้องต่อ internet ด้วย
http://stackoverflow.com/questions/5222951/easy-way-to-get-the-correct-time-in-python
วันนี้ 06/12/2559 ผมมีโอกาสได้ลองใหม่ ดังนี้
sudo apt-get udpate
sudo apt-get install ntpdate
sudo raspi-config
เข้าไปตั้งค่า time zone ให้เป็น asia/bangkok
เรียบร้อย
sudo date mmddHHMMCCYY
mm = เดือน
dd = วันที่
HH = ชั่วโมง
MM = นาที
CCYY = ปี เช่น 2014
ยกตัวอย่างเช่น เดือน 10 วันที่ 13 15.50 น. ปี 2014
sudo date 101315502014
แล้วลองใช้คำสั่ง date ดูครับ เวลาควรจะเปลี่ยนตามที่เราได้ตั้งไว้
ที่มา
http://spalinux.com/2012/04/change-linux-date-time-using-command-date
ข้อความด้านล่างนี้ ผู้เขียนได้ลองแล้ว แต่ไม่ได้ผล อาจจะเพราะ ทำไม่ถูกเอง หรือ ไม่ได้ผลจริงๆ ก็ไม่แน่ใจเหมือนกัน ใครทำได้ ลองช่วยมาแชร์ให้หน่อยก็ดีครับ จะขอบคุณอย่างยิ่ง
แต่หลังจากตั้งวันที่ให้ Rpi แล้ว เราก็จะเกิดปัญหาใหม่ คือ เมื่อเราปิดไฟหรือ shutdown ไปแล้ว แล้วมาเปิดเครื่องใหม่ เวลาของ Rpi จะไม่ update
ดังนั้นเราต้องมี script ไว้สำหรับ update time เมื่อฟื้นขึ้นมาใหม่ แต่วิธีนี้ก็มีเงื่อนไขอยู่ตรงที่ว่าต้องต่อ internet ด้วย
Before you use the script, you'll need to install ntplib. The download link and installation instructions are here:https://pypi.python.org/pypi/ntplib/.
Copy the the contents of the code below to a file (I named mine "synctime.py"). Then, after the network is running, execute the script (e.g. "python synctime.py"). You will need to do this using elevated (root) privileges for this to work properly.
import time
import os
try:
import ntplib
client = ntplib.NTPClient()
response = client.request('pool.ntp.org')
os.system('date ' + time.strftime('%m%d%H%M%Y.%S',time.localtime(response.tx_time)))
except:
print('Could not sync with time server.')
print('Done.')
ที่มาhttp://stackoverflow.com/questions/5222951/easy-way-to-get-the-correct-time-in-python
วันนี้ 06/12/2559 ผมมีโอกาสได้ลองใหม่ ดังนี้
sudo apt-get udpate
sudo apt-get install ntpdate
sudo raspi-config
เข้าไปตั้งค่า time zone ให้เป็น asia/bangkok
เรียบร้อย
วันศุกร์ที่ 10 ตุลาคม พ.ศ. 2557
ทำ printer ธรรมดาให้เป็น wireless printer
เดี๋ยวผมจะลองทำดู ตามนี้เลย http://www.instructables.com/id/Turn-any-printer-into-a-wireless-printer-with-a-Ra/
หรือว่าใครทำแล้ว ลองมา update ให้ดูกันหน่อยก็ได้นะครับ
หรือว่าใครทำแล้ว ลองมา update ให้ดูกันหน่อยก็ได้นะครับ
วันพุธที่ 1 ตุลาคม พ.ศ. 2557
python รับค่าจาก keyboard, อ่านค่าเวลา, การเปิดไฟล์ ปิดไฟล์ อ่านไฟล์ เขียนไฟล์, ออกจากโปรแกรม, keyboard interrupt, การหาบรรทัดล่างสุดของไฟล์, การแยก text ด้วย split
สวัสดีครัชพี่น้อง
วันนี้เป็นเกล็ดเล็กเกล็ดน้อย เกี่ยวกับการเขียนโปรแกรม python script บน RPi ครับ
การรับค่าจาก keyboard
ก็ง่ายๆครับ ตามนี้เลย
number = input("please input your choice : ")
ที่มา
https://sites.google.com/site/dotpython/input-and-output/2-2-list
การอ่านค่าเวลา
import time
my_time = time.time()
ที่มา
http://tutor0x.blogspot.com/2011/11/python_19.html
การ เปิด, write, close file
http://citecclub.org/forum/python-articles-59/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%9B%E0%B8%B4%E0%B8%94%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B9%84%E0%B8%9E%E0%B8%98%E0%B8%AD%E0%B8%99-1151/
http://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python/2676-%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%99%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A-%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C--python.html
http://stackoverflow.com/questions/4488570/how-do-i-write-a-tab-in-python
การออกจากโปรแกรม
import sys
sys.exit()
keyboard interrupt
การหาบรรทัดล่างสุด
ที่มา
http://stackoverflow.com/questions/3346430/most-efficient-way-to-get-first-and-last-line-of-file-python
การแยก text ด้วย split
จากตัวอย่าง "การหาบรรทัดล่างสุด" เราได้ตัวแปรที่ชื่อว่า last ที่เก็บข้อมูลของบรรทัดสุดท้ายอยู่
โดยเมื่อเราใช้ method "split" เราก็จะได้ข้อมูลใหม่ ที่เป็น array ออกมา
มีวิธีการใช้ ดังตัวอย่างต่อไปนี้
สมมติว่าใน ตัวแปร last มีข้อมูล "1\t2\n" import array
(1) แยกข้อมูลโดยใช้ \t เป็นจุดแยกข้อมูล จากตัวแปร last แล้วเก็บไว้ในตัวแปร array a
(2) สั่ง print ค่าที่อยู่ในตัวแปร array a ตัวที่ 0 ซึ่งผลลัพธ์ออกมาคือ "1"
(3) สั่ง print ค่าที่อยู่ในตัวแปร array a ตัวที่ 1 ซึ่งผลลัพธ์ออกมาคือ "2"
วันนี้เป็นเกล็ดเล็กเกล็ดน้อย เกี่ยวกับการเขียนโปรแกรม python script บน RPi ครับ
การรับค่าจาก keyboard
ก็ง่ายๆครับ ตามนี้เลย
number = input("please input your choice : ")
ที่มา
https://sites.google.com/site/dotpython/input-and-output/2-2-list
การอ่านค่าเวลา
import time
my_time = time.time()
ที่มา
http://tutor0x.blogspot.com/2011/11/python_19.html
การ เปิด, write, close file
example_file = open('your_file_name.txt', 'w')
example_file .write("hello world\n")
example_file .close()
ที่มาhttp://citecclub.org/forum/python-articles-59/%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%9B%E0%B8%B4%E0%B8%94%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C%E0%B8%94%E0%B9%89%E0%B8%A7%E0%B8%A2%E0%B9%84%E0%B8%9E%E0%B8%98%E0%B8%AD%E0%B8%99-1151/
http://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/83-python/2676-%E0%B8%9F%E0%B8%B1%E0%B8%87%E0%B8%81%E0%B9%8C%E0%B8%8A%E0%B8%B1%E0%B9%88%E0%B8%99%E0%B9%80%E0%B8%81%E0%B8%B5%E0%B9%88%E0%B8%A2%E0%B8%A7%E0%B8%81%E0%B8%B1%E0%B8%9A-%E0%B9%84%E0%B8%9F%E0%B8%A5%E0%B9%8C--python.html
http://stackoverflow.com/questions/4488570/how-do-i-write-a-tab-in-python
การออกจากโปรแกรม
import sys
sys.exit()
keyboard interrupt
To solve the exception problem, add a separate except-clause that catches theKeyboardInterrupt exception, and raises it again:
for record in database: try: process(record) if changed: update(record) except KeyboardInterrupt: raise except: # report error and proceed
or, even better:
for record in database: try: process(record) if changed: update(record) except (KeyboardInterrupt, SystemExit): raise except: # report error and proceed
การหาบรรทัดล่างสุด
f = open('file.txt', "r")
firstLine = f.readline()
f.seek(-2,2)
while f.read(1) != "\n":
f.seek(-2,1)
last = f.readline()
print "Last Line: %s" %(last)
http://stackoverflow.com/questions/3346430/most-efficient-way-to-get-first-and-last-line-of-file-python
การแยก text ด้วย split
จากตัวอย่าง "การหาบรรทัดล่างสุด" เราได้ตัวแปรที่ชื่อว่า last ที่เก็บข้อมูลของบรรทัดสุดท้ายอยู่
โดยเมื่อเราใช้ method "split" เราก็จะได้ข้อมูลใหม่ ที่เป็น array ออกมา
มีวิธีการใช้ ดังตัวอย่างต่อไปนี้
สมมติว่าใน ตัวแปร last มีข้อมูล "1\t2\n" import array
a = last.split("\t",1) ======================== (1)
print str(a[0]) ========================(2)
print str(a[1]) ========================(3)
(1) แยกข้อมูลโดยใช้ \t เป็นจุดแยกข้อมูล จากตัวแปร last แล้วเก็บไว้ในตัวแปร array a
(2) สั่ง print ค่าที่อยู่ในตัวแปร array a ตัวที่ 0 ซึ่งผลลัพธ์ออกมาคือ "1"
(3) สั่ง print ค่าที่อยู่ในตัวแปร array a ตัวที่ 1 ซึ่งผลลัพธ์ออกมาคือ "2"
สมัครสมาชิก:
บทความ (Atom)






