- Namestitev potrebnih paketov za komunikacijo Bluetooth:
- Seznanjanje naprav z Raspberry Pi prek Bluetootha:
- Shema vezja:
- Nadzor AC naprave z Android App BlueTerm:
- Pojasnilo programiranja:
Raspberry Pi je zelo priljubljen za IoT projekte zaradi svoje brezhibne sposobnosti brezžične komunikacije prek interneta. Raspberry Pi 3 ima vgrajen Wi-Fi in Bluetooth, Bluetooth pa je zelo priljubljen protokol za brezžično komunikacijo. Danes bomo torej upravljali gospodinjske aparate prek pametnega telefona s pomočjo Raspberry Pi 3 in Bluetootha.
Tu uporabljamo Raspberry Pi 3, ki ima vgrajen Bluetooth, zato nam ni treba uporabljati nobenega zunanjega USB ključa Bluetooth. Poleg tega za ta projekt brezžične avtomatizacije doma potrebujemo samo relejne module. Tu uporabljamo RFCOMM Bluetooth protokol za brezžično komunikacijo.
Programiranje za Bluetooth v Pythonu sledi modelu programiranja vtičnic, komunikacija med napravami Bluetooth pa poteka prek vtičnice RFCOMM. RFCOMM (Radio Frequency Communication) je protokol Bluetooth, ki zagotavlja emulirana serijska vrata RS-232 in se imenuje tudi emulacija serijskih vrat. Profil serijskih vrat Bluetooth temelji na tem protokolu. RFCOMM je zelo priljubljen v aplikacijah Bluetooth zaradi široke podpore in javno dostopnega API-ja. Vezana je na protokol L2CAP.
Če imate Raspberry Pi 2, morate uporabiti zunanji Bluetooth ključ ali modul Bluetooth HC-06. Preverite naše prejšnje projekte za uporabo teh zunanjih naprav Bluetooth: Nadzor Raspberry Pi GPIO z aplikacijo Android prek luči Bluetooth in glasovno nadzorovanih LED z Raspberry Pi. Preverite tudi naše prejšnje projekte Raspberry Pi skupaj z nekaj dobrimi IoT projekti.
Namestitev potrebnih paketov za komunikacijo Bluetooth:
Pred začetkom moramo v Raspberry Pi namestiti nekaj programske opreme za nastavitev komunikacije Bluetooth. Na Raspberry Jessie bi morali imeti nameščeno pomnilniško kartico, pripravljeno z Raspberry Pi. Oglejte si ta članek, če želite namestiti OS Raspbian in začeti uporabljati Raspberry Pi. Zdaj moramo najprej posodobiti Raspbian z uporabo spodnjih ukazov:
posodobitev sudo apt-get
Nato moramo namestiti nekaj paketov, povezanih z Bluetoothom:
sudo apt-get namesti bluetooth blueman bluez
Nato znova zaženite Raspberry Pi:
sudo ponovni zagon
BlueZ je odprtokodni projekt in uradni sklad protokola Bluetooth Bluetooth. Podpira vse osnovne protokole Bluetooth in je zdaj postal del uradnega jedra Linuxa.
Blueman ponuja namizni vmesnik za upravljanje in nadzor naprav Bluetooth.
Nazadnje potrebujemo knjižnico python za komunikacijo Bluetooth, da lahko pošiljamo in prejemamo podatke prek RFCOMM z uporabo jezika Python:
sudo apt-get namestite python-bluetooth
Namestite tudi knjižnice podpore GPIO za Raspberry Pi:
sudo apt-get namestite python-rpi.gpio
Zdaj smo končali z namestitvijo potrebnih paketov za komunikacijo Bluetooth v Raspberry Pi.
Seznanjanje naprav z Raspberry Pi prek Bluetootha:
Seznanjanje naprav Bluetooth, kot je mobilni telefon, z Raspberry Pi je zelo enostavno. Tu smo naš pametni telefon Android povezali z Raspberry Pi. Pred tem smo v Pi namestili BlueZ, ki ponuja pripomoček za ukazno vrstico, imenovan "bluetoothctl", za upravljanje naših naprav Bluetooth.
Zdaj odprite pripomoček bluetoothctl s spodnjim ukazom:
sudo bluetoothctl
Vse ukaze pripomočka bluetoothctl lahko preverite tako, da vnesete »pomoč« . Za zdaj moramo spodaj ukaze vnesti v danem vrstnem redu:
# vklop # agent vklopljen # odkrit # vpogled ob # skeniranje vklopljeno
Po zadnjem ukazu »optično branje« boste na seznamu videli svojo napravo Bluetooth (mobilni telefon). Prepričajte se, da je v vašem mobilnem telefonu vklopljen Bluetooth in da ga vidijo naprave v bližini. Nato kopirajte naslov MAC svoje naprave in ga z danim ukazom seznanite:
par
Nato boste pozvani k geslu ali pripnite v terminalski konzoli, nato vnesite geslo in pritisnite enter. Nato po pozivu vtipkajte isto geslo v svoj mobilni telefon in zdaj ste uspešno seznanjeni z Raspberry Pi. Celoten postopek smo razložili tudi v videoposnetku, podanem v prejšnji vadnici za nadzor GPIO. Tukaj je neposredna povezava YouTube.
Kot smo že povedali, lahko za povezavo mobilnega telefona uporabite tudi namizni vmesnik. Po namestitvi Blueman-a boste na desni strani namizja Raspberry Pi videli ikono Bluetooth, kot je prikazano spodaj, s katero lahko enostavno opravite seznanjanje.
Shema vezja:
Shema vezja za to domačo avtomatizacijo, ki jo nadzira Bluetooth, ki temelji na Raspberry Pi, je zelo preprosta, pravkar smo vhodni signal relejskega modula priključili na PIN 40 (GPIO 21) Raspberry Pi in druga dva Pin (Vcc in GND relejnega modula) na Pin 2 in 6 Raspberry Pi 3. Nato smo na rele povezali žarnico AC CFL, kot je prikazano na vezju:
Če ste nov v Releju in želite izvedeti več o Releju in njegovih povezavah z aparatom AC, preverite ta članek.
Nadzor AC naprave z Android App BlueTerm:
Zdaj, ko smo razčlenili mobilni telefon, moramo namestiti aplikacijo Android za komunikacijo z Raspberry Pi s pomočjo serijskega vmesnika Bluetooth, tako da lahko nadzorujemo GPIO nožice Raspberry Pi. Kot smo že povedali, protokol RFCOMM / SPP posnema serijsko komunikacijo prek Bluetootha, zato smo tukaj namestili aplikacijo BlueTerm, ki podpira ta protokol.
Uporabite lahko tudi katero koli drugo aplikacijo Bluetooth Terminal, ki podpira komunikacijo prek vtičnice RFCOMM.
Zdaj po prenosu in namestitvi aplikacije BlueTerm zaženite spodnji program Python s terminala in hkrati povežite seznanjeno napravo raspberrypi z aplikacijo BlueTerm.
Po uspešni povezavi boste v zgornjem desnem kotu aplikacije videli povezavo: raspberrypi, kot je prikazano spodaj:
Zdaj lahko preprosto vnesete '1' ali '0' iz aplikacije BlueTerm, da nastavite GPIO pin HIGH oziroma LOW, kar sproži relejski modul, priključen na ta pin, ki nadalje nadzira AC žarnico, priključeno na Rele. Pritisnite 'q' za izhod iz programa. Za nadzor GPIO-ja z glasom lahko uporabite tipkovnico Google Voice Typing Keyboard. Preverite celotno predstavitev v videoposnetku na koncu.
Torej, tako lahko brezžično upravljate napravo AC prek aplikacije Android prek Bluetootha. Preverite tudi, kako uporabljati Bluetooth z Arduino.
Pojasnilo programiranja:
Program Python za nadzor Raspberry Pi GPIO z aplikacijo Android je zelo preprost in samoumeven. Le malo se moramo naučiti kode, povezane s komunikacijo Bluetooth RFCOMM. Najprej moramo uvoziti knjižnico vtičnic Bluetooth, ki nam omogoča nadzor Bluetootha v jeziku Python; v prejšnjem razdelku smo namestili knjižnico istega.
uvoz Bluetooth
Spodaj je koda, odgovorna za komunikacijo Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Sprejeta povezava iz", naslov med 1: podatki = client_socket.recv (1024)
Tu jih lahko razumemo po vrsticah:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Ustvarjanje vtičnice za komunikacijo Bluetooth RFCOMM.
server_socket.bind (("", port): - Strežnik veže skript na gostitelju '' na vrata.
server_socket.listen (1) : Strežnik posluša, da sprejema po eno povezavo naenkrat.
client_socket, address = server_socket.accept () : Strežnik sprejme odjemalsko zahtevo za povezavo in dodeli naslov mac spremenljivki , client_socket je vtičnica odjemalca
data = client_socket.recv (1024): Prejmite podatke prek odjemalske vtičnice client_socket in jih dodelite spremenljivki data . Hkrati lahko prejmete največ 1024 znakov.
Na koncu po celotnem programiranju zaprite povezavo med odjemalcem in strežnikom s spodnjo kodo:
client_socket.close () server_socket.close ()
Vsa druga koda je enostavna in samoumevna. Spodaj preverite celotno kodo. Poskusite spremeniti ta projekt in z njim lahko brezžično nadzorujete marsikaj drugega, robotski avto prek telefona android ali pa z glasom upravljate luči.
Preverite tudi naše številne vrste projektov avtomatizacije doma z uporabo različnih tehnologij in mikrokrmilnikov, kot so: