Supot Sae-Ea ถึง Node-RED Siam
1 ชม. ·
🎊 MQTT & UDP Server 🎊
⛳️ ยาวหน่อยเกิน 8 บรรทัด
⏰เสาร์-อาทิตย์ที่ผ่านมา สองกลุ่ม Node-RED Basic ได้มีการขอคำแนะนำหลายเรื่องอยู่ ส่วนใหญ่จะมาสายโรงงาน ที่ต้องการมอนิเตอร์ข้อมูล Scada, Modbus และใช้ NB-IoT ในการส่งข้อมูลระยะไกล
(กลุ่มที่ 3 เสาร์ 5 ตค. กลุ่ม 4 เสาร์ 19 ตค.กำลังเปิดรับ)
📣การรับส่งข้อมูลกับ Node-RED ก็จะไปในแนวที่จะใช้ MQTT โดยที่ข้อมูลก็จะเข้ามาทางช่องทาง Serial port และ TCP แต่ถ้าเป็น NB-IoT ตัวไลบรารี่เองก็จะใช้ UDP เป็นตัวอย่าง
📣ทั้ง MQTT และ UDP มีให้เราใช้งานเป็น node ที่ติดมากับ Node-RED ตั้งแต่ตอนติดตั้ง ซึ่ง UDP จะมีทั้ง Server และ Client มาให้พร้อม ส่วน MQTT ก็จะต้องติดตั้ง Mosca (MQTT Broker/Server) เพิ่มเติม
📣ในช่วงการ Development ก็อาจจะทดลองทดสอบกับเครื่อง local ได้ สำหรับ MQTT ไม่มีอะไรยุ่งยาก ตั้งค่า server เป็น localhost ได้ แต่ถ้าเป็น NB-IoT ถ้าจะให้วิ่งเข้ามาที่ local ก็จะต้องทำ DDNS ให้วิ่งย้อนเข้ามที่ local อีกขั้นตอน
📣แล้วเมื่อต้องเขยิบไปเป็น Production คงไม่สะดวกที่จะใช้งาน DDNS มาที่เครื่องของเรา และก็ไม่เป็นเรื่องดีนัก ในเรื่องของ uptime, traffic รวมทั้งสมรรถภาพของเครื่องคอมพิวเตอร์
📣การใช้ Cloud Server เป็นทางเลือกที่น่าสนใจ หลายคนรวมทั้งผมด้วยก็ยังสองจิตสองใจว่าจะเริ่มต้นกับมันดีหรือไม่ คงจำได้ว่าผมเคยพูดถึงวิธีการติดตั้ง Nod-RED กับ Heroku พอตั้งใจว่าจะใช้ MQTT broker และ UDP นึกได้ว่าทำบน Node-RED ได้ จึงทำการสร้าง flow เพื่อติดตั้ง Mosca และเปิดใช้งาน UDP ผลลัพธ์ที่ต้องการคือ ให้ client สามารถเรียกใช้งาน ผลที่ได้ไม่เป็นตามความประสงค์ น่าจะเกิดจากการติดตั้ง Node-RED บน Heroku เป็นเพียง App หนึ่งเท่านั้น พอจะใช้งานการสื่อสารผ่าน port อื่นๆ ก็จะถูกจำกัด ทำให้ไม่สามารถสื่อสารได้ ก็พับเรื่องนี้บน Heroku ไป
📣คงต้องไปที่ Cloud Server แล้วหละไม่มีทางเลือก ก็จะมีผู้ให้บริการอยู่ทั้งในและต่างประเทศ เลือก DigitalOcean เป็นทางเลือกแรก เนื่องจากได้รับทราบข้อมูลมาพอสมควร ทั้งเรื่องการติดตั้งและราคาในช่วงทดลองก็ไม่สูงมาก เริ่มที่ 5 USD ต่อเดือน เพิ่ม 1 USD ต่อเดือนถ้าต้องการให้มี backup ด้วย ต่อเดือนก็ราวๆ 180 บาท ให้พื้นที่ 25 GB memory 1 GB และ Transfer 1 TB เหลือเฟือในช่วงการทดลองใช้
📣เช้านี้เข้าไปลงทะเบียน จากนั้นก็เข้าสร้าง Droplet ที่จะได้คือ IP ใช้งาน เหมือนมีคอมพิวเตอร์หนึ่งตัว จากนั้นก็ทำการติดตั้ง Ubuntu เป็น OS เรียบร้อยก็ติดตั้ง Node.js สุดท้ายที่ Node-RED ผ่าน Putty เริ่มใช้ node-red เปิด browser เข้าไปที่ IP:1880 ซึ่งก็จะเห็น Node-RED editor ทำการสร้าง flow เพื่อสร้างช่องทางให้ MQTT และ UDP server
🏆🎊ชั่วอึดใจ ก็ทำทดสอบทดลอง สุดยอดครับ ได้ผลลัพธ์ที่สมบูรณ์ตามต้องการ คือ มี MQTT Broker และมีช่องทาง UDP server ให้ NB-IoT ไว้รับส่งข้อมูล
🏣 DigitalOcean (5 USD / เดือน)
1GB memory, 25 GB SSD, 1 TB Transfer
🏤 Z.Com (400 บาท / เดือน)
1GB memory, 20 GB SSD, unlimited Transfer