- Reikiamų „Bluetooth“ ryšio paketų diegimas:
- Prietaisų susiejimas su „Raspberry Pi“ per „Bluetooth“:
- Grandinės schema:
- Kintamosios srovės prietaisų valdymas naudojant „Android App BlueTerm“:
- Programavimo paaiškinimas:
„Raspberry Pi“ yra labai populiari daiktų interneto projektams dėl savo vientisos belaidžio ryšio internetu galimybės. „Raspberry Pi 3“ įmontuotas „Wi-Fi“ ir „Bluetooth“ ryšys, o „Bluetooth“ yra labai populiarus belaidžio ryšio protokolas. Taigi šiandien mes ketiname valdyti buitinę techniką per išmanųjį telefoną naudodami „Raspberry Pi 3“ ir „Bluetooth“.
Čia mes naudojame „Raspberry Pi 3“, kuriame įmontuotas „Bluetooth“ ryšys, todėl mums nereikia naudoti jokio išorinio USB „Bluetooth“ rakto. Be to, šiam belaidžio namų automatikos projektui reikalingi tik reliniai moduliai. Čia belaidžiui ryšiui naudojame „RFCOMM Bluetooth“ protokolą.
„Bluetooth“ programavimas „Python“ programoje atitinka lizdo programavimo modelį, o ryšiai tarp „Bluetooth“ įrenginių atliekami per RFCOMM lizdą. RFCOMM (radijo dažnio ryšys) yra „Bluetooth“ protokolas, teikiantis emuliuojamas RS-232 nuosekliąsias prievadus ir dar vadinamas serijinio prievado emuliacija. „Bluetooth“ nuoseklaus prievado profilis pagrįstas šiuo protokolu. RFCOMM yra labai populiarus „Bluetooth“ programose dėl plataus palaikymo ir viešai prieinamos API. Jis susietas su L2CAP protokolu.
Jei turite „Raspberry Pi 2“, turite naudoti išorinį „Bluetooth“ raktą arba „Bluetooth“ modulį HC-06. Patikrinkite ankstesnius šių išorinių „Bluetooth“ įrenginių naudojimo projektus: „Raspberry Pi GPIO“ valdymas naudojant „Android App“ per „Bluetooth“ ir balso valdomus šviesos diodus naudojant „Raspberry Pi“. Taip pat patikrinkite mūsų ankstesnius „Raspberry Pi“ projektus kartu su keletu gerų DI projektų.
Reikiamų „Bluetooth“ ryšio paketų diegimas:
Prieš pradedant, turime įdiegti keletą programinės įrangos, skirtos „ Bluetooth“ ryšiui nustatyti „Raspberry Pi“. Turėtumėte turėti paruoštą „Raspbian Jessie“ atminties kortelę su „Raspberry Pi“. Peržiūrėkite šį straipsnį, jei norite įdiegti „Raspbian“ OS ir pradėti naudoti „Raspberry Pi“. Taigi dabar pirmiausia turime atnaujinti „Raspbian“ naudodami toliau nurodytas komandas:
sudo apt-get update sudo apt-get atnaujinimas
Tada turime įdiegti keletą „Bluetooth“ susijusių paketų:
sudo apt-get install bluetooth blueman bluez
Tada perkraukite „Raspberry Pi“:
sudo perkraukite
„BlueZ“ yra atviro kodo projektas ir oficialus „Linux“ „Bluetooth“ protokolo kaminas. Jis palaiko visus pagrindinius „Bluetooth“ protokolus ir dabar tampa oficialaus „Linux“ branduolio dalimi.
„Blueman“ suteikia darbalaukio sąsają „Bluetooth“ įrenginiams valdyti ir valdyti.
Galiausiai mums reikalinga „ Python“ biblioteka „Bluetooth“ ryšiui, kad galėtume siųsti ir gauti duomenis per RFCOMM naudojant „Python“ kalbą:
sudo apt-get įdiekite python-bluetooth
Taip pat įdiekite „Raspberry Pi“ GPIO palaikymo bibliotekas:
sudo apt-get install python-rpi.gpio
Dabar mes baigėme įdiegti reikiamus „Bluetooth“ ryšio paketus „Raspberry Pi“.
Prietaisų susiejimas su „Raspberry Pi“ per „Bluetooth“:
Labai lengva susieti „Bluetooth“ įrenginius, pvz., Mobiliuosius telefonus, su „Raspberry Pi“. Čia mes susiejome „Android“ išmanųjį telefoną su „Raspberry Pi“. Anksčiau mes įdiegėme „BlueZ“ sistemoje Pi, kuri teikia „Bluetooth“ įrenginiams valdyti skirtą komandų eilutės priemonę „bluetoothctl“ .
Dabar atidarykite „ bluetoothctl“ naudingumo komandą žemiau:
sudo bluetoothctl
Galite patikrinti visas „ bluetoothctl“ naudingumo komandas įvesdami „help“ . Dabar turime įvesti žemiau esančias komandas nustatyta tvarka:
# maitinimas įjungtas # agentas įjungtas # aptinkamas # susietas su # nuskaitymu
Po paskutinės komandos „scan on“ sąraše pamatysite savo „Bluetooth“ įrenginį (mobilųjį telefoną). Įsitikinkite, kad jūsų mobiliajame telefone yra įjungtas „Bluetooth“ ryšys ir kad jį mato netoliese esantys įrenginiai. Tada nukopijuokite savo įrenginio MAC adresą ir suporuokite jį naudodami nurodytą komandą:
pora
Tada jūsų bus paprašyta įvesti kodą arba PIN kodą jūsų terminalo konsolėje, tada įveskite kodą ir paspauskite enter. Tada paprašę įveskite tą patį kodą į savo mobilųjį telefoną ir dabar esate sėkmingai suporuotas su „Raspberry Pi“. Mes taip pat paaiškinome visą šį procesą vaizdo įraše, pateiktame ankstesnėje GPIO valdymo pamokoje. Čia yra tiesioginė „YouTube“ nuoroda.
Kaip sakyta anksčiau, taip pat galite naudoti darbalaukio sąsają susieti mobilųjį telefoną. Įdiegę „Blueman“, dešinėje „Raspberry Pi“ darbalaukio pusėje pamatysite „Bluetooth“ piktogramą, kaip parodyta žemiau, kurią naudodami galite lengvai atlikti poravimą.
Grandinės schema:
Šios „ Raspberry Pi“ pagrindu valdomos „Bluetooth“ valdomos namų automatikos schema yra labai paprasta, mes tiesiog prijungėme „Relay Module“ įėjimo signalo kaištį prie „Raspberry Pi“ PIN 40 (GPIO 21) ir kitus du kaiščius (relės modulio „Vcc“ ir „GND“) prie 2 ir 6 kontaktų. iš „Raspberry Pi 3“. Tada prie relės prijungėme AC CFL lemputę, kaip parodyta grandinės schemoje:
Jei esate „Relay“ naujokas ir norite sužinoti daugiau apie „Relay“ ir jo ryšius su kintamosios srovės prietaisu, patikrinkite šį straipsnį.
Kintamosios srovės prietaisų valdymas naudojant „Android App BlueTerm“:
Išlyginę mobilųjį telefoną, turime įdiegti „ Android“ programą, skirtą bendrauti su „Raspberry Pi“ naudojant „Bluetooth“ nuoseklųjį adapterį, kad galėtume valdyti „Raspberry Pi“ GPIO kaiščius. Kaip sakyta anksčiau, RFCOMM / SPP protokolas imituoja nuoseklųjį ryšį per „Bluetooth“, todėl čia įdiegėme „BlueTerm“ programą, palaikančią šį protokolą.
Taip pat galite naudoti bet kurią kitą „Bluetooth“ terminalo programą, palaikančią ryšį per RFCOMM lizdą.
Dabar, atsisiųsdami ir įdiegę „BlueTerm“ programą, paleiskite žemiau pateiktą „Python“ programą iš terminalo ir tuo pačiu metu prijunkite suporuotą „ raspberrypi“ įrenginį iš „BlueTerm“ programos.
Po sėkmingo ryšio pamatysite prijungtą: avietę viršutiniame dešiniajame programos kampe, kaip parodyta žemiau:
Dabar galite tiesiog įvesti „1“ arba „0“ iš „BlueTerm“ programos, kad GPIO kaištis būtų atitinkamai HIGH ir LOW, o tai savo ruožtu suaktyvina prie šio kaiščio prijungtą „Relay“ modulį, kuris toliau valdo prie „Relay“ prijungtą kintamosios srovės lemputę. Norėdami išeiti iš programos, paspauskite „q“. Norėdami valdyti GPIO naudodami „Voice“, galite naudoti „Google Voice “ rašymo klaviatūrą. Pabaigoje pateiktame vaizdo įraše patikrinkite visą demonstracinę versiją.
Taigi taip galite belaidžiu būdu valdyti kintamosios srovės prietaisą naudodami „Android“ programą per „Bluetooth“. Taip pat patikrinkite, kaip naudoti „Bluetooth“ su „Arduino“.
Programavimo paaiškinimas:
„Python“ programa, skirta valdyti „Raspberry Pi GPIO“ naudojant „Android“ programą, yra labai paprasta ir savaime suprantama. Tik mes turime šiek tiek sužinoti apie kodą, susijusį su „Bluetooth RFCOMM“ ryšiu. Pirmiausia turime importuoti „Bluetooth“ lizdo biblioteką, kuri leidžia mums valdyti „Bluetooth“ su „Python“ kalba; toje pačioje bibliotekoje įdiegėme ankstesniame skyriuje.
importuoti „Bluetooth“
Žemiau yra kodas, atsakingas už „Bluetooth“ ryšį:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) prievadas = 1 server_socket.bind (("", prievadas)) server_socket.listen (1) client_socket, address = server_socket.accept () spausdinti "Accepted connection from", adresas, o 1: duomenys = kliento lizdas.recv (1024)
Čia mes galime juos suprasti eilute:
server_socket = bluetooth. BluetoothSocket (bluetooth.RFCOMM): „Bluetooth RFCOMM“ ryšio lizdo kūrimas.
server_socket.bind (("", prievadas): - Serveris susieja scenarijų pagrindiniame kompiuteryje su prievadu.
server_socket.listen (1) : serveris klausosi, ar vienu metu priimti vieną ryšį.
client_socket, adresas = server_socket.accept () : Serverio priima kliento ryšio prašymą ir priskirti MAC adresą kintamojo adresą, client_socket yra kliento lizdas
duomenys = client_socket.recv (1024): Gauti duomenis per kliento lizdas client_socket ir priskirti jį prie kintamų duomenų . Vienu metu galima gauti ne daugiau kaip 1024 simbolius.
Galiausiai atlikę visą programavimą, uždarykite kliento ir serverio ryšį naudodami žemiau esantį kodą:
client_socket.close () server_socket.close ()
Visas kitas kodas yra lengvas ir savaime suprantamas. Patikrinkite visą kodą žemiau. Pabandykite modifikuoti šį projektą ir galite jį naudoti norėdami valdyti daugelį kitų dalykų belaidžiu būdu, roboto automobilį per „Android“ telefoną arba galite naudoti savo balsą, kad valdytumėte žibintus.
Taip pat patikrinkite mūsų daugelio tipų namų automatikos projektus, naudodami skirtingas technologijas ir mikrovaldiklius, tokius kaip: