The project #2 : Web server with Arduino & New Control Board!

สวัสดีครับท่านผู้อ่าน

จากตอนที่แล้วที่บอกว่าจะมาพูดถึงการทำงานของระบบ

เผอิญว่าสัปดาห์นี้ CPE111 มีสอนทำ mini web server และควบคุมสัญญาณไฟฟ้าด้วย Arduino ก็เลยจะมาพูดถึงเรื่องนี้กันนะครับ

โครงงานของเรา ส่วนประกอบ (และฟีเจอร์) หนึ่งที่สำคัญคือการรับคำสั่งผ่านระบบ internet ทำให้ต้องใช้ Web server  เข้ามาเพื่อรับค่าจากผู้ใช้ผ่าน Web app หรืออื่นๆ แล้วสั่งการจากบอร์ดไปยังเครื่องใช้ไฟฟ้าครับ

จาก Code ด้านบน เป็นระบบควบคุมไฟสัญญานบนบอร์ดให้เห็นเป็นตัวอย่างครับ หลักการก็ไม่มีอะไรมากครับ แค่ใช้การ loop รอว่าจะมีคำสั่งจาก user ผ่าน ip ที่ได้รับมาจาก switch เมื่อไหร่ (โดยดู ip  จาก serial monitor) รับค่าจากฟอร์มแล้วควบคุมสัญญาณไฟหากผู้ใช้ส่งค่ามา แล้วพ่น web page ขึ้นมาไว้รับค่าจากผู้ใช้เพื่อสั่งงานอีกครั้งครับ

ตัวอย่างการแสดงข้อมูลจาก Serial monitor

ตัวอย่างการแสดงข้อมูลจาก Serial monitor (จากคู่ของอิงกับเอลฟ์)

ตอนทำในส่วนของ Code ไม่ค่อยมีปัญหาครับ เพราะ Code มาแทบจะพร้อมใช้อยู่แล้ว แค่ปรับปรุงให้ใช้งานได้ตามวัตถุประสงค์ของงานเราโดยการเพิ่มการตรวจค่า (ผมไม่แน่ใจว่า Arduino มีฟังก์ชันสกัดค่าออกมามั้ย เลยใช้การเทียบค่าไปตรงๆ แทนครับ) แล้วสั่งการ LED ครับ แต่ปัญหาจะไปตกกับ Hardware มากกว่า อาจจะเพราะว่าใช้สอนมามาก หรือเคยถูกใช้งานอย่างไม่ถูกต้อง การอัพโหลด Code ของคู่บิ๊กกับกบเลยมีปัญหาเกือบจะไม่รอด ประกอบกับไฟ LED ที่กล่าวไปก็ไม่ทำตามคำสั่งด้วย โชคยังดีที่อิงมาแก้ปัญหาให้จนผ่าน (คือกลุ่มผมมี 4 คน แต่มีบอร์ด 2 บอร์ด เลยแบ่งกันทำโดยแบ่งเป็นบิ๊กคู่กับกบ และอิงคู่กับเอลฟ์ ใครทำเสร็จก่อนก็เอาตัวนั้นไปเขียนรายงานส่ง)

ตัวอย่างการทำงานที่ได้จาก Web server

ตัวอย่างการทำงานที่ได้จาก Web server (จากหน้าจอของอิงกับเอลฟ์)

หลังจากจบ Lab ไป ก็ได้ข่าวดีจากพี่โทนี่ TA ประจำกลุ่มว่า Rasberry Pi ที่สั่ง เอ้ย! ที่ขอไว้ได้แล้ว ให้ไปเอาที่ iNeng ครับ

ของที่ได้ นอกจาก Rasberry Pi แล้ว ยังมี SD card ซึ่งเมื่อคืนอิงลง Linux RASPBIAN ไว้สำหรับการควบคุมระบบ และกล่องสำหรับบรรจุระบบพร้อมรางปลั๊กไฟเพื่อควบคุมระบบไว้ โดยควบคุมด้วย terminal ผ่านระบบ LAN ซึ่งกินไฟและทรัพยากรน้อยกว่าการเอาคีย์บอร์ด เมาส์และหน้าจอไปต่อให้เยอะครับ

รายงานการลงระบบ OS ในเครื่อง Raspberry Pi

รายงานการลงระบบ OS ในเครื่อง Raspberry Pi

ตอนนี้เรากำลังทดสอบดูครับว่าจะสามารถรันระบบได้จริงๆ มั้ย โดยการลองยิง ping เข้าบอร์ดทิ้งไว้ 1 คืน แล้วมาดูผลอีกทีครับว่าจะหมู่ จ่า แห้ว หรือไหม้!

ล่าสุด หลังจากที่ถล่มยิงไป 1 ชั่วโมง ก็พบว่าเครื่องร้อนสูงถึง 53°C ไปแล้วครับ แต่ก็ยังทำงานได้ตามปกติ

หน้าจอ terminal แสดงผลอุณหภูมิของ Raspberry Pi หลังจากระดมยิง ping ผ่านไป 1 ชม.

หน้าจอ terminal แสดงผลอุณหภูมิของ Raspberry Pi หลังจากระดมยิง ping ผ่านไป 1 ชม.

แต่อิงก็ยังทรมาน เอ้ย! ทดสอบเครื่องต่อโดยการเรียกหน้าเว็บขึ้นมาโดยไม่เก็บแคชไว้ในระบบ คงต้องรอดูกันครับว่าจะรอดหรือจะไหม้ =_=’

หน้าจอ terminal  แสดงภาระการทำงานภายในระบบของ Rasberry Pi

หน้าจอ terminal แสดงภาระการทำงานภายในระบบของ Rasberry Pi

หลังจากทดลองไปชั่วโมงครึ่ง…