- Nepieciešamo Bluetooth sakaru pakotņu instalēšana:
- Ierīču savienošana pārī ar Raspberry Pi, izmantojot Bluetooth:
- Ķēdes shēma:
- LED vadība ar Android App BlueTerm:
- Programmēšanas skaidrojums:
Aveņu Pi ir ļoti populāra IoT projektos, jo tā nodrošina bezvadu sakaru spēju caur internetu. Raspberry Pi 3 ir iebūvēts Wi-Fi un Bluetooth, un Bluetooth ir ļoti populārs bezvadu sakaru protokols. Tāpēc šodien mēs vadīsim Raspberry Pi GPIO Pin caur Android lietotni, izmantojot Bluetooth.
Šeit mēs izmantojam Raspberry 2 Pi Model B, kuram nav iebūvēta Bluetooth, tāpēc mēs izmantojam vienkāršu USB Bluetooth dongle. Bez tam mums ir nepieciešams tikai rezistors (220R) un LED, lai parādītu GPIO vadību. Šeit bezvadu sakariem mēs izmantojam RFCOMM Bluetooth protokolu.
Programmēšana Bluetooth pakalpojumā Python notiek pēc ligzdas programmēšanas modeļa, un saziņa starp Bluetooth ierīcēm notiek caur RFCOMM ligzdu. RFCOMM (radiofrekvenču komunikācija) ir Bluetooth protokols, kas nodrošināja emulētus RS-232 sērijas portus un ko sauc arī par seriālo portu emulāciju. Bluetooth sērijas porta profils ir balstīts uz šo protokolu. RFCOMM ir ļoti populārs Bluetooth lietojumprogrammās, jo tam ir plašs atbalsts un publiski pieejama API. Tas ir saistīts ar L2CAP protokolu.
Iepriekšējā projektā mēs izmantojām arī Bluetooth moduli HC-06: Balss vadāmas gaismas diodes, izmantojot Raspberry Pi. Pārbaudiet arī mūsu iepriekšējos Raspberry Pi projektus, kā arī dažus labus IoT projektus.
Nepieciešamo Bluetooth sakaru pakotņu instalēšana:
Pirms sākuma mums ir jāinstalē dažas programmatūras, lai izveidotu Bluetooth komunikāciju Raspberry Pi. Jums vajadzētu būt gatavai Raspbian Jessie instalētai atmiņas kartei ar Raspberry Pi. Pārbaudiet šo rakstu, lai instalētu Raspbian OS un sāktu darbu ar Raspberry Pi. Tāpēc tagad mums vispirms jāatjaunina Raspbian, izmantojot zemāk norādītās komandas:
sudo apt-get update sudo apt-get jauninājums
Tad mums jāinstalē dažas ar Bluetooth saistītas paketes:
sudo apt-get instalēt bluetooth blueman bluez
Pēc tam restartējiet Raspberry Pi:
sudo atsāknēšana
BlueZ ir atvērtā koda projekts un oficiāla Linux Linux protokola kaudze. Tas atbalsta visus galvenos Bluetooth protokolus un tagad kļūst par daļu no oficiālā Linux kodola.
Blueman nodrošina darbvirsmas saskarni, lai pārvaldītu un kontrolētu Bluetooth ierīces.
Visbeidzot, mums ir nepieciešama python bibliotēka Bluetooth saziņai, lai mēs varētu nosūtīt un saņemt datus, izmantojot RFCOMM, izmantojot Python valodu:
sudo apt-get instalēt python-bluetooth
Instalējiet arī Raspberry Pi GPIO atbalsta bibliotēkas:
sudo apt-get instalēt python-rpi.gpio
Tagad mēs esam paveikuši nepieciešamo Bluetooth sakaru paku instalēšanu Raspberry Pi.
Ierīču savienošana pārī ar Raspberry Pi, izmantojot Bluetooth:
Savienot Bluetooth ierīces, piemēram, mobilo tālruni, ar Raspberry Pi ir ļoti vienkārši. Šeit mēs esam savienojuši pārī savu Android viedtālruni ar Raspberry Pi. Mēs jau iepriekš esam instalējuši BlueZ Pi, kas nodrošina komandrindas utilītu ar nosaukumu “bluetoothctl”, lai pārvaldītu mūsu Bluetooth ierīces. Bet pirms tam pievienojiet USB Bluetooth dongle ar Raspberry Pi un pārbaudiet, vai tas ir noteikts vai nē, izmantojot komandu zemāk:
lsusb
Tagad atveriet bluetoothctl utilītu, izmantojot komandu zemāk:
sudo bluetoothctl
Jūs varat pārbaudīt visas bluetoothctl utilītas komandas, ierakstot "help" . Pagaidām mums jāievada zemāk norādītās komandas noteiktā secībā:
# ieslēgts # aģents ieslēgts # atklājams # savienojams pārī ar # skenēšanu
Pēc pēdējās komandas “scan on” sarakstā redzēsiet savu Bluetooth ierīci (mobilo tālruni). Pārliecinieties, vai jūsu mobilajā tālrunī ir ieslēgts Bluetooth un vai tas ir redzams tuvumā esošajām ierīcēm. Pēc tam nokopējiet ierīces MAC adresi un savienojiet to pārī, izmantojot norādīto komandu:
pāris
Pēc tam jums tiks lūgts ievadīt piekļuves kodu vai piespraudi savā termināļa konsolē, pēc tam ierakstiet piekļuves kodu un nospiediet taustiņu Enter. Pēc tam, kad tiek prasīts, ierakstiet to pašu piekļuves kodu savā mobilajā tālrunī, un tagad esat veiksmīgi savienots pārī ar Raspberry Pi. Mēs arī izskaidrojām visu šo procesu savā video, kas sniegts beigās.
Kā stāstīts iepriekš, mobilā tālruņa savienošanai pārī varat izmantot arī darbvirsmas saskarni. Pēc Blueman instalēšanas Raspberry Pi darbvirsmas labajā pusē redzēsiet Bluetooth ikonu, kā parādīts zemāk, izmantojot kuru jūs varat viegli veikt savienošanu pārī.
Ķēdes shēma:
Ķēdes shēma ir ļoti vienkārša, mēs tikko pievienojām gaismas diodi Raspberry Pi PIN 40 (GPIO 21) ar 220 Ohm rezistoru:
LED vadība ar Android App BlueTerm:
Pēc mobilā tālruņa atdalīšanas mums jāinstalē Android lietotne saziņai ar Raspberry Pi, izmantojot Bluetooth sērijas adapteri. Kā stāstīts iepriekš, RFCOMM / SPP protokols atdarina sērijveida sakarus, izmantojot Bluetooth, tāpēc mēs šeit instalējām BlueTerm App, kas atbalsta šo protokolu.
Varat arī izmantot jebkuru citu Bluetooth Terminal lietotni, kas atbalsta saziņu, izmantojot RFCOMM ligzdu.
Tagad pēc lejupielādējot un instalējot BlueTerm App, palaidiet tālāk doto Python programmu no termināla un savienot pārī savienoto Raspberry Pi ierīci no BlueTerm App, tajā pašā laikā.
Pēc veiksmīga savienojuma izveidošanas jūs redzēsiet savienojumu: raspberrypi lietotnes augšējā labajā stūrī, kā parādīts zemāk:
Tagad no lietotnes BlueTerm varat vienkārši ievadīt “1” vai “0”, lai GPIO tapa būtu attiecīgi HIGH un LOW, kas savukārt ieslēdz un izslēdz šai tapai pievienoto LED. Nospiediet taustiņu q, lai izietu no programmas. Lai kontrolētu GPIO, izmantojot balsi, varat izmantot Google balss rakstīšanas tastatūru. Pārbaudiet visu demonstrāciju videoklipā, kas sniegts beigās.
Tātad šādi jūs bezvadu režīmā varat kontrolēt GPIO Pin, izmantojot Android lietotni, izmantojot Bluetooth. Pārbaudiet arī to, kā izmantot Bluetooth ar Arduino.
Programmēšanas skaidrojums:
Python programma Raspberry Pi GPIO kontrolēšanai ar Android App ir ļoti vienkārša un pašsaprotama. Tikai mums ir mazliet jāapgūst kods, kas saistīts ar Bluetooth RFCOMM komunikāciju. Vispirms mums jāimportē Bluetooth kontaktligzdu bibliotēka, kas ļauj mums kontrolēt Bluetooth ar Python valodu; mēs esam instalējuši bibliotēku par to pašu iepriekšējā sadaļā.
importēt Bluetooth
Zemāk ir kods, kas atbild par Bluetooth komunikāciju:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) ports = 1 server_socket.bind (("", ports)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Pieņemts savienojums no", adrese, kamēr 1: dati = klienta ligzda.recv (1024)
Šeit mēs tos varam saprast pa rindai:
server_socket = bluetooth. BluetoothSocket (bluetooth.RFCOMM): ligzdas izveide Bluetooth RFCOMM saziņai.
server_socket.bind (("", ports): - Serveris saista skriptu resursdatorā '' ar portu.
server_socket.listen (1) : serveris klausās, vai vienlaikus tiek pieņemts viens savienojums.
client_socket, adrese = server_socket.accept () : Servera akceptē klienta savienojuma pieprasījumu un piešķirt mac adresi uz mainīgo adresi client_socket ir klienta ligzda
data = client_socket.recv (1024): saņemiet datus, izmantojot klienta ligzdu client_socket, un piešķiriet tos mainīgajiem datiem . Vienlaikus var saņemt ne vairāk kā 1024 rakstzīmes.
Visbeidzot pēc visas programmēšanas, aizveriet klienta un servera savienojumu, izmantojot zemāk esošo kodu:
client_socket.close () server_socket.close ()
Viss pārējais kods ir viegli un pats par sevi saprotams. Pārbaudiet pilnu kodu zemāk. Mēģiniet modificēt šo projektu, un jūs varat to izmantot, lai vadītu daudzas citas lietas bezvadu režīmā, piemēram, izmantojot relejus, jūs varat kontrolēt sadzīves tehniku vai arī vadīt robotu automašīnu, izmantojot android tālruni.