- Installere nødvendige pakker for Bluetooth-kommunikasjon:
- Pare enheter med Raspberry Pi via Bluetooth:
- Kretsdiagram:
- Styring av AC-apparat med Android-app BlueTerm:
- Programmeringsforklaring:
Raspberry Pi er veldig populær for IoT-prosjekter på grunn av sin sømløse evne til trådløs kommunikasjon over internett. Raspberry Pi 3 har innebygd Wi-Fi og Bluetooth, og Bluetooth er en veldig populær trådløs kommunikasjonsprotokoll. Så i dag skal vi kontrollere husholdningsapparater via smarttelefon ved hjelp av Raspberry Pi 3 og Bluetooth.
Her bruker vi Raspberry Pi 3 som har innebygd Bluetooth, så vi trenger ikke bruke noen ekstern USB Bluetooth-dongle. Bortsett fra det trenger vi bare relémoduler for dette trådløse hjemmeautomatiseringsprosjektet. Her bruker vi RFCOMM Bluetooth-protokoll for trådløs kommunikasjon.
Programmering for Bluetooth i Python følger sokkelprogrammeringsmodellen og kommunikasjon mellom Bluetooth-enhetene skjer gjennom RFCOMM-sokkelen. RFCOMM (Radio Frequency Communication) er en Bluetooth-protokoll som ga emulerte RS-232 serielle porter og også kalt Serial Port Emulation. Bluetooth-seriell portprofil er basert på denne protokollen. RFCOMM er veldig populært i Bluetooth-applikasjoner på grunn av bred støtte og offentlig tilgjengelig API. Den er bundet til L2CAP-protokollen.
Hvis du har Raspberry Pi 2, må du enten bruke ekstern Bluetooth-dongle eller Bluetooth-modul HC-06. Sjekk våre tidligere prosjekter for bruk av disse eksterne Bluetooth-enhetene: Styring av Raspberry Pi GPIO ved hjelp av Android-app over Bluetooth og stemmestyrte lysdioder ved bruk av Raspberry Pi. Sjekk også våre tidligere Raspberry Pi-prosjekter sammen med noen gode IoT-prosjekter.
Installere nødvendige pakker for Bluetooth-kommunikasjon:
Før start må vi installere noen programvare for å konfigurere Bluetooth-kommunikasjon i Raspberry Pi. Du bør ha et Raspbian Jessie-installert minnekort klart med Raspberry Pi. Sjekk denne artikkelen for å installere Raspbian OS og komme i gang med Raspberry Pi. Så nå må vi først oppdatere Raspbian ved hjelp av kommandoene nedenfor:
sudo apt-get update sudo apt-get upgrade
Da må vi installere noen Bluetooth-relaterte pakker:
sudo apt-get install bluetooth blueman bluez
Start Raspberry Pi på nytt:
sudo omstart
BlueZ er et open source-prosjekt og offisiell Linux Bluetooth-protokollstabel. Den støtter alle Bluetooth-protokollene og blir nå en del av den offisielle Linux-kjernen.
Blueman tilbyr Desktop-grensesnittet for å administrere og kontrollere Bluetooth-enhetene.
Til slutt trenger vi python-biblioteket for Bluetooth-kommunikasjon slik at vi kan sende og motta data gjennom RFCOMM ved hjelp av Python-språk:
sudo apt-get install python-bluetooth
Installer også GPIO-støttebibliotekene for Raspberry Pi:
sudo apt-get install python-rpi.gpio
Nå er vi ferdige med å installere nødvendige pakker for Bluetooth-kommunikasjon i Raspberry Pi.
Pare enheter med Raspberry Pi via Bluetooth:
Det er veldig enkelt å koble Bluetooth-enheter, som mobiltelefon, med Raspberry Pi. Her har vi paret Android-smarttelefonen vår med Raspberry Pi. Vi har tidligere installert BlueZ i Pi, som tilbyr et kommandolinjeprogram som heter “bluetoothctl” for å administrere Bluetooth-enhetene våre.
Åpne nå Bluetoothctl- verktøyet med kommandoen nedenfor:
sudo bluetoothctl
Du kan sjekke alle kommandoene til Bluetoothctl- verktøyet ved å skrive 'hjelp' . For nå må vi legge inn kommandoer nedenfor i gitt rekkefølge:
# slå på # agent på # oppdagbar på # parbar på # skanning på
Etter den siste kommandoen "skann på", vil du se Bluetooth-enheten din (mobiltelefon) i listen. Forsikre deg om at mobilen din har Bluetooth slått på og synlig av enheter i nærheten. Kopier deretter MAC-adressen til enheten din og par den ved å bruke den gitte kommandoen:
par
Deretter blir du bedt om å oppgi passord eller pin i terminalkonsollen, skriv deretter inn passord der og trykk enter. Skriv deretter inn samme passord i mobiltelefonen din når du blir bedt om det, og du er nå parret med Raspberry Pi. Vi har også forklart hele prosessen i videoen gitt i forrige GPIO-kontrollveiledning. Her er den direkte YouTube-lenken.
Som fortalt tidligere, kan du også bruke Desktop-grensesnitt for å koble mobiltelefonen. Etter at du har installert Blueman, vil du se et Bluetooth-ikon på høyre side av Raspberry Pi-skrivebordet, som vist nedenfor, ved hjelp av hvilket du enkelt kan gjøre sammenkoblingen.
Kretsdiagram:
Kretsskjema for denne Raspberry Pi-baserte Bluetooth-kontrollerte hjemmeautomatiseringen er veldig enkel, vi koblet nettopp relémodulens inngangssignal Pin til PIN 40 (GPIO 21) på Raspberry Pi og andre to pinner (Vcc og GND av relémodul) til Pin 2 og 6 av Raspberry Pi 3. Så har vi koblet en AC CFL-pære til reléet som vist i kretsskjemaet:
Hvis du er ny på Relay og ønsker å lære mer om Relay og dets tilkoblinger til AC-apparat, sjekk denne artikkelen.
Styring av AC-apparat med Android-app BlueTerm:
Nå etter å ha paret mobiltelefonen, må vi installere en Android-app for å kommunisere med Raspberry Pi ved hjelp av en Bluetooth-seriell adapter, slik at vi kan kontrollere GPIO-pinnene til Raspberry Pi. Som tidligere fortalt emulerer RFCOMM / SPP-protokollen seriell kommunikasjon over Bluetooth, så vi installerte her BlueTerm App som støtter denne protokollen.
Du kan også bruke hvilken som helst annen Bluetooth Terminal App som støtter kommunikasjon via RFCOMM-kontakten.
Nå, etter å ha lastet ned og installert BlueTerm-appen, kjører du det gitte Python-programmet fra terminalen og kobler den sammenkoblede raspberrypi- enheten fra BlueTerm-appen samtidig.
Etter vellykket tilkobling vil du se tilkoblet: raspberrypi øverst til høyre i appen som vist nedenfor:
Nå kan du bare skrive inn '1' eller '0' fra BlueTerm-appen for å gjøre henholdsvis GPIO-pinnen HØY og LAV, som i sin tur utløser relémodulen som er koblet til denne pinnen, som ytterligere styrer vekselstrømspæren som er koblet til relé. Trykk på 'q' for å avslutte programmet. Du kan bruke Google Voice Typing Keyboard til å kontrollere GPIO ved hjelp av stemmen din. Sjekk fullstendig demo i videoen som er gitt til slutt.
Så dette er hvordan du kan styre AC-apparatet trådløst ved hjelp av en Android-app via Bluetooth. Sjekk også Hvordan bruke Bluetooth med Arduino.
Programmeringsforklaring:
Python-programmet for å kontrollere Raspberry Pi GPIO med Android App er veldig enkelt og selvforklarende. Bare vi trenger å lære litt om koden relatert til Bluetooth RFCOMM-kommunikasjon. Først må vi importere Bluetooth-stikkontaktbiblioteket som gjør det mulig å kontrollere Bluetooth med Python-språk; vi har installert biblioteket for det samme i forrige avsnitt.
importere Bluetooth
Nedenfor er koden som er ansvarlig for Bluetooth-kommunikasjon:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Accepted connection from", adresse mens 1: data = client_socket.recv (1024)
Her kan vi forstå dem linje for linje:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Opprette stikkontakt for Bluetooth RFCOMM-kommunikasjon.
server_socket.bind (("", port): - Server binder skriptet på verten '' til porten.
server_socket.listen (1) : Server lytter til å godta en forbindelse om gangen.
client_socket, address = server_socket.accept () : Server godtar klientens tilkoblingsforespørsel og tilordner mac-adressen til den variable adressen, client_socket er klientens socket
data = client_socket.recv (1024): Motta data gjennom client socket client_socket og tilordne dem til de variable dataene . Maksimalt 1024 tegn kan mottas om gangen.
Til slutt, etter all programmering, lukker du klient- og serverforbindelsen ved hjelp av koden nedenfor:
client_socket.close () server_socket.close ()
All den andre koden er enkel og selvforklarende. Sjekk hele koden nedenfor. Prøv å endre dette prosjektet, og du kan bruke det til å kontrollere mange andre ting trådløst, robotbil via Android-telefon eller kan bruke stemmen din til å kontrollere lysene.
Sjekk også våre mange typer hjemmeautomatiseringsprosjekter ved hjelp av forskjellige teknologier og mikrokontrollere som: