Wednesday, January 30

WebIOPi : Control Raspberry Pi ‘s GPIO via web browser

เราทราบดีอยู่แล้วว่า Raspberry pi นั้น สามารถทำให้เป็น web Server ได้ และในขณะเดียวกัน ก็ยังมี GPIO เหลือไว้ให้นักพัฒนาไว้ทำอะไรเล่นได้แตกต่างจาก PC ทั่วไปที่ไม่มี GPIO ให้ใช้ ก็เลยมีคนคิดที่จะทำ web application ที่สามารถที่จะควบคุม GPIO ผ่านทางหน้าเว็บ วันนี้ เรามาติดตั้ง web application ตัวหนึุ่่งที่น่าสนใจสำหรับ Raspberry pi นั่นก็คือ WebIOPi

WebIOPi คือเว็บแอพลิเคชั่น ที่ออกแบบด้วยภาษา Python ซึ่งทำงานร่วมกับ REST framework  จุดประสงค์เพื่อให้การควบคุม GPIO ของ Raspberry Pi แสดงผล แบบ(เกือบจะ) Realtime ให้เห็นผ่านหน้าเว็บ โดยที่เราไม่ต้อง refresh หน้าเว็บ เมื่อ GPIO มีการเปลี่ยนแปลงสถานะ

"WebIOPi is developed and tested on Raspbian"

เพราะฉะนั้นใครทีใช้ Raspian อยู่แล้ว ก็ไม่น่ามีปัญหาอะไร ขั้นตอนติดตั้งไม่ยุ่งยากครับ เริ่มจากดาวน์โหลดไฟล์ แล้วก็ทำการรันสคริปต์ที่ติดตั้ง

wget http://webiopi.googlecode.com/files/WebIOPi-0.5.3.tar.gz
tar xvzf WebIOPi-0.5.3.tar.gz
cd WebIOPi-0.5.3
sudo ./setup.sh

รอสักครู่ จากนั้นก็สั่งให้ webiopi ทำงานด้วยการรันเซอร์วิส

sudo /etc/init.d/webiopi start

หากต้องการสั่งให้เซอร์วิสหยุดทำงาน ก็ตรงกันข้ามครับ

sudo /etc/init.d/webiopi stop

แต่ถ้าถูกใจแอพพลิเคชั่นนี้ และอยากให้ทำงานทุกครั้งที่เปิดเครื่องแล้วหล่ะก็ ให้กำหนดเป็นค่า default ตอนเปิดเครื่องไปเลย ด้วยคำสั่ง

sudo update-rc.d webiopi defaults

หลังจากนั้น เปิด web browser ของเราขึ้นมา แล้วกรอก URL ไปที่ไอพีของ Raspberry Pi ครับโดยใส่ port 8000 เข้าไปด้วย

เช่น ไอพีบอร์ด raspberry pi ของผมเป็น 192.168.2.105 จะได้ว่า  http://192.168.2.105:80000/webiopi/ ครับ

ทำการกรอก username / password ครับ ในที่นี้ถูกกำหนดเป็น webiopi รหัสผ่านก็ raspberry ครับ

จะปรากฏหน้าเว็บ จากนั้น ลองกำหนดให้ GPIO ใดๆ ก็ได้เป็น OUT แล้วลองเอา LED ต่อที่ pin นั้นๆ จากนั้นกดเปลี่ยนสถานะ หากเป็น Hi จะเปลี่ยนสีเป็นสีเหลืองที่หน้าเว็บ ที่หลอด LED ก็ควรจะติดด้วย

WebIOPi control Raspberry pi 's GPIO

ทดลองเปิดหน้าเว็บจากคอมพิวเตอร์เครื่องอื่น หรือเปิด browser เพิ่มอีก และดูผลการเปลี่ยนแปลง เราจะเห็นว่าหน้าเว็บแสดงผลได้แทบจะทันทีทันใด ที่มีการเปลี่ยนแปลงที่ GPIO ครับ นั่นก็เป็นเพราะ REST framework นั่นเอง

ลองติดตั้ง แล้วศึกษาตัวโปรเจคนี้ดูครับ รับรองได้ประโยชน์แน่นอน

แหล่งที่มา : http://code.google.com/p/webiopi/

13 ความคิดเห็น:

Anoney Potter on 10 February 2013 at 03:16 said...

ผมได้ทำการลองแล้วครับแต่ผม ติดปัญหาคือ cannot install for python 2.7.3rc2 missing development headers ครับ ลอง google แล้ว เขาให้ upgrade firmware แต่ก็ยังไม่ได้ผลเลยครับ พอมีแนวทางแก้ไขไหมครับ ขอบคุณครับ

Mr.P on 10 February 2013 at 17:24 said...

ลองติดตั้งนี้เพิ่มครับ
sudo apt-get install python-dev

Anonymous said...

ผมเจอปัญหาครับ คือ ผม config ให้ Pi ทำตัวเป็น access point (ต่อ wifi ได้ แจก IP ได้ แต่ไม่ได้เป็น Wifi Router) เพื่อผมจะได้ control GPIO ผ่านทาง wifi ได้โดยไม่ต้องต่อสาย LAN

หลังจากติดตั้ง hostapd เพื่อ config ให้เป็น AP และติดตั้ง udhcpd เพื่อให้ Pi แจาก IP ได้แล้ว ก็ติดตั้ง webiopi ต่อเลย ก็ทำงานได้ตามปกติ

ถ้าผม connect ผ่าน wifi โดยที่เสียบสาย LAN อยู่ก็ไม่มีปัญหาอะไรครับ เรียกใช้งานได้ แต่ถ้า boot ขึ้นมาโดยที่ไม่ได้ต่อสาย LAN มันจะ browse webIOPi ไม่ได้ คือ ping เจอครับ แต่ browse ไม่ขึ้นเลย (ไม่ถาม user name / password ด้วย) ไม่ทราบว่าเป็นเหมือนกันหรือเปล่าครับ

Mr.P on 16 February 2013 at 23:44 said...

น่าแปลกที่ ping เจอ แต่ เปิดหน้าเว็บไม่ขึ้น บน wifi เท่าที่ผมเจออยู่ตอนนี้คือ ไฟบอร์ดไม่พอจ่าย usb wifi หน่ะครับ

Apiwat Sooklueang on 13 July 2013 at 09:17 said...

พี่ครับในกรณีนี้ผมเข้าใจว่าทำงานผ่านวงแลน อยากทราบว่าถ้าจะทำให้ออกเน็ตทำไงครับ

Mr.P on 15 July 2013 at 09:07 said...

จด domain name แล้วเอามาผูกกับ router ของเรา จากนั้นทำการ forward port จาก router ไปหาบอร์ด Raspberry pi ผมว่าจะเขียนบทความเรื่องนี้ แต่ คิดว่า หลายคนอาจทราบดีอยู่แล้ว ผมเลยไม่เขียนครับ

Apiwat Sooklueang on 16 July 2013 at 19:53 said...

เขียนเหอะ ครับ นะครับจริงๆๆ

พงษ์เทพ ทับทรวง on 3 December 2013 at 01:58 said...

พี่ครับ ถ้าจะเอาโค๊ดไปใส่ต้องทำยังไงครับ

พงษ์เทพ ทับทรวง on 3 December 2013 at 02:00 said...

ถ้านะนำเอาโค๊ดมาใส่ต้องทำยังไงครับ

Mr.P on 5 December 2013 at 05:13 said...

ถ้าอ่านโค๊ดเขาออก ก็ modify ได้แล้วครับ

khanclub on 8 August 2014 at 18:48 said...

ผมทดลองติดตั้งแล้วติด error ดังนีัครับ

Error response

Error code: 404

Message: Not Found.

Error code explanation: 404 - Nothing matches the given URI.

รบกวน พี่ช่วยแนะนำหน่อยครับ ว่าผมต้องแก้ใขตรงใหนบ้างนะครับ ขอบคุณครับ

Mr.P on 8 August 2014 at 21:41 said...

Error 404 คือ เราเปิดบน browser แล้วมันหาหน้าเว็บนั้นไม่เจอ ลองใส่ / ต่อท้ายครับ ดูตามรูปด้านบนครับ

ปล. ตอนนี้มันออกเวอร์ชั่นใหม่ ไปไกลแหละ ลองไปตามอ่านดูในหน้าเว็บมันเลยครับ

khanclub on 13 August 2014 at 00:14 said...

ขอบคุณครับ ...ตอนนี้ผม ลองโหลดเวอร์ชั่น ใหม่ เป็น 0.6.0 มาติดตั้งครับ สามารถเข้าหน้าเปได้แล้ว ครับ ขอบคุณมาก ครับ ....

 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

ติดตาม Blog นี้

About Me

My photo

สวัสดีครับ ชื่อเปิ้ลนะครับ ถ้ามีอะไรให้ช่วยเหลือได้ ก็จะช่วยครับ
ผมได้สร้างบล๊อกไว้ เพื่อเก็บรวบรวมความรู้ และประสบการณ์ในการทำงานครับ แวะไปเยี่ยมชมกันได้ครับ http://mechacity.blogspot.com และบล๊อก http://faker-programmer.blogspot.com ครับ

Blog อื่นๆของฉัน

Microcontroller Electronics update

สถิติเยี่ยมชมบล๊อก