- Vad är HM10 BLE 4.0-modul?
- Skillnad mellan HM10 och annan Bluetooth-modul
- Komponenter krävs
- Kretsschema
- Arduino Bluetooth Controller (HM-10 Module) Android-applikation
- Programmering av Arduino UNO för att styra LED med hjälp av Bluetooth-modul HM-10
Bluetooth är en av de mest populära och lättanvända trådlösa teknikerna. Under några år har det blivit många uppgraderingar av Bluetooth-standarden för att hålla jämna steg med den nuvarande pågående tekniken med framtida teknik och för att tillgodose användarnas behov. Från och med Bluetooth-version 1.0 till Bluetooth-version 5.0 ändras många saker inklusive högre datahastigheter, möjligheten att användas för IoT med låg strömförbrukning, förbättrad säkerhet etc. För att lära sig Bluetooth-kommunikation finns det många moduler tillgängliga som kan gränssnitt med mikrokontroller. En sådan Bluetooth-modul är HM10 som är baserad på Bluetooth 4.0.
Vad är HM10 BLE 4.0-modul?
HM10 är en seriell BLE-modul (Bluetooth-Low-Energy) som är avsedd att användas för applikationer med låg energiförbrukning och kan hålla länge även med ett myntstorlek batteri. Den HM10 är en Bluetooth 4.0-modul baserad på Texas Instruments CC2540 eller CC2541 BLE System SoC (System on Chip). Firmware och design av modulen tillverkas och hanteras av Jinan Huamao Technology. Modulen levereras med serie- / UART-lager som gör att enheten kan ansluta till olika mikrokontroller. HM10 är perfekt för att skapa enkla anslutningar och använda den med eller som en iBeacon.
HM10 har blivit en mycket populär Bluetooth 4.0 BLE-modul. HM10 är endast en Bluetooth 4.0-baserad modul, så den ansluter inte till Bluetooth 2 / 2.1-modul som HC-05, HC-06 och andra Bluetooth-moduler. HM10 styrs via AT-kommandon som skickas över den seriella UART-anslutningen. HM-10 är en Bluetooth Low Energy (BLE) -modul, för att veta mer om BLE, följ länken. Lär dig också hur en nRF24L01-modul kan användas som BLE-modul med Arduino.
Skillnad mellan HM10 och annan Bluetooth-modul
Den största skillnaden som HM10 har är Bluetooth-versionen. HM10 är en Bluetooth 4.0-modul, så den levereras med alla Bluetooth-version 4.0-funktioner som hastighet, genomströmning och räckvidd. Den HM10 erbjuder en datahastighet på upp till 24 Mbps med låg energi / låg strömförbrukning. Tillsammans med detta erbjuder HM10 ett avstånd på 100 meter i öppet utrymme. Jämfört med andra Bluetooth-moduler som HC-05, som är en Bluetooth 2.0-baserad modul, fungerar HM10 verkligen bättre än HC-05. HC-05 erbjuder bara 3 Mbps jämfört med HM10 vilket är ganska mindre.
Bluetooth-modulen HC-05 och HC-06 är fortfarande mycket populära bland tillverkare och hobbyister eftersom de är billiga och lätta att gränssnitt. Vi gjorde också många projekt med HC-05/06 och kopplade dem med många andra mikrokontroller:
- Bluetooth-modulgränssnitt med ESP8266: Styrning av en LED
- Gränssnitt Bluetooth HC-05 med STM32F103C8 Blue Pill: Kontrollerande LED
- Gränssnitt HC-05 Bluetooth-modul med AVR-mikrokontroller
- Gränssnitt Bluetooth-modul HC-06 med PIC-mikrokontroller
- Röststyrda lysdioder med Arduino och Bluetooth
- Röststyrda lampor med Raspberry Pi
Alla Bluetooth-relaterade projekt finns på den här länken.
Idag kommer vi att koppla ihop HM-10 BLE-modulen med Arduino Uno för att styra en LED trådlöst med hjälp av Bluetooth-protokollet. På / Av-kommandona kommer att skickas via Smartphone.
Komponenter krävs
Hårdvara:
- Arduino UNO
- HM10 Bluetooth-modul
- Motstånd (1 kΩ, 470 Ω)
- Bygeltrådar
Programvara:
- Arduino IDE
- Arduino Bluetooth-handkontroll (HM-10-modul) Android-app
- Android-smarttelefon
Kretsschema
Kretsschema för anslutning av Arduino och HM-10 Bluetooth-modul är mycket enkelt som visas nedan.
Innan du börjar med projektet, se till att din HM-10-modul är en äkta HM-10-modul. Det finns brett kinesiska klonade HM-10-moduler tillgängliga. För att identifiera skillnaden mellan äkta och klonad HM-10-modul, se bara närvaron av Crystal Oscillator på 32 KHz på HM-10-kortet. Om Crystal Oscillator är närvarande är det en äkta HM-10-modul och du behöver inte byta firmware. Men om du inte kan se Crystal Oscillator istället för den är det en klonad HM10-modul och du måste byta fast programvara för den klonade HM-10-modulen. Utan att ändra firmware för HM-10 kan du varken komma åt HM-10-modulen med AT-kommandon eller para ihop den med smartphones. Här använder vi också klonmodulen så vi blinkade dess firmware innan vi anslöt den till Ardruino. För att ändra fast programvara för klonad HM-10-modul, följ helt enkelt vår handledning om hur man ändrar eller blinkar fast programvara för klon HM-10-modulen.
Arduino Bluetooth Controller (HM-10 Module) Android-applikation
Arduino Bluetooth Controller (HM-10 Module) är en Android-applikation som är tillgänglig gratis i Google Play Store. Denna app har ett enkelt och enkelt gränssnitt för HM-10 BLE-modulen. Under testningen kunde den snabbt hitta HM-10 och den anslöt direkt till HM-10. Appen har en cool funktion som att du kan skapa en knapp och anpassa den med anpassat namn och funktioner. Här kommer vi hur vi skapar två knappar i den här Bluetooth-kontrollappen för att slå på och av LED-lampan ansluten till Arduino.
Så här ställer du in Arduino Bluetooth Controller (HM-10 Module) Android-app:
- Ladda ner appen från Google Play Store.
- Appens startsida kommer att se ut nedan där du kan hitta funktioner som, anslut enhet, sökikon, radera ikon, enhetsstatus, skicka text, lägg till mall etc. Börja med att söka på enheten antingen genom att klicka på sökikonen eller genom att klicka till tre punkter i det övre högra hörnet och välj anslut enhet .
- Alla tillgängliga enheter visas på skärmen. Välj rätt HM-10-modul.
- Nu kommer HM-10 att anslutas framgångsrikt och du kommer att kunna se status för HM-10 högst upp på skärmen.
- Nu kan du antingen skicka en text eller sträng direkt genom att skriva på textavsnittet och trycka på pilen för att skicka eller så kan du skapa en anpassad mall.
- Att skapa en anpassad mall för att spara tid. Klicka på " + " ikonen i övre högra hörnet och fyll i detaljerna. " Namn " är knappnamn, " Text " -fältet är för texter eller strängar som kommer att skickas till HM-10 och " Beskrivning " är bara knappbeskrivningen som hur knappen fungerar.
- Skapa först en knapp för att tända lysdioden och ge den en grön färg. Knappen skickar ett "N" -brev till HM-10 som tänder den LED som är ansluten till Arduino. På samma sätt skapa en knapp för LED OFF och ge den en röd färg.. Knappen skickar ett “F” -brev till HM-10 som stänger av den LED som är ansluten till Arduino.
- Nu kan du se de två knapparna som skapats precis under textfältet. Om du nu vill styra lysdioden klickar du bara på knapparna.
Detta slutför installationen av Android-appen för att styra HM-10-modulen. Nu börjar vi med programmeringen Arduino Uno för att få karaktärerna från Android App.
Programmering av Arduino UNO för att styra LED med hjälp av Bluetooth-modul HM-10
Som alltid kan ett komplett program med demonstrationsvideo hittas i slutet av denna handledning. Programmering av Arduino UNO för detta projekt kräver varken mycket ansträngning eller något bibliotek. Du kan använda seriellt och hårdvarubibliotek för hårdvara. Om du använder programvaruserie, inkludera bara programvarans seriella bibliotek, annars fortsätt med maskinvaruserien. I det här projektet använder vi SoftwareSerial. Så börja med att inkludera Software Serial Library. Stiften Rx och Tx är anslutna vid Arduino 2 och 3 stift.
#omfatta
De två variablerna används för att lagra data som tas emot från HM10 och Android-appen.
char appData; Sträng inData = "";
Bara starta maskin- och mjukvaruserien vid 9600 baudhastighet och skriv ut några felsökningsuttalanden. LED-stiftet är inställt som utgång och initialt är det avstängt.
Serial.begin (9600); Serial.println ("HM10-serien startade vid 9600"); HM10.började (9600); // ställa in HM10-serie vid 9600 baud rate pinMode (13, OUTPUT); // inbyggd LED digitalWrite (13, LÅG); // stäng av LED
Börja lyssna på HM10-porten och läs strängen tills HM10 är tillgänglig och skickar data. Spara data i sträng.
HM10.listen (); // lyssna på HM10-porten medan (HM10.available ()> 0) {// om HM10 skickar något läs sedan appData = HM10.read (); inData = String (appData); // spara data i strängformat Serial.write (appData); }
För felsökning av HM10 med AT-kommandon, skriv bara nedanstående kodrad som skickar strängen till HM10.
if (Serial.available ()) {// Läs användarinmatning om tillgänglig. fördröjning (10); HM10.write (Serial.read ()); }
Om den mottagna strängen är "F", skriv ut ett meddelande på seriell bildskärm och stäng av LED-lampan om den mottagna strängen är "N", skriv sedan ut ett meddelande på seriell bildskärm och Blink led med en fördröjning på 500 ms.
if (inData == "F") { Serial.println ("LED OFF"); digitalWrite (13, LOW); // stäng av LED- fördröjning (500); } om (inData == "N") { Serial.println ("LED PÅ"); digitalWrite (13, HÖG); // stäng av LED- fördröjning (500); digitalWrite (13, LOW); // stäng av LED- fördröjning (500); }
Detta avslutar den fullständiga guiden om hur man styr LED med Arduino och BLE HM10 Blutooth 4.0-modulen. Kom ihåg igen att om du har en äkta HM10-modul behöver du inte blinka firmware, den kan användas direkt. Men om du använder en klonad HM-10-modul, blinka sedan firmware på klonen HM10 BLE-modul. Om du har några tvivel eller förslag, vänligen kommentera nedan eller skriv till vårt forum.