📲 درس 80: کنترل با بلوتوث HC-05

با گوشی چراغ‌ها و رله را روشن و خاموش کن — و یاد بگیر چرا RX و TX ضربدری بسته می‌شوند.

سطح: پیشرفته · زمان: حدود 22 دقیقه · مفاهیم: بلوتوث، SoftwareSerial، تقسیم ولتاژ

قدم‌های این درس

  1. بلوتوث = سریال بی‌سیم
  2. قدم ۱ — سیم‌کشی و تقسیم ولتاژ
  3. قدم ۲ — فرمان‌های یک‌حرفی
  4. اشتباه رایج: هیچ فرمانی نمی‌رسد
  5. چالش: فرمان کامل

نمونه‌ای از کد این درس

// 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);
  }
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🚪

درس 79: کارت RFID و در هوشمند

👋

درس 81: سلام ESP32