การใช้งาน IOT2040 นั้น จำเป็นต้องมีการเก็บ Boot Image เอาไว้ที่ Micro SD card ด้วย และการตั้งค่าต่างๆนั้น ก็จะเป็นการตั้งค่าด้วยคำสั่งของ linux เป็นหลัก ดังนั้นเราจึงต้องมีโปรแกรมเฉพาะบางตัวในการใช้งาน IOT2040 ได้อย่างสมบูรณ์ ซึ่งจะได้กล่าวถึงในบทความนี้นั่นเอง
Hardware
• IOT2040
• Micro SD card : สำหรับเก็บ Image (max. 32GB)
• Computer : เพื่อใช้ในการตั้งค่าและโปรแกรม
• Power supply : ไฟเลี้ยงตั้งแต่ 9 – 36 VDC
Software
• Win32 Disk Imager : สามารถ download ได้ที่นี่
• PuTTY : สามารถ download ได้ที่นี่
• Image file : สามารถ download ได้ที่นี่
• WinSCP : สามารถ download ได้ที่นี่
1. ติดตั้งโปรแกรม Win32 Disk Imager
2. Download Image file จากเวปของ Siemens
3. นำ Micro SD card ใส่ในคอมพิวเตอร์
4. เปิดโปรแกรม Win32 Disk Imager แล้วเปิดไฟล์ Image ที่เราโหลดมาได้ (ตัวอย่างในรูปเป็น Image file version เก่า 2.1.3)
5. ในส่วนของ Device ให้เลือก drive ที่เป็น drive ของ Micro SD card ของเรา แล้วกด Write
ระวัง !!! ตรวจสอบให้แน่ใจว่าในส่วนของ Device เป็น Drive ของ Micro SD card จริงๆ หากเขียนผิดไปลงอุปกรณ์อื่นเช่น External HDD จะทำให้ข้อมูลในนั้นหายไปทั้งหมด
6. รอจนกว่าจะทำการ Write image เสร็จเรียบร้อย
7. จากนั้นให้ถอด Micro SD card จากคอมพิวเตอร์ มาใส่ในตัว IOT2040 แล้วเปิดไฟ
8. รอจนกว่าจะบูทเสร็จ ประมาณ 30 วินาที (หรือแล้วแต่ความเร็วของ Micro SD Card) ระหว่างกำลังบูทไฟ SD จะติดกะพริบ แต่ถ้าบูทเรียบร้อยแล้วจะมีแต่ไฟ PWR และ USB ที่ติดค้างเท่านั้น
เพียงเท่านี้ เราก็พร้อมที่จะทำการพัฒนาโปรแกรมต่างๆด้วย IOT2040 กันแล้ว ไม่ว่าจะเป็น Arduino Sketch หรือ Node-red เป็นต้น
การตั้งค่าใดๆเกี่ยวกับ IOT2040 เราจะใช้พอร์ท X1P1 เป็นหลัก
1. ด้วยสภาพตั้งต้นนั้น IP address ของ IOT2040 จะถูกตั้งมาให้ที่ 192.168.200.1 ดังนั้นในการตั้งค่าให้กับ IOT2040 ในครั้งแรก เราควรเปลี่ยน IP address ของคอมพิวเตอร์เราให้อยู่ในวงแลน 192.168.200.xx เช่นเดียวกัน
2. เชื่อมต่อสายแลนระหว่างคอมพิวเตอร์กับ IOT2040 โดยต้องไปต่อกับพอร์ท X1P1 เท่านั้น
3. เปิดโปรแกรม PuTTY แล้วใส่ IP address 192.168.200.1 ลงไป เลือก Port = 22 แล้วตั้ง Connection type = SSH จากนั้นให้กดปุ่ม Open
ข้อความที่ขึ้นเตือนมาครั้งแรก ให้กด Yes ผ่านไปได้เลย
4. จากนั้นจะขึ้นหน้าต่างให้เรา login ให้เรา login ด้วยชื่อ “root”
5. พิมพ์ “cd /”
พิมพ์ “cd etc/network”
พิมพ์ “nano interfaces”
จะขึ้นหน้าที่ใช้ตั้ง IP address ขึ้นมาให้เรา สังเกตว่าจะมี Ethernet port 2 อันคือ eth0 และ eth1 ซึ่ง eth0 ก็คือพอร์ท X1P1 นั่นเอง (ส่วน eth1 ตั้งเป็น DHCP เหมือนเดิมดีแล้ว เพราะควรเอาไว้ใช้ต่อ internet)
6. เมื่อเราเปลี่ยน IP address ตามต้องการแล้ว ก็ให้กดปุ่ม “Ctrl + X” เพื่อออกจากการตั้งค่า (สำหรับผู้ที่ไม่คุ้นเคยให้มองหน้านี้เป็นเหมือน Notepad เราสามารถใช้แป้นพิมพ์บน Keyboard กดเลื่อนขึ้นลง ลบ หรือ Enter ได้เหมือน Notepad เลย)
โปรแกรมจะถามว่าต้องการเปลี่ยนแปลงหรือไม่ ขั้นตอนนี้พิมพ์ “Y”
โปรแกรมจะแจ้งไฟล์ที่จะเขียนทับ ขั้นตอนนี้ให้กดปุ่ม Enter ผ่านไปเลย
7. จากนั้นโปรแกรมจะออกมาที่หน้าหลักเหมือนเดิม ให้เราพิมพ์ “Exit” เพื่อออกจากการใช้งาน PuTTY แล้วทำการ reboot IOT2040 (หรือจะพิมพ์คำว่า “reboot” ไปเลยก็ได้เช่นกัน) หลังจากนั้นเมื่อ IOT2040 ทำการบูทใหม่ ก็จะใช้ IP address ตัวใหม่ที่เราตั้งค่าแล้ว
8. ซึ่งเราสามารถทดสอบด้วยการใช้คำสั่ง ping ดูว่าเราสามารถ ping เจอ IP ตัวใหม่ของ IOT2040 หรือไม่ (อย่าลืมเปลี่ยน IP ของคอมพิวเตอร์ให้เป็นวงแลนใหม่ด้วย และอย่าลืมรอจนกว่า IOT2040 จะบูทเสร็จก่อน)
1. Login เข้าไปที่ IOT2040 ด้วย PuTTY
2. การตั้งวันเวลานั้น ให้พิมพ์คำสั่งรูปแบบดังนี้คือ “date MMDDhhmmYYYY” เข้าไปเช่น “date 030407442018” จะเป็นการตั้งวันที่ 6 เดือน 3 เวลา 7:44 ปี 2018 เป็นต้น
จากนั้นพิมพ์ “hwclock –systohc –utc” เพื่อตั้งเวลาให้กับ hardware
หากต้องการตรวจสอบวันเวลา ให้พิมพ์คำว่า “date” ลงไปเท่านั้น
สังเกตว่าวันเวลาที่ตั้งนี้ เป็นวันเวลาของ ZONE +0 นั่นคือสำหรับประเทศไทยที่เป็น ZONE +7 ชม. นั้น ถ้าอยากตั้งเวลาให้ลบออกไป 7 ชม. ก่อน แล้วค่อยใช้เวลานั้นไปตั้งใน IOT2040 เช่นตอนเวลาในประเทศไทยเป็น 14:00 ก็ให้ตั้งเวลาเป็น 7:00 ใส่ใน IOT2040 นั่นเอง
เมื่อเราปิดแล้วเปิดไฟ IOT2040 ใหม่ วันเวลาดังกล่าวที่ตั้งเอาไว้ก็จะไม่หายไป
ตัวอย่างในการตั้งเวลาก่อนหน้านี้ เป็นการตั้งเวลาด้วย UTC time คืออ้างอิงที่เวลาของ zone +0 เป็นหลัก ดังนั้นเวลาตั้งเวลาเราต้องลบ 7 ชม.ด้วย แต่หากกรณีที่ต้องการตั้งเวลาด้วย local time เลยให้ทำดังต่อไปนี้
• “ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime” (วิธีตรวจสอบ time zone จะกล่าวอีกที)
• “date MMDDhhmmYYYY” (แทนที่ MMDDhhmmYYYY ด้วย LOCAL time ได้เลย)
• “hwclock –systohc” (เขียนเวลาลง hardware)
ผลที่ได้จากการตั้งเวลาจะเป็นดังรูป (สังเกตว่าพอทดสอบด้วยคำสั่ง hwclock จะได้เวลาที่เป็น local time อยู่ ซึ่งจริงๆแล้วไม่ถูกต้องเพราะ hardware ของ linux จะอ้างอิงที่ UTC เสมอ)
แต่หากลอง reboot อุปกรณ์ใหม่ก็จะพบว่า hwclock จะกลับเป็น UTC เหมือนเดิมแล้ว และคำสั่ง date จะแสดง local time แทน
เราสามารถตรวจสอบ time zone ได้จาก folder “/usr/share/zoneinfo”
กรณีที่อยากให้ IOT2040 ไป sync
• “ntpd -q -g” (IOT2040 ต้องต่อ internet ให้ได้ด้วย)
• “ln -sf /usr/share/zoneinfo/Asia/Bangkok /etc/localtime”
• “hwclock –systohc”
แสดงได้ดังตัวอย่าง
และเมื่อ reboot IOT2040 ใหม่ ก็จะได้เวลา local time ที่ทำการ sync กับ NTP server อัตโนมัติ (สังเกตว่าไม่ว่าอย่างไรก็ตาม hwclock จะเป็นเวลา UTC เสมอ)
จากการทดสอบพบว่า
• ด้วย image V2.2.0 เป็นต้นไป เราไม่ต้องตั้งค่าอะไรกับ NTP เลยเพราะจะทำการ sync เวลาให้เองอัตโนมัติเมื่อ IOT2040 เชื่อมต่อกับ internet.
• Node-red จะใช้เวลาของ local time เมื่อเรามีการใช้งาน node ที่เกี่ยวข้องกับวันเเวลา (แต่ response จะยังเป็น UTC อยู่)
ข้อมูลอ้างอิง
https://support.industry.siemens.com/tf/ww/en/posts/how-to-modify-the-iot2000-system-time/168432/?page=0&pageSize=10
![]() |
![]() |
![]() |