การประยุกต์ใช้งาน Google Sheet เพื่อเป็นฐานข้อมูลจาก Node-Red

Yo Nutchanon
3 min readJun 20, 2019

--

หน้าตาก็จะประมาณนี้ประมาณนี้
ลองดู Flow คร่าวๆก็ประมาณนี้

อันดับแรกที่ต้องทำก่อนเลยคือ การสร้าง Google Form เพื่อใช้ในการรับข้อมูลจาก Node-Red โดยมีข้อปฏิบัติ ดังนี้

  1. หัวข้อแบบฟอร์มตั้งตามสบาย…อะไรก็ได้
  2. เลือกประเภทคำถามเป็นแบบ…คำตอบสั้นๆ
  3. คำถามที่ตั้งคือหัวคอลัมน์ของชุดข้อมูล
  4. เลือกการตรวจสอบการตอบกลับเป็นแบบข้อความ (String)
ในที่นี้เราตั้งคำถามว่า Temperature 1 (Celsius)

อยากได้กี่คอลัมน์ข้อมูลก็สร้างคำถามตามนั้นเลยยย

อันนี้เราทำใช้รับข้อมูลจากเซนเซอร์ DHT22

ต่อมาเราจะทำการสร้าง sheet เพื่อที่จะใช้เก็บข้อมูลกันต่อ โดยมีขั้นตอน ดังนี้

  1. กดที่ “การตอบกลับ”

2. กดที่ไอคอน Google Sheet สีเขียวๆ

3.สร้าง Sheet ใหม่

4.หน้าตา sheet ที่ได้

ได้ sheet แล้ววววว จบบ…..ล้อเล่น 😝

ต่อมาเราก็จะมาลิงค์ตัว Google Form ของเรากันนนน

อันดับแรกไปที่ Form ที่เราต้องการจะลิงค์

กดเลือกดวงตาขวาบน

กดดวงตาขวาบบนเพื่อเข้าไปทำ form ที่เราสร้างขึ้น

ต่อมาทำการกดปุ่ม F12 บนคีย์บอร์ด แล้วเลือก “เครือข่าย” เพื่อที่เราจะมาแอบดู entity ของแต่ละคอลัมน์คำตอบกันนน

เลือกแถบ Network นะ

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

เสร็จแล้วก็กดส่งซะสิ

เมื่อกดส่งเสร็จแล้วในแถบเครือข่ายที่เราเปิดขึ้นมาก็จะขึ้น Request เต็มไปหมดไม่ต้องตกใจให้เลื่อนหา POST Request ที่มีโดเมนไปหา docs.google.com และมีชื่อไฟล์ว่า formResponse

นี่ไงงง…🕵

คลิกเข้าไปแล้วดูที่หัวข้อ “พารามิเตอร์”

แล้วจะพบกับ entityID

เจอละ…

จำได้ไหมว่าที่เรากรอกคำตอบไปมันอยู่ในคำถามไหม หมายความว่า entityID นั้นก็เป็นของคำถามนั้นนั่นเอง..

ทำการ Copy เก็บไว้ก่อนเพราะเราต้องนำไปใช้

ต่อมาให้เราทำการ Copy ลิงค์จากหน้าที่เราได้ทำการส่งคำตอบมาแก้ใน Notepad

ข้างบนเลยย

หน้าตา link ก็จะประมาณนี้

ส่วนสีแดงจะไม่เหมือนกันแล้วแต่คนนะจ๊ะ

ส่วนสีแดงของแต่ละคนจะไม่เหมือนกันนะแล้วแต่คน

ต่อมาเราจะมาดัดแปลง link กันโดยมี Pattern ตามนี้

รูปแบบลิงค์

ส่วนที่เพิ่มเข้าไปคือด้านหลังตั้งแต่

โดย entityID ก็ที่เราไปดูมาก่อนหน้านี้

Payload Name คือ ชื่อของ payload ที่เราจะส่งจาก node-red เข้ามา

?entry.(entityID)={{(payload name}}&entry.(entityID)={{(payload name)}} โดยหากเรามีหลายคำถามก็ให้เพิ่ม &entry.(entityID)={{(payload name)}} ตามจำนวนคำถามที่เราตั้งไว้เลย

ในที่นี้ผมมี 4 คำถามจะได้ link ดังนี้

ส่วนสีแดงของเราเองต้องปิดไว้ เขิล

ต่อมาไปที่ node-red เรียกใช้ Node HTTP Request ขึ้นมา

นี่ไง http request node อยู่ในหมวด function นะ

เลือก Method เป็น POST แล้วนำลิงค์ที่เราดัดแปลงมาเข้าไปใส่ในช่อง URL แล้วกด DONE ได้เลย

ต่อมาเราก็ทำการสร้าง function ตั้งชื่อของ payload ของเราให้ตรงกับชื่อ payload ที่ตั้งไว้ใน link หน้าตาก็ประมาณนี้

อันนี้ก็แล้วแต่ข้อมูลที่ทุกคนสร้างมานะ ของเรามันเป็น String มาเราก็เอามา parse เป็น JSON แล้วเรียกข้อมูลใน array ของแต่ละ object ออกมา

ลอง Deploy ดู ผลที่ได้ก็ตามนี้เลยยย

เย้้้้ สำเร็จจจจจจ

เราสามารถใช้แผนภูมิใน Google Sheet มาสร้างเป็น Dashboard ง่ายๆก็ได้นะ

มีหลายแบบให้เลือกเลยล่ะ

จบแล้วววว ใครงงสงสัยอะไร ทิ้งคำถามไว้ได้นะครับ บายยยยยยยยยยยยยย

--

--