บัญชี

หน้าแรกคู่มือIoTส่งข้อมูลเข้า Google Sheets ด้วย IoT HMI
IoT
ปานกลาง
19 นาที

ส่งข้อมูลเข้า Google Sheets ด้วย IoT HMI

วิธีการเชื่อมต่อ HMI กับ Google Sheets ผ่าน HTTP Protocol สำหรับ Data Logging อัตโนมัติ ไม่ต้องใช้ USB Drive พร้อมตัวอย่างโค้ด Apps Script

อัพเดทล่าสุด: 1/2/2569

ราคาชุดอุปกรณ์

฿9,730

การเชื่อมต่อ HMI กับ Google Sheets ด้วย HTTP

การส่งข้อมูลจาก HMI ไปยัง Google Sheets โดยตรงผ่าน HTTP Protocol ช่วยลดความซับซ้อนในการจัดเก็บข้อมูลและทำให้ระบบ Data Logging ทำงานแบบอัตโนมัติโดยไม่ต้องพึ่งพา USB Drive

ทำความเข้าใจ HTTP Protocol

โครงสร้างพื้นฐาน

  • Client: ฝั่งผู้ใช้งาน (HMI)
  • Server: ฝั่งให้บริการ (Google Sheets)
  • Request: คำขอจาก Client ไป Server
  • Response: คำตอบจาก Server กลับมา

HTTP Methods ที่สำคัญ

  • GET: ขอข้อมูลเพียงอย่างเดียว
  • POST: ส่งข้อมูลไปประมวลผล (ใช้ในกรณีนี้)

Status Codes

  • 200: สำเร็จ
  • 404: ไม่พบข้อมูล
  • 500: Server เกิดข้อผิดพลาด

ทำความเข้าใจ JSON Format

JSON (JavaScript Object Notation) เป็นรูปแบบการจัดเก็บข้อมูลแบบ Key-Value เช่น

{
  "machine_status": true,
  "parts_count": 42,
  "timestamp": "2024-01-01 10:30:00"
}

ชนิดข้อมูลใน JSON

  • String: ข้อความ
  • Number: ตัวเลข (จำนวนเต็มหรือทศนิยม)
  • Boolean: true/false
  • Null: ค่าว่าง

การตั้งค่า Google Sheets

1. สร้าง Google Sheets

  1. สร้าง Google Sheets ใหม่
  2. ตั้งชื่อ เช่น "HMI Database"
  3. กำหนดหัวคอลัมน์:
    • Machine Status: สถานะเครื่องจักร
    • Parts Count: จำนวนชิ้นงาน
    • Time Stamp: เวลาที่บันทึก

2. สร้าง Google Apps Script

  1. เข้าเมนู Extensions > Apps Script
  2. เปลี่ยนชื่อโปรเจคเป็น "HMI Google Sheets"
  3. แก้ไขชื่อ Sheet เป็น "data"

function doPost(e) {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('data');
  const data = JSON.parse(e.postData.contents);
  
  const y0 = data.Y0;
  const d5 = data.D5;
  const timestamp = new Date();
  
  sheet.appendRow([y0, d5, timestamp]);
  
  return ContentService.createTextOutput(JSON.stringify({"result": "success", "timestamp": timestamp})).setMimeType(ContentService.MimeType.JSON);
}

3. Deploy Web App

  1. คลิก Deploy > New Deployment
  2. เลือก Type เป็น Web App
  3. ตั้งค่า Execute as: Me
  4. Who has access: Anyone
  5. คลิก Deploy และ Authorize
  6. Copy URL ที่ได้มา

การตั้งค่า HMI

1. สร้าง Components ใน SKTool

  • Numeric Entry: เชื่อมต่อกับ D5 (ค่าตัวเลข)
  • Bit Button: ควบคุม M0 และ Y0
  • Function Button: ตั้งค่า Wi-Fi/Network

2. กำหนด HTTP Request

  1. เปิดเมนู HTTP ใน SKTool
  2. เลือก Use และคลิก New
  3. ตั้งค่าดังนี้:


Name: HMI-Google-Sheets (อะไรก็ได้)
Website: [URL จาก Google Apps Script]
Mode: POST
Timeout: 2000 ms
Header: Content-Type: application/json
Format: JSON (Advance)
Send Mode: Bit trigger (LB0, Rising edge)
Auto Reset: เปิดใช้งาน

3. กำหนด JSON Data

ใน Send JSON เพิ่มค่าต่อไปนี้:
  • Name: Y0, Type: Boolean, Address: Y0
  • Name: D5, Type: 16-Bit Unsigned Int, Address: D5

ขั้นตอนการทดสอบ

  1. Download โปรแกรมลง HMI
  2. เชื่อมต่อ Wi-Fi หรือ Ethernet กับ Router ที่ต่อ Internet
  3. กดปุ่มเพื่อเปลี่ยนสถานะ Y0
  4. กำหนดค่าตัวเลขที่ D5
  5. กด Bit เพื่อ Trigger LB0
  6. ตรวจสอบข้อมูลใน Google Sheets

เคล็ดลับการใช้งาน

  • ตรวจสอบการเชื่อมต่อ Network ก่อนทดสอบ
  • ใช้ Timeout ที่เหมาะสมเพื่อรอ Response
  • ตั้งค่า Auto Reset เพื่อป้องกันการส่งข้อมูลซ้ำ
  • ตรวจสอบ Status Code เพื่อยืนยันการส่งข้อมูลสำเร็จ

การแก้ปัญหาที่พบบ่อย

ไม่สามารถส่งข้อมูลได้

  • ตรวจสอบการเชื่อมต่อ Wi-Fi/Network
  • ยืนยัน URL ของ Google Apps Script
  • ตรวจสอบการตั้งค่า JSON format

ข้อมูลไม่ปรากฏใน Google Sheets

  • ตรวจสอบชื่อ Sheet ใน Apps Script
  • ยืนยันการ Deploy Web App
  • ตรวจสอบสิทธิ์การเข้าถึง (Anyone)

Connection Timeout

  • เพิ่มค่า Timeout ใน HMI
  • ตรวจสอบความเสถียรของ Network

สรุป

การเชื่อมต่อ HMI กับ Google Sheets ผ่าน HTTP Protocol ช่วยให้ระบบ Data Logging ทำงานแบบอัตโนมัติ ลดการพึ่งพา USB Drive และเพิ่มประสิทธิภาพในการจัดเก็บข้อมูล การใช้ Google Apps Script ช่วยจัดการข้อมูล JSON และบันทึกลง Google Sheets ได้อย่างง่ายดาย ทำให้สามารถนำข้อมูลไปวิเคราะห์และประมวลผลต่อได้ทันที