Friday, February 26, 2016

LinkIt Smart 7688 Duo กับการเชื่อมต่อผ่าน UART

กว่าจะได้มาก็รอมาหลายวันสำหรับ Smart 7688 Duo ตัวนี้ เพราะที่ผ่านมาได้ลองให้เชื่อมต่อบอร์ด Arduino กับ Smart7688 ธรรมดาแล้วรู้สึกว่า ตัว Duo จะตอบโจทย์กว่าแน่นอน เพราะสามารถใช้งาน Arduio ได้อย่างเต็มที่ โดยจะเหมือน Smart 7688+Arduino Yun

LinkIt Smart 7688 Duo บอร์ด MT7688+Arduino Yun

ด้านล่างจะมี Chip ของ Atmega 32u4 ซึ่งเป็นชิพของ Arduino Yun และ Leonardo

การใช้งานการจัดการคอนฟิกทั่วไปก็เหมือนกับ Smart 7688 ดังนั้นจะไม่กล่าวถึงในตอนนี้ แต่จะกล่าวถึงการเชื่อมต่อผ่านทาง UART บางคนอาจจะสงสัยว่า ทำไมต้องต่อกับ UART ที่เป็น Serial Port เพราะตัวบอร์ดเป็น Wi-Fi สามารถเป็นทั้ง Access Point และเป็น Client หรือ Station ได้

ด้วยผู้เขียนชอบเอางานกลับไปทำที่บ้าน ถ้ายังไม่สำเร็จหรือทำได้ตามเป้าหมายจะไม่ยอมหยุด บางครั้งนั่งทำที่ทำงานทั้งวัน ยังกลับไปทำต่อที่บ้านอีกค่อนคืน 

และที่บ้านกับออฟฟิศตั้งค่า Access Point ไม่เหมือนกัน ทั้งชื่อและรหัสผ่าน ดังนั้นจึงลำบากที่จะกดปุ่ม Wi-Fi 5 วินาที เพื่อรีเซ็ตค่ากลับไปเป็น AP Mode แล้วค่อยเข้าไปเชื่อมต่อเป็น Station หรือ Client และถ้าเผลอกดนานเกิน 20 วินาที แล้วจะงานเข้าอีก เพราะระบบจะคืนค่ากลับไปสู่ความว่างเปล่าทันที แล้วจะเศร้า เพราะโปรแกรมที่เราสร้างไว้นั้นหายเกลี้ยงเลย...

สำหรับสคริปส์นั้นได้มาจาก ThaiEasyElec ซึ่งรวบรวมเอาไว้ ลองคลิกที่ลิงค์เพื่อเข้าไปอ่านบทความดูได้ และขอขอบคุณไว้ ณ ที่นี้ (เพราะถ้าหาอ่านจาก OpenWrt แล้วจะยากเกินไปสำหรับมือใหม่)

vi enable_office.sh
#!/bin/ash
uci set wireless.sta.disabled='0'
uci set wireless.sta.ssid="SSID"
uci set wireless.sta.key='PASSWORD'
uci set wireless.sta.encryption='psk2'
uci commit
/etc/init.d/network restart
sleep 30s
uci set wireless.sta.disabled='1'
uci commit
เมื่อพิมพ์เสร็จหรือจะใช้วิธีคัดลอกจากเว็บแล้วไปวางที่หน้าจอ Text Editor ก็ได้ ซึ่ง default เป็น vi ให้กดปุ่ม a ก่อน แล้วคลิกเมาส์ปุ่มขวา (สำหรับ Putty) หรือ Cmd+V สำหรับ Mac แล้วก็แก้ไข SSID และ PASSWORD ตามที่ตั้งไว้ และส่วนของ encryption บางที่ตั้งไว้เป็น psk ก็มีเหมือนกัน ต้องตรวจสอบให้ดีก่อน

บันทึกและออกจากโปรแกรม vi ให้กดปุ่ม ESC แล้วพิมพ์ :wq แล้วกดปุ่ม Enter โปรแกรมจะบันทึกและออกจาก vi ถ้าไม่ต้องการบันทึกให้กดปุ่ม :q! เป็นการบังคับออกโดยไม่บันทึกการแก้ไข

จากนั้นให้แก้ไขสิทธิ์ของไฟล์ให้เป็นไฟล์ที่รันได้ด้วยคำสั่ง
chmod +x ./enable_office.sh
 แล้วก็สั่งรันสคริปส์ด้วยคำสั่ง
./enable_office.sh  
สคริปส์นี้จะรอ 30 วินาที ซึ่งก็รอนานพอๆ กับบูตเครื่องใหม่เลยทีเดียว อาจจะลองลดลงดูก็ได้

ผลลัพธ์ที่ได้

เมื่อรันสคริปส์แล้วจะสามารถใช้งานอินเตอร์เน็ตได้ โดยทดสอบ ping ออกไปที่ google.co.th
และเมื่อเปิดและเปิดเครื่องใหม่ หรือรีสตาร์ท Smart 7688 Duo อีกครั้ง ก็จะกลับเข้ามาสู่โหมด AP อีก และคราวนี้ก็ต้องสั่งรันสคริปส์ใหม่ ซึ่งถ้าไม่มีการรีโมทผ่าน Serial Port แล้วก็ยุ่งยากหลายขั้นตอนเหมือนกัน

วิธีการเข้าไปรันสคริปส์ก็เพียงแต่เชื่อมต่อไปยัง COM Port ที่ได้ แต่การเชื่อมต่อนั้นต้องอาศัย USB TTL และการต่อขา 8 และ 9 ของ Smart 7688 Duo 

ส่วน Port USB ที่อยู่ในบอร์ดนั้นมี 2 พอร์ต เป็นแหล่งจ่ายไฟ กับ USB Host ไม่สามารถนำมาใช้ในการเชื่อมต่อได้ (แต่ยังไม่ลองสายแบบ OTG เดี๋ยวต้องหาสายมาลองสักหน่อย เพราะมองเห็น COM พอร์ตหนึ่งเพิ่มขึ้นมา)


การต่อสายทำดังนี้

การเชื่อมต่อสาย USB Adapter กับ MT7688

ภาพแสดงการเชื่อมต่อขา สีเขียว (GND), สีส้ม (Rx ต่อขา 8) และ สีเหลือง (Tx ต่อขา 9)
เมื่อต่อสายเรียบร้อยแล้ว ก็เชื่อมต่อด้วยโปรแกรม Putty หรือ ssh ใน Mac ก็ได้ ในบทความนี้จะเชื่อมต่อผ่าน Putty 

ตรวจสอบหมายเลข COM Port จากรูปเป็น USB to UART ของ Silicon Labs รุ่น CP210x ได้ COM5

การเชื่อมต่อให้คลิก Serial แล้วเปลี่ยนตัวเลข COM... กำหนด Speed เป็น 57600 แล้วคลิก Open
เมื่อคลิก Open แล้วจะได้หน้าจอมืดๆ สีดำเพียงอย่างเดียวให้กดปุ่ม Enter ก็จะได้หน้าจอเหมือนในรูป
หลังจากคลิกเชื่อมต่อไปแล้ว บางครั้งจะมีข้อความวิ่งๆ เยอะแยะไปหมด ให้รอสักพัก เพราะระบบกำลังโหลดข้อมูลอื่นๆ อยู่ ด้งนั้นควรรอให้ระบบพร้อมที่จะทำงานสักพัก

และอย่าลืมว่าหากกดปุ่ม MPU รีเซ็ต เพื่อรีสตาร์ท หรือเปิดเครื่องใหม่ต้องเข้าไปรันสคริปส์เพื่อเปลี่ยนโหมดเป็น Station ทุกครั้ง แต่ถ้าใครใช้ Wi-Fi เพียงที่เดียวไม่เปลี่ยนแปลงหรือนานๆ เปลี่ยนแปลงที ก็ไม่ต้องรันสคริปส์ และไม่จำเป็นต้องเชื่อมต่อผ่าน UART ก้ได้ เพียงแค่ กำหนดโหมดเป็น Station ครั้งแรก เชื่อมต่อเพียงครั้งเดียวเท่านั้น ก็ลองดูตามความเหมาะสมและความชอบของแต่ละบุคคล... ขอบคุณครับ





No comments:

Post a Comment