- Installation af nødvendige pakker til Bluetooth-kommunikation:
- Parring af enheder med Raspberry Pi via Bluetooth:
- Kredsløbsdiagram:
- Styring af vekselstrømsapparat med Android-app BlueTerm:
- Programmeringsforklaring:
Raspberry Pi er meget populær til IoT-projekter på grund af sin sømløse evne til trådløs kommunikation over internettet. Raspberry Pi 3 har indbygget Wi-Fi og Bluetooth, og Bluetooth er en meget populær trådløs kommunikationsprotokol. Så i dag skal vi styre husholdningsapparater via Smart Phone ved hjælp af Raspberry Pi 3 og Bluetooth.
Her bruger vi Raspberry Pi 3, som har indbygget Bluetooth, så vi behøver ikke bruge nogen ekstern USB Bluetooth-dongle. Bortset fra det har vi kun brug for relæmoduler til dette Wireless Home Automation-projekt. Her bruger vi RFCOMM Bluetooth-protokol til trådløs kommunikation.
Programmering af Bluetooth i Python følger sokkelprogrammeringsmodellen, og kommunikation mellem Bluetooth-enhederne sker via RFCOMM-stikket. RFCOMM (Radio Frequency Communication) er en Bluetooth-protokol, der leverede emulerede RS-232 serielle porte og også kaldet Serial Port Emulation. Bluetooth-seriel portprofil er baseret på denne protokol. RFCOMM er meget populær i Bluetooth-applikationer på grund af sin brede support og offentligt tilgængelige API. Det er bundet til L2CAP-protokollen.
Hvis du har Raspberry Pi 2, skal du enten bruge ekstern Bluetooth-dongle eller Bluetooth-modul HC-06. Tjek vores tidligere projekter for brug af disse eksterne Bluetooth-enheder: Styring af Raspberry Pi GPIO ved hjælp af Android-appen via Bluetooth og stemmestyrede lysdioder ved hjælp af Raspberry Pi. Tjek også vores tidligere Raspberry Pi-projekter sammen med nogle gode IoT-projekter.
Installation af nødvendige pakker til Bluetooth-kommunikation:
Før start skal vi installere nogle software til opsætning af Bluetooth-kommunikation i Raspberry Pi. Du skal have et Raspbian Jessie-installeret hukommelseskort klar med Raspberry Pi. Tjek denne artikel for at installere Raspbian OS og komme i gang med Raspberry Pi. Så nu skal vi først opdatere Raspbian ved hjælp af nedenstående kommandoer:
sudo apt-get opdater sudo apt-get upgrade
Derefter skal vi installere få Bluetooth-relaterede pakker:
sudo apt-get install bluetooth blueman bluez
Genstart derefter Raspberry Pi:
sudo genstart
BlueZ er et open source-projekt og officiel Linux Bluetooth-protokolstak. Det understøtter alle de centrale Bluetooth-protokoller og bliver nu en del af den officielle Linux-kerne.
Blueman leverer Desktop-interface til at styre og kontrollere Bluetooth-enheder.
Endelig har vi brug for python-bibliotek til Bluetooth-kommunikation, så vi kan sende og modtage data via RFCOMM ved hjælp af Python-sprog:
sudo apt-get install python-bluetooth
Installer også GPIO-supportbibliotekerne til Raspberry Pi:
sudo apt-get install python-rpi.gpio
Nu er vi færdige med at installere nødvendige pakker til Bluetooth-kommunikation i Raspberry Pi.
Parring af enheder med Raspberry Pi via Bluetooth:
Parring af Bluetooth-enheder, som mobiltelefon, med Raspberry Pi er meget let. Her har vi parret vores Android Smart-telefon med Raspberry Pi. Vi har tidligere installeret BlueZ i Pi, som giver et kommandolinjeprogram kaldet "bluetoothctl" til at styre vores Bluetooth-enheder.
Åbn nu bluetoothctl- hjælpeprogrammet ved nedenstående kommando:
sudo bluetoothctl
Du kan kontrollere alle kommandoerne i bluetoothctl- værktøjet ved at skrive 'hjælp' . For nu skal vi indtaste nedenstående kommandoer i den angivne rækkefølge:
# tænd for # agent til # synlig på # parring på # scanning til
Efter den sidste kommando "scan on" vil du se din Bluetooth-enhed (mobiltelefon) på listen. Sørg for, at Bluetooth er slået til og synlig på din enhed i nærheden af din mobil. Kopier derefter MAC-adressen på din enhed, og par den ved hjælp af den givne kommando:
par
Derefter bliver du bedt om adgangskode eller pin i din terminalkonsol, skriv derefter adgangskode der og tryk enter. Skriv derefter den samme adgangskode i din mobiltelefon, når du bliver bedt om det, og du er nu parret med succes med Raspberry Pi. Vi har også forklaret hele denne proces i videoen, der blev givet i tidligere GPIO-kontrolvejledning. Her er det direkte YouTube-link.
Som tidligere fortalt kan du også bruge Desktop-interface til at parre mobiltelefonen. Efter installation af Blueman vil du se et Bluetooth-ikon i højre side af dit Raspberry Pi-skrivebord som vist nedenfor, ved hjælp af hvilket du nemt kan udføre parringen.
Kredsløbsdiagram:
Kredsløbsdiagram til denne Raspberry Pi-baserede Bluetooth-styrede hjemmeautomatisering er meget enkel, vi har netop tilsluttet relæmodulets indgangssignal Pin til PIN 40 (GPIO 21) på Raspberry Pi og andre to ben (Vcc og GND af relæmodul) til Pin 2 og 6 af Raspberry Pi 3. Så har vi tilsluttet en AC CFL-pære til relæet som vist i kredsløbsdiagrammet:
Hvis du er ny hos Relay og vil lære mere om Relay og dets forbindelser til AC-apparatet, skal du kontrollere denne artikel.
Styring af vekselstrømsapparat med Android-app BlueTerm:
Efter parring af mobiltelefonen skal vi nu installere en Android-app til kommunikation med Raspberry Pi ved hjælp af en Bluetooth-seriel adapter, så vi kan styre GPIO-stifterne på Raspberry Pi. Som tidligere fortalt emulerer RFCOMM / SPP-protokol seriel kommunikation via Bluetooth, så vi installerede her BlueTerm App, der understøtter denne protokol.
Du kan også bruge enhver anden Bluetooth Terminal App, der understøtter kommunikation via RFCOMM-stikket.
Efter download og installation af BlueTerm-appen skal du køre nedenstående givne Python-program fra terminalen og tilslutte den parrede raspberrypi- enhed fra BlueTerm-appen på samme tid.
Efter vellykket forbindelse ser du tilsluttet: raspberrypi øverst til højre i appen som vist nedenfor:
Nu kan du bare indtaste '1' eller '0' fra BlueTerm-appen for at gøre GPIO-stiften henholdsvis HIGH og LOW, hvilket igen udløser relæmodulet, der er tilsluttet denne pin, som yderligere styrer den AC-pære, der er tilsluttet Relay. Tryk på 'q' for at afslutte programmet. Du kan bruge Google Voice Typing Keyboard til at styre GPIO ved hjælp af din Voice. Tjek den komplette demo i videoen til sidst.
Så dette er, hvordan du kan styre AC-apparatet trådløst ved hjælp af en Android-app via Bluetooth. Tjek også Sådan bruges Bluetooth med Arduino.
Programmeringsforklaring:
Python-programmet til styring af Raspberry Pi GPIO med Android App er meget simpelt og selvforklarende. Kun vi har brug for at lære lidt om koden relateret til Bluetooth RFCOMM-kommunikation. Først skal vi importere Bluetooth-stikkontaktbiblioteket, som gør det muligt for os at kontrollere Bluetooth med Python-sprog; vi har installeret biblioteket til det samme i det foregående afsnit.
importer Bluetooth
Nedenfor er koden, der er ansvarlig for Bluetooth-kommunikation:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, adresse = server_socket.accept () udskriver "Accepteret forbindelse fra", adresse mens 1: data = client_socket.recv (1024)
Her kan vi forstå dem linje for linje:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Opretter stikkontakt til Bluetooth RFCOMM-kommunikation.
server_socket.bind (("", port): - Server binder scriptet på værten '' til porten.
server_socket.listen (1) : Server lytter til at acceptere en forbindelse ad gangen.
client_socket, address = server_socket.accept () : Server accepterer klientens forbindelsesanmodning og tildeler mac-adressen til den variable adresse, client_socket er klientens socket
data = client_socket.recv (1024): Modtag data gennem client-socket client_socket og tildel dem til de variable data . Der kan maksimalt modtages 1024 tegn ad gangen.
Endelig efter al programmering, luk klient- og serverforbindelsen ved hjælp af nedenstående kode:
client_socket.close () server_socket.close ()
Al den anden kode er let og selvforklarende. Tjek den fulde kode nedenfor. Prøv at ændre dette projekt, og du kan bruge det til at styre mange andre ting trådløst, robotbil via Android-telefon eller kan bruge din stemme til at styre lysene.
Tjek også vores mange typer hjemmeautomationsprojekter ved hjælp af forskellige teknologier og mikrocontrollere som: