วิธีการตั้งค่า IOT2050 เพื่อใช้กับ USB Wi-Fi Adapter 

ในบทความนี้เป็นการตั้งค่า IOT 2050 เพื่อใช้งานร่วมกับ USB Wi-Fi Adapter สำหรับเชื่อมต่อ Network แบบไร้สาย    การติดตั้งและตั้งค่า USB Wi–Fi Adapter  เนื่องจาก OS ของ IOT 2050 เป็น Linux Debian ซึ่งจะต้องตรวจสอบเรื่อง Driver ของอุปกรณ์ที่นำมาใช้งาน ในส่วนของ USB Wi–Fi Adapter ก็เช่นกัน ในบทความนี้จะเลือกใช้อุปกรณ์ยี่ห้อ EDIMAX รุ่น EW-7811UN ซึ่งทดสอบแล้วสามารถใช้งานกับ IOT2050 ได้         เริ่มจากทำการติดตั้งอุปกรณ์ USB Wi–Fi Adapter ที่ช่อง USB 1 บน IOT2050        เปิดโปรแกรม Putty แล้วทำการเชื่อมต่อกับ IOT2050              ใช้คำสั่ง iot2050setup เพื่อทำการตั้งค่า IOT2050          เมื่อเข้าหน้า Setup ให้เลือกที่หัวข้อ Networking          ไปที่ Activate a connection เพื่อเปิดการใช้งาน Network      ในหัวข้อ Wi–Fi ให้เลือกชื่อ SSID ของ Wi–Fi ที่ต้องการทำการเชื่อมต่อ          ระบุ Password ของ Wi–Fi ที่ต้องการทำการเชื่อมต่อแล้วเลือกที่ OK        รอซักครู่ระหว่างทำการเชื่อมต่อ …

Continue Reading

วิธีการติดตั้งและตั้งค่า Grafana บน IOT2050

  ในบทความนี้จะเป็นการติดตั้งและตั้งค่าซอฟต์แวร์ Grafana บน IOT2050 เพื่อใช้เป็น Dashboard สำหรับแสดงผลค่าที่บันทึกไว้ในรูปแบบต่างๆ    การติดตั้ง Grafana    เริ่มต้นจากเชื่อมต่อให้ IOT2050 ใช้ internet ได้และเปิดโปรแกรม Putty แล้วทำการเชื่อมต่อกับ IOT2050     เปิด web browser (เช่น Google Chrome) ขึ้นมาแล้วพิมพ์ url ไปยังhttps://grafana.com/grafana/download?platform=arm        ทำการ copy คำสั่งในช่อง “Ubuntu and Debian (ARM64)”        ทำการวางคำสั่งที่ copy มาจากเวบโดยการคลิกขวาในหน้า putty terminal แล้วคลิกที่ปุ่ม Enter จากนั้นรอจนกระทั่งติดตั้งสำเร็จ        พิมพ์คำสั่ง sudo systemctl daemon-reload เพื่อทำการ reload system       พิมพ์คำสั่ง sudo systemctl start grafana-server เพื่อสั่งใช้งาน Grafana        พิมพ์คำสั่ง sudo systemctl status grafana-server เพื่อตรวจสอบสถานะของ Grafana ถ้าขึ้น running แสดงว่าใช้งานได้      กดปุ่ม Ctrl + c เพื่อออกจากการตรวจสอบ Status แล้วพิมพ์คำสั่ง sudo systemctl enable grafana-server.service เพื่อเปิดใช้งาน Grafana server service        การตั้งค่า Dashboard บน Grafana    เริ่มต้นจากติดตั้งและตั้งค่า InfluxDB บน IOT2050 (รายละเอียดเพิ่มเติมดูได้จากหัวข้อ “วิธีการติดตั้งและตั้งค่า InfluxDB บน IOT2050”)    ทำการเปิด web browser ขึ้นมาแล้วพิมพ์ IP Address ของ IOT2050 แล้วตามด้วย  :3000 เช่น 192.168.111.90:3000         …

Continue Reading

วิธีการติดตั้งและตั้งค่า InfluxDB บน IOT2050 

  ในบทความนี้จะเป็นการติดตั้งและตั้งค่าซอฟต์แวร์ InfluxDB บน IOT2050 เพื่อใช้ในเป็นฐานข้อมูลในการบันทึกค่าต่างๆ    การติดตั้ง InfluxDB  เริ่มต้นจากเชื่อมต่อให้ IOT2050 ใช้ internet ได้และเปิดโปรแกรม Putty แล้วทำการเชื่อมต่อกับ IOT2050 จากนั้นพิมพ์คำสั่ง sudo apt update (ทุกคำสั่งเมื่อพิมพ์เสร็จให้กดปุ่ม Enter) เพื่อตรวจสอบการอัพเดท         ต่อไปให้พิมพ์คำสั่ง sudo apt install -y gnupg2 curl wget        ตามด้วยคำสั่ง wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add –  echo “deb https://repos.influxdata.com/debian buster stable” | sudo tee /etc/apt/sources.list.d/influxdb.list        หลังจากนั้นให้พิมพ์คำสั่ง sudo apt update เพื่อตรวจสอบการ update อีกครั้งหนึ่ง            พิมพ์คำสั่ง sudo systemctl enable –now influxdb เพื่อเปิดใช้งาน service influxdb        พิมพ์คำสั่ง sudo systemctl status influxdb เพื่อตรวจสอบสถานะของ service influxdb       จะพบว่าสถานะการทำงานของ InfluxDB ได้เริ่มทำงาน (running) แล้ว      จากนั้นกดปุ่ม Ctrl + C เพื่อออกจากคำสั่ง status    การใช้งาน influxdb เบื้องต้น …

Continue Reading

11 จุดเด่นที่คนทำระบบ IOT ไม่ควรพลาด!

: : รุ่นใหม่ล่าสุด!! จาก SIEMENS  ออกแบบมาสำหรับงาน Industrial IoT โดยเฉพาะ ตอบโจทย์งานได้หลากหลาย Application ซึ่งในบทความนี้จะมาพูดถึงจุดเด่นที่ผู้ใช้งานควรรู้เกี่ยวกับอุปกรณ์ตัวนี้     ระบบปฏิบัติการ SIMATIC Industrial OS   SIMATIC Industrial OS เป็นระบบปฏิบัติการที่มีพื้นฐานจาก Linux Debian ที่สร้างขึ้นมาเพื่อการใช้งานในงานเกี่ยวกับอุตสาหกรรมโดยเฉพาะ โดยที่จะมีแต่ฟีเจอร์ที่จำเป็นต้องใช้เท่านั้น จึงมีขนาดเล็ก สามารถนำไปใช้งานได้อย่างรวดเร็ว และพัฒนาต่อได้ง่าย คุณลักษณะเด่น – ระบบปฏิบัติการมีขนาดเล็ก – สามารถทำงานแบบ real-time ได้ เนื่องจากมี “PREEMPT RT patch” – ติดตั้งได้ง่ายและรวดเร็ว โดยสามารถใช้ USB Flash Drive ในการติดตั้งได้ พร้อมสำหรับการติดตั้ง Component เพิ่มเติม เช่น Gnome desktop environment…

Continue Reading

วิธีการตั้งค่า Modbus Server บน Node-RED 

ในบทความนี้จะเป็นการตั้งค่าให้ Node-RED เป็น Modbus Server  เพื่อให้อุปกรณ์อื่นเป็น Modbus Client (ฝั่งที่เขียน-อ่านข้อมูล) เพื่อเชื่อมต่อดึงค่า และเขียนค่าไปยัง Node-RED (ฝั่งที่เก็บข้อมูล)    เริ่มต้นจากเปิดหน้าเว็บ Node-RED หากยังไม่มี Node ของ Modbus ให้ทำการดาวน์โหลดและติดตั้ง Modbus Node ก่อน (รายละเอียดเพิ่มเติมดูได้จากหัวข้อ “วิธีการเชื่อมต่อกับโปรโตคอล Modbus/RTU โดยใช้ Node-RED”)    การตั้งค่า Node-RED เพื่อเป็น Modbus Server  ในบทความนี้ได้จะให้ Node-Red เป็น Modbus Server โดยใช้ Port 10502 โดยให้เขียนนค่าที่ Address 40001 และอ่านค่าที่รับจากภายนอกด้วย Address 40002 ซึ่งมีชนิดของข้อมูลเป็น 16-bit     เริ่มจากลาก Node “Modbus Server” มาใช้ และตั้งค่าเพิ่มเติมดังนี้  Name: ตั้งชื่อ Modbus Server (ในตัวอย่างใช้ Test)  Hostname: ระบุเป็น IP Address ของเครื่องที่ติดตั้ง Node-RED เป็น Modbus Server  Port: เลือกเป็น 502         เมื่อใส่ข้อมูลเสร็จแล้วให้คลิกที่ปุ่ม Done      การอ่านค่าบน Modbus Server  การอ่านค่าบน Modbus Server จะใช้ node Modbus Write เพื่อเขียนค่าไปยัง Holding Register 40001 บน Node-RED แล้วใช้ Modbus Scanner อ่านค่าจาก Modbus Server  เริ่มจากลาก node Inject และ node Modbus Write ดังรูป        ที่ node Inject ตั้งค่าดังนี้และคลิก Done  Payload เลือกเป็น number แล้วระบุค่าตัวเลขลงไปเพื่อทดสอบการเขียนค่า   …

Continue Reading

วิธีการเชื่อมต่อกับโปรโตคอล Modbus/TCP โดยใช้ Node-RED 

Modbus/TCP เป็นโปรโตคอลที่ใช้กันแพร่หลายในหลายๆอุปกรณ์ ผู้ใช้สามารถเชื่อมต่อให้ดึงข้อมูลจากอุปกรณ์ หรือเขียนค่าไปยังอุปกรณ์ได้ โดยมีข้อมูลทั้งแบบเป็นค่า Discrete (0, 1) และค่าตัวเลข 16-bit ส่วนของค่าตัวเลขนั้นสามารถนำไปคำนวณเป็นข้อมูลชนิดต่างๆได้ เช่น จำนวนเต็ม จำนวนติดลบ จำนวนทศนิยม หรือตัวอักษร (ASCII)   ในบทความนี้จะเป็นการเชื่อมต่อดึงค่า และเขียนค่าไปยัง Modbus Server (ฝั่งที่เก็บข้อมูล) โดยที่ให้ Node-RED เป็น Modbus Client (ฝั่งที่เขียน-อ่านข้อมูล)     เริ่มต้นจากเปิดหน้าเว็บ Node-RED หากยังไม่มี Node ของ Modbus ให้ทำการดาวน์โหลดและติดตั้ง Modbus Node ก่อน โดยเลือก Manage palette ตามในภาพด้านล่าง        เลือกแท็บ Install เลือกค้นหาคำว่า modbus และกด Install “node-red-contrib–modbus” จากนั้นจึงกด Install อีกครั้งเมื่อมีการถามยืนยัน          เมื่อติดตั้งเสร็จเรียบร้อยจะมีข้อความขึ้นตามด้านล่างนี้ และด้านซ้ายจะมี Node ของ Modbus เพิ่มเข้ามา          การอ่านและเขียนค่าตัวเลข  ในบทความนี้จะเชื่อมต่อกับ Modbus Simulator ชื่อ ModSim โดยได้ตั้งค่าให้ Device ID = 1 ส่วน Address  เริ่มตั้งแต่ 40001 ถึง 40002 และใช้ Function Code (FC) = 03 (Holding Register) และชนิดของข้อมูลเป็น 16-bit unsigned integer  Function Code (FC) ทั้ง 4 แบบแตกต่างกันดังนี้  01: Coil Status= ค่า 0 หรือ 1, Read/Write, Address เริ่มต้นด้วย 0 …

Continue Reading

วิธีการเชื่อมต่อกับโปรโตคอล Modbus/RTU โดยใช้ Node-RED

Modbus/RTU เป็นโปรโตคอลที่ติดต่อกับอุปกรณ์โดยใช้พอร์ต Serial (RS-485)  สามารถเชื่อมต่อแบบอนุกรมได้มากสุด 32 อุปกรณ์ต่อพอร์ต ผู้ใช้สามารถเชื่อมต่อให้ดึงข้อมูลจากอุปกรณ์ หรือเขียนค่าไปยังอุปกรณ์ได้ โดยมีข้อมูลทั้งแบบเป็นค่า Discrete (0, 1) และค่าตัวเลข 16-bit ส่วนของค่าตัวเลขนั้นสามารถนำไปคำนวณเป็นข้อมูลชนิดต่างๆได้ เช่น จำนวนเต็ม จำนวนติดลบ จำนวนทศนิยม หรือตัวอักษร (ASCII)     ในบทความนี้จะเป็นการเชื่อมต่อดึงค่า และเขียนค่าไปยัง Modbus Server (ฝั่งที่เก็บข้อมูล)  โดยที่ให้ Node-RED เป็น Modbus Client (ฝั่งที่เขียน-อ่านข้อมูล)    เริ่มต้นจากเปิดหน้าเว็บ Node-RED หากยังไม่มี Node ของ Modbus  ให้ทำการดาวน์โหลดและติดตั้ง Modbus Node ก่อน   โดยเลือก Manage palette ตามในภาพด้านล่าง      เลือกแท็บ Install เลือกค้นหาคำว่า modbus และกด Install “node-red-contrib–modbus” จากนั้นจึงกด Install อีกครั้งเมื่อมีการถามยืนยัน     เมื่อติดตั้งเสร็จเรียบร้อยจะมีข้อความขึ้นตามด้านล่างนี้ และด้านซ้ายจะมี Node ของ Modbus เพิ่มเข้ามา      การอ่านค่าจากอุปกรณ์ Modbus/RTU  ในบทความนี้ได้มีการเชื่อมต่ออุปกรณ์ที่ติดต่อโดย Modbus/RTU จำนวน 4 ตัว  โดยได้ตั้งค่าให้ Device ID เป็น 1, 2, 3, 5 ส่วน Address เริ่มตั้งแต่ 40001 ถึง 40008  และใช้ Function Code (FC) = 03 (Holding Register) และชนิดของข้อมูลเป็น 16-bit  (รายละเอียดเพิ่มเติมดูได้จากหัวข้อ “วิธีการเชื่อมต่อกับโปรโตคอล Modbus/TCP โดยใช้ Node-RED”)    เริ่มจากลาก Node…

Continue Reading

วิธีการเปิดหน้า Web Browser อัตโนมัติบน Debian (ของอุปกรณ์ IOT2050) 

  เนื่องจาก IOT2050 มี Display Port มาให้ และภายในเป็น Debian Linux เราสามารถต่อจอเข้า Display Port และสร้าง GUI  หรือเปิด Web Browser บนตัว IOT2050 ได้เลย เพราะฉะนั้นจึงสามารถทำเป็น Local Display ดูสถานะ หรือดู Dashboard ในงานที่ตัวเครื่องรับไหวได้    ก่อนอื่นเริ่มจากลงโปรแกรมสำหรับ GUI และ Log-in    โปรแกรมที่ติดตั้งมีดังนี้  xorgDisplay server  openboxwindow manager  lightdmlog-in  iceweasel Web Browser ของ Mozilla Firefox    หลังจากนั้นจึงทำการสร้าง user ใหม่ สำหรับให้ log-in อัตโนมัติเมื่อเปิดเครื่องและเข้า lightdm ในที่นี้ตั้งชื่อว่า kiosk      ตั้งค่าใน lightdm.conf ให้ log-in user เป็น kiosk และ และไปเชื่อมต่อกับ openbox แก้ไขไฟล์โดยคำสั่ง nano ตามด้านล่างนี้    ตั้งค่าที่บรรทัดต่อไปนี้ autologin-user=kiosk และ user-session=openbox และเอา # (comment) ที่ด้านหน้าออก        หากลอง reboot ดูในขั้นตอนนี้จะพบว่ามีเมาส์ปรากฎขึ้นมา แสดงว่าสามารถ Log-in อัตโนมัติและเข้าใปใน openbox ได้แล้ว  ต่อมาจึงตั้งค่าให้เปิด Web Browser เมื่อ Startup โดยสร้างโฟลเดอร์ของ openbox ไว้ใน .config ของ user kiosk โดยใช้คำสั่ง    สร้างไฟล์ autostart ในโฟลเดอร์นี้ ซึ่งไฟล์นี้จะทำงานเมื่อ openbox เปิดขึ้นมา    ใส่คำสั่งในไฟล์ตามด้านล่างนี้  บรรทัดที่ 1 เป็นการ copy ไฟล์จาก /home/kiosk/xulstore.json (จะสร้างขึ้นมาในขั้นตอนถัดไป)  ไปยัง /home/kiosk/.mozilla/firefox/xxxxxxxx.default-esr/xulstore.json เพื่อให้ Web Browser เปิดแบบ fullscreen  (xxxxxxxx ตอนที่ติดตั้งแต่ละครั้งจะไม่เหมือนกัน ต้องเข้าไปดูในโฟล์เดอร์ /home/kiosk/.mozilla/firefox ก่อน)  บรรทัดที่ 2 sleep 30 เป็นคำสั่งให้ delay เป็นเวลา 30 วินาที ก่อนที่จะเปิด Web Browser …

Continue Reading

การให้โปรแกรมทำงานเมื่อเปิดใช้งานอุปกรณ์ IOT2050 ในรูปแบบของ Service

การให้โปรแกรมทำงานเมื่อเปิดใช้งานอุปกรณ์ IOT2050 ในรูปแบบของ Service    ขั้นตอนมีดังนี้ เมื่อเปิดอุปกรณ์ สามารถสร้าง service ให้โปรแกรมทำงานขึ้นเองได้ โดยมีขั้นตอนดังนี้  สร้างไฟล์โดยใช้คำสั่ง nano ในโฟลเดอร์ /etc/systemd/system/ ส่วนชื่อไฟล์ให้ตามด้วย .service    ภายในไฟล์ ใส่ข้อความตามด้านล่างนี้ โดยที่แก้ไขการตั้งค่าดังนี้ (ดูตั้งค่าอื่นๆเพิ่มเติมได้จากใน reference)  Description ใส่ข้อความอธิบายเกี่ยวกับ Service นี้  WorkingDirectoryโฟลเดอร์ของโปรแกรมที่จะเรียก  ExecStartคำสั่ง (command with arguments) ที่ต้องการให้ทำงานเมื่อ Service นี้เริ่มต้น   เช่น ในตัวอย่างเป็นการรัน WDConnection_Core.dll โดยใช้คำสั่งชื่อ dotnet  Restartให้ restart service เสมอ เมื่อโปรเซสหยุดทำงาน  RestartSecช่วงเวลาเป็นวินาทีก่อนที่จะ restart service  SyslogIdentifierชื่อสำหรับเก็บ System Log  Userบัญชีผู้ใช้ที่จะรันโปรแกรม      เมื่อแก้ไขเสร็จเรียบร้อย กด Ctrl+O เพื่อบันทึก และกด Enter เพื่อยืนยันการบันทึก หลังจากนั้นจึงกด Ctrl+X เพื่อออกจาก nano  ส่วนของไฟล์ที่จะให้ทำงานเป็น service นั้น ให้แก้ไขตั้งค่า File Permission เป็น executable โดยใช้คำสั่ง chmod +x ตามด้วยชื่อไฟล์ เช่น      พิมพ์คำสั่ง systemctl enable และตามด้วยชื่อ service ที่ตั้งไว้ตอนแรก เพื่อเปิดการใช้งาน เช่น      สั่งให้ server เริ่มทำงานโดยคำสั่ง systemctl start และตามด้วยชื่อ service      ดูสถานะการทำงานของ server โดยพิมพ์ systemctl status และตามด้วยชื่อ service       หากทำงานปกติจะขึ้นว่า Active (running) ดังในภาพด้านล่าง (กด Ctrl+C เพื่อออกจากหน้า status)      หากต้องการหยุด service สามารถใช้คำสั่ง systemctl stop และตามด้วยชื่อ service ได้      หลังจากนั้นจึงลอง reboot อุปกรณ์ เพื่อทดสอบว่าโปรแกรมจะทำงานเองหรือไม่ตอนเปิดขึ้นมาใหม่ โดยใช้คำสั่ง reboot และรอซักครู่หนึ่งก่อนที่จะติดต่อด้วย Putty เข้ามา แล้วเรียกดู status อีกครั้ง เพื่อยืนยันว่าโปรแกรมกำลังทำงานอยู่ …

Continue Reading