วิธีการตรวจสอบว่า Raspberry Pi ต่อ WIFI อยู่รึเปล่า [ตอนที่ 1] ถ้าไม่มีก็ restart wifi ซะ

วิธีการตรวจสอบว่า Raspberry Pi ต่อ WIFI อยู่รึเปล่า [ตอนที่ 1] ถ้าไม่มีก็ restart wifi ซะ

วิธีการตรวจสอบว่า Raspberry Pi ต่อ WIFI อยู่รึเปล่า [ตอนที่ 1] ถ้าไม่มีก็ restart wifi ซะ

ผมใช้แบบนี้ครับ

while true ; do
   if /sbin/ifconfig wlan0 | grep -q "inet addr:" ; then
      sleep 60
   else
      echo "Network Connection Down!"
      /sbin/ifdown --force wlan0
      /sbin/ifup --force wlan0
      sleep 8
      // do sth
   fi;
done

จะเห็นว่าผมใช้

   
  /sbin/ifdown --force wlan0
  /sbin/ifup --force wlan0

เพื่อ Restart Network ครับ…. แต่เท่านี้ไม่เพียงพอนะครับ ถ้าอยากรู้ว่าเพราะเหตุใด ให้ติดตามตอนที่ 2 ครับ

Read More

วิธีการสั่งให้ forever / nodejs เปิดขึ้นมาทำงาน เมื่อ Raspberry Pi ทำงานครับ

วิธีการสั่งให้  forever / nodejs เปิดขึ้นมาทำงาน เมื่อ Raspberry Pi ทำงานครับ

บ่อยครั้งที่ผม setup raspberry pi ให้เปิดเครื่องมาปุ๊บ รัน nodejs server ทันที.. ไม่ต้องรอใครมาเรียกเลยครับ

ผมเลือกใช้ คำสั่ง screen และ forever ครับ (เรื่อง service ไว้ค่อยมาลองเล่นกันวันหลังนะครับ)

  • คำสั่ง forever เอาไว้ชุบชีวิต nodejs server ให้เกิดใหม่ เวลา server บน Raspberry Pi ตายครับ
  • คำสั่ง screen เอาไว้สั่ง server ของเราให้รันขึ้นมา ผมจะสั่งให้เปิดมาด้วย detached mode ครับคำสั่งอื่นๆจะได้ไม่ต้องรอครับ
Read More

วิธีการอ่าน Partition Ext2/3 ของ Raspberry Pi บน Mac OSX

วิธีการอ่าน Partition Ext2/3 ของ Raspberry Pi บน Mac OSX

วิธีการอ่าน Partition Ext2/3 ของ Raspberry Pi บน Mac OSX

โดยปกติแล้วถ้า Mac Book จะมี ที่อ่าน SD Card ติดไว้อยู่แล้ว.. แต่ตัวระบบปฏิบัติการไม่สามารถอ่านไฟล์ในระบบของ Raspberry Pi ได้…

วันนี้ผมมีทางออกให้สำหรับการอ่านไฟล์บนระบบของ Raspberry Pi ครับ

ทางออกนั้นคือเราจะต้องติดตั้ง fuse-ext2 ครับซึ่งสามารถไปดาวน์โหลดกันได้ที่ http://alperakcan.net/projects/fuse-ext2/

Read More

การปรับตั้งค่า DNS ใน resolv.conf ไม่ให้โดนเขียนทับ บน RaspberryPi

การปรับตั้งค่า DNS ใน resolv.conf ไม่ให้โดนเขียนทับ บน RaspberryPi

บางทีถ้าเราเสียบ RaspberryPi เข้ากับ Router ที่ไม่ได้ set nameserver ไว้ อาจจะมีปัญหา apt-get หรือคำสั่งที่ต้อง resolve nameserver อาจจะเจอ error ว่า ไม่สามารถ get content ได้ อะไรประมาณนี้ครับ

ในขั้นต้นของการ setup DNS ผมจะเข้าไปไปแก้ไฟล์ /etc/resolv.conf ครับ

cat /etc/resolv.conf พอเปิดเข้าไปแล้วก็จะเห็นไฟล์หน้าตาแบบนี้ครับ

nameserver 192.168.1.1

แต่อนิจจา.. เวลาเรา Reboot ใหม่ nameserver ที่เราเพิ่มเข้าไปใหม่มันจะโดนทับเป็นแบบเดิมอีก.. มันน่าเศร้ายิ่งนัก…ใครที่เคยเจอปัญหานี้อาจจะเข้าใจดี แต่อย่าเพิ่งตกใจไปครับ..

Read More

TDD บน Javascript ด้วย Grunt+Simplemocha+Expectations

TDD บน Javascript ด้วย Grunt+Simplemocha+Expectations

Grunt-logo

เริ่มต้นทำ TDD บน NodeJS สไตล์ Jasmine ง่ายๆด้วยพลังของ Grunt + Simple mocha + Expecations

ช่วงนี้ผมมีงานที่จะเขียนด้วย Javascript ครับที่สำคัญมีเทสด้วย.. จะได้เขียน Code โง่ๆ กากๆ ได้เต็มที่ครับ
งานแรกที่ต้องทำคือ port xively-Js มาเป็น nodejs module ครับ อยากใช้ Grunt เป็น Task Runner ครับ

แต่ถ้าจะใช้ Grunt ก็ต้องมี Setting file ครับซึ่งก็มี grunt-init ช่วยอยู่
แต่ไม่มีตัวทำออกมาแล้วหน้าตาคล้ายกับเทส Jasmine เลยครับ (เพราะว่า xively-js ใช้ jasmine) ผมขี้เกียจเขียนใหม่อยากจะไปเอาเทสมาเลย.. สุดท้ายเลยต้องทำ grunt-init-simplemocha ขึ้นมา ซึ่งเป็นตัวที่ fork มาจาก grunt-init-node ครับ แต่จะเพิ่มความสามารถของ Grunt task เข้าไปอันนึงคือ grunt simplemocha ครับ เรามาดูวิธีการติดตั้งกันเลยครับ ลง grunt & grunt-init ให้เรียบร้อยก่อนนะครับ

Read More

การติดตั้ง NodeJs บน RaspberryPi แบบด่วนจี๋

การติดตั้ง NodeJs บน RaspberryPi แบบด่วนจี๋

RaspberryPi

การ Install NodeJs บน RaspberryPi

เกริ่นก่อน

การ Install NodeJs บน Raspberry Pi นั้นทำได้หลายแบบครับ

  1. ติดตั้งจาก source code แบบนี้ว่ากันง่ายๆ ก็คือเอามา compile เอาเองครับ (จะบน RaspberryPi หรือจะ Cross compile ที่เครื่องอื่นก็ว่ากันไปครับ)
  2. ติดตั้งจาก Binary จาก ผู้พัฒนา NodeJs ครับ
Read More