10 โปรเจค Arduino สุดกวน ทำแล้วเพื่อนร้องยี้ แต่ฝีมือได้เรื่อง
เตรียมของให้พร้อม!
โปรเจคนี้ต้องใช้: SG90 Servo Motor 9g ใช้ได้กับ Arduino ESP8266 ESP32 สำหรับงานแกล้งเพื่อนและโปรเจคหุ่นยนต์
บทนำ: ทำไมโปรเจค Arduino แนวกวนๆ ถึงเป็นที่ฝึกฝีมือได้ดีที่สุด
จริงจังกับ Arduino เยอะไปก็เครียด บางทีโปรเจคที่ทำให้เราเก่งขึ้นเร็วที่สุดคือโปรเจคที่ “กวน” จนเพื่อนสะดุ้ง เพราะมันบังคับให้เราคิดเรื่อง timing, sensor, actuator และ user experience จริงๆ ไม่ใช่แค่เปิดไฟ LED กระพริบตาม textbook
โปรเจค Arduino สุดกวนที่รวมมาให้นี้ ไม่ได้เน้นแค่ขำ แต่ละอันมีเทคนิคที่ใช้ต่อยอดในงานจริงได้ — PIR sensor, servo control, audio playback, motor driver, WiFi trigger ครบเซ็ต
ก่อนเริ่ม: ข้อควรระวังเรื่องความปลอดภัยและจริยธรรม
ก่อนจะลงรายการ ต้องคุยกันตรงๆ ก่อน
ทำได้: แกล้งเพื่อนสนิทในบ้าน ในห้องเรียน ในที่ทำงาน (ถ้าเพื่อนร่วมงานเล่นด้วย), prank ครอบครัว, หลอกน้องหมาน้องแมา
ทำไม่ได้: หลอกคนแปลกหน้า, เอาไปใช้กับอุปกรณ์สาธารณะ, ทำให้คนตกใจจนเกิดอุบัติเหตุ (เช่น ไฟช็อตของจริงที่แรงสูงเกิน, เสียงดังเกิน, ของหล่นใส่หัว)
ข้อแนะนำ: ใช้ไฟ 5V จาก Arduino ตรงๆ สำหรับ prank เกือบทุกอันปลอดภัยถ้าต่อถูก ถ้าใช้ไฟเกิน 12V ต้องมี resistor หรือ MOSFET คั่นเสมอ
โปรเจคที่ 1: ตูดหยอดตะขาบหลอกให้ตกใจ (Centipede Prank)
โปรเจคคลาสสิกจากคลังของเรา ใช้ Arduino สั่ง servo ขยับเป็นจังหวะ แล้วหยอด “ตะขาบ” (จริงๆ คือเชือกหรือแถบผ้า) ลงมาจากที่สูง เหมาะแขวนใต้โต๊ะทำงานหรือหลังตู้
อุปกรณ์ที่ต้องใช้
- Arduino Nano หรือ Uno
- Servo SG90 (1 ตัว)
- เชือกหรือแถบผ้าสีดำ ยาวประมาณ 30 ซม.
- PIR sensor (ตรวจจับคนเดินผ่าน)
- แบตเตอรี่ 9V
วงจร
- Servo signal → D9
- PIR OUT → D2
- PIR VCC → 5V, GND → GND
โค้ดตัวอย่าง
#include <Servo.h>
Servo prankServo;
const int pirPin = 2;
const int servoPin = 9;
int angle = 0;
int direction = 1;
void setup() {
pinMode(pirPin, INPUT);
prankServo.attach(servoPin);
prankServo.write(0);
}
void loop() {
if (digitalRead(pirPin) == HIGH) {
// ขยับ servo กวักแกว่ง 3 ครั้ง
for (int i = 0; i < 6; i++) {
angle += direction * 30;
if (angle >= 120 || angle <= 0) direction *= -1;
prankServo.write(angle);
delay(150);
}
delay(3000); // พัก 3 วินาทีก่อนเริ่มรอบใหม่
}
}
ข้อควรระวัง: Servo SG90 มีแรงบิดจำกัด ถ้าเชือกหนักเกินจะหมุนไม่ไป ลองใช้เชือกเอ็นเบาหรือเปลี่ยนเป็น MG90S ที่แรงบิดเยอะกว่า ถ้าอยากดูโปรเจคต้นฉบับเต็มๆ ดูได้ที่ Arduino Centipede Dropping Prank แกล้งปล่อยตะขาบ
โปรเจคที่ 2: พัดลมดูดกลิ่นห้องน้ำอัตโนมัติ (Fart Extractor)
โปรเจคนี้กวนในเชิงสุขอนามัย ใช้ PIR sensor ตรวจจับคนเข้าห้องน้ำ แล้วสั่งพัดลมเป่าทิศทางเฉพาะ (หรือกระจายน้ำหอม) ใช้ตลกๆ ในบ้าน หรือจริงจังก็ได้
อุปกรณ์ที่ต้องใช้
- Arduino Uno
- PIR sensor HC-SR501
- Relay module 5V
- พัดลม DC 12V (เล็กๆ 5x5 ซม.)
- Adapter 12V 1A
โค้ดตัวอย่าง
const int pirPin = 2;
const int relayPin = 7;
const int fanDuration = 8000; // เป่า 8 วินาที
void setup() {
pinMode(pirPin, INPUT);
pinMode(relayPin, OUTPUT);
digitalWrite(relayPin, LOW);
}
void loop() {
if (digitalRead(pirPin) == HIGH) {
digitalWrite(relayPin, HIGH);
delay(fanDuration);
digitalWrite(relayPin, LOW);
delay(2000);
}
}
ข้อควรระวัง: Relay module ที่ใช้กับ Arduino ส่วนใหญ่ active LOW หมายความว่าส่ง LOW = เปิด HIGH = ปิด ถ้าสั่งผิดด้าน พัดลมจะทำงานตลอดเวลา ลองดูต้นฉบับได้ที่ Automatic FART EXTRACTOR / Fan สำหรับ Bathroom Dehumidifier
โปรเจคที่ 3: นาฬิกาปลุกไฟช็อต (Shock Alarm Clock)
โปรเจคนี้เอาไว้ปลุกคนที่ตื่นยากจริงๆ (เช่น ตัวเอง หรือเพื่อนที่นอนดึงเกินไป) ใช้หลักการ “ไฟฟ้าสถิต” เล็กๆ ไม่ได้เป็นอันตราย แต่ตื่นแน่นอน
อุปกรณ์ที่ต้องใช้
- Arduino Nano
- RTC module DS3231 (นาฬิกา)
- Boost converter 3V → 200V
- Buzzer 5V
- ตัวเก็บประจุ高压 2 ตัว
- แบตเตอรี่ LiPo 3.7V
หลักการทำงาน
- DS3231 จับเวลาที่ตั้งไว้
- เมื่อถึงเวลา Buzzer ดัง + Boost converter จ่ายไฟสถิตเบาๆ ไปที่แผ่นโลหะ
- คนที่จับโดนถึงกับสะดุ้ง ตื่น 100%
ข้อควรระวัง: ห้ามใช้ไฟเกิน 200V ห้ามต่อกับคนที่มีอุปกรณ์การแพทย์ ห้ามใช้ตอนฝนตกหรือห้องเปียก รายละเอียดเต็มๆ ดูได้ที่ Alarm clock ที่จะ shock ให้คุณตื่น
โปรเจคที่ 4: กล้องให้ขนมหมาอัตโนมัติ (Treat Dispensing Dog Cam)
โปรเจคนี้กวนน้องหมาโดยเฉพาะ ใช้ ESP32-CAM ถ่ายรูป แล้วเมื่อกดปุ่มในแอป servo จะหมุนปล่อยขนมออกมา เหมาะกับคนที่ทำงานนอกบ้านแล้วอยากเล่นกับหมา
อุปกรณ์ที่ต้องใช้
- ESP32-CAM
- Servo SG90
- กล่องใส่ขนม (ออกแบบเองได้)
- แหล่งจ่ายไฟ 5V 2A
โค้ดตัวอย่าง (ส่วน servo)
#include <ESP32Servo.h>
#include <WiFi.h>
#include <WebServer.h>
Servo treatServo;
const int servoPin = 13;
WebServer server(80);
void dispenseTreat() {
treatServo.write(180);
delay(500);
treatServo.write(0);
server.send(200, "text/plain", "Treat dispensed! 🦴");
}
void setup() {
Serial.begin(115200);
treatServo.attach(servoPin);
treatServo.write(0);
WiFi.begin("YOUR_SSID", "YOUR_PASS");
while (WiFi.status() != WL_CONNECTED) delay(500);
server.on("/dispense", HTTP_GET, dispenseTreat);
server.begin();
}
void loop() {
server.handleClient();
}
ข้อควรระวัง: ESP32-CAM ต้องใช้ไฟ 5V ที่จ่ายกระแสได้เสถียร ไม่งั้นภาพจะเฟล ใช้ adapter 5V 2A ขึ้นไป ดูโปรเจคต้นฉบับได้ที่ A Treat Dispensing Dog Cam
โปรเจคที่ 5: ปืนฉีดน้ำหมาอัตโนมัติ (Pool Side Water Gun)
อันนี้กวนหนักขึ้นมาอีกระดับ เอาไว้ฉีดน้ำใส่น้องหมาตอนเล่นน้ำในสระ ใช้ PIR ตรวจจับหมา แล้ว servo กดหัวฉีดน้ำ
อุปกรณ์ที่ต้องใช้
- Arduino Uno
- PIR sensor (กันน้ำ ห่อด้วยเทปหรือใส่กล่องกันน้ำ)
- Servo ขนาดใหญ่ MG996R (แรงบิดสูง)
- Water spray nozzle
- ปั๊มน้ำ DC 12V
- Relay module
โค้ดตัวอย่าง
const int pirPin = 2;
const int pumpPin = 7;
const int servoPin = 9;
int pos = 90;
void setup() {
pinMode(pirPin, INPUT);
pinMode(pumpPin, OUTPUT);
servo.attach(servoPin);
servo.write(pos);
}
void spraySequence() {
for (int i = 0; i < 3; i++) {
digitalWrite(pumpPin, HIGH);
servo.write(60);
delay(500);
servo.write(120);
delay(500);
}
digitalWrite(pumpPin, LOW);
servo.write(90);
}
void loop() {
if (digitalRead(pirPin) == HIGH) {
spraySequence();
delay(5000);
}
}
ข้อควรระวัง: ปั๊มน้ำ 12V กินกระแสเยอะ ต้องมี adapter 12V 2A แยก ห้ามจ่ายจากขา 5V ของ Arduino ตรงๆ ดูต้นฉบับได้ที่ Automated Pool Side Water Gun for Dogs
โปรเจคที่ 6: กรงเล็บ 3 มิติควบคุมด้วยกล้ามเนื้อ (Claw Prosthesis)
โปรเจคนี้ดูเท่และกวนในเวลาเดียวกัน พิมพ์กรงเล็บ 3D แล้วใช้ myoelectric sensor อ่านสัญญาณจากกล้ามเนื้อแขน เปิด-ปิดกรงเล็บ เหมาะทำเป็น Halloween costume หรือแกล้งเพื่อน
อุปกรณ์ที่ต้องใช้
- Arduino Nano
- Myoelectric sensor module
- Servo MG90S × 3 ตัว (นิ้ว 3 นิ้ว)
- 3D printer (พิมพ์โครงกรงเล็บ)
- แบตเตอรี่ LiPo 3.7V
โค้ดตัวอย่าง
#include <Servo.h>
Servo finger1, finger2, finger3;
const int sensorPin = A0;
const int threshold = 400;
const int openAngle = 0;
const int closeAngle = 180;
void setup() {
finger1.attach(9);
finger2.attach(10);
finger3.attach(11);
openClaw();
}
void openClaw() {
finger1.write(openAngle);
finger2.write(openAngle);
finger3.write(openAngle);
}
void closeClaw() {
finger1.write(closeAngle);
finger2.write(closeAngle);
finger3.write(closeAngle);
}
void loop() {
int muscleValue = analogRead(sensorPin);
if (muscleValue > threshold) {
closeClaw();
delay(500);
} else {
openClaw();
}
delay(50);
}
ข้อควรระวัง: Myoelectric sensor ต้องแปะผิวหนังให้แน่น ใช้เจลอัลตราซาวด์ช่วยนำสัญญาณ ดูต้นฉบับได้ที่ Claw Prosthesis Controlled by Myoelectric Sensor
โปรเจคที่ 7: ทานตะวันเต้นระบำ (Electronic Sun Dancer)
โปรเจคกวนสาย decoration ใช้ LDR ตรวจแสง แล้ว servo หมุนดอกทานตะวัน (ทำจากกระดาษหรือพิมพ์ 3D) ให้หันตามแสง + เต้นระบำเป็นจังหวะ
อุปกรณ์ที่ต้องใช้
- Arduino Nano
- LDR sensor
- Servo SG90
- LED strip WS2812B 12 ดวง (ติดรอบดอก)
- กระดาษสีเหลืองทำกลีบทานตะวัน
โค้ดตัวอย่าง
#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define LED_COUNT 12
#define SERVO_PIN 9
#define LDR_PIN A0
Servo dancer;
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
dancer.attach(SERVO_PIN);
strip.begin();
strip.setBrightness(100);
}
void danceSequence() {
for (int i = 0; i < 4; i++) {
dancer.write(45);
delay(300);
dancer.write(135);
delay(300);
}
for (int j = 0; j < LED_COUNT; j++) {
strip.setPixelColor(j, strip.Color(255, 200, 0));
strip.show();
delay(50);
}
}
void loop() {
int lightLevel = analogRead(LDR_PIN);
if (lightLevel > 500) {
// กลางวัน เต้นระบำ
danceSequence();
} else {
// กลางคืน นอน
dancer.write(90);
strip.clear();
strip.show();
}
delay(1000);
}
ข้อควรระวัง: LED strip กินกระแส ถ้าต่อ 12 ดวง ใช้ adapter 5V 2A แยก ดูต้นฉบับได้ที่ Arduino Sunflower - Electronic Sun Dancer
โปรเจคที่ 8: ลูกเต๋าอิเล็กทรอนิกส์ (Electronic Dice)
โปรเจคนี้กวนเกมบอร์ดเกม ใช้ปุ่มกด + LED 7 segment แสดงผล 1-6 สุ่มค่า ทุกครั้งที่กดปุ่ม เหมาะเอาไปเล่น Monopoly กับเพื่อนแล้วโกง
อุปกรณ์ที่ต้องใช้
- Arduino Nano
- 7 Segment Display (common cathode)
- Push button
- Resistor 220Ω 7 ตัว
- ถ่าน CR2032 + holder
โค้ดตัวอย่าง
const int buttonPin = 2;
const int segA = 3, segB = 4, segC = 5, segD = 6, segE = 7, segF = 8, segG = 9;
int dicePatterns[7][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0 (ไม่ใช้)
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 0, 1, 1, 1, 1, 1} // 6
};
int segments[7] = {segA, segB, segC, segD, segE, segF, segG};
void showNumber(int n) {
for (int i = 0; i < 7; i++) {
digitalWrite(segments[i], dicePatterns[n][i]);
}
}
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
for (int i = 0; i < 7; i++) {
pinMode(segments[i], OUTPUT);
}
randomSeed(analogRead(A0));
showNumber(0);
}
void loop() {
if (digitalRead(buttonPin) == LOW) {
int roll = random(1, 7);
showNumber(roll);
delay(300); // debounce
while (digitalRead(buttonPin) == LOW);
}
}
ข้อควรระวัง: ใช้ถ่าน CR2032 จ่ายไฟได้นาน แต่ถ้าใช้ LED หลายดวงพร้อมกันอาจไม่พอ ลองใช้ถ่าน AAA 2 ก้อนแทน ดูต้นฉบับได้ที่ Digital Electronic Dice using Arduino and Sensors
โปรเจคที่ 9: ไฟดิสโก้อัตโนมัติ (Disco LED)
โปรเจคกวนปาร์ตี้ ใช้ LED strip + เสียง sensor ตรวจจับเสียงดนตรี แล้วเปลี่ยนสีไฟตามจังหวะ แขวนในห้องนอนหรือห้องนั่งเล่น
อุปกรณ์ที่ต้องใช้
- Arduino Uno
- LED strip WS2812B 1 เมตร (60 ดวง)
- Sound sensor module
- Bluetooth speaker (สำหรับเปิดเพลง)
- Adapter 5V 3A
โค้ดตัวอย่าง
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define LED_COUNT 60
#define SOUND_PIN A0
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.setBrightness(150);
strip.show();
randomSeed(analogRead(A1));
}
uint32_t wheel(byte pos) {
if (pos < 85) return strip.Color(pos * 3, 255 - pos * 3, 0);
if (pos < 170) return strip.Color(255 - (pos - 85) * 3, 0, (pos - 85) * 3);
return strip.Color(0, (170 - pos) * 3, 255 - (pos - 85) * 3);
}
void loop() {
int soundLevel = analogRead(SOUND_PIN);
int hueOffset = map(soundLevel, 0, 1023, 0, 255);
for (int i = 0; i < LED_COUNT; i++) {
strip.setPixelColor(i, wheel((i * 5 + hueOffset) & 255));
}
strip.show();
delay(20);
}
ข้อควรระวัง: LED strip 60 ดวงกินกระแสสูงสุด 3.6A ต้องจ่ายไฟ 5V 3A แยก ห้ามใช้ขา 5V ของ Arduino ตรงๆ ดูต้นฉบับได้ที่ Disco LED
โปรเจคที่ 10: ร่มค็อกเทลขยับได้ 160 ตัว (Cocktail Parasol)
โปรเจคนี้กวนสายตกแต่งบาร์ ใช้ 160 servo ขยับร่มค็อกเทลเป็นจังหวะ แสดง pattern ต่างๆ เหมาะเอาไปโชว์ในงานปาร์ตี้หรือบาร์
อุปกรณ์ที่ต้องใช้
- Arduino Mega (เพราะขา PWM เยอะ)
- Servo SG90 × 160 ตัว (หรือ PCA9685 driver ขยายขา)
- ร่มค็อกเทล 160 อัน
- Power supply 5V 20A
- โครงไม้หรืออะคริลิค
หลักการทำงาน
- PCA9685 ขยายขา PWM ได้ 16 ขาต่อบอร์ด ใช้ 10 บอร์ดต่ออนุกรมผ่าน I2C
- Arduino Mega สั่งเปิด-ปิด servo แต่ละตัวตาม pattern
- Pattern ตัวอย่าง: คลื่น, หมุนวน, เช็คเชิ้ต
ข้อควรระวัง: โปรเจคนี้ใช้เงินเยอะและซับซ้อน ถ้าเพิ่งเริ่มเล่น Arduino แนะนำลองขยายขนาดเป็น 16 ตัวก่อน ใช้ PCA9685 บอร์ดเดียวพอ ดูต้นฉบับได้ที่ Cocktail Parasol - Board with 160 moving Cocktail Parasols
เทคนิคเพิ่มเติม: ทำ prank ให้ขำแต่ไม่หลอน
Timing คือกุญแจ: Prank ที่ขำคือ prank ที่จังหวะพอดี ไม่ช้าเกิน (คนเดินไปแล้ว) ไม่เร็วเกิน (คนทันเห็น) ใช้ delay 500-1500 ms ระหว่าง trigger กับ action จะดีที่สุด
ใช้เสียงประกอบ: Prank ส่วนใหญ่จะขำขึ้นเยอะถ้ามีเสียงประกอบ เช่น buzzer เสียงหลอน, DFPlayer เล่นเสียงหัวเราะ, เสียงผี
ทำ safety cutoff: ต่อปุ่มยกเลิกฉุกเฉิน เผื่อ prank แล้วคนตกใจเกินเหตุ กดปุ่มเดียวหยุดทุกอย่าง
ทดสอบกับตัวเองก่อน: ห้ามเอาไปแกล้งคนอื่นโดยไม่เคยทดสอบ อาจเกิด false trigger หรือค้างได้
อุปกรณ์ที่แนะนำจาก Me/merged_output.csv
รวมลิงก์อุปกรณ์ที่ใช้ในบทความนี้ (อ้างอิงจาก Me/merged_output.csv):
- SG90 Servo Motor 9g — servo หลักที่ใช้ใน 6/10 โปรเจค
- UNO R3 ATmega328P — บอร์ด Arduino UNO ของแท้ compatible
- HC-SR04 Ultrasonic Sensor — ใช้ในโปรเจควัดระยะ
- Active/Passive Buzzer 5V — เสียงประกอบ prank
- TTP223 Touch Sensor — ทางเลือก PIR sensor ราคาถูก
10 โปรเจกต์อ้างอิงจากคลังของเรา
ทั้ง 10 โปรเจคที่กล่าวมา เราเลือกจากคลังโปรเจคจริงของเรา เพื่อให้มีไฟล์ มีวงจร มีโค้ดให้ดาวน์โหลด ไม่ใช่แค่ไอเดียลอยๆ:
- Arduino Centipede Dropping Prank แกล้งปล่อยตะขาบ — Prank ตูดหยอดตะขาบ servo 1 ตัว
- Automatic FART EXTRACTOR / Fan สำหรับ Bathroom Dehumidifier — พัดลมดูดกลิ่นอัตโนมัติ
- Alarm clock ที่จะ shock ให้คุณตื่น — นาฬิกาปลุกไฟช็อต
- A Treat Dispensing Dog Cam — กล้องให้ขนมหมาอัตโนมัติ
- Automated Pool Side Water Gun for Dogs — ปืนฉีดน้ำหมาสระว่ายน้ำ
- Claw Prosthesis Controlled by Myoelectric Sensor — กรงเล็บ 3D คุมด้วยกล้ามเนื้อ
- Arduino Sunflower - Electronic Sun Dancer — ทานตะวันเต้นระบำ
- Digital Electronic Dice using Arduino and Sensors — ลูกเต๋าอิเล็กทรอนิกส์
- Disco LED — ไฟดิสโก้ LED เปลี่ยนสีตามเสียง
- Cocktail Parasol - Board with 160 moving Cocktail Parasols — ร่มค็อกเทล 160 ตัวขยับได้
สรุป
โปรเจค Arduino สุดกวน 10 อันนี้ ครอบคลุมเทคนิคหลากหลาย — servo control, PIR, sound sensor, RTC, WiFi, 3D printing, myoelectric ถ้าเรียนรู้ครบทุกอัน ฝีมือจะก้าวกระโดด และที่สำคัญคือ ทำแล้วสนุก ไม่เครียด
ข้อสรุปสั้นๆ:
- เลือกโปรเจคตามระดับ — มือใหม่เริ่มจากลูกเต๋าอิเล็กทรอนิกส์หรือไฟดิสโก้ มือกลางไปตูดหยอดตะขาบ มือเก่งลองร่มค็อกเทล 160 ตัว
- ความปลอดภัยต้องมาก่อน — ใช้ไฟ 5V จาก Arduino ตรงๆ สำหรับอุปกรณ์ที่กินไฟน้อย ถ้าเกินใช้ relay + แหล่งจ่ายไฟแยก
- ทดสอบกับตัวเองก่อน — ห้ามเอาไปแกล้งคนอื่นโดยไม่เคยลอง
- ต่อยอดได้ — โปรเจคเหล่านี้เป็นพื้นฐานสู่งาน IoT, smart home, robotics จริงจัง
ถ้ามีคำถามเพิ่มเติมเกี่ยวกับโปรเจค Arduino แนวไหน หรืออยากให้เขียนโปรเจคระดับไหน แนะนำให้ลองดูบทความอื่นๆ ในคลังของเราได้เลย
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
หากต้องการ รับทำโปรเจคอาดูโน่ หรือระบบ IoT แบบเร่งด่วน สามารถดูรายละเอียดบริการได้ที่หน้าแรก
จ้างทำโปรเจคเลย