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
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
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