Cloud Variable


ที่มาของโครงงาน

มีนักพัฒนาจำนวนมากที่ได้พัฒนาระบบบันทึกข้อมูล (Data Logging) โดยสร้างอุปกรณ์ที่ทำการวัดค่าจากเซ็นเซอร์ต่างๆ ขึ้นมาใช้งาน เช่น ระบบควบคุมไฟฟ้าภายในอาคาร ซึ่งจะมีการเก็บบันทึกปริมาณการใช้ไฟฟ้าที่จุดต่าง ๆ ภายในอาคาร เพื่อใช้ตรวจสอบและวิเคราะห์ในภายหลัง เป็นต้น แต่นักพัฒนากลุ่มนี้มักพบว่าการนำข้อมูลเหล่านั้นไปบันทึกในระบบฐานข้อมูล ตลอดจนการนำข้อมูลออกมานำเสนอในรูปแบบที่เข้าใจและวิเคราะห์ผลง่ายนั้นต้องอาศัยความรู้เฉพาะด้านที่แตกต่างจากการพัฒนาเครื่องวัด ซึ่งหากไม่มีบุคลากรที่เชียวชาญด้านนี้ร่วมทีมก็มักจะส่งผลกระทบกับคุณภาพของการจัดเก็บและนำเสนอข้อมูล โครงงานนี้ประสงค์ที่จะแก้ไขปัญหานี้ โดยการสร้างบริการในรูปแบบของ Application Programming Interface (API) เพื่อจัดส่งข้อมูลไปบันทึกในฐานข้อมูลและสร้าง Online Service สำหรับแสดงข้อมูลในรูปแบบต่างๆ เพื่อให้การสร้างระบบบันทึกข้อมูล สามารถทำได้ง่าย และสะดวกมากยิ่งขึ้น

 

โครงสร้างการทำงาน

รูปภาพ5

การทำงานของระบบจะแบ่งเป็น 2 ส่วน คือ

  1. ส่วนของการรับ-ส่ง และบันทึกข้อมูล จะแบ่งออกเป็น Client ซึ่งเป็น Python API สำหรับการส่งข้อมูลไปบันทึกที่ Server และ Server สำหรับเก็บบันทึกข้อมูลลงในฐานข้อมูล ซึ่งจะรับส่งข้อมูลระหว่างกันผ่านทาง Websocket โดยผู้ใช้งานสามารถเรียกใช้งานคำสั่งของ API ในการเก็บบันทึกข้อมูล โดยระบุชื่อของข้อมูล(ชื่อตัวแปร) สำหรับจัดกลุ่มข้อมูลให้เป็นข้อมูลชุดเดียวกัน และค่าของข้อมูลนั้น ๆ โดยไม่ต้องอาศัยความรู้เกี่ยวกับฐานข้อมูล และคำสั่ง SQL และมีชนิดของข้อมูลที่สนับสนุนแล้วได้แก่ ตัวเลขจำนวนเต็ม, ทศนิยม, ข้อความหรือตัวอักษร, รูปภาพ และพิกัด GPS
  2. ส่วนของการแสดงข้อมูล เป็น Web Application ที่อยู่ในรูปแบบของ User Interfaces ที่สามารถเลือกข้อมูลเพื่อมาแสดงผลได้รูปแบบต่าง ๆ ได้แก่ ตาราง,กราฟเส้นตรง, ฮิสโทแกรม, การแสดงภาพนิ่ง (Slide Show), ภาพแบบเรียงลำดับตามเวลา(Time Lapse) และแผนที่พิกัดบน Google Maps โดยที่สามารถแสดงข้อมูลจากหลาย ๆ ชุด ได้พร้อมกัน และในกรณีของข้อมูลที่เป็นตัวเลข จะสามารถเลือกแสดงค่าต่ำสุด สูงสุด และค่าเฉลี่ย จากข้อมูลที่เลือกมาแสดงได้ นอกจากนั้นยังสามารถนำผลลัพธ์ที่ได้ ไปฝังในหน้าเว็บไซต์อื่น ๆ ได้ โดยที่ไม่ต้องเขียนคำสั่งเพื่อใช้งาน Plug-in สำหรับการแสดงผลต่าง ๆ เอง

 

ผลการทดลองใช้งาน

ทดสอบระบบโดยพัฒนาโปรแกรมภาษา Python ให้อ่านค่าจากเซ็นเซอร์แสงและอุณหภูมิจากเซ็นเซอร์ที่ติดตั้งอยู่บน Raspberry Pi ที่ติดตั้งบอร์ดต่อพ่วง Pi-Topping และใช้งาน API ในการส่งค่าที่อ่านได้ไปบันทึกยัง Server จากนั้นสร้างกราฟเส้นตรงสำหรับการตรวจสอบค่าจากเซ็นเซอร์ทั้งสอง ในช่วง 3 ชั่วโมงล่าสุด โดยใช้ Web Application ที่ติดตั้งบน Server และนำผลลัพธ์ที่ได้ไปฝังในหน้าเว็บไซต์

LightAndTemp

โปรแกรมวัดระดับแสง และอุณหภูมิ ทุก ๆ 5 นาที ที่ใช้ Cloud Variable ช่วยในการพัฒนา โดยใช้คำสั่งดังนี้

  • import cv_client                  //นำเข้า API
  • cv = cv_client.CloudVariable (“host:port”,”username”,”password”)                  //สร้างการเชื่อมต่อและตัวแปรสำหรับเรียกใช้งาน
  • cv.addInt (“name”,value)                  //ส่งข้อมูลจำนวนเต็ม

WebApp

การตั้งค่าต่าง ๆ สำหรับแสดงกราฟจากเซ็นเซอร์ทั้งสอง ในช่วง 3 ชั่วโมงล่าสุด

result

กราฟแสดงค่าระดับแสง และอุณหภูมิที่อ่านได้จากเซ็นเซอร์ ในช่วง 3 ชั่วโมงล่าสุด

iframe

Source Code ของหน้าเว็บไซต์อื่นที่จะนำกราฟไปแสดง (เฉพาะส่วนของการแสดงกราฟ)

othersite

หน้าเว็บไซต์อื่น ที่นำผลลัพธ์ที่สร้างจาก Web Application ไปฝังไว้

otherResult

 ผลลัพธ์รูปแบบอื่น ๆ ที่สามารถสร้างจาก Web Application

 

Link source code

 

ทีมพัฒนา

154380_4811689087273_1766899248_n

นายบุษกล ศิริรัตนาสกุล   530610376

68298_4811689727289_2028452975_nนางสาวศิวภรณ์ เทพวรรณ   530610396