📲 درس 80: کنترل با بلوتوث HC-05
با گوشی چراغها و رله را روشن و خاموش کن — و یاد بگیر چرا RX و TX ضربدری بسته میشوند.
سطح: پیشرفته · زمان: حدود 22 دقیقه · مفاهیم: بلوتوث، SoftwareSerial، تقسیم ولتاژ
قدمهای این درس
- بلوتوث = سریال بیسیم
- قدم ۱ — سیمکشی و تقسیم ولتاژ
- قدم ۲ — فرمانهای یکحرفی
- اشتباه رایج: هیچ فرمانی نمیرسد
- چالش: فرمان کامل
نمونهای از کد این درس
// HC-05 Bluetooth: phone commands switch two LEDs and a relay.
// a/A = red LED on/off, b/B = green LED on/off, r/R = relay on/off, ? = status
#include <SoftwareSerial.h>
SoftwareSerial bt(10, 11); // RX = D10 (from HC-05 TXD), TX = D11 (to HC-05 RXD)
const int RED = 7, GREEN = 6, RELAY = 5;
void setup() {
Serial.begin(9600);
bt.begin(9600); // HC-05 default speed
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(RELAY, OUTPUT);
bt.println("Ready: a A b B r R ?");
}
void loop() {
if (bt.available()) {
char c = bt.read();
if (c == 'a') digitalWrite(RED, HIGH);
if (c == 'A') digitalWrite(RED, LOW);
if (c == 'b') digitalWrite(GREEN, HIGH);
if (c == 'B') digitalWrite(GREEN, LOW);
if (c == 'r') digitalWrite(RELAY, HIGH);
if (c == 'R') digitalWrite(RELAY, LOW);
if (c == '?') {
bt.print("red="); bt.print(digitalRead(RED));
bt.print(" green="); bt.print(digitalRead(GREEN));
bt.print(" relay="); bt.println(digitalRead(RELAY));
}
Serial.print("got: ");
Serial.println(c);
}
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓