ระบบติดตามรถบรรทุกขนส่งอาหารแช่แข็ง (An IoT-Based Tracking System for Refrigerated Food Transportation)

ผู้เขียนบทความ
นายพัสกร ปานเส้ง
คณะวิศวกรรมศาสตร์ สาขาวิศวกรรมคอมพิวเตอร์
วิชา : 04-513-201 การโปรแกรมคอมพิวเตอร์ขั้นสูง 1/2568

1. ความเป็นมา

ในยุคปัจจุบัน ระบบติดตามตำแหน่งด้วย GPS ได้ถูกนำมาใช้อย่างแพร่หลายในหลายอุตสาหกรรม ไม่ว่าจะเป็นอุตสาหกรรมความบันเทิง อุตสาหกรรมการท่องเที่ยว อุตสาหกรรมการขนส่งสินค้า รวมถึงอุตสาหกรรมอาหาร ซึ่งแสดงให้เห็นถึงความสำคัญของเทคโนโลยีในการติดตามและควบคุมการดำเนินงานต่าง ๆ อย่างมีประสิทธิภาพ แม้ว่าจะมีระบบติดตามจำหน่ายอยู่มากมายในท้องตลาด แต่ระบบติดตามที่มาพร้อมกับฟังก์ชันตรวจสอบอุณหภูมิของสินค้านั้นยังมีน้อยและแทบไม่มีการใช้งานอย่างแพร่หลาย การขาดระบบเช่นนี้ทำให้การควบคุมคุณภาพและความปลอดภัยของสินค้าที่ต้องรักษาอุณหภูมิเป็นไปได้ยากและเพิ่มความยุ่งยากในการตรวจสอบและบริหารจัดการ

ด้วยเหตุนี้ โครงการนี้จึงถูกพัฒนาขึ้นเพื่อรวมระบบติดตามตำแหน่ง GPS เข้ากับระบบวัดอุณหภูมิภายในตู้สินค้าหรือคอนเทนเนอร์ โดยมีวัตถุประสงค์เพื่อเพิ่มประสิทธิภาพในการบริหารจัดการโลจิสติกส์และการติดตามรถบรรทุก ลดความเสี่ยงของการสูญเสียสินค้า และเสริมสร้างความน่าเชื่อถือในการขนส่งอาหารอย่างมีประสิทธิภาพมากยิ่งขึ้น

2. วัตถุประสงค์

2.1 เพื่อพัฒนาระบบติดตามที่มีฟังชั่นวัดอุณหภูมิภายในตู้สินค้า

2.2 เพื่อพัฒนาระบบที่มีค่าใช้จ่ายตำ่

2.3 เพื่อพัฒนาระบบที่ยังคงประสิทธิภาพความเเม่นยำของอุปกรณ์เเม้ต้นทุนตำ่

3. ขอบเขต

3.1 สามารถแสดงผลค่าของเซนเซอร์ เเละ ตำเเหน่งบนเว็ปไซต์ได้
3.2 สามารถนำค่าของข้อมูลเเละตำเเหน่งไปเก็บในฐานข้อมูลได้
3.3 สามารถวัดอุณหภูมิภายในตู้สินค้าที่มีความชื้นสูงได้
3.4 สามารถบอกตำเเหน่งของรถเเบบเรียลไทม์ได้

4. ประโยชน์ที่คาดว่าจะได้รับ

4.1 ได้ฐานข้อมูลการติดตามและวัดอุณหภูมิสำหรับวิเคราะห์และปรับปรุง
4.2 เพิ่มความปลอดภัยและคุณภาพของสินค้าแช่แข็งระหว่างการขนส่ง
4.3 เพิ่มความปลอดภัยและคุณภาพของสินค้าแช่แข็งระหว่างการขนส่ง
4.4 เป็นแนวทางในการวิจัยและพัฒนาระบบ IoT ด้านการขนส่งในอนาคต

5. ความรู้ที่เกี่ยวข้อง

ความรู้ที่เกี่ยวข้องด้านฮาร์ดแวร์ Hardware

5.1 ESP 32-c6-lcd

ESP32-C6-LCD เป็นไมโครคอนโทรลเลอร์ที่มาพร้อม จอ LCD ขนาด 1.47 นิ้ว รองรับ Wi-Fi 6 และ Bluetooth 5 (LE) โดยมี Waveshare เป็นผู้จัดจำหน่าย ข้อดีของรุ่นนี้คือ ขนาดเล็ก, มีจอ LCD ในตัว และสามารถเพิ่มหน่วยความจำได้ แต่ข้อเสียหลักคือ หาก LCD เสีย การหาจอเปลี่ยนค่อนข้างยาก เเละ เนื่องจากจอเชื่อมติดกับขา IC เฉพาะ ทำให้ไม่สามารถเปลี่ยนขาได้เหมือนจอแยกทั่วไป

บอร์ดไมโครคอนโทรลเลอร์รุ่น ESP32-C6 1.47 Waveshare ที่ใช้ในการพัฒนาระบบ

ที่มา : https://www.waveshare.com/img/devkit/ESP32-C6-LCD-1.47/ESP32-C6-LCD-1.47-details-3-2.jpg

5.2 MAX31865 เเละ PT100

PT100 เป็นอุปกรณ์วัดอุณหภูมิชนิดตัวต้านทาน (RTD) ซึ่งค่าต้านทานของมันจะเพิ่มขึ้นเมื่ออุณหภูมิสูงขึ้น และลดลงเมื่ออุณหภูมิต่ำลง โดยมักใช้ร่วมกับ MAX31865 ซึ่งทำหน้าที่จ่ายกระแสให้กับ PT100 และแปลงค่ากระแสหรือแรงดันที่ได้จาก PT100 ให้เป็นค่าอุณหภูมิ

เซนเซอร์วัดอุณหภูมิ pt100

ที่มา : https://m.media-amazon.com/images/I/61K0Q8nPTJL.jpg

ตัวแปลงค่าต้านทานเป็นอุณหภูมิ MAX31865

ที่มา:https://cdn.shopify.com/s/files/1/0672/9409/products/max-3186.jpg?v=1593088917

Adafruit_MAX31865.h ไลบารี่

#include

ใช้สำหรับ รับค่าที่เเปลงเป็นอุณหภูมิเเล้วมาจาก MAX31865

5.3 GPS Neo-m7n

GPS Module NEO-7M เป็นโมดูลสำหรับรับสัญญาณดาวเทียม GPS เพื่อหาตำแหน่งบนโลก โมดูลนี้ใช้ชิป u-blox NEO-7M ซึ่งสามารถรับสัญญาณจากดาวเทียมหลายดวงพร้อมกัน ทำให้สามารถระบุตำแหน่งละติจูดและลองจิจูดได้อย่างแม่นยำ ประมาณ ±2.5 เมตรในสภาพปกติ โมดูลส่งข้อมูลตำแหน่งผ่านพอร์ต UART ในรูปแบบข้อความมาตรฐาน NMEA เช่น $GPGGA หรือ $GPRMC ซึ่งสามารถนำไปประมวลผลต่อเพื่อหาตำแหน่ง เวลา ความเร็ว หรือทิศทางการเดินทาง โมดูลนี้จึงมักถูกนำไปใช้ร่วมกับไมโครคอนโทรลเลอร์ เช่น Arduino หรือ ESP32 เพื่อติดตามตำแหน่งหรือสร้างระบบนำทางต่าง ๆ

โมดูลบอกตำแหน่ง GPS Neo7m

ที่มา:https://i0.wp.com/nauvitel.com/wp content/uploads/2023/11/neo7m-gps.webp?fit=750%2C750&ssl=1

TinyGPS++ เเละ HardwareSerial ไลบารี่

#include #include

ใช้สำหรับรับค่าข้อมูลมาจาก GPS Module หลังจากเชื่อมดาวเทียมสำเร็จ

5.4 BMP280

BMP280 เป็นเซนเซอร์วัดอุณหภูมิและความดันอากาศขนาดเล็ก ส่งข้อมูลผ่าน I2C หรือ SPI สามารถใช้วัดความสูงหรือสภาพอากาศได้อย่างแม่นยำและกินไฟต่ำ

อุปกรณ์วัดความกดอากาศและอุณหภูมิภายนอก BMP280

ที่มา : https://www.google.com/url?sa=i&url=https%3A%2F%2Fkitsguru.com%2Fproducts%2Fhttps-kitsguru-com-products-bme280-temperature-and-humidity-atmospheric-pressure-sensor-module%3Fsrsltid%3DAfmBOopIgZUrwVftKUsQBQ8fOEzdxY0dvChTsQgiSw9rpiRCjooOWHb2&psig=AOvVaw025Pq6WFNUTDYPSgIXmmpg&ust=1762003049277000&source=images&cd=vfe&opi=89978449&ved=0CBUQjRxqFwoTCOiGn4nDzpADFQAAAAAdAAAAABAE

Adafruit_BMP280 ไลบารี่

#include

ไลบารี่สำหรับ รับค่าความกดอากาศ เเละ อุณหภูมิมาจากเซนเซอร์

5.4 OLED 0.96

อุปกรณ์อิเล็กทรอนิกส์ที่ใช้สำหรับแสดงผลข้อมูลและสถานะการเชื่อมต่อกับเซิฟเวอร์

ความรู้ที่เกี่ยวข้องด้านซอฟต์แวร์ Software

5.4 Docker

แพลตฟอร์มที่ใช้สำหรับดึงเซอร์วิสต่าง ๆ ทำหน้าที่รวบรวมและจัดการข้อมูลจากเซนเซอร์หลายประเภท เช่น เซนเซอร์ติดตาม หรือเซนเซอร์วัดอุณหภูมิ ข้อมูลจะถูกส่งต่อไปยังส่วนประมวลผลและการแสดงผล เพื่อให้ผู้ใช้ติดตามสถานะและตั้งค่าการแจ้งเตือนได้แบบเรียลไทม์

Docker pc สำหรับดึงเซอร์ววิส

ที่มา : https://logos-world.net/wp-content/uploads/2021/02/Docker-Logo-2017-present.jpg

5.5 MQTT

เซอร์วิสโบรเกอร์ที่ดึงมาจาก Docker เพื่อใช้ในการรับและส่งข้อมูลไปยังแพรตฟอร์มต่างๆซึ่งมีประสิทธิภาพที่สูง

MOSQUITTO Broker สำหรับรับส่งข้อมูล

ที่มา : https://www.deos-ag.com/wp-content/uploads/logo-mqtt-ver.png

WiFiClientSecure.h เเละ PubSubClient.h ไลบารี่

#include #include

ใช้ WiFiClientSecure เพื่อเชื่อมต่อกับ HTTPS แบบปลอดภัย และใช้ PubSubClient สำหรับเชื่อมต่อผ่านโปรโตคอล MQTT

5.6 Node-red

เซอร์วิสที่ดึงลงมาจาก Docker เพื่อใช้สำหรับรับข้อมูลและทำการเก็บข้อมูลในฐานข้อมูลที่จัดทำขึ้นเพื่อเก็บเป็นสถิติ

เซอร์วิสสำหรับจัดการข้อมูล

ที่มา : https://upload.wikimedia.org/wikipedia/commons/2/2b/Node-red-icon.png

โค๊ดสำหรับดึง Service โดยใช้ไฟล์ compose

node_red: image: nodered/node-red volumes: – ./Data_service/Node_red/data:/data ports: – “1880:1880”

รูปบล็อก Node-RED สำหรับเก็บข้อมูลในฐานข้อมูล

5.6 Postgres SQL

เซอร์วิสที่ดึงลงมาจาก Docker เพื่อใช้เป็นที่สำหรับการเก็บข้อมูลในฐานข้อมูล

ฐานข้อมูล

ที่มา : https://www.somkiat.cc/wp-content/uploads/2021/10/postgresql-database.png

โค๊ดสำหรับดึง Service โดยใช้ไฟล์ compose

image: postgres volumes: – ./Data_service/postgres/save_Data:/var/lib/postgresql/data ports: – “5432:5432” environment: – POSTGRES_USER=admin – POSTGRES_PASSWORD=admin – POSTGRES_DB=mydb

You may also like...