วันพฤหัสบดีที่ 2 กุมภาพันธ์ พ.ศ. 2560

การปิด-เปิดไฟ ควบคุมผ่านเว็บเบราว์เซอร์


การปิด-เปิดไฟภายในบ้าน ควบคุมผ่านเว็บเบราว์เซอร์

โดยใช้ Relay module สั่งการโดย Port GPIO ของRaspberry pi 







           สวัสดีเพื่อนๆชาว IT ทุกท่านครับ วันนี้ขอนำเสนอโปรเจคง่ายๆ ที่หลายคนให้ความสนใจรวมถึงผมก็มีความสนใจในโปรเจคนี้ เพื่อนำไปต่อยอดใช้งานได้หลากหลายๆ 
         ผมไม่ขอพูดถึงทฤษฐีอะไรมากนักครับ เพราะเห็นว่ามีแหล่งข้อมูลที่ท่านอาจจะศึกษาได้อีกมากมาย เพื่อความเข้าใจผมขอสรุปแบบสั้นๆ เท่าที่จะสั้นได้เกี่ยวกับโปรเจคดังกล่าว Ok ครับเรามาเริ่มกันเลยดีกว่า


คำเตือน !!!  

 การทดสอบอุปกรณ์กับกระแสไฟฟ้ากระแสสลับ (AC) แรงดันสูง เช่น ไฟบ้าน 220V มีอันตรายสูงถึงขั้นเสียชีวิต ควรศึกษาการต่อวงจรไฟฟ้าให้ชำนาญเสียก่อน หรือทดลองกับไฟฟ้ากระแสตรง (DC) ประมาณ12v , 24v ก็ทดสอบได้ครับ หากเกิดอุบัติเหตกับท่านใดผมผู้เขียนบทความเพียงให้คำแนะนำจะไม่ขอรับผิดชอบใดๆทั้งสิ้น




ก่อนอื่นหากท่านใดยังไม่ได้อ่านบทความที่ผมได้เขียนไว้ก่อนหน้านี้คือเรื่อง

"การใช้ Web browser ควบคุมหลอด LED (เปิด - ปิด)"

ติดตามอ่านได้จากลิงค์นี้ครับ

โปรด คลิก !

สามารถนำเนื้อหามาต่อยอดกับโปรเจคนี้ได้


         การออกแบบ  Relay module   
หากสนใจสั่ง Module ตัวนี้ไปทดลอง ติดต่อที่นี่
          
         ทำไมต้องใช้  Relay Module ?  อธิบายแบบเข้าใจง่ายๆคือ การที่จะนำสัญญาณจาก gpio port ไปควบคุมอุปกรณ์ไฟฟ้าสามารถทำได้ แต่สัญญาณจาก gpio ที่ logic 1 มีแรงดันเพียง 3.3v นำไปใช้ได้กับอุปกรณ์ที่ต้องการแรงดันต่ำๆ เช่น หลอดไฟ LED เป็นต้น ในการเลือกใช้ Relay ควรดูการทนกระแสของRelayตัวนั้นๆด้วย

         ในส่วนของ Relay module ที่จะกล่าวถึงก็คือ การนำทรานซิสเตอร์มาประยุกต์ใช้ให้ทำหน้าที่เป็นสวิตช์ การทำงานของสถานะสวิตช์จะเปิดหรือปิดขึ้นอยู่กับ gpio port  ทรานซิสเตอร์ที่นำมาเป็นสวิตช์อธิบายได้จากรูปได้ดังนี้  






วงจร Relay Module 



          จากวงจรดังภาพ ใช้ทรานซิสเตอร์ Q1 เป็นสวิตช์ ที่ขา B ของทรานซิตเตอร์ต่อกับ Port GPIO ของ Raspberry pi เมื่อ port gpio เป็น Logic 0 (0 V) ทรานซิสเตอร์จะยังไม่ทำงานยังไม่มีแรงดันตกคร่อมและไม่มีกระแสไหลที่ขดลวดของ Relay เพียงแต่ขดลวดด้านหนึ่งต่ออยู่กับแหล่งจ่ายไฟ DC 12 V แต่ขวดลวดอีกขั้วหนึ่งยังไม่ต่อกราวน์ รีเลย์จึงไม่ทำงาน 
          แต่เมื่อ port gpio เป็น Logic 1 (3.3 V) แสดงการทำงานดังรูปถัดไป




           จะเห็นได้ว่ามีแรงดันมาไบอัสที่ขา B ของทรานซิสเตอร์ทำให้มีกระแสไฟฟ้าจากแหล่งจ่ายไฟ 12v เข้าไหลผ่านขดลวดของรีเลย์เข้าขา  C ลงกราวน์ทำให้เกิดการเหนี่ยวนำของขดลวดรีเลย์ทำงานก็เหมือนกับการเราเปิดไฟบ้านให้มัน On นั่นเอง


อธิบายแผนภาพได้ดังนี้


ต่อไปเป็นขั้นตอนการออกแบบ วงจร Relay Module

          ออกแบบ PCB ด้วยโปรแกรม Proteus (สนใจเรียนติดต่อ https://www.facebook.com/elecyslowlife/)



อธิบายตำแหน่งขอจุดเชื่อมต่อ


          1. Terminal Block ชื่อ 12VDC  ขา 1 สำหรับต่อกับแหล่งจ่ายไฟ +12VDC
                                                                ขา 2 สำหรับต่อกับแหล่งจ่ายไฟ - 12VDC
         
          1. Terminal Block ชื่อ OUT       ขา 1 สำหรับต่อกับแหล่งจ่ายไฟ เลี้ยงอุปกรณ์ 1 เส้น
                                                                ขา 2 ต่อกับอุปกรณ์ที่เราควบคุม

          เช่น เราต้องการควบคุมเครื่องหลอดไฟส่องสว่าง 220VAC เราจะต่อแบบเดียวกับสวิตช์ไฟบ้านเลย กล่าวคือ ปกติไฟบ้านเราคือไฟกระแสสลับหรือ AC 220 V มีสองเส้นคือ L N ให้เราต่อสาย L หรือ N เส้นใดเส้นหนึ่งเข้าไปขั้วหนึ่งของหลอดไฟ
       ส่วนอีกหนึ่งเเส้นที่เหลือเราจะต่อเข้าไปสวิตช์ Relay ในที่ตัวต่อที่  Terminal Block ชื่อ OUT ที่ขา 1 แล้วขา 2 ไปต่อกับอีกขั้วหนึ่งของหลอดไฟ

 แต่ระวังน่ะครับควรตรวจสอบความถูกต้องหรือ ต่อฟิวส์ป้องกันไว้หากเกิดการลัดวงจรจะได้ไมส่งผลเสียต่ออุปกรณ์และ ไม่ส่งผลต่อร่างกายเรา



จำลองสามมิติ




ตัดขนาดตามต้องการ




นำไปรีดแล้วแช่น้ำค่อยๆลอกออก 




เจาะรูซะ


ลงอุปกรณ์





เสร็จเรียบร้อย

 ส่วนของโปรแกรมเป็นการนำโปรเจคต่อจากคราวที่แล้วมาประยุกต์ใช้ติดตามได้จาก การใช้ Web browser ควบคุมหลอด LED

โปรแกรมตัวอย่างดังนี้  จากโปรแกรมต่อไปนี้เป็นเพียงตัวอย่างการทำงานแบบง่ายซึ่งผู้อ่านสามารถนำไปพัฒนาให้ดูดีกว่านี้ได้






ทดลองการทำงานของโปรแกรม เมื่อยังไม่กดปุ่มเปิดไฟ








ทดลองการทำงานของโปรแกรม เมื่อกดปุ่มเปิดไฟ




วีดีโอผลการทดลอง
























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

การใช้ Web browser ควบคุมหลอด LED (เปิด - ปิด)


การใช้ Web browser ควบคุมหลอด LED (เปิด - ปิด) 




ภาพที่ 1 แสดงการต่อ LED กับ บอร์ด Raspberry pi


     สวัสดีชาว IT ทุกท่านที่พร้อมจะสนุกสนานไปกับการ Diy โดยใช้เทคโนโลยีใหม่ ๆ มาทดลองและนำไปพัฒนาต่อให้เกิดความสนุกสนานยิ่งขึ้น
     วันนี้มีโปรเจคง่ายๆ มาให้เพื่อนนำเสนอ คือ การควบคุมหลอด LED บนเว็บบราวเซอร์โดยการเขียนโปรแกรมด้วยภาษา php และ html ก่อนที่จะเขียนโปรแกรมเราควรทราบการทำเว็บเซอร์เวอร์เสียก่อน แต่ในที่นี้ไม่ขอพูดถึงส่วนนั้น หากท่านใดยังไม่ทราบสามารถศึกษาได้จากอินเทอร์เน็ต ซึ่งมีเนื้อให้ศึกษามากมาย

เข้าเรื่องกันเลยดีกว่า

ขั้นตอนมีดังนี้

ก่อนอื่นเตรียมอุปกรณ์ดังนี้

1. บอร์ด Raspberry pi ที่ติดตั้ง Wed server และ Php แล้ว
2. ตัวต้านทาน RA  = 4.7k 1/4W
3. หลอด LED 1 หลอด



ภาพที่ 2 แสดงการต่อ LED กับ บอร์ด Raspberry pi


   ให้เพื่อนๆต่อ วงจรตามภาพที่ 1 จะใช้ port อะไรก็ได้แต่ในที่นี้ผมใช้ port gpio 26 เพราะจำง่าย

 เข้าสู่ command raspberry pi
ถ้าต้องการกำหนดระดับการเข้าถึง (Permission) ให้กับ ไดเร็กทอรี่ /var/www เพื่อให้การส่งไฟล์ระหว่างคอมพิวเตอร์สะดวก

ใช้คำสั่ง $ sudo chmod 0777 -R /var/

ใช้คำสั่ง cd  /var/www/html    เพื่อเข้าถึง ไดเร็กทอรี่ html



ใช้คำสั่ง $ sudo nano ชื่อไฟล์.php   เพื่อเข้าไปเพิ่มคำสั่งโปรแกรม



ตัวอย่างการเขียนโปรแกรม



 เมื่อเพิ่มคำสั่งเสร็จแล้ว กด Ctrl + X  กด Y และ Enter เพื่อ Save 


อธิบายคำสั่ง

system("gpio -g mode 26 out");  คือ การกำหนดพอร์ต 26 ให้เป็น Output
system("gpio -g write 26 1");     คือ การกำหนดสถานะของพอร์ต 26 ให้เป็น Logic 1
system("gpio -g write 26 0");     คือ การกำหนดสถานะของพอร์ต 26 ให้เป็น Logic 0




 จากนั้นทดลอง ใช้เว็บเบาร์เซอร์โดยการเข้าไปเว็บเบาเซอร์ที่เราใช้ ช่องพิมพ์ url ให้พิมพ์

 IP  Address/ชื่อไฟล์ที่สร้างไว้.php ของผมคือ    http://192.168.1.8/ledtest.php



 ทดลองกด ปุ่มแล้วสังเกต สถานะ LED ว่าเปลี่ยนแปลงหรือไม่ 


วีดีโอตัวอย่างการทดสอบ 




    เพื่อนๆลองทำดูครับหากยังไม่ได้ผลสอบถามได้ครับ หรือลองศึกษาตามเว็บไซต์แนะนำให้พิมพ์ภาษาอังกฤษครับเพราะจะมีให้ดูเยอะกว่า

วีดีโอการนำสัญญาณจาก port gpio ไปควบคุมการปิด - เปิด สวิตช์รีเลย์