13
การเขียนโปรแกรม Pocket PC เพื่อรับสงขอมูลแบบอนุกรมทาง Bluetooth โดยนายธีระพงษ ธนเดโชพล

การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

Embed Size (px)

Citation preview

Page 1: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

การเขยนโปรแกรม Pocket PC เพอรบสงขอมลแบบอนกรมทาง Bluetooth

โดยนายธระพงษ ธนเดโชพล

 

 

Page 2: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

ในปจจบนนอปกรณประเภท Pocket PC (PPC) ไดพฒนาอยางไปอยางรวดเรว ทงดานขนาด รปลกษณ ความเรว

และความสามารถในการใชงานไดหลากหลายรปแบบ ตวอยางเชน Pocket PC ปจจบนนสามารถทางานไดหลายอยาง ไมวา

จะเปนการนาทางดวยระบบ GPS การเชอมตอ Internet ทาง Wireless Lan ดหนง ฟงเพลง หรอแมกระทงการใชงานเปน

โทรศพท (Pocket PC Phone) พรอมทงราคาทหลายทานสามารถจบจองเปนเจาของไดอยางงายดาย ซง Pocket PC ในทก

วนนราคาไมแตกตางกบโทรศพทมอถอ แบบ Smart Phone มากเทาไหรนก   

โดยทานผอานจะเหน Pocket PC ไดถกนามาใชในงาน ไมวาจะเปนในรานอาหารใหญ ๆ การทาสตอกสนคา การ

เกบขอมลการใชไฟฟาจากมเตอรไฟฟาของพนกงานเกบคาไฟฟา การใช Pocket PC ของแพทยเพอเกบขอมลของคนไขใน

คลนก หรอแมกระทงในโรงงานอตสาหกรรม เพราะดวยขอดหลาย ประการทาใหการใช Pocket PC เปนทนยมอยากมาใน

ปจจบน แตทานผอานทงหลายเคยคดหรอไมวา Pocket PC ในปจจบนไมไดมความสามารถแคการใชเปนโปรแกรมเพอเกบ

ฐานขอมล คานวณ หรอนาทาง แต Pocket PC สามารถทจะเขยนโปรแกรมเพอใชในการควบคม เครองจกร หรอ Hardware 

ตางๆ ไดอยางงายดายดวยการใชการสอสารแบบอนกรม ของ Module  Bluetooth ทตดตงมาอยภายในตว Pocket PC 

โดยในบทความนทางผเขยนจะขอเสนอถงการเขยนโปรแกรมของ Pocket PC อยางไรในการเพอรบและสงขอมลผานทาง

Bluetooth ระหวาง Pocket PC กบเครองคอมพวเตอรสวนบคคล โดยเครองมอทผเขยนใชในการพฒนาโปรแกรมใน

Pocket PC นนคอ  โปรแกรม Microsoft Visual Studio 2005 โดยภาษาทใชในบทความนคอภาษา C#  ซงถาผอานทานใด

ถนด ภาษา Basic กสามารถใช Visual Basic.NET เขยนได เพราะโปรแกรมททางผเขยน เขยนขนมาจะอางองกบ

สถาปตยกรรม .NET Framework จงทาใหความแตกตางในของการพฒนาดวย C# กบ VB.NET แตตางตางกนท Syntax 

ของภาษาอยางเดยว Object ทใชนนเปนตวเดยวกนการเรยกใชเหมอนกน และเครองมออกอยางทตองใชคอ Windows 

Mobile 6 SDK ซง เครองมอตวนทาง Microsoft ไดแจกจายใหกบนกพฒนาโปรแกรมใชและดาวนโหลดไดโดยไมเสย

คาใชจาย โดยภายใน Windows Mobile 6 SDK จะมเครองมอทใชในการพฒนาโปรแกรมสาหรบเครอง Pocket PC ทใช

ระบบปฏบตการ Window Mobile 6.0 หรอ สงกวา เชน Windows Mobile 6 Device Emulator, Cellular Emulator, 

Microsoft® SQL Server ™ 2005 Compact Edition เปนตน แตการทจะลง Windows Mobile 6 SDK ไดนนทานผอาน

จะตองลง Service Pack 1 ของ Microsoft Visual Studio 2005 กบ Microsoft .NET Compact Framework v2 ใน

เครองกอน (โดยสามารถ download ไดจาก website ของ Microsoft ไดเลย)  

 

Page 3: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

 

     รปท 1 การสรางโปรเจคใหมใน Microsoft Visual Studio 2005 

เรมสราง project ใหมไปท File>New>Project (หรอกด Ctrl + Shift + N ) ดงรปท 1 

รปท 2 หนาตาง New Project สาหนบเลอกภาษาและรปแบบในการพฒนาโปรแกรม 

หลงจากเสรจสนขนตอนขางตน จะมหนาตาง New Project  ในรปท 2 ขนมาโดยใหผอานเลอกตวเลอกสาหรบการ

สรางโปรเจคใหมดงน ในชอง Project type ใหเลอก Visual C# > Smart Device > Windows Mobile 6 

Professional 

Page 4: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

ในชอง Templates ใหเลอก Device Application  แลวเลอกตงชอในชอง Name (ในบทความนตงชอวา 

PPC_SerialBT) จากนนกด OK เพอสราง Project ใหม

 

รปท 3 Design Explorer 

หลงเสรจสนขนตอนในการสราง Project ขางตนแลว โปรแกรม Visual Studio 2005 จะสราง Form สาหรบใชใน

การพฒนาโปรแกรมใหเรา โดยลกษณะจะเปนไปดงรปท 3  

Page 5: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

รปท 4 Toolbox โดย Control ทงหมดจะถกเกบรวบรวมอยทน

Page 6: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

 

จากนนทานเลอก control ดงตอไปนจาก Toolbox ในรปท 4 มาใสใน Form ดงรปท 5

ComboBox ( )  จานวน 2 อน 

Button( ) จานวน 2 อน 

TextBox( ) จานวน 2 อน 

SerialPort( ) จานวน 1 อน 

Timer( ) จานวน 1 อน

Page 7: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

 

รปท 6 การสราง MainMenu        รปท 7 การใสชอใหกบ MainMenu 

จากนนใหทาน คลกไปยงบรเวณทขนวา “Type Here”  เพอสราง Main Menu 

โดยจากรปท 7 ในชองท 1 ใหผอานใส เปน Menu Exit โดยท Menu นใชสาหรบในการปดโปรแกรม ดงนนใหตงชอ  

Menu นวา “Exit” 

และ Menu ในชองทสองกเชนกน แตในชองนใหผอานใสเปน Clear โดย Menu Clear นจะทาหนาทสาหรบการลบ

คาใน TextBox ทใชในการแสดงคาทรบมาระหวางการสอสาร 

 

รปท 8 Properties Windows 

จากนนใหผอานแกไข Properties ของ Control ตางๆ ตามตารางท 1 ในชอง Properties ดงรปท 8

Page 8: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

Control Name  Control  Rename 

Text  Multiline  ScrollBars  Enable 

button1  btConnect  Connect  ‐  ‐  True Button2  btSend  Send  ‐  ‐  False comboBox1  cbComport  COM6 ‐ ‐ TruecomboBox2  cbBaudrate  9600  ‐  ‐  True textBox1  txtSend  “”  false  None  True textBox2  txtReceive  “”  true  Vertical  True menuItem1  menuExit  Exit  ‐  ‐  True menuItem2  menuClr  Clear  ‐  ‐  True Form1 From1  PPC Bt Serial  ‐  ‐  True serialPort1 serial  ‐  ‐  ‐  ‐ timer1 timer  ‐  ‐  ‐  false  

    ตารางท 1 Control Properties

หลงจากนนให Double Click ท Form1 เพอใส Code สาหรบการกาหนดคาเรมตนใหกบ cbComport และ

cbBaudrate โดย code นจะทางานเมอโปรแกรม Load  Form1 ขนมาทางาน private void Form1_Load(object sender, EventArgs e)

{ cbBaudrate.Items.Add("9600"); cbBaudrate.Items.Add("19200"); cbBaudrate.Text = "9600"; cbComport.Items.Add("COM7"); cbComport.Text = "COM7"; timer.Interval = 1; }  

 โดยคาสงดงกลาวเปนการเพม Baudrate และ ComPort ใสลงใน ComboBox 

และถาผอานสงเกตจะเหนวา cbComport ถกกาหนด ComPort เปน “COM7”นนเพราะ ระบบปฏบตการ  (Window 

Mobile 6.0)  ของเครอง Pocket PC  ทใชทดสอบ (ASUS P535) ไดกาหนด Bluetooth Serial Port A  และ Bluetooth 

Serial Port B อยท COM7 โดย Bluetooth Manager จะเปนตวจดการวาจะใหรบสงขอมลท Port A หรอ B    จากนนใหพมพ code ตามนลงไปท source code edit private void btConnect_Click(object sender, EventArgs e) { if (btConnect.Text == "Connect") { serial.PortName = cbComport.Text; serial.BaudRate = Convert.ToInt32(cbBaudrate.Text); serial.Open(); cbBaudrate.Enabled = false; cbComport.Enabled = false; timer.Enabled = true;

Page 9: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

btConnect.Text = "Disconnect"; } else { serial.Close(); timer.Enabled = false; cbBaudrate.Enabled = true; cbComport.Enabled = true; btConnect.Text = "Connect"; }

}

โดย source code ขางบนเปนการกาหนดเหตการณเมอมการกดปม btConnect เพอใชสาหรบ

การเชอมตอทาง Serial Bluetooth โดยการกาหนดคา Baudrate และ Comport จะเปนไปตามคาทถกเลอกใน cbBaudrate และ cbComport

private void btSend_Click(object sender, EventArgs e) { serial.Write(txtSend.Text);

} Source code นกาหนดเหตการณเมอมการกดปม btSend ใชสาหรบการสงขอความออกท Serial

โดยขอความนนจะอานมาจาก Control TextBox ทชอ txtSend

private void menuClr_Click(object sender, EventArgs e) { txtReceive.Text = "";

}

กานหดใหเมอม เหตการณเมอมการกดปม menuClr ใหลางคาทอยใน Control TextBox ทชอ txtReceive

private void menuExit_Click(object sender, EventArgs e) { if (serial.IsOpen) serial.Close(); Close();

}

จากนนกาหนดการทางานหลงจาก Timer เกดเหตการณ  Tick (double Click ท ) แลวพมพ code 

ดงน 

private void timer_Tick(object sender, EventArgs e) { string str; str = serial.ReadExisting(); txtReceive.Text += str; txtReceive.SelectionStart = txtReceive.Text.Length; txtReceive.ScrollToCaret();

}

Page 10: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

โดยการทางานของ Timer หลงจากเกดเหตการณ Tick คอถา Control Serial ไดรบ

ขอความจากการเชอมตอจาก port ทกาหนด ใหนาขอความนนไปแสดงท Control TextBox

ทชอ txtReceive

และสาเหตทผเขยนเลอกใช timer เพอใชเปนตวจบเวลาในการอานขอมล นนเพราะวา ใน ระบบปฏบตการ

Windows Mobile ไมสามารถทา DataReceivedEventHandler (Interrupt) ในการสอสารทาง Serial ได

จากนนให Build Solution (Ctrl + Shift + B)  ถา Build สาเรจในหนาตาง Output จะขนวา

“Build: 1 succeeded” ดงรปท 9

 

รปท 9 Build: 1 succeeded 

 

การทดลอง 

จากนนทดลองโดยการคดลอก Execute File (โดย Execute File ท Build สาเรจจะถกสรางไวท

โฟลเดอรPPC_SerialBT\bin\Debug)

ไปไวยง PPC ทเตรยมไวสาหรบทดลอง (รปท 10) เปด Bluetooth ของเครอง PPC  จากนน Execute 

โปรแกรมขางตน (PPC_SerialBT.exe) 

Page 11: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

 

รปท 10 รปท 11 รปท 12 

 

ใหเลอก Baudrate และ Comport  ดงรปท 11  จากนนกด Connect แลวโปรแกรมจะแสดงรายการ

อปกรณในการเชอมตอมาให ใหเราเลอกคอมพวเตอรทจะใชในการทดลอง ดงภาพท 12 และถาเชอมตอเสรจ

โปรแกรมทดลองจะเปนดงภาพ 13 และทคอมพวเตอรจะมขอความขนมาบอกวามการเชอตอ Serial Bluetooth ท

Port ใดของเครองคอมพวเตอร ดงภาพท 14 จากนนพมพขอความจากเครองคอมพวเตอร ดงรป ท 15 แลวสง 

 

รปท 14

รปท 13 รปท 15

 

Page 12: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

หลงจากทสงขอความจากเครอง คอมพวเตอรใหดขอความทไดรบมาในเครอง PPC จะไดดงรปท 16 จากนนจะเปน

การสงขอความจากเครอง PPC ไปยงเครองคอมพวเตอรโดยใหผอานพมพขอความจาก PPC แลวกด send ดงตวอยางใน

รปท 17 ถาโปรแกรมสามารถทางานถกตองในเครองคอมพวเตอรกจะเปนดงรปท 18  

รปท 16 รปท 17

รปท 18 

 

Page 13: การเขียนโปรแกรม Pocket PC เพื่อรับส่งข้อมูลทาง Bluetooth

โดยจากการทดลองนทานผอานสามารถนาไปประยกตไดมากมาย เชน การนาเครอง PPC ไปควบคมหนยนตท

ตดตงอปกรณทรองรบการเชอมตอและรบสงขอมลในรปแบบของ Serial Bluetooth ได หรอการนาไป

ประยกตใชในงาน Home Control ดวย PDA กไดครบ หรอผอานทานใดมขอสงสย หรอขอแนะนาสามารถ

e‐mail มาทผเขยนไดโดยตรงท [email protected] ครบ