สอน Visual C# บทที่ 1 ESP32 สั่ง เปิด-ปิด LED
✍️ 🎚💡เริ่มต้นจะต้องทำการดาวน์โหลดโปรแกรม Visual Studio ที่ลิ้งค์ด้านล่าง หรือกด ที่นี่
http://download.microsoft.com/download/8/4/3/843ec655-1b67-46c3-a7a4-10a1159cfa84/vs2015.3.ent_enu.iso
หรือติดตั้งแบบออนไลน์ ที่ลิ้งค์ด้านล่าง หรือกด ที่นี่
https://aka.ms/vs/14/release/2015_Update3
- ทำการติดตั้งโปรแกรม Visual Studio
2..กด New Projects เพื่อสร้างโปรเจคใหม่
2.เลือก Visual C# > Windows Forms Application เสร็จแล้ว ตั้งชื่อโปรเจค จากนั้นกด OK
3.การพัฒนาจะใช้ 3 ส่วนหลักๆ คือ ส่วนที่ 1 Toolbox คือส่วนของเครื่องมือต่างๆ ส่วนที่ 2 Form คือส่วนที่นำเครื่องมือต่างๆมาประกอบกันเพื่อสร้างเป็นโปรแกรม และส่วนที่ 3 Properties คือส่วนที่ใช้กำหนดคุณสมบัติต่างๆของ Form และเครื่องมือต่างๆ
4.เริ่มต้นด้วยการสร้างการเชื่อมต่อ Serial Port ก่อน ใช้เครื่องมือดังภาพด้านล่าง
5.ให้ตั้งชื่อ Control โดยคลิกเลือก Control ที่จะตั้งค่า แล้วไปที่ Properties> (Name) ป้อนชื่อตามข้อความสีแดงด้านบน
6.ตั้งค่าเริ่มต้นให้ปุ่ม Close, ON และ OFF เป็น disable โดยตั้งค่าที่ Properties> Enabled ตั้งค่าเป็น False ดังภาพ
7.ตั้งค่า cbbPort ให้สามารถเลือกรายการได้อย่างเดียว โดยไปที่ control cbbPort แล้วไปที่ Properties DropDownStyle แล้วเลือก DropDownList
8. ต่อไปเพิ่ม Control SerialPort เพื่อใช้ในการสื่อสารกับบอร์ด Arduino
9. เพิ่มคำสั่งนำเข้าไลบรารี่ Serial Port โดยใช้คำสั่งดังนี้
using System.IO.Ports;
10. ตั้งค่าตรวจสอบ Port ที่เชื่อมต่อเมื่อเริ่มต้นเปิดโปรแกรม ไปที่ฟังก์ชั่น Form load โดยการดับเบิ้ลคลิก พื้นที่ว่างบนฟอร์ม
11.เพิ่มคำสั่งตรวจสอบ Port ที่เชื่อมต่อ แล้วแสดงผลที่ ComboBox(cbbPort) และตั้งค่าเลือกตัวเลือกแรกที่ตรวจพบ
try {
cbbPort.Items.AddRange(SerialPort.GetPortNames());
cbbPort.SelectedIndex = 0;
}
catch {}
}
12.ต่อไปตั้งค่า control cbbPort เวลากดเลือก Port ให้ทำการตรวจสอบ Port ทั้งหมดที่เชื่อมต่ออยู่อีกครั้ง โดยไปที่ control cbbPort แล้วกดปุ่ม สายฟ้า เลือก Action แล้วดับเบิ้ลคลิก MouseClick
13.เพิ่มคำสั่งอ่านค่า Port ในฟังก์ชั่น cbbPort_MouseClick
cbbPort.Items.Clear();
try {
cbbPort.Items.AddRange(SerialPort.GetPortNames());
cbbPort.SelectedIndex = 0;
}
catch {}
14. ต่อไปเพิ่มคำสั่ง ปุ่ม Open โดยทำการ ดับเบิ้ลคลิกที่ปุ่ม Open
15. เพิ่มคำสั่ง เชื่อมต่อ Serial Port และ เปิดการทำงานปุ่ม Close, ON, OFF โดย คำสั่ง serialPort1.PortName จะรับค่า Port ที่ตัวเลือกจาก ComboBox และ คำสั่ง serialPort1.BaudRate จะกำหนดความเร็วในการสื่อสาร โดยกำหนดไว้ที่ 9600 bps
try
{
serialPort1.PortName = cbbPort.Text;
serialPort1.BaudRate = 9600;
serialPort1.Open();
btnOpen.Enabled = false;
btnClose.Enabled = true;
btnOn.Enabled = true;
btnOff.Enabled = true;
}
catch { }
ทดสอบรันโปรแกรม
16. เพิ่มคำสั่ง ปิด Port ให้กับปุ่ม Close และ เปิดการทำงานปุ่ม Open
try
{
serialPort1.Close();
btnOpen.Enabled = true;
btnClose.Enabled = false;
btnOn.Enabled = false;
btnOff.Enabled = false;
}
catch { }
ทดสอบรันโปรแกรม
16. ต่อไปทำการส่งคำสั่ง ให้ LED ติด บนบอร์ด ESP32 โดยดับเบิ้ลคลิกปุ่ม ON
17. เพิ่มคำสั่ง serialPort1.Write(“H”); ซึ่งเป็นคำสั่งส่งค่า H ไปยัง ESP32
try
{
serialPort1.Write("H");
}
catch { }
18. และปุ่ม OFF ให้ส่งค่า L ไปครับ
try
{
serialPort1.Write("L");
}
catch { }
19. เสร็จขั้นตอนการส่งคำสั่งไปยัง ESP32 ต่อไปให้เพิ่มคำสั่ง ปิดการเชื่อมต่อ Serial เมื่อผู้ใช้ปิดฟอร์ม โดยคลิกตรงที่ว่างในฟอร์ม กดปุ่มสายฟ้า แล้วดับเบิ้ลคลิกที่ FormClosing
20.เพิ่มคำสั่งปิดฟอร์ม และปิดโปรแกรม
serialPort1.Close();
Application.Exit();
21.เสร็จขั้นตอนการพัฒนาโปรแกรมบน Visual C#
ต่อไปเป็นการเขียนโค้ดบน ESP32 เพื่อรับคำสั่งจาก Visual C# ดังนี้
โดยจะควบคุม LED สีเขียว ซึ่งต่ออยู่ที่ขา 12
#define LED 12
char income;
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(9600);
}
void loop() {
income = Serial.read();
if(income == 'H')
digitalWrite(LED,HIGH);
if(income == 'L')
digitalWrite(LED,LOW);
}
22.ทำการ Upload โค้ดลงบอร์ด ESP32
23.ทดสอบโปรแกรม
บทความนี้ดัดแปลงจากบทความของ ครูประภาส สุวรรณเพชร
https://www.praphas.com/forum/index.php?topic=375.0
ขอบคุณที่รับชมครับผม
สนันสนุน KruRin ในการเขียนบทความ เลี้ยงกาแฟซักแก้วครับ กดที่นี่
สนใจบอร์ด IoT Education Kit V1.1
สั่งซื้อใน Shopee ที่ลิ้งค์ด้านล่างได้เลยครับผม
https://shopee.co.th/narindamnuy
หรือ กด ที่นี่
บทต่อไป กดลิ้งค์ด้านล่างเลยครับ