ภาพรวมบทเรียน
บทที่ 2 แนะนำอุปกรณ์ IoT เป็นบทเรียนต่อจากพื้นฐาน IoT โดยเน้นการรู้จักอุปกรณ์จริงที่ใช้ในการทดลองและพัฒนาระบบ IoT โดยเฉพาะบอร์ด Arduino และการใช้งานโปรแกรม Arduino IDE สำหรับเขียน ตรวจสอบ และอัปโหลดโปรแกรมเข้าสู่บอร์ด
สไลด์บทนี้วางหัวข้อหลักไว้ 5 ส่วน ได้แก่ การแนะนำอุปกรณ์พื้นฐาน IoT, การเขียนโปรแกรมภาษา C ของ Arduino, การใช้คำสั่ง if else, การใช้คำสั่งทำซ้ำ และตัวอย่างโปรแกรม
Learning Objectives
หลังเรียนบทนี้ ผู้เรียนควรรู้จักอุปกรณ์พื้นฐาน IoT และสามารถเริ่มต้นเขียนโปรแกรม Arduino อย่างง่ายได้
ภาพรวมการเรียนรู้บทที่ 2
2.1 อุปกรณ์พื้นฐานเกี่ยวกับ Internet of Things
การเริ่มต้นทำ IoT ควรรู้จักอุปกรณ์พื้นฐานที่ใช้ต่อวงจร อ่านค่า ควบคุมอุปกรณ์ และทดลองโปรแกรม อุปกรณ์ที่สไลด์แนะนำประกอบด้วยบอร์ด Arduino, Shield, Breadboard, Jumper Wire, หัวแร้ง, Resistor และ LED
Arduino Board
บอร์ดไมโครคอนโทรลเลอร์สำหรับอ่านค่า Sensor และควบคุมอุปกรณ์ เช่น LED, Relay, Motor หรือ Buzzer
Shield
บอร์ดเสริมที่ติดตั้งบน Arduino เพื่อเพิ่มความสามารถ เช่น Ethernet, Motor, Relay, GPS หรือ XBee
Breadboard
แผงทดลองวงจรแบบไม่ต้องบัดกรี เหมาะกับผู้เริ่มต้นและการสร้างต้นแบบ
Jumper Wire
สายไฟสำหรับเชื่อมต่ออุปกรณ์ระหว่าง Arduino, Breadboard และ Sensor
LED
อุปกรณ์แสดงผลพื้นฐาน ใช้ทดลองเปิด-ปิดไฟหรือแสดงสถานะของระบบ
Resistor
ตัวต้านทาน ใช้จำกัดกระแสไฟ ป้องกัน LED หรืออุปกรณ์เสียหาย
2.2 Arduino คืออะไร?
Arduino อ่านว่า “อาดุ-อี-โน่” หรือ “อาดุยโน่” เป็นบอร์ดไมโครคอนโทรลเลอร์ตระกูล AVR ที่พัฒนาแบบ Open Source ทั้งด้าน Hardware และ Software จุดเด่นคือใช้งานง่าย เหมาะสำหรับผู้เริ่มต้นและผู้ที่ต้องการสร้างต้นแบบระบบ IoT
บอร์ด Arduino สามารถเชื่อมต่อกับอุปกรณ์ภายนอกผ่าน I/O Port และขยายความสามารถด้วย Arduino Shield หลายประเภท เช่น XBee Shield, Music Shield, Relay Shield และ GPRS Shield
2.3 จุดเด่นของ Arduino
- ง่ายต่อการพัฒนา มีรูปแบบคำสั่งพื้นฐาน ไม่ซับซ้อน เหมาะสำหรับผู้เริ่มต้น
- มี Arduino Community ขนาดใหญ่ และมีตัวอย่างให้ศึกษาเป็นจำนวนมาก
- เป็น Open Hardware ทำให้ผู้ใช้สามารถนำบอร์ดไปต่อยอดได้หลายด้าน
- ราคาไม่แพง เหมาะกับการเรียนการสอนและงานต้นแบบ
- รองรับหลายระบบปฏิบัติการ สามารถพัฒนาโปรแกรมได้บนหลาย OS
2.4 รูปแบบการเขียนโปรแกรมบน Arduino IDE
Arduino IDE เป็นโปรแกรมสำหรับเขียนโค้ด ตรวจสอบโค้ด และอัปโหลดโค้ดเข้าสู่บอร์ด Arduino โดยเชื่อมต่อบอร์ดกับคอมพิวเตอร์ผ่านสาย USB
ติดตั้ง Arduino IDE
ดาวน์โหลดและติดตั้งโปรแกรม Arduino IDE จากเว็บไซต์ Arduino แล้วเปิดโปรแกรมเพื่อเริ่มเขียนโค้ด
เชื่อมต่อบอร์ดกับคอมพิวเตอร์
ใช้สาย USB เชื่อมต่อ Arduino กับคอมพิวเตอร์ โปรแกรมจะเห็นบอร์ดผ่าน COM Port
เลือก Board และ Port
เลือกชนิดบอร์ด เช่น Arduino UNO และเลือก Serial Port ให้ตรงกับบอร์ดที่เชื่อมต่อ
Verify และ Upload
กด Verify เพื่อตรวจสอบและ Compile จากนั้นกด Upload เพื่อโหลดโปรแกรมเข้าสู่บอร์ด
2.5 การเลือก Board และ Port
ก่อนอัปโหลดโปรแกรม ต้องเลือกบอร์ดและพอร์ตให้ถูกต้องใน Arduino IDE โดยไปที่เมนู Tools → Board เพื่อเลือกชนิดบอร์ด และ Tools → Port เพื่อเลือก COM Port ที่บอร์ดเชื่อมต่ออยู่ เช่น COM3 หรือ COM อื่น ๆ
2.6 การ Verify และ Upload โปรแกรม
ขั้นตอนสำคัญในการใช้งาน Arduino IDE คือการกด Verify เพื่อตรวจสอบความถูกต้องและ Compile โค้ด จากนั้นกด Upload เพื่อส่งโปรแกรมผ่านสาย USB ไปยังบอร์ด Arduino เมื่ออัปโหลดสำเร็จ มักแสดงข้อความว่า “Done uploading”
2.7 Layout & Pinout Arduino UNO R3
สไลด์อธิบายส่วนประกอบของ Arduino UNO R3 ซึ่งเป็นบอร์ดที่นิยมใช้มากที่สุดสำหรับการเรียนรู้เบื้องต้น เพราะ Library และ Shield ส่วนใหญ่รองรับรุ่นนี้
| ส่วนประกอบ | หน้าที่ |
|---|---|
| USB Port | เชื่อมต่อคอมพิวเตอร์เพื่ออัปโหลดโปรแกรมเข้า MCU และจ่ายไฟให้บอร์ด |
| Reset Button | ปุ่มรีเซ็ต ใช้เมื่อต้องการให้ MCU เริ่มทำงานใหม่ |
| Digital I/O D0–D13 | ขาดิจิทัลสำหรับรับส่งสัญญาณ โดยบางขารองรับ Serial หรือ PWM |
| Analog Input A0–A5 | รับสัญญาณอนาล็อกจาก Sensor เช่น แสง ความชื้น หรือแรงดันไฟฟ้า |
| Power Port | ขาไฟเลี้ยง +3.3V, +5V, GND และ Vin สำหรับวงจรภายนอก |
| Power Jack | รับไฟจาก Adapter โดยแรงดันที่เหมาะสมมักอยู่ช่วง 7–12V |
| MCU ATmega328 | หน่วยประมวลผลหลักของบอร์ด Arduino UNO R3 |
2.8 รุ่นต่าง ๆ ของ Arduino
สไลด์แนะนำ Arduino หลายรุ่น โดยแต่ละรุ่นเหมาะกับงานต่างกัน เช่น งานเริ่มต้น งานที่ต้องใช้ I/O จำนวนมาก งานขนาดเล็ก หรืองานที่ต้องเชื่อมต่อ Network
Arduino UNO R3
รุ่นยอดนิยม เหมาะกับผู้เริ่มต้น มี Library และ Shield รองรับจำนวนมาก
Arduino UNO SMD
ทำงานคล้าย UNO R3 แต่ใช้ MCU แบบ SMD Package แทนแบบ DIP
Arduino Mega 2560 R3
มีจำนวน I/O มากกว่า UNO เหมาะกับงานที่ต่อ Sensor หรือ Servo หลายตัว
Arduino Ethernet / Network
เหมาะกับงานควบคุมผ่านเครือข่ายหรือระบบ IoT ที่ต้องเชื่อมต่อ TCP/IP
ต้องการทำชุดทดลอง IoT สำหรับการเรียนการสอน?
Siam2Dev ช่วยออกแบบชุดอุปกรณ์ Arduino/ESP32, Sensor, Data Logger, Dashboard และคู่มือปฏิบัติการสำหรับรายวิชา IoT หรือ Workshop
2.9 โครงสร้างโปรแกรม Arduino
โปรแกรม Arduino มีโครงสร้างหลัก 2 ฟังก์ชัน คือ setup() และ loop() โดย setup() ทำงานหนึ่งครั้งเมื่อบอร์ดเริ่มทำงาน ส่วน loop() ทำงานซ้ำไปเรื่อย ๆ
void setup() {
// ทำงานครั้งเดียว เช่น กำหนดโหมดขา
}
void loop() {
// ทำงานซ้ำ เช่น อ่านค่า Sensor หรือเปิดปิด LED
}2.10 การใช้งาน Arduino คำสั่ง if else
คำสั่ง if else ใช้ตัดสินใจตามเงื่อนไข เช่น หากค่าจาก Sensor มากกว่าค่าที่กำหนดให้เปิดอุปกรณ์ มิฉะนั้นให้ปิดอุปกรณ์
int sensorValue = 650;
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
if (sensorValue > 500) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}2.11 การใช้งาน Arduino คำสั่งทำซ้ำ
คำสั่งทำซ้ำช่วยให้โปรแกรมทำงานหลายรอบ เช่น กระพริบ LED หลายครั้ง อ่านค่า Sensor ต่อเนื่อง หรือสั่งงานอุปกรณ์เป็นชุด
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 5; i++) {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
}
delay(2000);
}2.12 ตัวอย่างโปรแกรม: LED Blink
ตัวอย่างพื้นฐานที่สุดของ Arduino คือการเปิด-ปิด LED หรือ Blink ซึ่งช่วยให้ผู้เรียนเข้าใจการกำหนดขา Output และการใช้คำสั่ง digitalWrite() กับ delay()
int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH); // เปิด LED
delay(1000); // รอ 1 วินาที
digitalWrite(ledPin, LOW); // ปิด LED
delay(1000); // รอ 1 วินาที
}สรุปบทเรียน
บทที่ 2 ช่วยให้ผู้เรียนรู้จักอุปกรณ์พื้นฐาน IoT และเริ่มต้นใช้งาน Arduino IDE ได้ ตั้งแต่การเลือก Board/Port การ Verify/Upload โปรแกรม ไปจนถึงการเขียนโค้ดพื้นฐานด้วย setup(), loop(), if else และคำสั่งทำซ้ำ ซึ่งเป็นพื้นฐานสำคัญก่อนพัฒนาโครงงาน IoT จริง
แบบฝึกหัดท้ายบท
- อธิบายหน้าที่ของ Arduino, Breadboard, Jumper Wire, LED และ Resistor
- Arduino Shield คืออะไร และมีประโยชน์อย่างไร
- อธิบายขั้นตอนการเลือก Board และ Port ใน Arduino IDE
- Verify และ Upload ต่างกันอย่างไร
- ระบุส่วนประกอบสำคัญของ Arduino UNO R3 อย่างน้อย 5 ส่วน
- เปรียบเทียบ Arduino UNO R3 กับ Arduino Mega 2560 R3
- เขียนโค้ดเปิด LED เมื่อค่าจาก Sensor มากกว่า 500
- เขียนโปรแกรมให้ LED กระพริบ 5 ครั้งแล้วหยุดพัก 2 วินาที