Arduino bluetooth üzerinden data göndermek

Arduino bluetooth üzerinden uygulamama data göndermek istiyorum ancak arduino bluetooth üzerinden data göndermek de sorun var sanırım sorunun nerede olduğunu tam anlayamadım.
(Bu kodda veri okumada yapiyorum veri okumada sorun yok.)

#include <SoftwareSerial.h> // Bluetooth modülü bağlantısı için tanımlamalar
#include <LiquidCrystal.h> //Ekran için tanımlama
#include <Servo.h> //Servo
#include <TinyGPS++.h> // TinyGPS++ kütüphanesi eklenmeli
LiquidCrystal lcd_1(18, 19, 20, 21, 22, 23); //Ekran için pin tanımlama
SoftwareSerial bluetoothSerial(24, 25); // RX, TX pimleri olarak belirtilen dijital pinler

// Röle kontrolü için tanımlamalar
const int role1 = 2;
const int role2 = 3;
const int role3 = 4;
const int role4 = 5;
const int role5 = 6;
const int role6 = 7;
const int role7 = 8;
const int role8 = 9;
const int role9 = 10;
const int role10 = 11;
const int role11 = 12;
const int role12 = 13;
const int role13 = 14;
const int role14 = 15;
const int role15 = 16;
const int role16 = 17;

// GPS modülünün bağlı olduğu pimler
const int gpsTxPin = 24; // GPS modülünün TX pini
const int gpsRxPin = 25; // GPS modülünün RX pini

// Potansiyometre bağlantı pini(Direksiyon)
const int potPin = A0;

// Servo nesnesi
Servo servo1;

// gps nesnesi oluşturulur
TinyGPSPlus gps;

void setup() {
  // Röle kontrol pini çıkış olarak ayarlanır
  pinMode(role1, OUTPUT);
  pinMode(role2, OUTPUT);
  pinMode(role3, OUTPUT);
  pinMode(role4, OUTPUT);
  pinMode(role5, OUTPUT);
  pinMode(role6, OUTPUT);
  pinMode(role7, OUTPUT);
  pinMode(role8, OUTPUT);
  pinMode(role9, OUTPUT);
  pinMode(role10, OUTPUT);
  pinMode(role11, OUTPUT);
  pinMode(role12, OUTPUT);
  pinMode(role13, OUTPUT);
  pinMode(role14, OUTPUT);
  pinMode(role15, OUTPUT);
  pinMode(role16, OUTPUT);

  // Bluetooth haberleşme hızı 9600 baud olarak ayarlanır
  // GPS modülü için seri iletişim başlatılır
  Serial.begin(9600);
  bluetoothSerial.begin(9600);

  // Servo pin bağlantısı
  servo1.attach(A1);

  // LCD başlatma
  lcd_1.begin(16,2);

  // Yükleme ekranı gösterimi(SİSTEM)
  lcd_1.print("Sistem Basliyor");
  lcd_1.setCursor(0, 1);
  for (int i = 0; i < 16; i++) {
    lcd_1.print("-");
    delay(100);
  }
  lcd_1.clear();
  delay(1000);
  lcd_1.print("Servolar");
  lcd_1.setCursor(0, 1);
  lcd_1.print("Ayarlaniyor...");
  // Servo başlangıç konumu
  servo1.write(90);

  delay(2000);

  // LCD ekranı temizleme
  lcd_1.clear();
  lcd_1.print("Sistem");
  lcd_1.setCursor(0, 1);
  lcd_1.print("Baslatildi");

  delay(2000);

  // LCD ekranı temizleme
  lcd_1.clear();
}

void loop() {
 // Gelen veriyi saklamak için bir değişken
  char receivedData;
    // Bluetooth verisi var mı diye kontrol edilir
    if (bluetoothSerial.available()) {
      // Bir karakter alınır ve receivedData değişkenine atanır
      receivedData = bluetoothSerial.read();
      // Alınan veriye göre röleyi kontrol eder
      switch (receivedData) {
        case 'A':
          digitalWrite(role1, HIGH); // Röleyi açar 1
          break;
        case 'B':
          digitalWrite(role1, LOW); // Röleyi kapatır 1
          break;
        case 'C':
          digitalWrite(role2, HIGH); // Röleyi Açar 2
          break;
        case 'Ç':
          digitalWrite(role2, LOW); // Röleyi kapatır 2
          break;
        case 'D':
          digitalWrite(role3, HIGH); // Röleyi Açar 3
          break;
        case 'E':
          digitalWrite(role3, LOW); // Röleyi kapatır 3
          break;
        case 'F':
          digitalWrite(role4, HIGH); // Röleyi Açar 4
          break;
        case 'G':
          digitalWrite(role4, LOW); // Röleyi kapatır 4
          break;
        case 'İ':
          digitalWrite(role5, HIGH); // Röleyi Açar 5
          break;
        case 'J':
          digitalWrite(role5, LOW); // Röleyi kapatır 5
          break;
        case 'K':
          digitalWrite(role6, HIGH); // Röleyi Açar 6
          break;
        case 'L':
          digitalWrite(role6, LOW); // Röleyi kapatır 6
          break;
        case 'M':
          digitalWrite(role7, HIGH); // Röleyi Açar 7
          break;
        case 'N':
          digitalWrite(role7, LOW); // Röleyi kapatır 7
          break;
        case 'O':
          digitalWrite(role8, HIGH); // Röleyi Açar 8
          break;
        case 'P':
          digitalWrite(role8, LOW); // Röleyi kapatır 8
          break;
        case 'R':
          digitalWrite(role9, HIGH); // Röleyi Açar 9
          break;
        case 'S':
          digitalWrite(role9, LOW); // Röleyi kapatır 9
          break;
        case 'T':
          digitalWrite(role10, HIGH); // Röleyi Açar 10
          break;
        case 'U':
          digitalWrite(role10, LOW); // Röleyi kapatır 10
          break;
        case 'V':
          digitalWrite(role11, HIGH); // Röleyi Açar 11
          break;
        case 'Y':
          digitalWrite(role11, LOW); // Röleyi kapatır 11
          break;
        case 'X':
          digitalWrite(role12, HIGH); // Röleyi Açar 12
          break;
        case 'W':
          digitalWrite(role12, LOW); // Röleyi kapatır 12
          break;
        case 'Z': //boş
          digitalWrite(role13, HIGH); // Röleyi Açar 13
          break;
        case 'a': //boş
          digitalWrite(role13, LOW); // Röleyi kapatır 13
          break;
        case 'b': //boş
          digitalWrite(role14, HIGH); // Röleyi Açar 14
          break;
        case 'c': //boş
          digitalWrite(role14, LOW); // Röleyi kapatır 14
          break;
        case 'd': //boş
          digitalWrite(role15, HIGH); // Röleyi Açar 15
          break;
        case 'e': // boş
          digitalWrite(role15, LOW); // Röleyi kapatır 15
          break;
        default:
          break;
        }
      }
  // Potansiyometre değerini oku
  int potValue = analogRead(potPin);

  // Potansiyometre değerini 0-180 arasında ölçekle
  int servoAngle = map(potValue, 0, 1023, 0, 180);

  // Servo motoru güncelle
  servo1.write(servoAngle);

  // Servo açısını ekrana yazdırma
  lcd_1.setCursor(0, 0);
  lcd_1.print("Pot Degeri: ");
  lcd_1.print(potValue);
  //Bluetooth to App
  bluetooth.print("potValue");  //Bluetooth to App send
  bluetooth.print("|");         //Value delimiter

  
  lcd_1.setCursor(0, 1);
  lcd_1.print("Donus Acisi: ");
  lcd_1.print(servoAngle);
  //Bluetooth to App
  bluetooth.print("servoAngle"); //Bluetooth to App send
  bluetooth.print("|");

  delay(50); // Biraz gecikme ekleyerek okumaları daha stabil hale getiriyoruz.

    // GPS verilerini okuma
  while (Serial.available() > 0) {
    if (gps.encode(Serial.read())) {
      // GPS verisi başarıyla okundu
      float latitude = gps.location.lat();
      float longitude = gps.location.lng();
      float altitude = gps.altitude.meters();
      float speed = gps.speed.kmph();

      // Ekranda gösterme
      lcd_1.println(latitude);//lat
      lcd_1.println(longitude);//long
      lcd_1.println(altitude);//ALt
      lcd_1.println(speed);//long
      lcd_1.print(speed, 0, 0);

      //Bluetooth to App send
      bluetooth.print("latitude");
      bluetooth.print("|");         //Value delimiter
      bluetooth.print("longitude");
      bluetooth.print("|");
      bluetooth.print("altitude");
      bluetooth.print("|");         //Value delimiter
      bluetooth.print("speed");
      bluetooth.println(); //end data
    }
  }
}

Veri okumada sorun yoksa koddan kaldiralim.

Bluetooth uzerinden ‘A’ gonderince calisiyor mu?

bkz: Soru Sorarken Sıkça Düşülen Hatalar #18

Header olmadan çok sıkıntı çıkar. En az
bir karakter header olmalı. Gördüğüm
kadarıyla rakamlar yok. Bir rakam başlangıç
olur, sonraki komut olur.

Evet çalışıyor komut alıminda bi sorun yok

Komutlarda sorun yok sadece bluetooth üzerinde sensör degerlerini göndermeye çalışıyorum

Soyle baslayalim:

  1. Arduino’nun ne yapmasini bekliyorsunuz?
  2. Arduino ne yapiyor?

Gps verilerini,servolarin donuş acisini,duman ve sicaklik sensorlerini bluetooth uzerinden app gondermek,servo motorleri pot ile kontrol etmek.Gelen verileri ile rölelerı kontrol etmek bluetooth da genderilen verileri lcd ekranda da yazcak