- Co to jest moduł HM10 BLE 4.0?
- Różnica między HM10 a innym modułem Bluetooth
- Wymagane składniki
- Schemat obwodu
- Arduino Bluetooth Controller (moduł HM-10) Aplikacja na Androida
- Programowanie Arduino UNO do sterowania diodą LED za pomocą modułu Bluetooth HM-10
Bluetooth to jedna z najpopularniejszych i najłatwiejszych w użyciu technologii bezprzewodowych. W ciągu kilku lat dokonano wielu ulepszeń standardu Bluetooth, aby nadążyć za bieżącą technologią z technologią przyszłości i zaspokoić potrzeby użytkowników. Począwszy od wersji Bluetooth 1.0 do wersji Bluetooth 5.0, wiele się zmieniło, w tym wyższe szybkości transmisji danych, możliwość wykorzystania w IoT przy niskim poborze prądu, zwiększone bezpieczeństwo itp. Aby nauczyć się komunikacji Bluetooth, dostępnych jest wiele modułów, które można połączony z mikrokontrolerami. Takim modułem Bluetooth jest HM10, który bazuje na Bluetooth 4.0.
Co to jest moduł HM10 BLE 4.0?
HM10 to szeregowy moduł BLE (Bluetooth-Low-Energy), który jest przeznaczony do zastosowań o niskim zużyciu energii i może działać długo nawet z baterią wielkości monety. HM10 jest 4,0 moduł Bluetooth opiera się na Texas Instruments CC2540 CC2541 BLE lub systemu SoC (system on chip). Oprogramowanie układowe i projekt modułu są tworzone i zarządzane przez technologię Jinan Huamao. Moduł posiada warstwę szeregową / UART, co sprawia, że urządzenie może współpracować z różnymi mikrokontrolerami. HM10 jest idealny do tworzenia prostych połączeń i używania go z lub jako iBeacon.
HM10 stał się bardzo popularnym modułem Bluetooth 4.0 BLE. HM10 jest tylko modułem opartym na Bluetooth 4.0, więc nie będzie łączyć się z modułem Bluetooth 2 / 2.1, takim jak HC-05, HC-06 i innymi modułami Bluetooth. HM10 jest sterowany za pomocą poleceń AT przesyłanych przez łącze szeregowe UART. HM-10 to moduł Bluetooth Low Energy (BLE), aby dowiedzieć się więcej o BLE, kliknij łącze. Dowiedz się również, jak moduł nRF24L01 może być używany jako moduł BLE z Arduino.
Różnica między HM10 a innym modułem Bluetooth
Główną różnicą, jaką posiada HM10, jest wersja Bluetooth. HM10 to moduł Bluetooth 4.0, więc jest wyposażony we wszystkie funkcje Bluetooth w wersji 4.0, takie jak prędkość, przepustowość i zasięg. HM10 oferuje szybkość przesyłania danych do 24 Mbps przy niskim zużyciu energii / niskiego poboru mocy. Oprócz tego HM10 oferuje zasięg 100 metrów na otwartej przestrzeni. W porównaniu z innymi modułami Bluetooth, takimi jak HC-05, który jest modułem opartym na Bluetooth 2.0, HM10 z pewnością działa lepiej niż HC-05. HC-05 oferuje tylko 3 Mb / s w porównaniu do HM10, czyli znacznie mniej.
Moduły Bluetooth HC-05 i HC-06 są nadal bardzo popularne wśród producentów i hobbystów, ponieważ są tanie i łatwe w obsłudze. Wykonaliśmy również wiele projektów przy użyciu HC-05/06 i połączyliśmy je z wieloma innymi mikrokontrolerami:
- Interfejs modułu Bluetooth z ESP8266: sterowanie diodą LED
- Połączenie Bluetooth HC-05 z STM32F103C8 Blue Pill: Kontrolująca dioda LED
- Połączenie modułu Bluetooth HC-05 z mikrokontrolerem AVR
- Połączenie modułu Bluetooth HC-06 z mikrokontrolerem PIC
- Diody LED sterowane głosem za pomocą Arduino i Bluetooth
- Światła sterowane głosem za pomocą Raspberry Pi
Wszystkie projekty związane z Bluetooth można znaleźć pod tym linkiem.
Dzisiaj połączymy moduł HM-10 BLE z Arduino Uno, aby bezprzewodowo sterować diodą LED za pomocą protokołu Bluetooth. Polecenia włączania / wyłączania zostaną wysłane przez smartfon.
Wymagane składniki
Sprzęt komputerowy:
- Arduino UNO
- Moduł Bluetooth HM10
- Rezystory (1 kΩ, 470 Ω)
- Przewody połączeniowe
Oprogramowanie:
- Arduino IDE
- Arduino Bluetooth Controller (moduł HM-10) Aplikacja na Androida
- Inteligentny telefon z systemem Android
Schemat obwodu
Schemat podłączenia Arduino i modułu Bluetooth HM-10 jest bardzo prosty, jak pokazano poniżej.
Przed rozpoczęciem projektu upewnij się, że Twój moduł HM-10 jest oryginalnym modułem HM-10. Istnieje wiele dostępnych chińskich sklonowanych modułów HM-10. Aby zidentyfikować różnicę między oryginalnym a sklonowanym modułem HM-10, wystarczy spojrzeć na obecność oscylatora kwarcowego o częstotliwości 32 kHz na płycie HM-10. Jeśli oscylator kwarcowy jest obecny, jest to oryginalny moduł HM-10 i nie ma potrzeby zmiany oprogramowania układowego. Ale jeśli nie widzisz oscylatora kryształowego zamiast niego , jest to sklonowany moduł HM10 i musisz zmienić oprogramowanie sprzętowe sklonowanego modułu HM-10. Bez zmiany oprogramowania HM-10 nie można uzyskać dostępu do modułu HM-10 za pomocą poleceń AT ani nie można go sparować ze smartfonami. Tutaj również używamy modułu klonowania, więc sflashowaliśmy jego oprogramowanie układowe przed połączeniem go z Ardruino. Aby zmienić oprogramowanie sprzętowe sklonowanego modułu HM-10, po prostu postępuj zgodnie z naszym samouczkiem dotyczącym zmiany lub flashowania oprogramowania układowego modułu Clone HM-10.
Arduino Bluetooth Controller (moduł HM-10) Aplikacja na Androida
Arduino Bluetooth Controller (HM-10 Module) to aplikacja na Androida dostępna bezpłatnie w sklepie Google Play. Ta aplikacja ma łatwy i prosty interfejs dla modułu HM-10 BLE. Podczas testów był w stanie szybko znaleźć HM-10 i natychmiast połączył się z HM-10. Aplikacja ma kilka fajnych funkcji, takich jak tworzenie przycisku i dostosowywanie go za pomocą niestandardowej nazwy i funkcji. Tutaj dowiemy się, jak utworzyć dwa przyciski w tej aplikacji kontrolera Bluetooth, aby włączać i wyłączać diodę LED połączoną z Arduino.
Jak skonfigurować kontroler Bluetooth Arduino (moduł HM-10) Aplikacja na Androida:
- Pobierz aplikację ze sklepu Google Play.
- Strona główna aplikacji będzie wyglądać jak poniżej, na której można znaleźć takie funkcje, jak podłączenie urządzenia, ikona wyszukiwania, ikona usuwania, stan urządzenia, wysyłanie tekstu, dodawanie szablonu itp. Zacznij od wyszukiwania urządzenia, klikając ikonę wyszukiwania lub klikając do trzech kropek w prawym górnym rogu i wybierz Połącz urządzenie .
- Wszystkie dostępne urządzenia zostaną pokazane na ekranie. Wybierz odpowiedni moduł HM-10.
- Teraz HM-10 zostanie pomyślnie połączony, a stan HM-10 będzie można zobaczyć na górze ekranu.
- Teraz możesz bezpośrednio wysłać tekst lub ciąg znaków, pisząc w sekcji tekstowej i naciśnij strzałkę, aby wysłać, lub możesz utworzyć niestandardowy szablon.
- Aby stworzyć własny szablon, aby zaoszczędzić czas. Kliknij ikonę „ + ” w prawym górnym rogu i wypełnij szczegóły. „ Nazwa ” to nazwa przycisku, pole „ Tekst ” to tekst lub napis, który zostanie wysłany do HM-10, a „ Opis ” to po prostu opis przycisku, który będzie opisywał sposób działania przycisku.
- Najpierw utwórz przycisk do włączania diody LED i nadaj jej zielony kolor. Button wyśle literę „N” do HM-10, co spowoduje włączenie diody LED podłączonej do Arduino. Podobnie utwórz przycisk wyłączający diodę LED i nadaj jej kolor czerwony.. Button wyśle literę „F” do HM-10, co spowoduje wyłączenie diody LED podłączonej do Arduino.
- Teraz możesz zobaczyć dwa przyciski utworzone tuż pod polem tekstowym. Teraz, jeśli chcesz sterować diodą LED, po prostu kliknij przyciski.
To kończy konfigurację aplikacji na Androida do sterowania modułem HM-10. Teraz zaczniemy od programowania Arduino Uno, aby uzyskać znaki z aplikacji na Androida.
Programowanie Arduino UNO do sterowania diodą LED za pomocą modułu Bluetooth HM-10
Jak zwykle kompletny program z filmem demonstracyjnym znajduje się na końcu tego samouczka. Programowanie Arduino UNO do tego projektu nie wymaga dużego wysiłku ani żadnej biblioteki. Możesz użyć portu szeregowego sprzętu i biblioteki oprogramowania. Jeśli używasz oprogramowania szeregowego, po prostu dołącz bibliotekę szeregową oprogramowania, w przeciwnym razie przejdź do serialu sprzętowego. W tym projekcie używamy SoftwareSerial. Zacznij więc od włączenia Software Serial Library. Piny Rx i Tx są połączone na 2 i 3 Pinach Arduino.
#zawierać
Dwie zmienne służą do przechowywania danych otrzymanych z HM10 i aplikacji na Androida.
char appData; String inData = "";
Wystarczy uruchomić łącze szeregowe sprzętu i oprogramowania z szybkością 9600 bodów i wydrukować kilka instrukcji debugowania. Pin diody LED jest ustawiony jako wyjście i początkowo jest wyłączony.
Serial.begin (9600); Serial.println ("Serial HM10 rozpoczął się od 9600"); HM10. początek (9600); // ustaw port szeregowy HM10 na 9600 bodów pinMode (13, OUTPUT); // wbudowana dioda LED digitalWrite (13, LOW); // wyłącz diodę LED
Zacznij nasłuchiwać portu HM10 i czytaj ciąg, aż HM10 będzie dostępny i wyśle dane. Zapisz dane w postaci ciągu.
HM10.listen (); // nasłuchuj portu HM10 while (HM10.available ()> 0) {// jeśli HM10 coś wysyła, to przeczytaj appData = HM10.read (); inData = String (appData); // zapisz dane w formacie ciągu Serial.write (appData); }
Aby debugować HM10 za pomocą poleceń AT, po prostu napisz poniższą linię kodu, która wyśle ciąg do HM10.
if (Serial.available ()) {// Przeczytaj dane wejściowe użytkownika, jeśli są dostępne. opóźnienie (10); HM10.write (Serial.read ()); }
Jeśli otrzymany ciąg to „F”, wydrukuj komunikat na monitorze szeregowym i wyłącz diodę LED, w przeciwnym razie, jeśli otrzymany ciąg ma wartość „N”, wydrukuj komunikat na monitorze szeregowym i diodzie migającej z opóźnieniem 500 ms.
if (inData == "F") { Serial.println ("LED WYŁ."); digitalWrite (13, NISKI); // wyłącz opóźnienie diody LED (500); } if (inData == "N") { Serial.println ("LED ON"); digitalWrite (13, WYSOKI); // wyłącz opóźnienie diody LED (500); digitalWrite (13, NISKI); // wyłącz opóźnienie diody LED (500); }
To kończy pełny samouczek dotyczący sterowania diodami LED za pomocą Arduino i modułu BLE HM10 Blutooth 4.0. Ponownie pamiętaj, że jeśli masz oryginalny moduł HM10, nie musisz flashować jego oprogramowania układowego, można go od razu użyć. Ale jeśli używasz sklonowanego modułu HM-10, sflashuj oprogramowanie układowe na klonowanym module HM10 BLE. Jeśli masz jakiekolwiek wątpliwości lub sugestie, skomentuj poniżej lub napisz na naszym forum.