Arduino Polska Forum

Pełna wersja: Wysyłanie danych przez bluetooth
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Chciałbym zapytać o Wasze doświadczenia związane z przesyłaniem danych z arduino do smartfona przez BT. Na początek złożyłem prosty zestaw arduino z podłączonym BT [ HC-06 ] i prosta APK na smartfona odczytująca co jakiś czas dane z BT, na arduino programik który co 500ms podnosił wartość zmiennej o 1 i wysyłał przez BT i zadziałało, jednak gdy przyspieszałem z wysyłaniem danych to APK nie jest wstanie tak szybko odczytywać z BT lub arduino wysyłać.  Robiliście już może coś takiego ? Może gdzieś widzieliście podobny projekt ?
apk robiłeś sam czy korzystasz z gotowca mam kilka urządzeń które łączą się s tel przez bt z prędkością 115200 i niema problemu z gubieniem danych
sam [MIT APP Inventor] , na arduino 9600 jak zwiększałem to nie moglem się podłączyć - może tu jest problem
HC-06 ma domyślnie ustawiony baud na 9600 ( zapomniałem )musisz według opisu komendami AT zmienić mu prędkość na taką jaka ci potrzebna inaczej nie połączy się z ardu albo telefonem

tu masz opis jak to zrobić

http://www.instructables.com/id/AT-comma.../?ALLSTEPS
Sorka że dopiero dzisiaj , byłem trochę zajęty, niestety próbuje różnych sposobów i mam problem z wysłaniem AT i odpowiedzią. JasQ - czy możesz podpowiedzieć konkretny sketch. BT mam podpięty pod :
VCC > 3,3
GND > GND
BT.RX > TX[1]
BT.TX > RX [0]
Wszystko na Arduino Leonardo i BT HC-06.
Nie programem gołym terminalem ale jak nie masz konwertera usb->ftdi to ci jutro przygotuje program , nosiłem się z napisaniem go ale jakoś nigdy chęci nie było
Wielkie Dzięki
Tak na szybko bo idę spać po nocce wgraj programik podłącz bluetooth-a pod piny 10 i 11 ( zasilanie i masa normalnie ) jakby nie działało zamień RX z TX na pinach 10 , 11 .

odpal terminal na prędkości 9600 , powinien wyskoczyć napis "Gotowy" teraz wpisz

AT (naciśnij enter)

wyskoczy "OK"

AT+BAUDx (za x podstaw cyferkę odpowiadającą za prędkość BLU)

1 1200
2 2400
3 4800
4 9600
5 19200
6 38400
7 57600
8 115200

Przykład "AT+BAUD8" -> 115200

Wyskoczy "OK115200" i w tym momencie będzie działał z prędkością 115200
jeżeli będziesz chciał coś zmienić po zmianie prędkości to w programie musisz zmienić prędkość portów
na taką jak ma BLU

Te 2 linijki na przykład:

Kod:
Serial.begin(115200);            
BLUSerial.begin(115200);


A najważniejsze od jakiejś tam prędkości na zwrotnej otrzymasz jakieś krzaki po prostu arduino nie przetrawi co dostanie od BLU nic złego się nie stało zawsze możesz wrócić do 9600 ustawić wszystko i
dopiero dać 115200


AT+NAMExxxxx zmiana nazwy n.p. AT+NAMEzabek wyświetli OKsetname

AT+PINxxxx zmiana pinu powinien być standardowo 1234 n.p. AT+PIN4321 wyświetli OKsetPIN

AT+VERSION wyświetli wersję BLU i numer FW n.p. OKlinvorV1.5

ok to chyba ci wystarczy na razie a nad programem i tak posiedzę ale nie dziś mam grafik napięty .


Kod:
#include <SoftwareSerial.h>

SoftwareSerial BLUSerial(10, 11);

void setup() {
    
  Serial.begin(9600);              // prędkość portu usb
  BLUSerial.begin(9600);         // prędkość portu bluetooth obie muzą być takie same
  Serial.println("Gotowy");
  
}

void loop() {

if (Serial.available())BLUSerial.write(Serial.read());
if (BLUSerial.available())Serial.write(BLUSerial.read());
  
}
Wielkie dzięki JasQ za błysk odpowiedź.
Moim podstawowym błędem było ustawianie prędkości USB na 9600 a BT na 38400 [ gdzieś wyczytałem że HC-06 tylko na niej przyjmuje AT ] teraz śmiga , na terminalu "Brak zakończenia linii" inaczej nie przyjmuje komend.
Chciałem jeszcze zapytać jak uważasz, uważacie czy dzielnik napięcia jest konieczny.
nie ma w sobie działa na 5 i 3,3v