Raspberry Pi – Bluetooth erabilerak
Kaixo, en este artículo quería documentar alguna utilidad que le saqué a una de las Raspberry que anda por casa, tengo un dispositivo mini USB bluetooth que le conecté a la Pi, os paso un par de scripts por si os puedan interesar: Uno primero nos detectará si estamos para ejecutar una acción; y el segundo conectará un altavoz inalámbrico!
Como os comenté hace tiempo, iré posteando scripts curiosos que he ido recopilando para todo el sistema de domotica que monté en casa, espero que algo os pueda servir. Como os decía, el primer script usará el dispositivo USB bluetooth conectado en la Raspberry para buscarme, como la Pi está en casa, cuando me encuentre ejecutará un comando (in mi kasu desactivará la alarma de casa). Y el second script conectará el menm dongle de bluetooth de la Pi a un altavoz bluetooth inalámbrico, para mandarle audios, tipo musika, radio o algún command que quiero que me hable.
Lo lehenengo de todo será instalatu los requisitos, eta egiaztatu la MAC del dispositivo, si no sale en gure zerrendan, verificaremos que tenemos los drivers kargatzen, para saber el ide de vuestro dispositivo lo buscáis con 'lsusb’ .
[sourcecode]sudo apt-get install bluez python-bluez
hcitool dev
Gailuak:
hci0 00:24:94:AA:XX:XX[/sourcecode]
Mi primera necesidad era intentar automatizar el sistema de alarma de casa, y esto es muy fácil, si mi móvil está en casa entonces la alarma se debe desactivar, cuando mi móvil no esté, la alarma de casa se debe armar. Como? Facilísimo si tenemos un Android, ya que estos responden a PING siempre, así que en nuestro DHCP de casa hacemos una asignación de MAC y con cualquier script le pingeamos, que no responde… monta la alarma! que responde… desmonta la alarma! Pero yo tengo un iPhone y esto no es tan sencillo, como sabréis, los iPhones en modo chillout no responden a PINGs, edo, bestela, casi nunca, a menos que lo tengas desbloqueado. Solución… usar el bluetooth! Bestela, para los curiosos, montar la alarma no es más que sensores de movimiento que tengo por la casa, que cuando la alarma está montada mandan señal a una camara para grabar videos (de 10s) y me los manda por mail, además de sonar por los altavoces una sirena de estas de submarino =). Esos mismos sensores, cuando la alarma está desconectada me sirven para encender las distintas luces de la casa según voy andando.
Script en Python para comprobar si algo responde por bluetooth, yo le llamo ‘busca_hector.py’, y busca mi iPhone cada constantemente, una vez lo encuentra ejecuta un script y se duerme 5 minutu:
[sourcecode]#!/usr/bin/python
import bluetooth
importatu time
HectorIN = 0
HectorOUT = 0
print "In/Out Board"
bitartean Beti:
print "Buscando " + time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime())
result = bluetooth.lookup_name(‘A0:18:28:59:XX:XX’, timeout=5)
if (result != None):
print "Hector: in"
baldin HectorIN == 0:
HectorIN = HectorIN + 1
import subprocess
subprocess.call([‘bash’,’/home/pi/alarma_apaga.sh’])
subprocess.call([‘bash’,’/home/pi/textoAvoz.sh’,’Bienvenido a casa Hector’])
HectorOUT = 0
time.sleep(300)
else:
print "Hector: out"
HectorIN = 0
HectorOUT = HectorOUT + 1
print "Hector IN:"
imprimatu HectorIN
print "HectorOUT"
imprimatu HectorOUT
print "——"[/sourcecode]
Probatu ahal izango dugu exekutatuz:
[sourcecode]python /home/pi/busca_hector.py[/sourcecode]
Ondo, como sabréis, python script hori Pi-rekin martxan jartzeko moduak hainbat dira, errazena cron-era jartzea da, exekutatzen dugu ‘crontab -e’ eta gehitzen dugu ‘@reboot python /home/pi/busca_hector.py‘
Haririk gabeko bozgorailu baten konekzioa,
Hainbat gailu bluetooth detektatzeko, horrekin edozein gailu detektatu ahal izango dugu, adibidez telefono bat, eta edozein ekintza exekutatu. Orain Bluetooth dongleari erabilera gehiago emango diogu, badagoela bluetooth bozgorailu bat hemen inguruan, ikusten dizuet zer behar den Raspberry-rekin bozgorailu haririk gabe hori konektatzeko:
Parekatzean errorea emango du lehenik 'sudo vim /usr/bin/bluez-simple-agent' fitxategia editatzen ez badugu, 'KeyboardDisplay' hitza 'DisplayYesNo' hitzarekin ordezkatuz
Ondo, eskaneoa hasi dugu ikusteko gure bozgoraila ikusten duen, 'hcitool scan' exekutatzen dugu:
[sourcecode]Eskanatzen …
00:58:50:52:98:48 H88[/sourcecode]
Orain gailuak parekatuko ditugu, horretarako, bozgorailuak botoi bat badu, sakatuko dugu eta exekutatzen dugu:
[sourcecode]sudo bluez-simple-agent hci0 00:58:50:52:XX:XX
Askatu
Gailu berria (/org/bluez/2405/hci0/dev_00_58_50_52_XX_XX)[/sourcecode]
Bozgorailura konektatzen gara:
[sourcecode]sudo bluez-test-audio connect 00:58:50:52:XX:XX[/sourcecode]
Gure bozgoraila fidagarria dela egiten dugu:
[sourcecode]sudo bluez-test-device trusted 00:58:50:52:XX:XX bai[/sourcecode]
Eta egiaztatzen dugu aldatu dela 1:
[sourcecode]sudo bluez-test-device trusted 00:58:50:52:XX:XX[/sourcecode]
Modificamos el fichero '.asocundrc’ con: 'vim ~/.asoundrc’
[sourcecode]pcm.bluetooth {
type bluetooth
device00:58:50:52:XX:XX
}[/sourcecode]
Editamos también 'audio-conf’ con: 'vim /etc/bluetooth/audio.conf’ eta gehitzen dugu:
[sourcecode]Disable=Media
Enable=Socket[/sourcecode]
También, instalaré una aplicación para poder reproducir fácilmente cualquier mp3 o m3u, sean de ficheros locales o de URLs, como puede ser una cadena de radio online =)
[sourcecode]sudo apt-get install bluez-alsa mpg321
sudo /etc/init.d/bluetooth restart[/sourcecode]
Para reproducir un archivo mp3 probaremos con:
[sourcecode]mpg321 -a bluetooth -g 15 cancion.mp3[/sourcecode]
Para reproducir .m3u o listas, bastará con poner la dirección:
[sourcecode]mpg123 -@ http://radio7.oye.fm:7501/listen.pls -a bluetooth[/sourcecode]
Podemos buscar la cadena de radio que más nos guste en Internet, que hay un monton de listas! Os pongo un par de ejemplos, Radio 3 –> http://radiolive.rtve.es/radio3.m3u & Radio Euskadi –> http://www.listenlive.eu/radioeuskadi.m3u









































