PanmaneeCNC - ระบบการเรียนรู้เทคโนโลยีด้วยตนเอง
  1. You are here:  
  2. Home

Mini CNC แกะแม่พิมพ์เหล็ก 

Details
Category: CAM
Published: 09 December 2024
Hits: 299

Mini CNC เครื่องCNCแกะแม่พิมพ์เหล็ก 

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


เครื่อง minicnc กัดแม่พิมพ์เหล็ก

คุณสมบัติเด่น

  • ความแม่นยำสูงระดับไมโครเมตร

    • เครื่องมาพร้อมกับระบบควบคุมการเคลื่อนที่ 3 แกน (X, Y, Z) ที่มีความละเอียดสูง ช่วยให้การแกะสลักและกัดโลหะมีความแม่นยำสูงในทุกชิ้นงาน
    • เหมาะสำหรับงานที่ต้องการรายละเอียดเล็ก ๆ เช่น รายละเอียดบน เหรียญ หรือ แม่พิมพ์พระ
  • โครงสร้างแข็งแรง

    • ตัวเครื่องทำจากวัสดุโลหะคุณภาพสูง เพื่อลดการสั่นสะเทือนขณะใช้งาน
    • รองรับการใช้งานระยะยาวและการทำงานหนัก
  • รองรับวัสดุหลากหลาย

    • สามารถกัดวัสดุได้หลากหลาย เช่น เหล็ก อลูมิเนียม ทองเหลือง และโลหะเบาอื่น ๆ
    • ใช้ได้กับงานกัดแม่พิมพ์แบบ 2D และ 3D
  • การใช้งานง่าย

    • มีหน้าจอควบคุมที่ออกแบบมาให้ใช้งานสะดวก พร้อมฟังก์ชัน G-Code สำหรับการควบคุมการทำงานผ่านซอฟต์แวร์ CAD/CAM
    • เหมาะสำหรับทั้งมืออาชีพและผู้เริ่มต้นในงาน CNC
  • ประหยัดพื้นที่

    • ด้วยขนาดกะทัดรัด สามารถวางใช้งานบนโต๊ะได้ ไม่ต้องใช้พื้นที่ใหญ่เหมือนเครื่อง CNC ขนาดใหญ่
  • การสนับสนุนงาน 3D

    • รองรับการสร้างงานโมเดล 3 มิติที่ซับซ้อน เช่น การสร้างแม่พิมพ์พระที่ต้องการความลึกและมิติที่สมจริง

ประโยชน์ที่ได้รับ

  • เพิ่มความรวดเร็วในการผลิต: ลดเวลาที่ต้องใช้ในกระบวนการผลิตแม่พิมพ์แบบเดิม
  • ลดต้นทุนการผลิต: ใช้เครื่องเดียวตอบโจทย์ทุกขั้นตอนการผลิต ไม่ต้องจ้างช่างแกะมือ
  • คุณภาพงานระดับมืออาชีพ: รายละเอียดคมชัดแม้ในงานขนาดเล็ก เช่น เหรียญ หรือ แม่พิมพ์พระ วัตถุมงคล
  • ความยืดหยุ่นในการออกแบบ: สามารถสร้างลวดลายตามต้องการได้หลากหลาย

เหมาะสำหรับ

  • ผู้ผลิตแม่พิมพ์พระ หรือ เหรียญที่ต้องการงานคุณภาพสูง
  • ช่างแกะสลักที่ต้องการยกระดับงานด้วยเทคโนโลยี CNC
  • ธุรกิจขนาดเล็กที่ต้องการเครื่องจักรราคาประหยัดแต่ทรงพลัง

สนทนาตอบโต้กับ AI (gemini-1.5-flash)

Details
Category: Microcontroller And IOT
Published: 09 February 2025
Hits: 217

พูด (Speech Recognition) และ การพิมพ์ (Text Input)

Details
Category: Microcontroller And IOT
Published: 09 February 2025
Hits: 70

6 เหตุผลที่เลือกใช้ MicroPython บน ESP32 สำหรับการพัฒนา IoT

Details
Category: Microcontroller And IOT
Published: 24 January 2025
Hits: 318

ทำไมจึงใช้ MicroPython สำหรับการเขียนโปรแกรมบน Microcontroller ESP32


ในยุคที่ Internet of Things (IoT) กลายเป็นส่วนสำคัญของการพัฒนาเทคโนโลยี การเขียนโปรแกรมบน Microcontroller เช่น ESP32 ได้รับความนิยมเพิ่มขึ้นเรื่อยๆ และหนึ่งในภาษาที่ผมเลือกใช้สำหรับการเขียนโปรแกรมบน ESP32 ก็คือ MicroPython นี่คือเหตุผลว่าทำไมผมถึงชอบใช้ MicroPython และทำไมมันถึงเป็นตัวเลือกที่ยอดเยี่ยมสำหรับนักพัฒนา:

1. เรียนรู้ง่ายและใช้งานได้เร็ว

MicroPython เป็นเวอร์ชันย่อของภาษา Python ที่ออกแบบมาสำหรับอุปกรณ์ที่มีทรัพยากรจำกัด เช่น ESP32 ด้วยความที่ Python เป็นภาษาที่มีโครงสร้างเข้าใจง่าย การเริ่มต้นกับ MicroPython จึงไม่ซับซ้อน นอกจากนี้ยังมีคำสั่งและไลบรารีที่ใช้งานง่าย ทำให้นักพัฒนาสามารถพัฒนาโปรเจกต์ IoT ได้อย่างรวดเร็ว

เขียนโค้ดง่ายและรวดเร็ว

MicroPython เป็นภาษาโปรแกรมที่ใช้ไวยากรณ์ของ Python ซึ่งเป็นภาษาที่เรียบง่ายและอ่านง่าย ทำให้การเขียนโค้ดบน ESP32 ไม่ซับซ้อนเหมือนภาษา C/C++ ที่ต้องจัดการกับเรื่องของ Memory หรือ Pointer โดยตรง ผมสามารถเริ่มต้นเขียนโค้ดได้ทันที โดยไม่ต้องกังวลเรื่องรายละเอียดระดับลึกของ Hardware มากเกินไป

ไม่ต้อง Compile โค้ด

การเขียนโปรแกรมด้วย MicroPython ไม่จำเป็นต้อง Compile โค้ดก่อนใช้งาน ผมแค่เขียนโค้ดแล้วอัปโหลดไปยัง ESP32 ได้ทันที ทำให้กระบวนการพัฒนาโปรแกรมเร็วขึ้นมาก นอกจากนี้ยังสามารถทดสอบโค้ดแบบ Real-time ผ่าน REPL (Read-Eval-Print Loop) ได้ ทำให้การ Debug ทำได้ง่ายและสะดวก

ตัวอย่างเช่น การสั่งให้ LED กระพริบบน ESP32 ด้วย MicroPython ทำได้ง่ายๆ แค่เขียนโค้ดไม่กี่บรรทัด 

from machine import Pin
import time

led = Pin(2, Pin.OUT)  # ตั้งค่า Pin 2 เป็น Output

while True:
    led.value(1)  # เปิด LED
    time.sleep(1)  # รอ 1 วินาที
    led.value(0)  # ปิด LED
    time.sleep(1)  # รอ 1 วินาที

2. รองรับการพัฒนา IoT ได้เป็นอย่างดี

ESP32 เป็นไมโครคอนโทรลเลอร์ที่รองรับการเชื่อมต่อ Wi-Fi และ Bluetooth ซึ่งเป็นพื้นฐานสำคัญสำหรับการพัฒนา IoT MicroPython ช่วยให้งานที่เกี่ยวข้องกับการเชื่อมต่ออินเทอร์เน็ต เช่น การส่งข้อมูลไปยังเซิร์ฟเวอร์ หรือการดึงข้อมูลจาก API ทำได้ง่ายผ่านไลบรารีอย่าง urequests และ socket โดยไม่ต้องเขียนโค้ดที่ซับซ้อน

import network
import time

wifi = network.WLAN(network.STA_IF)
wifi.active(True)
wifi.connect("SSID", "PASSWORD")

while not wifi.isconnected():
    time.sleep(1)

print("Connected to Wi-Fi!")

3. ลดความซับซ้อนของการพัฒนา

ในบางกรณี การใช้ MicroPython อาจสะดวกกว่าการพัฒนาโปรแกรมบน Arduino IDE เนื่องจากไม่ต้องคอมไพล์โค้ดใหม่ทุกครั้งที่มีการเปลี่ยนแปลง คุณสามารถอัปโหลดและรันโค้ดได้ทันทีผ่าน REPL (Read-Eval-Print Loop) นอกจากนี้ยังช่วยให้การแก้ไขข้อผิดพลาดทำได้รวดเร็วและง่ายดาย

4. ไลบรารีหลากหลายและยืดหยุ่น

MicroPython มีไลบรารีที่ครอบคลุมการทำงานหลากหลาย ไม่ว่าจะเป็นการจัดการฮาร์ดแวร์ เช่น GPIO, PWM, ADC หรือการเชื่อมต่อเครือข่าย เช่น HTTP และ MQTT ไลบรารีเหล่านี้ช่วยลดเวลาในการพัฒนาโปรเจกต์และเพิ่มความยืดหยุ่นในการออกแบบระบบ

5. ชุมชนที่สนับสนุนและทรัพยากรออนไลน์

MicroPython มีชุมชนที่กระตือรือร้นและให้ความช่วยเหลือ รวมถึงเอกสารที่ชัดเจนและคู่มือออนไลน์มากมาย นอกจากนี้ยังมีตัวอย่างโค้ดและฟอรั่มที่นักพัฒนาสามารถเรียนรู้และแก้ไขปัญหาได้ง่าย

6. รองรับอุปกรณ์ที่มีทรัพยากรจำกัด

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

สรุป

การใช้ MicroPython บน ESP32 ไม่เพียงแต่ช่วยลดเวลาในการพัฒนา แต่ยังช่วยเพิ่มความยืดหยุ่นและความสะดวกสบายให้กับนักพัฒนา ไม่ว่าคุณจะเป็นมือใหม่หรือมืออาชีพ MicroPython เป็นเครื่องมือที่เหมาะสมสำหรับการพัฒนา IoT ในยุคปัจจุบันอย่างแท้จริง ผมขอแนะนำให้ลองใช้งานดู แล้วคุณจะพบว่ามันมีประสิทธิภาพ และ สนุกเพียงใด!


การส่งข้อมูลจาก ESP32 ไปยัง Google Sheets ด้วย MicroPython no Script

Details
Category: Microcontroller And IOT
Published: 24 January 2025
Hits: 687

"เราจะส่งข้อมูลจากไมโครคอนโทรลเลอร์ ESP32 ไปยัง Google Sheets ได้อย่างไร?" เนื่องจากผู้เขียนเองเคยทดลองในเรื่องนี้ และ มีความสนใจในหัวข้อนี้ จึงอยากจะแบ่งปันประสบการณ์ และ ขั้นตอนการทำงานในบทความนี้ครับ หวังว่าจะเป็นประโยชน์สำหรับทุกคนที่กำลังศึกษา และ ทดลองเช่นกัน

ทำไมต้องใช้ ESP32 และ MicroPython?

ESP32 เป็นไมโครคอนโทรลเลอร์ที่มีความสามารถหลากหลาย รองรับการเชื่อมต่อ WiFi และ Bluetooth ทำให้เหมาะอย่างยิ่งสำหรับงาน IoT และการส่งข้อมูลไปยังคลาวด์หรือเซิร์ฟเวอร์ เช่น Google Sheets

การใช้งาน MicroPython กับ ESP32 นั้นสะดวกและง่ายกว่าการใช้ Arduino IDE ในบางกรณี เนื่องจาก MicroPython มีฟังก์ชันที่ครอบคลุมและยืดหยุ่น โดยเฉพาะในเรื่องการจัดการข้อมูลและการพัฒนาอย่างรวดเร็ว นอกจากนี้ยังรองรับไลบรารี urequests ซึ่งทำให้การส่งข้อมูลไปยัง Google Sheets ไม่จำเป็นต้องพึ่งพา Google Apps Script ช่วยลดความซับซ้อน และทำให้การพัฒนาโปรเจกต์ง่ายขึ้นอย่างมาก

ขั้นตอนการส่งข้อมูลจาก ESP32 ไปยัง Google Sheets

  1. ตั้งค่า Google Form และ Google Sheets
    • สร้าง Google Form เพื่อใช้เป็นอินเทอร์เฟซในการรับข้อมูล โดยในฟอร์มนี้จะสร้างฟิลด์ตามที่ต้องการ เช่น ชื่อโปรเจกต์ รายละเอียด และวันที่เริ่มต้น
    • ลิงก์ Google Form เข้ากับ Google Sheets เพื่อให้ข้อมูลที่ส่งมาจาก ESP32 ถูกบันทึกลงใน Sheets โดยอัตโนมัติ
  2. ติดตั้ง MicroPython และเตรียม ESP32
    • แฟลช MicroPython ลงใน ESP32
    • ติดตั้งไลบรารีที่จำเป็น เช่น urequests สำหรับการส่ง HTTP POST
  3. เขียนโค้ดเพื่อส่งข้อมูล
    • ใช้ภาษา Python ในการเขียนโค้ดเพื่อรวบรวมข้อมูลจากผู้ใช้ หรือ เซ็นเซอร์
    • ใช้ฟังก์ชัน POST เพื่อส่งข้อมูลไปยัง URL ของ Google Form โดยส่งข้อมูลในรูปแบบ URL-encoded

ความสะดวกของการใช้ MicroPython

หนึ่งในข้อดีสำคัญของการใช้ MicroPython บน ESP32 คือความง่ายในการจัดการข้อมูลและการพัฒนาโปรแกรม เราสามารถพัฒนาโปรเจกต์ IoT ที่ส่งข้อมูลไปยัง Google Sheets ได้ในเวลาอันรวดเร็ว โดยไม่ต้องยึดติดกับแพลตฟอร์มหรือระบบปฏิบัติการใดๆ

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

ตัวอย่าง Micropython Code  

import urequests
import network
import time
#import urequests
#import urllib.parse
# ตั้งค่าการเชื่อมต่อ WiFi
SSID = "YOUR_SSID"
PASSWORD = "YOUR_PASSWORD"

# ฟังก์ชันเชื่อมต่อ WiFi
def connect_to_wifi():
    print("Connecting to WiFi...")
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(SSID, PASSWORD)

    while not wlan.isconnected():
        print("Waiting for connection...")
        time.sleep(1)

    print("Connected to WiFi")
    print("Network Config:", wlan.ifconfig())

# URL ของ Google Form
url = 'https://docs.google.com/forms/d/e/1FAIpQLSdTZe8kbzfaZTvgD-i-BwugFPmM0syiwme0E8GYk9_JTqA9gA/formResponse'

# รับข้อมูลจากผู้ใช้
def get_user_input():
    first_field = input("
กรุณาป้อนข้อมูลรายการ Project: ")
    second_field = input("กรุณาป้อนข้อมูลรายละเอียด: ")
    third_field = input("กรุณาป้อนข้อมูลวันที่เริ่มทำงาน (YYYY-MM-DD): ")

    return {
        'entry.1049040913': first_field,
        'entry.242823717': second_field,
        'entry.1799517998': third_field
    }

# ส่งข้อมูลไปยัง Google Form
def urlencode(data):
    """แปลง dict ให้เป็น URL-encoded string"""
    return '&'.join('{}={}'.format(key, value.replace(' ', '+')) for key, value in data.items())

def submit_data(url, data):
    try:
        print("
Sending data to Google Form...")
        # ใช้ฟังก์ชัน urlencode ที่เขียนเอง
        encoded_data = urlencode(data)

        # ส่งข้อมูลแบบ POST พร้อม headers ที่เหมาะสม
        response = urequests.post(url, data=encoded_data, headers={'Content-Type': 'application/x-www-form-urlencoded'})

        if response.status_code == 200:
            print("Data submitted successfully!")
        else:
            print("Error submitting data. HTTP Status Code:", response.status_code)

        response.close()
    except Exception as e:
        print("Error:", e)
# Main Function
def main():
    #connect_to_wifi()
    form_data = get_user_input()
    submit_data(url, form_data)

# เริ่มต้นโปรแกรม
if __name__ == "__main__":
    main()

โค้ดชุดนี้เป็นโค้ด Python ที่ใช้สำหรับเชื่อมต่อกับ WiFi และส่งข้อมูลไปยัง Google Form โดยใช้โมดูล urequests และ network ซึ่งมักใช้ในอุปกรณ์ IoT เช่น ESP32 หรือ ESP8266 ที่รัน MicroPython มาดูหลักการทำงานของโค้ดทีละส่วนกันครับ

1. การเชื่อมต่อ WiFi

python
SSID = "YOUR_SSID"
PASSWORD = "YOUR_PASSWORD"

def connect_to_wifi():
    print("Connecting to WiFi...")
    wlan = network.WLAN(network.STA_IF)
    wlan.active(True)
    wlan.connect(SSID, PASSWORD)

    while not wlan.isconnected():
        print("Waiting for connection...")
        time.sleep(1)

    print("Connected to WiFi")
    print("Network Config:", wlan.ifconfig())
  • SSID และ PASSWORD: ใช้สำหรับเก็บชื่อและรหัสผ่านของ WiFi ที่ต้องการเชื่อมต่อ

  • connect_to_wifi(): ฟังก์ชันนี้ใช้สำหรับเชื่อมต่ออุปกรณ์กับ WiFi โดยใช้โมดูล network

    • network.WLAN(network.STA_IF): สร้างออบเจกต์สำหรับเชื่อมต่อ WiFi ในโหมด Station (อุปกรณ์เป็น client)

    • wlan.active(True): เปิดการทำงานของ WiFi

    • wlan.connect(SSID, PASSWORD): พยายามเชื่อมต่อกับ WiFi ที่กำหนด

    • while not wlan.isconnected(): รอจนกว่าจะเชื่อมต่อสำเร็จ

    • wlan.ifconfig(): แสดงการตั้งค่าเครือข่ายหลังจากเชื่อมต่อสำเร็จ (เช่น IP Address)


2. รับข้อมูลจากผู้ใช้

python
def get_user_input():
    first_field = input("
กรุณาป้อนข้อมูลรายการ Project: ")
    second_field = input("กรุณาป้อนข้อมูลรายละเอียด: ")
    third_field = input("กรุณาป้อนข้อมูลวันที่เริ่มทำงาน (YYYY-MM-DD): ")

    return {
        'entry.1049040913': first_field,
        'entry.242823717': second_field,
        'entry.1799517998': third_field
    }
  • get_user_input(): ฟังก์ชันนี้ใช้รับข้อมูลจากผู้ใช้ผ่านคีย์บอร์ด

    • input(): รับค่าจากผู้ใช้

    • ค่าที่รับมาจะถูกเก็บใน dictionary โดยใช้ key ที่ตรงกับชื่อ field ใน Google Form (เช่น entry.1049040913)


3. แปลงข้อมูลเป็น URL-encoded string

python
def urlencode(data) :
    """แปลง dict ให้เป็น URL-encoded string"""
    return '&'.join('{}={}'.format(key, value.replace(' ', '+')) for key, value in data.items())
  • urlencode(): ฟังก์ชันนี้ใช้แปลง dictionary ให้เป็นรูปแบบ URL-encoded string

    • ตัวอย่าง: {'entry.1049040913': 'Project1', 'entry.242823717': 'Details'} จะถูกแปลงเป็น entry.1049040913=Project1&entry.242823717=Details

    • ช่องว่างในข้อมูลจะถูกแทนที่ด้วย + เพื่อให้สอดคล้องกับรูปแบบ URL encoding


4. ส่งข้อมูลไปยัง Google Form

python
def submit_data(url, data):
    try:
        print("
Sending data to Google Form...")
        encoded_data = urlencode(data)

        response = urequests.post(url, data=encoded_data, headers={'Content-Type': 'application/x-www-form-urlencoded'})

        if response.status_code == 200:
            print("Data submitted successfully!")
        else:
            print("Error submitting data. HTTP Status Code:", response.status_code)

        response.close()
    except Exception as e:
        print("Error:", e)
  • submit_data() : ฟังก์ชันนี้ใช้ส่งข้อมูลไปยัง Google Form โดยใช้ HTTP POST request

    • urequests.post(): ส่งข้อมูลแบบ POST ไปยัง URL ของ Google Form

    • headers={'Content-Type': 'application/x-www-form-urlencoded'}: กำหนด header เพื่อบอกว่าเราส่งข้อมูลในรูปแบบ URL-encoded

    • response.status_code: ตรวจสอบสถานะการส่งข้อมูล (200 แปลว่าสำเร็จ)

    • response.close(): ปิดการเชื่อมต่อหลังจากส่งข้อมูลเสร็จ


5. Main Function

python
def main():
    #connect_to_wifi()
    form_data = get_user_input()
    submit_data(url, form_data)

if __name__ == "__main__":
    main()
  • main(): ฟังก์ชันหลักของโปรแกรม

    • connect_to_wifi(): เรียกใช้ฟังก์ชันเชื่อมต่อ WiFi (ในโค้ดนี้ถูกคอมเมนต์ไว้)

    • get_user_input(): รับข้อมูลจากผู้ใช้

    • submit_data(): ส่งข้อมูลไปยัง Google Form

  • if name == "main":: ตรวจสอบว่าโปรแกรมถูกเรียกใช้งานโดยตรงหรือไม่ ถ้าใช่ก็จะเรียกฟังก์ชัน main()


ผล

สรุป

โค้ดนี้ทำงานโดย :

  1. เชื่อมต่อกับ WiFi (ถ้าเปิดใช้งานฟังก์ชัน connect_to_wifi())

  2. รับข้อมูลจากผู้ใช้ผ่านคีย์บอร์ด

  3. แปลงข้อมูลเป็นรูปแบบ URL-encoded

  4. ส่งข้อมูลไปยัง Google Form โดยใช้ HTTP POST request

หมายเหตุ:

  • โค้ดนี้เหมาะสำหรับใช้ในอุปกรณ์ IoT ที่รัน MicroPython

  • ต้องแก้ไข SSID, PASSWORD, และ URL ของ Google Form ให้ถูกต้องก่อนใช้งาน

  • ฟังก์ชัน connect_to_wifi() ถูกคอมเมนต์ไว้ในโค้ด ดังนั้นถ้าต้องการเชื่อมต่อ WiFi ต้องยกเลิกการคอมเมนต์ก่อน

  • สร้าง Telegram Bot เพื่อ Automation, Smart Farm และ Smart Industry
  • การใช้ MQTT บน ESP32 ด้วยไลบรารี PubSubClient
  • คู่มือเริ่มต้นใช้งาน RustDesk : ติดตั้งอย่างไรให้พร้อม Remote Support
  • หลักสูตร : MotorControl สำหรับงาน CNC Robot และ Motion Control

Page 3 of 5

  • 1
  • 2
  • 3
  • 4
  • 5

Main Menu

  • หน้าแรก
  • General
  • CAD
  • CAM
  • Microcontroller And IOT
  • หลักสูตรการอบรม Training Course
  • Robotics
  • ฟอรั่ม

Login Form

  • Forgot your password?
  • Forgot your username?