![Arduino Bluetooth Part 2 - BT Communications: 7 kroków (ze zdjęciami) Arduino Bluetooth Part 2 - BT Communications: 7 kroków (ze zdjęciami)](https://img.gwsigeps.com/img/img/blank.jpg)
Spisu treści:
- Kieszonkowe dzieci:
- Krok 1: Konfiguracja modułu głównego
- Krok 2: Konfiguracja modułu głównego
- Krok 3: Parowanie modułów
- Krok 4: Domyślne połączenia BT
- Krok 5: Ciągłe połączenie34
- Krok 6: Zmodyfikowany spinacz do papieru
- Krok 7: Konfigurowanie stałego parowania
Celem tej części jest skonfigurowanie dwóch modułów Bluetooth i połączenie ich w pary.
Po pierwszej części mamy moduł BT podłączony do Arduino. Moduł ma wszystkie parametry domyślne z wyjątkiem nazwy modułu. Będzie działał tak samo, jak nowy moduł.
Zamknij sesję Arduino IDE na komputerze, jeśli nadal działa.
Kieszonkowe dzieci:
Krok 1: Konfiguracja modułu głównego
Ustawiłem kolejny Arduino, tym razem Uno, z innym modułem BT podłączonym w taki sam sposób jak pierwszy.
Muszę wprowadzić pewne zmiany w ustawieniach nowego modułu, więc będzie to master i będzie wyszukiwał moduł slave i parował się z nim.
Podłączyłem kabel USB z tego modułu do innego połączenia USB na komputerze. Teraz mam dwa Arduinos używające różnych portów na moim komputerze.
Aby uniknąć nieporozumień, odłącz na chwilę kabel USB modułu slave.
Uruchom nową sesję Arduino IDE.
Zmień ustawienia narzędzi, aby wyświetlić właściwą kartę i port COM.
Załaduj program BT_config do Arduino.
Umieść moduł BT w trybie AT z przewodem 3.3V.
Uruchom monitor szeregowy i wypróbuj komendę „AT”.
Jeśli wszystko w porządku, moduł odpowie „OK” i jesteśmy w tym samym punkcie, co w przypadku modułu slave.
Krok 2: Konfiguracja modułu głównego
Aby uczynić moduł mistrzem, użyłem tego dialogu:
W
dobrze
AT + ROLA = 1
AT + CMODE = 1
AT + NAME = MST01
AT + ROLA
+ ROLA = 1
AT + CMODE
+ CMOD = 1
AT + NAME
Domyślnie CMODE to 0, „połącz się z dowolnym”, co było dobre dla slave'a. Master ma ustawioną wartość 1.
Krok 3: Parowanie modułów
Przełącz cyklicznie zasilanie do głównego modułu BT, usuwając zasilanie 5V i ponownie podłączając. Dioda LED powinna szybko migać.
Pobierz i otwórz program BT_talk2 i załaduj go do Arduino. Otwórz Monitor szeregowy dla modułu głównego.
Podłącz ponownie podrzędny kabel USB i uruchom kolejną sesję Arduino IDE.
Otwórz program BT_talk2, sprawdź typ Arduino i port COM są w porządku, a następnie załaduj program do Arduino, który ma moduł slave.
Otwórz Monitor Seryjny dla tej sesji. Na ekranie są teraz dwa monitory szeregowe, po jednym dla każdego Arduino.
Sprawdź moduły BT.
To, co powinno się zdarzyć, to to, że master widzi moduł slave, moduł slave jest skonfigurowany do łączenia się z dowolnym urządzeniem nadrzędnym, więc oba moduły powinny się sparować.
W moim przypadku częstotliwość migania obu modułów wynosiła dwa razy na dwie sekundy. W innych modułach urządzenie podrzędne może być stale włączone.
Teraz wszystko wpisane w jednym monitorze seryjnym powinno pojawić się w drugim. Jeśli tak się dzieje, mamy dwa Arduinos połączone przez Bluetooth.
Jeśli otrzymujesz odpowiedź, ale to śmieci, istnieje prawdopodobieństwo, że ustawienie prędkości gdzieś jest złe.
Domyślna prędkość komunikacji w module BT wynosi 9600. Można to sprawdzić w trybie AT za pomocą
AT + UART
Można go ustawić na domyślny za pomocą
AT + UART = 9600,0,0
Krok 4: Domyślne połączenia BT
Program BT_talk2 jest zasadniczo taki sam jak BT_talk, z tym wyjątkiem, że wysyła dane z monitora szeregowego do modułu BT, a także odczytuje z modułu BT i wysyła do monitora szeregowego. Więc jest to komunikacja dwukierunkowa. Moduły BT nadal rozmawiają z Arduinos przy domyślnej prędkości komunikacji 9600.
Kiedy wpisuję na Serial Monitor i wciskam enter, linia danych jest wysyłana do Arduino, który przekazuje ją do modułu BT. Moduł BT wysyła go do sparowanego modułu.
Gdy linia danych zostanie odebrana przez sparowany moduł BT, przekazuje ją do Arduino, który wysyła ją do monitora szeregowego. Tak więc dane przemieszczają się między monitorami szeregowymi. Działa w obu kierunkach.
Po uruchomieniu modułu slave połączy się on z dowolnym urządzeniem głównym, które go znajdzie. Podobnie moduł główny będzie próbował nawiązać połączenie z dowolnym dostępnym modułem podrzędnym. Jeśli w zasięgu jest kilka innych modułów BT (około 10M), mogą podłączyć się do niewłaściwego.
Byłoby bardzo przydatne, gdyby ten master i ten slave zawsze łączyli się ze sobą, a nie z jakimkolwiek innym urządzeniem. Oto co zrobię dalej.
Krok 5: Ciągłe połączenie34
Gdy moduł jest w trybie AT, niektóre ustawienia można zmienić tylko wtedy, gdy pin34 jest cały czas wysoki. Aby moje moduły zostały na stałe sparowane, muszę zmienić niektóre z tych ustawień.
Nie mogę trzymać drutu przy szpilce przez cały czas, więc muszę zrobić bardziej stałe połączenie. Mogłem przylutować drut do szpilki34, ale bałem się rozbić moduł, ponieważ moje umiejętności lutowania nie są genialne. Ponadto pin musi być tylko wysoki podczas konfigurowania modułu. Po zakończeniu połączenia nie potrzebujemy już połączenia.
Odkryłem, że mogę zmodyfikować cienki drutowy spinacz do papieru, aby przesuwał się po module i dotknął końcówki drutu 34. Nie powinno to szkodzić modułowi, ponieważ siła spinacza do papieru jest bardzo mała, a moduł ma również ochronną osłonę z tworzywa sztucznego.
Teraz, aby przełączyć moduł w tryb AT, mogę delikatnie zaczepić przewód 3,3 V na spinaczu, a szpilka cały czas pozostaje wysoka.
Krok 6: Zmodyfikowany spinacz do papieru
Spinacz do papieru ześlizguje się z modułu, a jego koniec jest wygięty dookoła, tak że dotyka pin34.
Krok 7: Konfigurowanie stałego parowania
Aby trwale połączyć dwa moduły BT, należy ponownie skonfigurować master.
Załaduj program BTconfig do Arduino dołączonego do mastera.
Wykonaj ciągłe połączenie pin34 i włącz zasilanie modułu BT.
Dioda LED na module powinna migać raz na dwie sekundy.
Uruchom monitor szeregowy i sprawdź, czy polecenie „AT” otrzymuje odpowiedź „OK”.
Moduł slave nadal działa, ale powróci do szybkiego migania, gdy czeka na połączenie. Zostaw to tak.
Teraz użyj poniższego dialogu, aby zmienić ustawienia w głównym module BT (moje komentarze kursywą):
AT + ORGL zresetować ustawienia domyślne modułu
AT + RMAAD usuń wszelkie powiązania w module
AT + ROLA = 1 ustaw moduł jako główny
AT + RESET moduł resetowania
AT + CMODE = 0 połączyć się z dowolnym
AT + INQM = 0,5,9 wyszukaj maksymalnie 5 urządzeń, wyszukaj przez 9 sekund
AT + INIT jeśli to polecenie wygeneruje komunikat o błędzie, zignoruj komunikat i kontynuuj
AT + INQ rozpocznij wyszukiwanie urządzenia
Moduł BT wyszuka inne dostępne urządzenia przez maksymalnie 9 sekund. Zostaną wyświetlone wszystkie znalezione.
Należy znaleźć moduł slave i jego adres w postaci 1234: 56: 789ABC, 0,777F
Pierwsze 12 cyfr szesnastkowych to unikalny identyfikator znalezionego modułu.
Zauważ, że przecinki są używane zamiast dwukropków w poleceniach, które następują. Umieść adres swojego urządzenia podrzędnego w miejsce 1234,56,789ABC.
AT + RNAME? 1234,56,789ABC pokaż czytelną nazwę urządzenia.
Jeśli nazwa modułu slave została wcześniej zmieniona na „MOD01”, ta nazwa powinna się pojawić.
AT + PAIR = 1234,56,789ABC, 9 spróbuj sparować z tym urządzeniem przez maksymalnie 9 sekund
AT + BIND = 1234,56,789ABC
AT + CMODE = 1
AT + LINK = 1234,56,789ABC
Teraz moduły powinny być ze sobą trwale połączone. Za każdym razem, gdy oba będą zasilane, automatycznie sparują się, ale nie połączą się z niczym innym.
Usuń przewód ze styku 34 modułu głównego.
Możesz spróbować wyciągnąć oba kable USB, a następnie ponownie podłączyć kabel podrzędny. Dioda LED modułu podrzędnego powinna szybko migać podczas oczekiwania na połączenie. Teraz, jeśli szukasz tego modułu ze swoim telefonem komórkowym / tabletem, powinieneś stwierdzić, że nie może się połączyć. Gdy moduł główny jest zasilany, powinien natychmiast sparować się z urządzeniem podrzędnym.
Teraz mamy dwa moduły Arduino, które mogą ze sobą rozmawiać za pomocą połączenia bezprzewodowego. Jest to podstawa zdalnego sterowania dla wszystkich rodzajów projektów.