IoT กับเครื่องจักร: เชื่อมต่อ CNC สู่ระบบอัตโนมัติด้วย MQTT
IoT (Internet of Things) คือการเชื่อมต่ออุปกรณ์และเครื่องจักรเข้าสู่เครือข่ายอินเทอร์เน็ต เพื่อให้สามารถติดตาม ควบคุม และวิเคราะห์การทำงานได้จากระยะไกล เมื่อนำ IoT มาใช้กับเครื่อง CNC จะเปลี่ยนจาก "เครื่องที่ต้องนั่งเฝ้า" ให้เป็น "เครื่องที่รายงานผลและควบคุมได้จากทุกที่"
IoT ช่วยงาน CNC ได้อย่างไร?
- ติดตามสถานะเครื่องเรียลไทม์ — รู้ว่าเครื่องกำลังกัดงานอะไร ทำงานจบหรือยัง จากมือถือ
- แจ้งเตือนอัตโนมัติ — งานเสร็จ / เครื่องมีปัญหา ส่งข้อความไปที่ Line หรือ Telegram
- ควบคุมระยะไกล — เริ่ม/หยุดงาน ปรับความเร็ว ผ่านเว็บหรือแอป
- เก็บข้อมูลวิเคราะห์ — บันทึกชั่วโมงทำงาน อุณหภูมิ การสั่นสะเทือน เพื่อบำรุงรักษาเชิงคาดการณ์
- เชื่อมต่อสายการผลิต — เครื่อง CNC หลายตัวทำงานประสานกับหุ่นยนต์และระบบอื่น
MQTT คืออะไร ทำไมเป็นหัวใจของ IoT อุตสาหกรรม?
MQTT (Message Queuing Telemetry Transport) เป็นโปรโตคอลสื่อสารแบบ Publish/Subscribe ที่เบาและเร็ว เหมาะกับอุปกรณ์ IoT โดยมีหลักการ:
- Broker — เซิร์ฟเวอร์กลางที่รับ/ส่งข้อความ (เช่น Mosquitto, thairobot.net ก็มีบริการนี้)
- Publisher — อุปกรณ์ที่ส่งข้อมูลขึ้นหัวข้อ (Topic) เช่น เครื่อง CNC ส่งสถานะขึ้น topic
cnc/status - Subscriber — อุปกรณ์/โปรแกรมที่ติดตามหัวข้อเพื่อรับข้อมูล เช่น แดชบอร์ดติดตามเครื่อง
ตัวอย่างหัวข้อ MQTT ในงาน CNC:
cnc/machine1/status → "running" / "idle" / "alarm" cnc/machine1/temperature → 45.2 cnc/machine1/job_done → true cnc/machine1/control → "stop" (ใช้สั่งควบคุม)
การเชื่อมต่อ ESP32 (เครื่อง CNC) กับ MQTT
ESP32-GRBL / FluidNC มี MQTT สนับสนุนในตัว หรือเขียน MicroPython ต่อ MQTT ได้ง่าย:
⚠️ ก่อนเริ่ม: broker ของเราปิดการเชื่อมต่อแบบไม่ระบุตัวตน (anonymous) ไว้แล้ว — ต้องใช้ username/password ที่ขอจากผู้ดูแลระบบ และควรเชื่อมผ่านพอร์ต 8883 (TLS) ไม่ใช่ 1883 เพื่อไม่ให้รหัสผ่านเดินทางแบบไม่เข้ารหัส
| พอร์ต | การใช้งาน | แนะนำ |
|---|---|---|
8883 | MQTT over TLS | ✅ ใช้ตัวนี้ (เข้ารหัสทั้งรหัสผ่านและข้อมูล) |
443 path /mqtt | WebSocket over TLS | ✅ ใช้กับเว็บแดชบอร์ด |
1883 | MQTT แบบไม่เข้ารหัส | ⚠️ ไม่แนะนำ — ข้อมูลวิ่งแบบ plaintext |
ตัวอย่าง MicroPython (ESP32) — เชื่อมต่ออย่างปลอดภัย:
import network, time, ssl
from umqtt.simple import MQTTClient
# เชื่อม WiFi ...
sta_if = network.WLAN(network.STA_IF)
sta_if.active(True)
sta_if.connect("WIFI_SSID", "WIFI_PASSWORD")
while not sta_if.isconnected():
time.sleep(0.5)
# ข้อมูลติดต่อ (ขอจากผู้ดูแลระบบ — อย่าใส่รหัสจริงลงในโค้ดที่แชร์สาธารณะ)
MQTT_HOST = "thairobot.net"
MQTT_PORT = 8883 # TLS
MQTT_USER = "<username ที่ได้รับ>"
MQTT_PASS = "<password ที่ได้รับ>"
CLIENT_ID = "cnc_machine1"
ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
ctx.verify_mode = ssl.CERT_NONE # ESP32 ประหยัด RAM: ไม่เก็บ CA
# production ควรฝัง CA ของ server ลงไปแทน
mqtt = MQTTClient(CLIENT_ID, MQTT_HOST, port=MQTT_PORT,
user=MQTT_USER, password=MQTT_PASS, ssl=ctx)
mqtt.connect()
mqtt.publish("cnc/machine1/status", "running") # ส่งสถานะ
mqtt.disconnect()
สิ่งที่ต้องระวัง:
- ถ้าได้ข้อความ
not authorised= username/password ไม่ถูก หรือยังไม่ได้ขอสิทธิ์ ssl.CERT_NONEทำให้ข้อมูลเข้ารหัสแต่ไม่ได้ตรวจว่าเป็น server ตัวจริง — เหมาะกับการทดลอง สำหรับใช้งานจริงให้ฝัง CA certificate ของ server ลงใน ESP32- ห้ามโพสต์รหัสผ่านจริงลงในเว็บ/ฟอรั่ม — ถ้าต้องแชร์โค้ด ให้ใส่เป็น placeholder แบบตัวอย่างนี้
ทดสอบจากคอมพิวเตอร์ก่อนลง ESP32 (ใช้ mosquitto_pub):
mosquitto_pub -h thairobot.net -p 8883 \ -u "<username>" -P "<password>" \ --cafile /etc/ssl/certs/ca-certificates.crt \ -t "cnc/test/status" -m "running"
สถาปัตยกรรมระบบ IoT สำหรับโรงงานขนาดเล็ก
- ชั้นอุปกรณ์ (Device) — ESP32, เซนเซอร์, เครื่อง CNC ที่ติดตั้งเฟิร์มแวร์ IoT
- ชั้นสื่อสาร (Connectivity) — WiFi, MQTT Broker, WSS
- ชั้นประมวลผล (Processing) — ระบบหลังบ้านรับข้อมูล เก็บลงฐานข้อมูล
- ชั้นแสดงผล (Application) — Web Dashboard, Line/Telegram แจ้งเตือน, แอปมือถือ
ตัวอย่างระบบ IoT เต็มรูปแบบที่ PanmaneeCNC มีอยู่จริง
PanmaneeCNC ให้บริการ MQTT Broker (รองรับทั้ง MQTT, TLS และ WebSocket) และมีระบบ FastAPI สำหรับติดตามกล้องและเครื่องจักร ทำให้ผู้ประกอบการสามารถต่อยอดได้ทันทีโดยไม่ต้องสร้างโครงสร้างเอง
สรุป
IoT เปลี่ยนเครื่อง CNC จากเครื่องจักรธรรมดาให้เป็น "เครื่องอัจฉริยะ" ที่ติดตาม ควบคุม และวิเคราะห์ได้จากระยะไกล MQTT คือโปรโตคอลที่ทำให้ทุกอย่างเชื่อมถึงกันได้อย่างเบาและรวดเร็ว หากต้องการนำ IoT มาใช้กับเครื่องจักร หรือต้องการตั้ง MQTT Broker เอง PanmaneeCNC พร้อมให้คำปรึกษาและติดตั้งระบบให้ครับ