it

cách sử dụng cân điện tử tính tiền

cách sử dụng cân điện tử tính tiền

เครื่องชั่งดิจิทัลคิดเงิน — ระบบ POS สำหรับร้านค้า

cách sử dụng cân điện tử tính tiền

เครื่องชั่งดิจิทัลคิดเงิน (Electronic Price Computing Scale) เป็นอุปกรณ์ที่รวมฟังก์ชันการชั่งน้ำหนักและคำนวณราคาสินค้าอัตโนมัติ ใช้กันแพร่หลายในตลาดสด ร้านผลไม้ ร้านอาหาร และร้านค้าปลีก เครื่องชั่งรุ่นใหม่สามารถเชื่อมต่อกับระบบ POS (Point of Sale) พิมพ์ใบเสร็จ และส่งข้อมูลยอดขายไปยังระบบหลังบ้านได้แบบ real-time บทความนี้อธิบายวิธีใช้งาน ประเภทเครื่องชั่ง การเชื่อมต่อกับระบบ IT และการพัฒนาซอฟต์แวร์สำหรับเครื่องชั่งดิจิทัล

ประเภทเครื่องชั่งดิจิทัล

# scale_types.py — Digital scale types

import json



class DigitalScaleTypes:

    TYPES = {

        "price_computing": {

            "name": "เครื่องชั่งคิดราคา (Price Computing Scale)",

            "function": "ชั่งน้ำหนัก + คำนวณราคาอัตโนมัติ (น้ำหนัก × ราคา/กก.)",

            "use": "ตลาดสด ร้านผลไม้ ร้านขายเนื้อ",

            "price": "2,000-15,000 บาท",

            "features": ["หน้าจอ LED/LCD", "ปุ่มตั้งราคาสินค้า", "พิมพ์สติกเกอร์ราคา"],

        },

        "counting": {

            "name": "เครื่องชั่งนับจำนวน (Counting Scale)",

            "function": "ชั่งน้ำหนักรวม + คำนวณจำนวนชิ้น",

            "use": "โรงงาน คลังสินค้า ร้านขายส่ง",

            "price": "3,000-20,000 บาท",

            "features": ["นับชิ้นงาน", "ตั้ง unit weight", "เชื่อมต่อ RS232"],

        },

        "pos_integrated": {

            "name": "เครื่องชั่ง POS (POS Integrated Scale)",

            "function": "เชื่อมต่อระบบ POS + barcode + receipt printer",

            "use": "ซูเปอร์มาร์เก็ต ร้านสะดวกซื้อ",

            "price": "15,000-80,000 บาท",

            "features": ["Label printer", "Barcode scanner", "Ethernet/WiFi", "Touch screen"],

        },

        "bench": {

            "name": "เครื่องชั่งตั้งโต๊ะ (Bench Scale)",

            "function": "ชั่งน้ำหนักทั่วไป ความแม่นยำสูง",

            "use": "ห้องปฏิบัติการ ร้านทอง ร้านยา",

            "price": "1,500-50,000 บาท",

            "features": ["ความละเอียดสูง (0.01g-0.1g)", "Calibration", "RS232/USB"],

        },

    }



    def show_types(self):

        print("=== Digital Scale Types ===\n")

        for key, scale in self.TYPES.items():

            print(f"[{scale['name']}]")

            print(f"  Function: {scale['function']}")

            print(f"  Use: {scale['use']}")

            print(f"  Price: {scale['price']}")

            print()



scales = DigitalScaleTypes()

scales.show_types()

วิธีใช้งานเครื่องชั่งคิดราคา

# usage.py — How to use price computing scale

import json



class ScaleUsage:

    BASIC_STEPS = {

        "step1": {"name": "1. เปิดเครื่อง", "detail": "กด ON/OFF รอหน้าจอแสดง 0.000 kg"},

        "step2": {"name": "2. ตั้งค่าหน่วย", "detail": "เลือก kg หรือ g (กด UNIT)"},

        "step3": {"name": "3. Tare (หักน้ำหนักภาชนะ)", "detail": "วางภาชนะ → กด TARE → หน้าจอกลับ 0"},

        "step4": {"name": "4. ตั้งราคาต่อ kg", "detail": "กดตัวเลขราคา เช่น 120 = 120 บาท/kg"},

        "step5": {"name": "5. วางสินค้า", "detail": "วางสินค้าบนถาด → เครื่องแสดง น้ำหนัก + ราคา"},

        "step6": {"name": "6. บันทึก/สะสม", "detail": "กด M+ (Memory Plus) เพื่อสะสมหลายรายการ"},

        "step7": {"name": "7. ยอดรวม", "detail": "กด TOTAL เพื่อดูยอดรวมทั้งหมด → เก็บเงิน"},

        "step8": {"name": "8. เคลียร์", "detail": "กด C/CE เพื่อเริ่มรอบใหม่"},

    }



    TIPS = [

        "วาง scale บนพื้นราบ เสมอกัน — ไม่เอียง",

        "Calibrate ทุก 3-6 เดือน ด้วยน้ำหนักมาตรฐาน",

        "อย่าวางของเกิน Max capacity (overload = เสีย)",

        "ทำความสะอาดถาดชั่งทุกวัน",

        "ตรวจสอบ Tare ก่อนชั่งทุกครั้ง",

        "เก็บรักษาที่แห้ง ไม่โดนน้ำ (ยกเว้นรุ่น IP65 waterproof)",

    ]



    PRICE_MEMORY = """

    Price Memory (PLU — Price Look Up):

    

    ปุ่ม M1-M99: บันทึกราคาสินค้าล่วงหน้า

    

    ตั้งค่า:

    1. กด SET → M1 → ใส่ราคา 120 → ENTER

    2. กด SET → M2 → ใส่ราคา 85 → ENTER

    

    ใช้งาน:

    - วางสินค้า → กด M1 → แสดงราคาอัตโนมัติ

    - ไม่ต้องกดราคาทุกครั้ง → เร็วขึ้น ลดผิดพลาด

    

    ตัวอย่าง:

    M1 = มะม่วง 120 บาท/kg

    M2 = ส้ม 85 บาท/kg

    M3 = แต่งโม 35 บาท/kg

    """



    def show_steps(self):

        print("=== Basic Usage Steps ===\n")

        for key, step in self.BASIC_STEPS.items():

            print(f"[{step['name']}]")

            print(f"  {step['detail']}")



    def show_tips(self):

        print(f"\n=== Tips ===")

        for tip in self.TIPS[:5]:

            print(f"  • {tip}")



    def show_plu(self):

        print(f"\n=== PLU Memory ===")

        print(self.PRICE_MEMORY)



usage = ScaleUsage()

usage.show_steps()

usage.show_tips()

usage.show_plu()

เชื่อมต่อระบบ POS

cách sử dụng cân điện tử tính tiền
# pos_integration.py — POS system integration

import json



class POSIntegration:

    PROTOCOLS = {

        "rs232": {

            "name": "RS-232 (Serial Port)",

            "description": "การเชื่อมต่อแบบ serial ผ่านสาย COM port",

            "speed": "9600-115200 baud",

            "use": "เครื่องชั่งรุ่นเก่า ระบบ legacy",

        },

        "usb": {

            "name": "USB (HID / Serial)",

            "description": "เชื่อมต่อ USB เป็น keyboard input หรือ serial",

            "speed": "12 Mbps (USB 2.0)",

            "use": "เครื่องชั่งรุ่นใหม่ทั่วไป",

        },

        "ethernet": {

            "name": "Ethernet / WiFi",

            "description": "เชื่อมต่อผ่าน network ส่งข้อมูลแบบ TCP/IP",

            "speed": "100 Mbps+",

            "use": "POS integrated scales, cloud POS",

        },

        "bluetooth": {

            "name": "Bluetooth",

            "description": "เชื่อมต่อไร้สายกับ tablet/smartphone POS",

            "speed": "2 Mbps",

            "use": "Mobile POS, ร้านค้าเคลื่อนที่",

        },

    }



    PYTHON_SERIAL = """

# scale_reader.py — Read weight from scale via Serial

import serial

import time



class ScaleReader:

    def __init__(self, port='COM3', baudrate=9600):

        self.ser = serial.Serial(

            port=port,

            baudrate=baudrate,

            bytesize=serial.EIGHTBITS,

            parity=serial.PARITY_NONE,

            stopbits=serial.STOPBITS_ONE,

            timeout=1,

        )

    

    def read_weight(self):

        # Send weight request command (varies by brand)

        self.ser.write(b'W\\r\\n')  # Common command

        time.sleep(0.1)

        

        response = self.ser.readline().decode('ascii').strip()

        # Parse response: "ST, GS,  0.500 kg" (format varies)

        try:

            parts = response.split(',')

            weight_str = parts[-1].strip().replace('kg', '').strip()

            weight = float(weight_str)

            return weight

        except (ValueError, IndexError):

            return None

    

    def continuous_read(self, callback, interval=0.5):

        print("Reading scale... (Ctrl+C to stop)")

        try:

            while True:

                weight = self.read_weight()

                if weight is not None:

                    callback(weight)

                time.sleep(interval)

        except KeyboardInterrupt:

            print("Stopped.")

    

    def close(self):

        self.ser.close()



# Usage

def on_weight(w):

    price_per_kg = 120

    total = w * price_per_kg

    print(f"  Weight: {w:.3f} kg | Price: {total:.2f} บาท")



reader = ScaleReader('COM3')

reader.continuous_read(on_weight)

"""



    def show_protocols(self):

        print("=== Connection Protocols ===\n")

        for key, proto in self.PROTOCOLS.items():

            print(f"[{proto['name']}]")

            print(f"  {proto['description']}")

            print(f"  Use: {proto['use']}")

            print()



    def show_python(self):

        print("=== Python Serial Reader ===")

        print(self.PYTHON_SERIAL[:500])



pos = POSIntegration()

pos.show_protocols()

pos.show_python()

ระบบ POS สำหรับร้านชั่งขาย

# pos_system.py — POS system for weighing shops

import json

import random

from datetime import datetime



class WeighingPOS:

    FEATURES = {

        "weight_pricing": "ชั่งน้ำหนัก + คำนวณราคาอัตโนมัติ",

        "barcode_label": "พิมพ์ barcode label สำหรับติดสินค้า",

        "receipt": "พิมพ์ใบเสร็จรับเงิน",

        "inventory": "ติดตาม stock สินค้า",

        "reports": "รายงานยอดขายรายวัน/เดือน",

        "multi_payment": "รับชำระ: เงินสด, PromptPay, บัตรเครดิต",

    }



    POS_CODE = """

# simple_pos.py — Simple POS with scale integration

from datetime import datetime



class SimplePOS:

    def __init__(self):

        self.products = {}

        self.cart = []

        self.transaction_id = 0

    

    def add_product(self, code, name, price_per_kg):

        self.products[code] = {

            "name": name,

            "price_per_kg": price_per_kg,

        }

    

    def add_to_cart(self, code, weight_kg):

        if code not in self.products:

            print(f"Product {code} not found")

            return

        

        product = self.products[code]

        total = weight_kg * product["price_per_kg"]

        

        item = {

            "code": code,

            "name": product["name"],

            "weight": weight_kg,

            "price_per_kg": product["price_per_kg"],

            "total": round(total, 2),

        }

        self.cart.append(item)

        print(f"  Added: {item['name']} {weight_kg:.3f}kg × {product['price_per_kg']} = {total:.2f} บาท")

    

    def get_total(self):

        return sum(item["total"] for item in self.cart)

    

    def checkout(self, payment):

        self.transaction_id += 1

        total = self.get_total()

        change = payment - total

        

        print(f"\\n{'='*40}")

        print(f"  Transaction #{self.transaction_id}")

        print(f"  Date: {datetime.now().strftime('%Y-%m-%d %H:%M')}")

        print(f"{'='*40}")

        for item in self.cart:

            print(f"  {item['name']:<15} {item['weight']:.3f}kg  {item['total']:>8.2f}")

        print(f"{'='*40}")

        print(f"  Total: {total:>25.2f} บาท")

        print(f"  Payment: {payment:>22.2f} บาท")

        print(f"  Change: {change:>23.2f} บาท")

        

        self.cart = []

        return {"id": self.transaction_id, "total": total, "change": change}



# Usage

pos = SimplePOS()

pos.add_product("M01", "มะม่วง", 120)

pos.add_product("S01", "ส้ม", 85)

pos.add_product("W01", "แต่งโม", 35)



pos.add_to_cart("M01", 1.250)  # มะม่วง 1.25 kg

pos.add_to_cart("S01", 0.800)  # ส้ม 0.8 kg

pos.checkout(300)

"""



    def show_features(self):

        print("=== POS Features ===\n")

        for key, feature in self.FEATURES.items():

            print(f"  [{key}] {feature}")



    def show_pos_code(self):

        print(f"\n=== Simple POS Code ===")

        print(self.POS_CODE[:600])



    def daily_report(self):

        print(f"\n=== Daily Sales Report ===")

        products = [

            {"name": "มะม่วง", "qty_kg": random.uniform(20, 80), "revenue": 0, "price": 120},

            {"name": "ส้ม", "qty_kg": random.uniform(15, 60), "revenue": 0, "price": 85},

            {"name": "แต่งโม", "qty_kg": random.uniform(30, 100), "revenue": 0, "price": 35},

            {"name": "องุ่น", "qty_kg": random.uniform(5, 30), "revenue": 0, "price": 180},

        ]

        total_revenue = 0

        for p in products:

            p["revenue"] = p["qty_kg"] * p["price"]

            total_revenue += p["revenue"]

            print(f"  {p['name']:<10} {p['qty_kg']:>6.1f} kg × {p['price']:>3} = {p['revenue']:>8,.0f} บาท")

        print(f"  {'Total':>30} {total_revenue:>8,.0f} บาท")



wpos = WeighingPOS()

wpos.show_features()

wpos.show_pos_code()

wpos.daily_report()

การเลือกซื้อเครื่องชั่ง

# buying_guide.py — Scale buying guide

import json



class BuyingGuide:

    CRITERIA = {

        "capacity": {

            "name": "Capacity (พิกัดน้ำหนัก)",

            "guide": "เลือกให้เกินน้ำหนักที่ชั่งปกติ 20-30%",

            "examples": "ผลไม้: 30kg | เนื้อ: 15kg | ทอง: 500g | อุตสาหกรรม: 150-300kg",

        },

        "division": {

            "name": "Division (ความละเอียด)",

            "guide": "ยิ่งละเอียดยิ่งแม่นยำ แต่ capacity จะต่ำลง",

            "examples": "ตลาดสด: 5-10g | ร้านทอง: 0.01g | ห้องแล็บ: 0.001g",

        },

        "connectivity": {

            "name": "Connectivity",

            "guide": "เลือกตาม POS system ที่ใช้",

            "examples": "RS232: legacy POS | USB: modern POS | WiFi: cloud POS | Bluetooth: mobile",

        },

        "waterproof": {

            "name": "Waterproof (IP Rating)",

            "guide": "ถ้าใช้ในที่เปียก/ล้างน้ำ ต้อง IP65+",

            "examples": "ตลาดปลา: IP67 | ร้านผลไม้: IP54 | ห้องแล็บ: ไม่จำเป็น",

        },

        "certification": {

            "name": "Certification (มอก./OIML)",

            "guide": "ถ้าใช้ค้าขาย ต้องผ่านมาตรฐาน มอก. หรือ OIML",

            "examples": "มอก. 2009 (เครื่องชั่งชนิดไม่อัตโนมัติ)",

        },

    }



    BRANDS = {

        "cas": {"name": "CAS", "origin": "Korea", "range": "2,000-50,000 บาท", "popular": "ตลาดสด ร้านค้า"},

        "jadever": {"name": "Jadever", "origin": "Taiwan", "range": "3,000-30,000 บาท", "popular": "อุตสาหกรรม"},

        "ohaus": {"name": "OHAUS", "origin": "USA", "range": "5,000-100,000 บาท", "popular": "ห้องแล็บ"},

        "and": {"name": "A&D", "origin": "Japan", "range": "5,000-80,000 บาท", "popular": "ความแม่นยำสูง"},

    }



    def show_criteria(self):

        print("=== Buying Criteria ===\n")

        for key, c in self.CRITERIA.items():

            print(f"[{c['name']}]")

            print(f"  {c['guide']}")

            print(f"  Examples: {c['examples']}")

            print()



    def show_brands(self):

        print("=== Popular Brands ===")

        for key, b in self.BRANDS.items():

            print(f"  [{b['name']}] {b['origin']} | {b['range']} | {b['popular']}")



guide = BuyingGuide()

guide.show_criteria()

guide.show_brands()

FAQ - คำถามที่พบบ่อย

Q: เครื่องชั่งดิจิทัลคิดราคาใช้ยังไง?

A: 1. เปิดเครื่อง รอหน้าจอแสดง 0 2. กด TARE หักน้ำหนักภาชนะ 3. ใส่ราคาต่อ kg (เช่น 120) 4. วางสินค้า → แสดงน้ำหนักและราคาอัตโนมัติ 5. กด M+ สะสมหลายรายการ 6. กด TOTAL ดูยอดรวม ตั้ง PLU (Price Look Up) สำหรับสินค้าที่ขายบ่อย → ไม่ต้องกดราคาทุกครั้ง

เนื้อหาเกี่ยวข้อง — ดูเพิ่มเติมเรื่อง Docker BuildKit Remote Work Setup — คู่มือฉบับสมบูรณ์ 2026

Q: เครื่องชั่งดิจิทัลเชื่อมต่อ POS ได้ไหม?

แนะนำเพิ่มเติม — คู่มือเทรดจาก SiamCafeBook

A: ได้ ผ่าน RS-232 (Serial), USB, Ethernet หรือ Bluetooth ขึ้นอยู่กับรุ่น ต้องเลือกเครื่องชั่งที่มี interface ตรงกับ POS software ที่ใช้ POS software ยอดนิยม: Loyverse, Vend, Square, หรือพัฒนาเอง Python + pyserial สามารถอ่านค่าน้ำหนักจากเครื่องชั่งได้

เนื้อหาเกี่ยวข้อง — Apollo Server Service Level Objective SLO — คู่มือฉบับสมบูรณ์ 2026

Q: เครื่องชั่งราคาเท่าไหร่?

A: เครื่องชั่งคิดราคาทั่วไป: 2,000-5,000 บาท เครื่องชั่งพิมพ์สติกเกอร์: 8,000-20,000 บาท เครื่องชั่ง POS integrated: 15,000-80,000 บาท เครื่องชั่งอุตสาหกรรม: 3,000-50,000 บาท เลือกตาม: capacity, ความละเอียด, connectivity, waterproof

แนะนำเพิ่มเติม — iCafeForex

เนื้อหาเกี่ยวข้อง — อ่านต่อ: คาสเปรด Xm — ทุกสิ่งที่ต้องรู้ในปี 2026

Q: Calibrate เครื่องชั่งทำอย่างไร?

A: 1. เตรียมน้ำหนักมาตรฐาน (certified test weight) 2. เข้า calibration mode (กดปุ่ม CAL ค้าง) 3. วางน้ำหนักมาตรฐานตามที่เครื่องแสดง 4. ยืนยัน → เครื่องปรับค่า calibrate ทุก 3-6 เดือน หรือเมื่อย้ายเครื่อง ซื้อน้ำหนักมาตรฐานจากร้านขายเครื่องชั่งหรือ online

เนื้อหาเกี่ยวข้อง — บทความที่เกี่ยวข้อง: MongoDB Change Streams Multi-cloud Strategy

XM Legend · เทรดเดอร์ & ผู้สอน Forex 13 ปี

ผู้ก่อตั้ง SiamCafe ตั้งแต่ปี 1997 · เทรดเดอร์สาย Forex มากกว่า 13 ปี ได้รับการยกย่องเป็น XM Legend · แบ่งปันความรู้ Forex, ไอที, AI และการเทรด จากประสบการณ์จริงในตลาดจริง