- A Bluetooth kommunikációhoz szükséges csomagok telepítése:
- Eszközök párosítása Raspberry Pi-vel Bluetooth-on:
- Kördiagramm:
- Az AC készülék vezérlése az Android App BlueTerm alkalmazással:
- Programozási magyarázat:
A Raspberry Pi nagyon népszerű az IoT projekteknél, mivel zökkenőmentesen képes vezeték nélküli kommunikációt folytatni az interneten keresztül. A Raspberry Pi 3 beépített Wi-Fi-t és Bluetooth-ot tartalmaz, és a Bluetooth egy nagyon népszerű vezeték nélküli kommunikációs protokoll. Tehát ma a Raspberry Pi 3 és a Bluetooth segítségével intelligens telefonon keresztül irányítjuk a háztartási készülékeket.
Itt a Raspberry Pi 3-at használjuk, amely beépített Bluetooth-t használ, ezért nincs szükségünk külső USB Bluetooth-kulcs használatára. Ettől eltekintve csak relé modulokra van szükségünk ehhez a vezeték nélküli otthoni automatizálási projekthez. Itt RFCOMM Bluetooth protokollt használunk a vezeték nélküli kommunikációhoz.
A Pythonban a Bluetooth programozása a socket programozási modellt követi, és a Bluetooth eszközök közötti kommunikáció az RFCOMM socketen keresztül történik. Az RFCOMM (rádiófrekvenciás kommunikáció) egy Bluetooth-protokoll, amely emulált RS-232 soros portokat biztosít, és soros port-emulációnak is hívja. A Bluetooth soros port profil ezen a protokollon alapul. Az RFCOMM széles körű támogatása és nyilvánosan elérhető API miatt nagyon népszerű a Bluetooth-alkalmazásokban. Az L2CAP protokollhoz van kötve.
Ha Raspberry Pi 2-vel rendelkezik, akkor vagy külső Bluetooth kulcsot, vagy pedig a HC-06 Bluetooth modult kell használnia. Ellenőrizze korábbi projektjeinket, hogy használják-e ezeket a külső Bluetooth-eszközöket: A Raspberry Pi GPIO vezérlése az Android App segítségével Bluetooth-on keresztül, és a hangvezérelt LED-ek Raspberry Pi használatával. Ellenőrizze a korábbi Raspberry Pi projektjeinket, valamint néhány jó IoT projektet.
A Bluetooth kommunikációhoz szükséges csomagok telepítése:
Indulás előtt telepítenünk kell néhány szoftvert a Bluetooth kommunikáció beállításához a Raspberry Pi programban. Rendelkeznie kell egy Raspbian Jessie telepített memóriakártyával a Raspberry Pi-vel. A Raspbian operációs rendszer telepítéséhez és a Raspberry Pi használatának megkezdéséhez olvassa el ezt a cikket. Tehát most először az alábbi parancsok használatával kell frissítenünk a Raspbian-t:
sudo apt-get update sudo apt-get upgrade
Ezután telepítenünk kell néhány Bluetooth-hoz kapcsolódó csomagot:
sudo apt-get install bluetooth blueman bluez
Ezután indítsa újra a Raspberry Pi-t:
sudo újraindítás
A BlueZ egy nyílt forráskódú projekt és hivatalos Linux Bluetooth protokoll verem. Támogatja az összes alapvető Bluetooth protokollt, és most a hivatalos Linux Kernel részévé válik.
A Blueman biztosítja az Asztal felületet a Bluetooth-eszközök kezeléséhez és vezérléséhez.
Végül szükségünk van python könyvtárra a Bluetooth kommunikációhoz, hogy adatokat küldhessünk és fogadhassunk az RFCOMM-en keresztül Python nyelv használatával:
sudo apt-get install python-bluetooth
Telepítse a Raspberry Pi GPIO támogatási könyvtárait is:
sudo apt-get install python-rpi.gpio
Most befejeztük a Bluetooth kommunikációhoz szükséges csomagok telepítését a Raspberry Pi-ben.
Eszközök párosítása Raspberry Pi-vel Bluetooth-on:
A Bluetooth-eszközök, például a mobiltelefon, és a Raspberry Pi párosítása nagyon egyszerű. Itt párosítottuk Android okostelefonunkat a Raspberry Pi-vel. Korábban telepítettük a BlueZ-et a Pi-be, amely a „bluetoothctl” nevű parancssori segédprogramot biztosítja Bluetooth-eszközeink kezeléséhez.
Most nyissa meg a bluetoothctl segédprogramot az alábbi paranccsal:
sudo bluetoothctl
A „help” beírásával ellenőrizheti a bluetoothctl segédprogram összes parancsát. Jelenleg az alábbi parancsokat kell beírnunk a megadott sorrendben:
# bekapcsol # ügynök be # felfedezhető # párosítható # beolvasás
Az utolsó „scan on” parancs után megjelenik a Bluetooth eszköz (mobiltelefon) a listán. Győződjön meg arról, hogy a mobilján be van kapcsolva a Bluetooth, és a közeli eszközök láthatják. Ezután másolja az eszköz MAC-címét, és párosítsa a megadott paranccsal:
pár
Ezután a terminálkonzolon meg kell adnia a kódot vagy a PIN kódot, majd írja be oda a kódot, és nyomja meg az Enter billentyűt. Ezután írja be ugyanazt a jelszót a mobiltelefonjára, amikor a rendszer kéri, és most sikeresen párosítva van a Raspberry Pi-vel. Ezt az egész folyamatot a korábbi GPIO vezérlő oktatóanyagban bemutatott videóban is elmagyaráztuk. Itt van a közvetlen YouTube-link.
Mint korábban elmondtuk, az Asztal felületen is használhatja a mobiltelefon párosítását. A Blueman telepítése után egy Bluetooth ikont lát a Raspberry Pi asztal jobb oldalán, az alábbiak szerint, amellyel egyszerűen elvégezheti a párosítást.
Kördiagramm:
A Raspberry Pi alapú Bluetooth-vezérlésű házi automatizálás kapcsolási rajza nagyon egyszerű, csak a Relé modul bemeneti jelét csatlakoztattuk a Raspberry Pi 40-es PIN-jéhez (GPIO 21) és a másik két tűt (a relé modul Vcc-je és GND-je) a 2. és 6. tűhöz. Ezután csatlakoztattunk egy AC CFL izzót a reléhez, az áramköri ábra szerint:
Ha Ön még nem ismeri a Relay szolgáltatást, és többet szeretne megtudni a Relayről és annak kapcsolatairól az AC készülékkel, ellenőrizze ezt a cikket.
Az AC készülék vezérlése az Android App BlueTerm alkalmazással:
A mobiltelefon párosítása után telepítenünk kell egy Android alkalmazást a Raspberry Pi kommunikációjához egy Bluetooth soros adapter segítségével, hogy vezérelhessük a Raspberry Pi GPIO csapjait. Mint korábban elmondtuk, az RFCOMM / SPP protokoll emulálja a soros kommunikációt Bluetooth-on keresztül, ezért ide telepítettük a BlueTerm alkalmazást, amely támogatja ezt a protokollt.
Használhat bármely más Bluetooth Terminal alkalmazást is, amely támogatja az RFCOMM aljzaton keresztüli kommunikációt.
Miután letöltötte és telepítette a BlueTerm alkalmazást, futtassa az alább megadott Python programot a terminálról, és egyidejűleg csatlakoztassa a párosított raspberrypi eszközt a BlueTerm alkalmazásból.
A sikeres kapcsolódás után a csatlakoztatott: raspberrypi jelenik meg az alkalmazás jobb felső sarkában, az alábbiak szerint:
Most csak beírhatja az „1” vagy „0” értéket a BlueTerm alkalmazásból, hogy a GPIO tű HIGH, illetve LOW legyen, ami viszont beindítja az ehhez a csaphoz csatlakoztatott Relay modult, amely tovább vezérli a Reléhez csatlakoztatott váltóáramú izzót. A programból való kilépéshez nyomja meg a 'q' gombot. A Google Voice gépelési billentyűzet segítségével vezérelheti a GPIO-t a Voice segítségével. Ellenőrizze a teljes bemutatót a videó végén.
Tehát így vezérelheti vezeték nélkül az AC készüléket egy Android alkalmazás segítségével Bluetooth-on keresztül. Ellenőrizze azt is, hogyan kell használni a Bluetooth-t az Arduinóval.
Programozási magyarázat:
A Python program a Raspberry Pi GPIO vezérléséhez az Android App alkalmazással nagyon egyszerű és magától értetődő. Csak nekünk kell kicsit tanulnunk a Bluetooth RFCOMM kommunikációval kapcsolatos kódról. Először be kell importálnunk a Bluetooth socket könyvtárat, amely lehetővé teszi a Bluetooth Python nyelvű vezérlését; ugyanarra az előző szakaszban telepítettük a könyvtárat.
importálja a Bluetooth-t
Az alábbiakban található a Bluetooth kommunikációért felelős kód:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Elfogadott kapcsolat innen", cím míg 1: data = ügyfél_socket.recv (1024)
Itt soronként érthetjük meg őket:
server_socket = bluetooth. BluetoothSocket (bluetooth.RFCOMM): Socket létrehozása a Bluetooth RFCOMM kommunikációhoz.
server_socket.bind (("", port): - A kiszolgáló a "" gazdagépen lévő szkriptet a porthoz köti.
server_socket.listen (1) : A szerver egyszerre csak egy kapcsolatot fogad el.
client_socket, address = server_socket.accept () : A szerver elfogadja az ügyfél csatlakozási kérelmét, és a változó címhez rendeli a mac címet, a client_socket az ügyfél foglalata
data = client_socket.recv (1024): Adatokat fogad a client_socket ügyfél socketen keresztül, és rendelje hozzá a változó adatokhoz . Egyszerre legfeljebb 1024 karaktert lehet fogadni.
Végül a programozás után zárja be az ügyfél és szerver kapcsolatot az alábbi kód használatával:
client_socket.close () server_socket.close ()
Az összes többi kód egyszerű és magától értetődő. Ellenőrizze az alábbi teljes kódot. Próbáld meg módosítani ezt a projektet, és sok más dolog vezeték nélküli vezérléséhez használhatod az autót, az Android telefonon keresztül, vagy a hangoddal vezérelheted a fényeket.
Ellenőrizze sokféle otthoni automatizálási projektünket is, különböző technológiák és mikrovezérlők segítségével, például: