- Potřebné materiály
- Bluetooth modul (HC-05)
- Porty USM STM32
- Schéma zapojení a zapojení
- Programování STM32F103C8
- Kroky pro připojení modulu Bluetooth k telefonu Android
V dnešním světě se Bluetooth stal velmi populárním a téměř každé zařízení, jako je mobilní telefon, notebook nebo informační systém automobilu, používá Bluetooth pro bezdrátovou komunikaci. Bluetooth se nepoužívá pouze k přenosu dat, ale také k bezdrátovému ovládání jiných zařízení Bluetooth, například pomocí náhlavní soupravy Bluetooth můžete skladbu slyšet bezdrátově z mobilního telefonu nebo můžete pomocí audiosystému do auta přehrávat skladby z mobilu.
Bluetooth je bezdrátová technologie, která pracuje na frekvenci 2,4 GHz. Normální signál Bluetooth je v dosahu 10 metrů. Bluetooth je nejčastěji používanou bezdrátovou technologií ve vestavěných projektech za předpokladu, že je omezen rozsah komunikace. Bluetooth přidalo výhodu nízké spotřeby energie a nízkých nákladů na provoz. Obvykle se používá pro propojení mikrokontrolérů s chytrými telefony pomocí aplikací Bluetooth.
Viděli jsme propojení Bluetooth modulu s jinými mikrokontroléry jako Arduino, 8051, PIC atd. Nyní v tomto tutoriálu propojíme Bluetooth modul HC-05 s STM32F103C8 a zapneme / vypneme LED pomocí mobilního telefonu Android.
Potřebné materiály
- STM32F103C8
- Bluetooth modul (HC-05)
- VEDENÝ
- Android Mobile
- Nepájivá deska
- Připojovací vodiče
Software:
- Bluetooth Terminal (aplikace pro Android)
Bluetooth modul (HC-05)
Většinou se používá modul Bluetooth ve vestavěných projektech. Jedná se o sériový modul Bluetooth, který využívá sériovou komunikaci s dosahem menším než 100 m a pracuje při 5 V (minimálně 3,3 V). Lze jej použít k bezdrátovému připojení dvou mikrokontrolérů a také k mobilním telefonům a notebookům. Jelikož je k dispozici mnoho aplikací pro Android, je velmi užitečné pro vytváření projektů ovládaných bezdrátovým Bluetooth.
Využívá komunikaci USART a lze ji propojit s mikrokontroléry, které mají komunikační protokol USART.
Má integrovanou anténu. Má konfiguraci Master / Slave, kterou lze změnit v příkazovém režimu AT, což je užitečné, když má pouze jedno zařízení odesílat data (master na slave), například z PC (MASTER) na slave (jakýkoli MCU). Master se může připojit k jiným zařízením a slave se nepřipojuje k jinému připojení kromě hlavního.
Provozní režimy
Má dva režimy AT Command Mode a Data Mode.
Když je Bluetooth zapnutý, přejde do výchozího režimu dat. Tento režim lze použít pro datové přenosy. Chcete-li vstoupit do režimu AT Command během zapnutí napájení, musíme stisknout tlačítko přítomné v modulu a změnit výchozí nastavení modulu, jako je konfigurace master / slave.
Kolíky modulu Bluetooth
- EN pin (ENABLE) - Tento pin se používá k nastavení datového režimu nebo AT příkazového režimu. Ve výchozím nastavení je v DATA MODE. Když stisknete tlačítko během zapnutí, přejde do příkazového režimu AT.
- + 5 V pin - Slouží k napájení modulu
- GND pin - Slouží k uzemnění modulu
- Kolík TX - Tento kolík se připojuje k kolíku RX MCU
- Pin RX - Tento pin je připojen k TX pinu MCU
- STAV - Tento pin označuje stav modulu, viz níže o indikacích
LED indikace
- Má indikátor LED (ČERVENÝ), který informuje o stavu modulu Bluetooth.
- Pokud modul Bluetooth NENÍ PŘIPOJEN k žádnému zařízení, signál klesá a červená LED trvale bliká, což znamená, že modul NENÍ SPÁROVÁN.
- Když je modul Bluetooth PŘIPOJEN k jakémukoli zařízení, signál jde VYSOKÝ a červená LED bliká s určitým zpožděním, což naznačuje, že modul je SPÁROVÁN.
Podívejte se na naše další projekty a dozvíte se více o modulu Bluetooth HC-05 s dalšími mikrokontroléry:
- Bluetooth řízené autíčko pomocí Arduina
- Bluetooth řízený domácí automatizační systém využívající 8051
- Hlasově ovládaná světla pomocí Raspberry Pi
- Rádio FM ovládané chytrým telefonem pomocí Arduina a zpracování
- Robotické auto ovládané mobilním telefonem pomocí G-senzoru a Arduina
- Propojení modulu Bluetooth HC-06 s mikrokontrolérem PIC
Porty USM STM32
STM32F103C8 (BLUE PILL) Sériové komunikační porty USART jsou zobrazeny na obrázku níže. Jedná se o modře zbarvené mající (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Má tři takové komunikační kanály.
Schéma zapojení a zapojení
Zapojení obvodů pro propojení Bluetooth modulu s STM32 je provedeno níže
Propojení mezi STM32F103C8 a Bluetooth modulem (HC-05)
- Pin TX (PA9) STM32F103C8 je připojen k pinu RX modulu Bluetooth.
- Pin RX (PA10) STM32F103C8 je připojen k TX pinu modulu Bluetooth.
- Kolík VCC (+ 5 V) modulu Bluetooth je připojen k kolíku 5 V STM32F103C8.
- Kolík GND modulu Bluetooth je připojen ke kolíku GND STM32F103C8.
Další připojení
- Pin (PA0) STM32 (Blue Pill) je připojen k kladnému pinu LED přes sériový rezistor. Zde se používá LED smíšené barvy.
- Vedení dalšího kolíku je připojeno k GND STM32.
Programování STM32F103C8
Rozhraní Bluetooth s STM32 je stejné jako Arduino a programování v STM32 je stejné jako Arduino IDE. V tomto tutoriálu najdete programování STM32 s USB pomocí Arduino IDE.
Jak již bylo řečeno, v tomto projektu propojíme Bluetooth modul (HC-05) s STM32F103C8 a pro zapnutí a vypnutí LED použijeme chytrý telefon Android s aplikací Bluetooth Terminal pro Android.
Poznámka: Při nahrávání kódu do STM32F103C8 musí být pin RX a TX odstraněn.
Kompletní kód pro tento projekt je uveden na konci tohoto kurzu s ukázkovým videem.
Programování tohoto projektu je tak jednoduché. Lze použít stejné kódy Arduino, ale změnit by se měl pouze pin. Protože v STM32F103C8 máme tři sady kolíků USART, musíme určit správný kolík, který jsme použili pro připojení modulu Bluetooth.
1. Nejprve musíme pojmenovat piny s jejich příslušným číslem pinu s datovým typem int následujícím způsobem
const int pinout = PA0;
2. Dále potřebujeme proměnnou pro ukládání sériových dat z mobilu Android. Data mohou být char nebo integer následujícím způsobem
char inputdata = 0;
3. Dále v nastavení void () musíme zahájit sériovou komunikaci mezi STM32 Blue Pill a Bluetooth modulem s přenosovou rychlostí 9600
Serial1.begin (9600);
Použili jsme zde Serial1, protože jsme připojili HC-05 k TX1 a RX1 ze STM32.
Můžeme také použít Serial2 nebo Serial3, ale podle toho musí být připojen pin.
4. intro zpráva je odeslána jako sériová data do Serial1, která má modul HC05 Bluetooth. Tento modul dále odesílá data do aplikace Bluetooth Terminal v mobilním zařízení Android. Používáme tedy níže uvedená prohlášení
Serial1.print ("CIRCUIT DIGEST \ n"); Serial1.print ("BLUETOOTH S STM32 \ n");
5. Dále musíme nastavit pinmode (PA0) jako výstup, protože jsme připojili led na tento pin. Tak používáme
pinMode (pinout, OUTPUT);
6. Dále ve smyčce void () spustíme následující data, abychom načetli sériová data a odpovídajícím způsobem zapnuli / vypnuli LED
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (inputdata == '1') { digitalWrite (pinout, HIGH); Serial1.print ("LED svítí \ n"); } else if (inputdata == '0') { digitalWrite (pinout, LOW); Serial1.print ("LED nesvítí \ n"); } } }
Zde používáme příkaz if, protože tyto kódy se provádějí pouze tehdy, když má port Serial1 všechna data přijatá z modulu Bluetooth, proč je tento příkaz používán Serial1.available ()> 0 . V opačném případě, pokud se nedostane do, počká, dokud nespustí sériovou komunikaci. Nyní ukládá přijatá data do proměnné inputdata = Serial1.read (). Poté zkontroluje hodnotu odeslanou z aplikace terminálu Bluetooth. Takže pokud je hodnota 1, vytiskne LED ON a způsobí, že pin (PA0) bude HIGH podle příkazu digitalWrite (pinout, HIGH), a pokud je hodnota 0, vytiskne LED OFF a způsobí (PA0) pin LOW.
Kroky pro připojení modulu Bluetooth k telefonu Android
Krok 1: - Otevřete Bluetooth z mobilu po nahrání kódu do STM32 z Arduino IDE a napájení obvodu. PAMATUJTE a odeberte PIN RX a TX při NAHRÁVÁNÍ kódu
Krok 2: - Na dostupných zařízeních vyberte HC-05 a zadejte heslo jako 1234
Krok 3: - Po spárování otevřete aplikaci Bluetooth Terminal a vyberte připojení zařízení a vyberte HC-05, jak je znázorněno níže
Krok 4: - Po připojení k modulu Bluetooth HC-05 zadejte hodnoty na svorce 1 nebo 0, aby se rozsvítila a zhasla LED. Také obdržíte zprávu, že LED svítí nebo nesvítí.