Komunikacja Arduino z aplikacją na Androida przez Bluetooth

wprowadzenie

wraz z pojawieniem się IoT i potrzebą kontroli, urządzenia muszą teraz robić więcej niż wykonywać podstawowe funkcje, dla których są zbudowane, muszą być w stanie komunikować się z innymi urządzeniami, takimi jak telefon komórkowy, między innymi. Istnieją różne systemy komunikacji, które mogą być dostosowane do komunikacji między urządzeniami, obejmują systemy takie jak WiFi, RF, Bluetooth i kilka innych. Skupimy się na komunikacji przez Bluetooth.

dzisiaj zbudujemy projekt oparty na Arduino, który komunikuje się z aplikacją uruchomioną na smartfonie (Android) przez Bluetooth.

używanie aplikacji mobilnej do włączania/wyłączania diody LED

dla uproszczenia, celem projektu jest przełączenie diody LED podłączonej do Arduino za pomocą aplikacji mobilnej. Będziemy używać modułu Bluetooth HC06 jako głównego składnika tego samouczka.

moduł Bluetooth HC06 jest wersją slave tylko modułu Bluetooth HC05. Posiada 4 piny i komunikuje się z mikrokontrolerem poprzez interfejs szeregowy.

moduł Bluetooth HC06

moduł Bluetooth HC06 to 3.Urządzenie oparte na poziomie logicznym 3V, a zatem jeśli jest bezpośrednio podłączone do Arduino, czasami nie będzie w stanie przetworzyć wiadomości otrzymanej od Arduino, który jest urządzeniem poziomu logicznego 5V, chyba że istnieje jakaś forma przesunięcia poziomu, chociaż Arduino może łatwo zrozumieć dane wysyłane z modułu Bluetooth, ponieważ używa wyższego poziomu logicznego. Przesunięcie/konwersję poziomu można osiągnąć za pomocą dzielnika napięcia lub modułu zmiany poziomu (tak jak zrobiliśmy to w tym samouczku).

moduł dźwigni zmiany biegów (pokazany na poniższym obrazku) pomaga w łatwym przejściu z jednego napięcia na drugie. Dźwignia zmiany poziomu ma dwie strony, stronę wysokiego napięcia (oznaczoną HV) i stronę niskiego napięcia (oznaczoną LV). Manetka umożliwia podłączenie żądanego wyjścia niskiego napięcia po stronie nn, a linia wysokiego napięcia również do WN. Więcej szczegółów na temat podłączania dźwigni zmiany poziomu omówiono w sekcji Schematy.

moduł zmiany poziomu napięcia

wymagane komponenty

następujące komponenty są wymagane do tego kursu;

  1. moduł Bluetooth
  2. konwerter poziomu
  3. Arduino UNO
  4. LED
  5. duża płyta chlebowa
  6. przewody

jak zwykle dokładne komponenty użyte w tym samouczku można kupić, klikając link dołączony do każdego z nich.

Schematy

Połącz komponenty, jak pokazano na schematach poniżej.

Schematy

jak wcześniej wspomniano, moduł Bluetooth HC06 jest urządzeniem o poziomie logicznym 3.3 V, aby był kompatybilny z poziomem logicznym Arduino (który jest 5V), musimy użyć przesuwnika/konwertera poziomu logicznego, jak pokazano na powyższym schemacie. Aby uprościć Schematy, poniżej znajduje się Mapa pinów komponentów i ich połączeń.

Arduino – Logic converter

D10 - RX (HV Side)D11 - Tx (HV Side)Gnd - Gnd3.3v - LV5V - HV

HC06 – Logic Converter

Rx - Rx(LV side)Tx - Tx(LV Side)vcc - 5v (same as HV)Gnd - Gnd

Po podłączeniu komponentów i zweryfikowaniu połączenia jesteśmy gotowi do zbudowania aplikacji na Androida, która będzie używana do faktycznego sterowania DIODĄ LED.

aplikacja na Androida

aplikacja dla tego projektu została zaprojektowana przy użyciu MIT app inventor ze względu na prostotę, ale może być również zbudowana przy użyciu dowolnej innej platformy, używanej do tworzenia aplikacji na Androida.

MIT App Inventor to platforma programistyczna podobna do aplikacji mobilnej, a jej celem jest ułatwienie programowania dla wszystkich, dlatego zamiast pisać kody, programowanie aplikacji odbywa się za pomocą bloków przeciągnij i upuść, podobnie jak platforma programistyczna „Scratch”.

aby zbudować aplikację stworzoną dla tego projektu, utwórz nowy projekt i zaprojektuj interfejs użytkownika tak, aby wyglądał jak obrazek poniżej.

Projektowanie UI

Po zakończeniu interfejsu kliknij bloki i przejdź do replikacji poniższych bloków.

Kod

skompiluj aplikację i zapisz jako plik APK na komputerze, z którego można przenieść do telefonu w celu instalacji.

plik raw projektu aia dla aplikacji jest częścią plików zarchiwizowanych w pliku zip znajdującym się w sekcji pobierania tego samouczka.

plik aia mogą być importowane do MIT App inventor workspace i edytowane do własnych potrzeb i pragnień.

plik APK install ready jest również dołączony do pliku zip, dzięki czemu można zainstalować bezpośrednio na telefonie.

z gotową aplikacją możemy teraz przystąpić do pisania kodu Arduino, aby kontrolować nasze urządzenie.

Kod

Arduino komunikuje się z modułem Bluetooth za pośrednictwem komunikacji szeregowej, co ułatwia pisanie kodu. Ponieważ zdecydowaliśmy się używać oprogramowania szeregowego, a nie sprzętowych pinów szeregowych Arduino (D0 i D1), będziemy potrzebować biblioteki szeregowej oprogramowania Arduino. Ta biblioteka daje nam swobodę wyboru dowolnego z cyfrowych pinów Arduino jako naszych pinów Rx i Tx. Sprzętowe piny szeregowe są tymi samymi pinami używanymi przez Arduino do komunikacji z komputerem, więc podłączenie ich do Bluetooth spowoduje zakłócenia, które mogłyby utrudnić proces przesyłania kodu. Chociaż piny mogą być odłączone od Bluetooth, gdy kod jest przesyłany i ponownie połączone po przesłaniu kodu, ale nie zawsze jest to skuteczne.

podstawową funkcją kodu jest monitorowanie przychodzącego szeregowego strumienia danych, Jeśli otrzyma „1”, włącza diodę LED, a jeśli otrzyma „0”, wyłącza diodę LED.

aby przejść, będziemy, jak zwykle, dać podział kodu, aby wyjaśnić każdą część przed dostarczeniem pełnego kodu. Kod Arduino znajduje się wśród plików zarchiwizowanych w pliku zip w sekcji pobierania.

pierwszą rzeczą, jaką robimy podczas pisania kodu, jak zwykle, jest import bibliotek, z którymi będziemy pracować, czyli w tym przypadku software serial library.

 ///////////////////////////////////////////////////////////////// // Arduino Bluetooth Tutorial v1.00 // // Get the latest version of the code here: // // http://educ8s.tv/arduino-bluetooth-tutorial ///////////////////////////////////////////////////////////////////#include <SoftwareSerial.h>

Po zaimportowaniu biblioteki deklarujemy zmienną, która przechowuje znaki otrzymane z Bluetooth i kod pin na Arduino, do którego podłączona jest dioda LED. Inicjujemy również bibliotekę Softwareserial, wskazując piny, które będą służyć jako Rx i Tx.

char c;int LED = 13;SoftwareSerial mySerial(10, 11);

następnie przechodzimy do sekcji setup (), gdzie ustawiamy pinMode dla pinu, do którego podłączona jest nasza DIODA LED (wyjście) i rozpoczynamy komunikację szeregową z szybkością transmisji 9600, która jest szybkością transmisji, z jaką komunikują się najnowsze wersje modułu HC06.

void setup(){ pinMode(LED, OUTPUT); mySerial.begin(9600);}

następnie przechodzimy do głównej części kodu; funkcji void loop (). Pierwszą rzeczą, którą robimy, jest potwierdzenie dostępności danych z modułu Bluetooth, po czym odczytujemy Dane i używamy instrukcji if, aby je porównać, aby sprawdzić, czy jest to 1 czy 0. jeśli dane są 1, włączamy diodę LED wysoko, ale jeśli jej 0, wyłączamy diodę LED.

void loop(){ while (!mySerial.available()); c = mySerial.read(); if (c == '1') { digitalWrite(LED, HIGH); } if (c == '0') { digitalWrite(LED, LOW); } }

Pełny kod jest dostępny poniżej.

 ///////////////////////////////////////////////////////////////// // Arduino Bluetooth Tutorial v1.00 // // Get the latest version of the code here: // // http://educ8s.tv/arduino-bluetooth-tutorial ///////////////////////////////////////////////////////////////////#include <SoftwareSerial.h>char c;int LED = 13;SoftwareSerial mySerial(10, 11);void setup(){ pinMode(LED, OUTPUT); mySerial.begin(9600);}void loop(){ while (!mySerial.available()); c = mySerial.read(); if (c == '1') { digitalWrite(LED, HIGH); } if (c == '0') { digitalWrite(LED, LOW); } }

Demo

podłącz, Arduino do komputera i prześlij swój kod. Powinieneś zobaczyć diodę LED Na Bluetooth zaczynają migać, oznacza to, że jest gotowy do sparowania. Włącz Bluetooth telefonu i powinieneś zobaczyć hc06 po skanowaniu. połącz się z nim i wprowadź kod, który zwykle wynosi 1234.

Passkey

Uruchom aplikację i kliknij przycisk Połącz, pokaże adres mac twojego hc06. Połącz się z nim i wróć do głównego ekranu aplikacji.

Po podłączeniu aplikacja pokaże podłączony w lewym górnym rogu, możesz następnie zaznaczyć lub odznaczyć pole wyboru, aby odpowiednio włączyć lub wyłączyć diodę led.

App Connected to Device

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *