วันพฤหัสบดีที่ 21 กุมภาพันธ์ พ.ศ. 2556

OpenWrt Print Server โดยใช้ TP-Link TL-WR703N

วัสดีครับ วันนี้ผมขอนำเสนอโครงงานแนว Embeded Linux ซึ่งก็คือ Open-WRT ซึ่งจะนำมาทำเป็น Wireless Print Server โดยมันช่วยเพิ่มความสะดวกในการใช้เครื่อง Printer เนื่องจากไม่ต้องเชื่อม Printer เข้ากับคอมพิวเตอร์โดยตรง การเชื่อมต่อจะใช้ TL-WR703N เชื่อมกับ Printer ซึ่งผมใช้ Brother HL-2130 มานำเสนอ ในตัวของ TL-WR703N มี Wireless LAN Interface อยู่ ทำให้การเชื่อมต่อเข้าเครือข่ายไม่ต้องใช้สาย
TP-Link TL-WR703N 

Printer Brother HL-2130 ที่นำมาทดสอบเป็นเครื่องพิมพ์แบบ Laser ขาว-ดำ มีพอร์ตเชื่อมต่อแบบ USB ดังรูป
Brother HL-2130
อุปกรณ์ที่ต้องใช้มี 2 อย่างคือ
  • TP-Link TL-WR703N
  • Brother HL-2130

ในส่วนของ Software ที่ต้องใช้มีดังนี้
  • Openwrt Firmware สำหรับ TL-WR703N ผมใช้ตัวนี้ครับ Firmware
  • p910nd Printer Server software
  • usb-printer-support module
ก่อนการทดลองต้องเปลี่ยน firmware และตั้งค่า IP Address ให้กับ WiFi Interface ก่อน สามารถดูรายละเอียดได้ที่เว็บนี้ครับ
ในระหว่าการทดลองจะมีการดาวโหลด Packet มาติดตั้งเสริม ดังนั้นตัว Router ต้องสามารถเชื่อมต่ออินเตอร์เน็ตได้ด้วย

ขั้นตอนการติดตั้ง
  • ต่อสายแลนเข้ากับ Router เพื่อที่จะ Telnet หรือ SSH เข้าไปทดลอง
  • IP address ของ Router คือ 192.168.1.1
  • ทำการ Telnet เข้าไปยัง Router
  • ตั้งค่า WiFi interface โดยทำดังนี้
  • พิมพ์คำสั่ง vi /etc/config/network
  • กดปุ่ม 'i' 1 ครั้งเพื่อเข้าสู่โหมดแก้ไข
  • เพิ่ม ข้อความนี้เข้าไป 
                config interface 'wan'
                           option ifname 'wlan0'    
                           option proto 'dhcp' 
  • กด esc 1 ครั้ง แล้วพิมพ์ :wq กดปุ่ม Enter
  • พิมพ์คำสั่ง vi /etc/config/wireless
  • กดปุ่ม 'i' 1 ครั้งเพื่อเข้าสู่โหมดแก้ไข
  • เพิ่ม ข้อความนี้เข้าไป 
        config wifi-iface
              option device radio0
              option network wan
              option mode sta
              option ssid 'ชื่อของ wifi'
              option encryption psk2
              option key 'รหัสผ่าน'

  • กด esc 1 ครั้ง แล้วพิมพ์ :wq กดปุ่ม Enter
  • พิมพ์ reboot กดปุ่ม enter เราเตอร์จะรีบูตตัวเอง หลังจากเปิดตัวเองขึ้นมาใหม่ก็จะสามารถใช้งาน WiFi ได้เลย
  • เมื่อ boot เสร็จเรียบร้อยก็ให้พิมพ์คำสั่ง opkg update จะได้ผลลัพธ์


Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/barrier_breaker.


  • พิมพ์ opkg install kmod-usb-printer ผลลัพธ์จะได้เป็น
Installing kmod-usb-printer (3.7.9-1) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/kmod-usb-printer_3.7.9-1_ar71xx.ipk.
Configuring kmod-usb-printer.
[  257.810000] usblp 1-1:1.0: usblp0: USB Bidirectional printer dev 2 if 0 alt 0 proto 2 vid 0x04F9 pid 0x003F
[  257.820000] usbcore: registered new interface driver usblp


  • พิมพ์ opkg install p910nd ผลลัพธ์จะเป็น
Installing p910nd (0.95-3) to root...
Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/p910nd_0.95-3_ar71xx.ipk.
Configuring p910nd.



  • พิมพ์คำสั่งดังนี้
    • /etc/init.d/p910nd enable
    • /etc/init.d/p910nd start
  • พิมพ์คำสั่ง vi /etc/hotplug.d/usb/20-printer
  • กดปุ่ม 'i' 1 ครั้งเพื่อเข้าสู่โหมดแก้ไข
  • เพิ่ม ข้อความนี้เข้าไป 
#!bin/sh
if [ "$PRODUCT" = "4f9/3f/100" ]
then
case "$ACTION" in
        add)
        /etc/init.d/p910nd stop
        echo "`date` : Brother HL-2130 add" >> /tmp/hl-2130
        /etc/init.d/p910nd start >> /tmp/hl-2130
        echo "Done." >> /tmp/hl-2130
        ;;
        remove)
        echo "`date` : Brother HL-2130 removed" >> /tmp/hl-2130
        /etc/init.d/p910nd stop >> /tmp/hl-2130
        echo "Done." >> /tmp/hl-2130
        ;;
esac
fi



  • กด esc 1 ครั้ง แล้วพิมพ์ :wq กดปุ่ม Enter
  • ลองเสียบสาย USB ของ Printer แล้วถอดออก
  • เมื่อพิมพ์คำสั่ง  cat /tmp/hl-2130 ผลลัพธ์จะเป็น

Wed Feb 20 17:07:06 UTC 2013 : Brother HL-2130 removed
Done.
Wed Feb 20 17:07:06 UTC 2013 : Brother HL-2130 removed
Done.
Wed Feb 20 17:07:11 UTC 2013 : Brother HL-2130 add
Done.
Wed Feb 20 17:07:12 UTC 2013 : Brother HL-2130 add
Done.

  •  พิมพ์ชุดคำสั่งต่อไปนี้ลงไป
uci set p910nd.cfg1=p910nd
uci set p910nd.cfg1.device=/dev/usb/lp0
uci set p910nd.cfg1.port=0
uci set p910nd.cfg1.bidirectional=1
uci set p910nd.cfg1.enabled=1
uci commit p910nd
/etc/init.d/p910nd restart

  •  พิมพ์ vi /etc/config/firewall 
  • กดปุ่ม 'i' 1 ครั้งเพื่อเข้าสู่โหมดแก้ไข
  • เพิ่ม ข้อความนี้เข้าไป 
    #Open Port For Network Printer
    config 'rule'
            option 'src' 'lan'
            option 'proto' 'tcp'
            option 'desc_port' '9100'
            option 'target' 'ACCEPT'
    config 'rule'
            option 'src' 'wan'
            option 'proto' 'tcp'
            option 'desc_port' '9100'
            option 'target' 'ACCEPT'

    • กด esc 1 ครั้ง แล้วพิมพ์ :wq กดปุ่ม Enter
    • พิมพ์ reboot เพื่อรีบูตตัวเอง
    หลังจากทำการตั้งค่าฝั่ง Server เสร็จก็สามารถใช้งาน Print-Server ได้ โดยมีขั้นตอนดังนี้


    ขั้นตอนการ Add Printer 

    ในที่นี้จะแสดงตัวอย่างของ Windows 8 ซึ่งสามารถนำไปประยุกต์ใช้กับ  Windows รุ่นอื่นๆ ได้เช่นกัน โดยขั้นตอนมีดังนี้

    • เข้าไปยัง Devices and Printers ที่อยู่ใน Control Panel



    • กดที่ Add a Printer





    • คลิกที่ The printer that I want isn't listed



    • คลิกตัวเลือกล่างสุด แล้วคลิก Next




    • คลิกตัวเลือกล่างและตั้งค่าเป็น Standard TCP/IP Port แล้วคลิก Next



    • ที่ช่อง Hostname ให้ใส่หมายเลขไอพี Wireless ของ Router ช่อง Port name ใส่เป็นอะไรก็ได้ ส่วนที่ check box ให้ติ๊กออกแล้วคลิก Next


    • จะพบกับหน้า Detecting TCP/IP port ให้รอจนมันเปลี่ยนเป็นหน้าถัดไป



    • เมื่อเข้าสู้หน้า addination port information required ให้เลือก Custom แล้วคลิก Settings



    • จะปรากฎหน้าตั้งค่า คลิก OK แล้วคลิก Next

    • เลือก Driver ให้ตรงรุ่นกับ Printer แล้วคลิก Next
    • คลิก Next
    • ตั้งชื่อเครื่องพิมพ์แล้วคลิก Next
    • คลิก Next
    • คลิก Finish
    • จะปรากฎเครื่องพิมพ์รูปขวาสุด สามารถสั่งงานได้แบบปกติ

    แหล่งข้อมูล


    แหล่ง Firmware






                          วันเสาร์ที่ 2 กุมภาพันธ์ พ.ศ. 2556

                          ออกแบบวงจร PCB ของโมดูล GPS HOLUX M-9129

                          Holux M-9129 เป็นโมดูล GPS ที่น่าสนใจ มีราคาไม่แพงประมาณ 500 กว่าบาทอ้างอิงจากเว็บ es.co.th รูปร่างของโมดูลเป็นดังนี้
                          รูปจริงของโมดูล
                          ตัวโมดูลมีขนาดเล็ก มีขา 22 ขา แต่ใช้งานจริงไม่กี่ขา ได้แก่ 
                          • VCC(13) ต่อกับไฟ +3.3V
                          • V_BAT(12) ต่อกับถ่ายกระดุม 3V
                          • GND(7,17,20,22)
                          • TXDA(4) ต่อกับพอร์ต Serial หรือ UART
                          • RXDA(5)
                          • RF_IN(21) ต่อกับเสาอากาศ
                          • GPIO5(8) ต่อกับ LED เพื่อบอกสถานะการ Fix ของ GPS
                          รายละเอียดขาต่างๆ ของโมดูลเป็นดังนี้

                          ชื่อ Pin ต่างๆ

                          ตารางอธิบายรายละเอียดขาต่างๆ
                          ตารางรายละเอียดขา

                          ในขั้นตอนการออกแบบใช้โปรแกรม Protel99se โดยส่วนการออกแบบจะละไว้เพื่อไม่ให้บทความยาวเกินไป ลายวงจรจะได้ดังนี้

                          Schematic
                          หลังจากนั้นนำไปสร้าง PCB ออกมา
                          PCB Top Layer
                          PCB Top overlay

                          หลังจากออกแบบ PCB เรียบร้อยก็จะเข้าสู่ขั้นตอนการกัด PCB โดยใช้กรรมวิธี Toner Transfer ผ่านทางแผ่นใส แล้วทำการเจาะรูจะได้แผ่น PCB ดังนี้

                          PCB ของโมดูล GPS

                          บอร์ด GPS เมื่อประกอบเสร็จ

                          ทำการบัดกรีอุปกรณ์ต่างๆเสร็จ ก็ทำการทดสอบ โดยต่อเชื่อมอุปกรณ์ดังนี้


                          การเชื่อมต่ออุปกรณ์
                          ในที่นี้เชื่อม GPS กับคอมพิวเตอร์โดยผ่านทางบอร์ดแปลง USB to Serial

                          ต่อ บอร์ด GPS เข้ากับบอร์ด

                          GPS&GSM Antenna

                          บอร์ดแปลง USB to Serial Port
                          จากการทดสอบ GPS สามารถ Fix ตำแหน่งแบบ 3D โดยใช้เวลาประมาณ 38 วินาที ซึ่งก็ถือว่าเร็วทันใจดีมาก

                          รายการอุปกรณ์ที่ใช้(ไม่รวมบอร์ด USB to Serial)
                            • ตัวต้านทานขนาด 240 โอห์ม                                                       1 ตัว
                            • ตัวต้านทานขนาด 1000 โอห์ม                                                     1 ตัว
                            • LED สีเขียว                                                                                  1 ตัว
                            • LED สีแดง                                                                                   1 ตัว
                            • รางถ่านกระดุมแบบยืน                                                                 1 ตัว
                            • Holux M-9129                                                                             1 ตัว
                            • Pin Header                                                                                 22 ขา
                            • GPS Antenna พร้อม Connector                                                    1 ชุด

                          แหล่งข้อมูลที่ใช้