Arduino Kommunikasjon Med En Android App Via Bluetooth

Introduksjon

med ankomsten av IoT og behovet for kontroll, enheter nå trenger å gjøre mer enn å utføre de grunnleggende funksjonene som de er bygget, må de være i stand til å kommunisere med andre enheter som en mobiltelefon blant andre. Det finnes ulike kommunikasjonssystemer som kan tilpasses for kommunikasjon mellom enheter, de inkluderer systemer Som WiFi, RF, Bluetooth blant flere andre. Vårt fokus vil være på kommunikasjon Over Bluetooth.

I Dag skal vi bygge Et Arduino – basert prosjekt som kommuniserer med en app som kjører på en smarttelefon (Android) Via Bluetooth.

bruke en mobil app for å slå EN LED på/av

for enkelhet, målet med prosjektet er å bytte en led koblet til arduino ved hjelp av mobilappen. VI skal bruke HC06 Bluetooth-modulen som den viktigste ingrediensen i denne opplæringen.HC06 Bluetooth-Modulen er en slaveversjon av HC05 Bluetooth-modulen. Den har 4 pinner og kommuniserer med en mikrokontroller via serielt grensesnitt.

HC06 Bluetooth-Modul

HC06 Bluetooth-modulen er en 3.3v logikk nivå basert enhet og dermed hvis direkte koblet Til Arduino, vil noen ganger være i stand til å behandle meldingen mottatt Fra Arduino som er en 5v nivå logikk nivå enhet med mindre det finnes noen form for nivå skiftende, Selv Om Arduino kan lett forstå dataene som sendes fra Bluetooth-modulen siden den bruker en høyere logikk nivå. Nivået skiftende / konvertering kan oppnås enten ved bruk av en spenningsdeler eller et nivå shifter modul (som vi gjorde i denne opplæringen).

shifter-modulen (vist på bildet nedenfor) hjelper med den enkle overgangen fra en spenning til den andre. Nivåskifteren har to sider, høyspenningssiden (merket HV) og lavspenningssiden (Merket LV). Shifter lar deg koble den ønskede lavspenningsutgangen på LV-siden og høyspenningsledningen også TIL HV. Flere detaljer om tilkobling av nivåskifteren er omtalt i skjematisk seksjon.

Spenningsnivå Shifter Modul

Nødvendige Komponenter

følgende komponenter kreves for denne opplæringen;

  1. Bluetooth Modul
  2. nivå converter
  3. arduino uno
  4. led
  5. stort brødfjel
  6. ledninger

som vanlig kan de eksakte komponentene som brukes Til denne opplæringen kjøpes ved å følge lenken Som Er Knyttet til hver av dem.

Skjemaer

Koble komponentene som vist i skjemaene nedenfor.

Skjemaer

som tidligere nevnt er hc06 bluetooth-modulen en 3.3 v logisk nivå enhet, for å gjøre den kompatibel med logikknivået til arduino (som er 5v), må vi bruke En logisk nivå shifter/omformer som vist i skjemaene ovenfor. For å gjøre skjemaene litt klarere, vises et kart over komponentene og deres tilkoblinger nedenfor.

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

Med komponentene tilkoblet og tilkoblingen bekreftet, er Vi klare Til å bygge Android-appen som skal brukes til den faktiske kontrollen AV LED.

Android App

appen for dette prosjektet ble designet ved HJELP AV mit app inventor for enkelhets skyld, men den kan også bygges ved hjelp av en hvilken som helst annen plattform som brukes til utvikling Av Android-apper.MIT App Inventor er en ripe som mobilapputviklingsplattform, og fokuset er å gjøre programmering enkelt for alle, og i stedet for å skrive koder, er appprogrammeringen gjort ved å dra og slippe blokker akkurat som programmeringsplattformen «Scratch».For å bygge appen som er opprettet for dette prosjektet, opprett et nytt prosjekt og design BRUKERGRENSESNITTET slik at det ser ut som bildet nedenfor.

UI Design

MED BRUKERGRENSESNITTET ferdig, klikk på blokker og fortsett å kopiere blokkene nedenfor.

Kode

kompilere app og lagre som EN APK til datamaskinen som du kan overføre til telefonen for installasjon.

Den .aia project raw-fil for appen er en del av filene arkivert i zip-filen som ligger under nedlastingsdelen av denne opplæringen.

Den .aia-filen kan importeres til mit App inventor-arbeidsområdet og redigeres for å dekke dine behov og ønsker.

APK install ready-filen er også knyttet til zip-filen, slik at du kan installere direkte på telefonen.

med appen klar, kan vi nå fortsette å skrive Arduino-koden for å kontrollere enheten vår.

Kode

Arduino kommuniserer Med Bluetooth-modulen via seriell kommunikasjon, og dette gjør det veldig enkelt å skrive koden. Siden vi bestemte oss for å bruke programvare seriell og Ikke Arduinos maskinvare serielle pins (D0 Og D1), trenger Vi Arduino software serial library. Dette biblioteket gir oss frihet til å velge Noen Av Arduino digital pins som Våre rx og Tx pins. Hardware serial pins er de samme pinnene som Brukes Av Arduino til å kommunisere med datamaskinen, slik at du kobler Dem til Bluetooth, vil forårsake forstyrrelser som kan hindre kodeopplastingsprosessen. Selv om pinnene kan kobles Fra Bluetooth når koden lastes opp og kobles til igjen etter at koden er lastet opp, men dette er ikke alltid effektiv.

kodens grunnleggende funksjon er å overvåke innkommende seriell datastrøm, hvis den mottar EN «1», slår DEN LYSDIODEN på OG hvis den mottar en «0», slår DEN LYSDIODEN av.

for å hoppe inn, vil vi som vanlig gi en oversikt over koden for å forklare hver del før hele koden er gitt. Arduino-koden er blant filene arkivert i zip-filen under nedlastingsseksjonen.

Det første vi gjør mens du skriver koden, er som vanlig å importere bibliotekene vi skal jobbe med, som i dette tilfellet er programvarens serielle bibliotek.

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

etter import av biblioteket erklærer vi en variabel for å holde tegnene mottatt fra Bluetooth og pinnen På Arduino SOM LYSDIODEN er koblet til. Vi initialiserer Også Softwareserial library ved å indikere pinnene som vil fungere Som Rx og Tx.

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

deretter flytter vi til setup () – delen der vi setter pinmoden for pinnen som LED-LAMPEN vår er koblet til (utgang), og vi starter seriell kommunikasjon med en baudrate på 9600 som er baudhastigheten der de nyeste versjonene av HC06-modulen kommuniserer.

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

deretter flytter vi til hoveddelen av koden; void loop () – funksjonen. Det første vi gjør er å bekrefte tilgjengeligheten av data Fra Bluetooth-modulen, hvoretter vi leser dataene, og bruker en if-setning for å sammenligne den for å se om det er en 1 eller 0. hvis dataene er 1, slår VI LYSDIODEN høyt, men hvis den er 0, slår VI AV LYSDIODEN.

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

Den Komplette koden er tilgjengelig nedenfor.

 ///////////////////////////////////////////////////////////////// // 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

Koble Arduinoen Til datamaskinen og last opp koden din. Du bør se EN LED På Bluetooth begynner å blinke, dette betyr at den er klar til å pare. Slå på Telefonens Bluetooth, og du bør se hc06 etter skanning. koble til den og skriv inn tilgangsnøkkelen som vanligvis er 1234.

Passord

Fortsett ved å starte appen, og klikk på tilkoblingsknappen, den vil vise mac-adressen til hc06. Koble til den og gå tilbake til apps hovedskjermen.

etter tilkobling vil appen vise tilkoblet øverst til venstre, du kan da merke av eller fjerne merket for å slå på eller av lysdioden.

App Connected to Device

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *