
树莓派 – 蓝牙的用途
非常好, 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 (en mi caso desactivará la alarma de casa). Y el segundo script conectará el mismo dongle de bluetooth de la Pi a un altavoz bluetooth inalámbrico, para mandarle audios, tipo música, radio o algún comando que quiero que me hable.
Lo primero de todo será instalar los requisitos, y verificar la MAC del dispositivo, si no sale en nuestra lista, verificaremos que tenemos los drivers cargados, para saber el ide de vuestro dispositivo lo buscáis con ‘lsusb’ .
[源代码]sudo apt-get install bluez python-bluez
他做了工具开发
设备:
hci0 00:24:94:AA:二十:二十[/源代码]
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, 那是, casi nunca, a menos que lo tengas desbloqueado. Solución… usar el bluetooth! 顺便一提, 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 纪要:
[源代码]#!/usr/bin/python
import bluetooth
导入时间
HectorIN = 0
HectorOUT = 0
print "In/Out Board"
while True:
print "Buscando " + time.strftime("%a, %d %b %Y %H:%M:%S", time.gmtime())
result = bluetooth.lookup_name(‘A0:18:28:59:二十:XX’, timeout=5)
如果 (结果 != None):
print "Hector: 在"
if HectorIN == 0:
HectorIN = HectorIN + 1
Import 子流程
subprocess.call 调用([‘bash’,’/home/pi/alarma_apaga.sh’])
subprocess.call 调用([‘bash’,’/home/pi/textoAvoz.sh’,’Bienvenido a casa Hector’])
HectorOUT = 0
时间.sleep(300)
还:
print "Hector: 外"
HectorIN = 0
HectorOUT = HectorOUT + 1
print "Hector IN:"
print HectorIN
print "HectorOUT"
print HectorOUT
print "——"[/源代码]
Podremos probarlo ejecutando:
[源代码]python /home/pi/busca_hector.py[/源代码]
不错, como sabréis, hay varias maneras de hacer que ese script de Python arranque con la Pi, lo más fácil ponerlo en el cron fácilmente, ejecutamos ‘crontab -e’ 你这个 ‘@reboot python /home/pi/busca_hector.py‘
Conexión de un altavoz inalambrico,
Hasta ahí para detectar cualquier dispositivo bluetooth, con eso podremos detectar cualquier dispositivo como un móvil y ejecutar cualquier acción. Ahora vamos a darle más uso al dongle Bluetooth, ya que tenía un altavoz bluetooth por ahí, os muestro que sería necesario ejecutar para conectar a la Raspberry dicho altavoz inalámbrico:
Al emparejar dará error si no editamos primeramente el fichero ‘sudo vim /usr/bin/bluez-simple-agent’, remplazando la palabra ‘KeyboardDisplay’ por ‘DisplayYesNo’
不错, comenzamos un escaneo a ver si ve nuestro altavos, ejecutamos ‘hcitool scan’:
[源代码]Scanning …
00:58:50:52:98:48 H88[/源代码]
Ahora emparejaremos los dispositivos, 为此, si tiene algún botón el altavoz lo pulsaremos y ejecutamos:
[源代码]sudo bluez-simple-agent hci0 00:58:50:52:二十:二十
Release
New device (/org/bluez/2405/hci0/dev_00_58_50_52_XX_XX)[/源代码]
Nos conectamos al altavoz con:
[源代码]sudo bluez-test-audio connect 00:58:50:52:二十:二十[/源代码]
Hacemos que confie en nuestro altavoz:
[源代码]sudo bluez-test-device trusted 00:58:50:52:二十:XX yes[/源代码]
Y verificamos que ha cambiado a 1:
[源代码]sudo bluez-test-device trusted 00:58:50:52:二十:二十[/源代码]
Modificamos el fichero ‘.asocundrc’ 跟: ‘vim ~/.asoundrc’
[源代码]pcm.bluetooth {
type bluetooth
device00:58:50:52:二十:二十
}[/源代码]
Editamos también ‘audio-conf’ 跟: ‘vim /etc/bluetooth/audio.conf’ 你这个:
[源代码]Disable=Media
Enable=Socket[/源代码]
也, 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 =)
[源代码]sudo apt-get install bluez-alsa mpg321
sudo /etc/init.d/bluetooth restart[/源代码]
Para reproducir un archivo mp3 probaremos con:
[源代码]mpg321 -a bluetooth -g 15 cancion.mp3[/源代码]
Para reproducir .m3u o listas, bastará con poner la dirección:
[源代码]mpg123 -@ http://radio7.oye.fm:7501/listen.pls -a bluetooth[/源代码]
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, 收音机 3 –> HTTP 协议://radiolive.rtve.es/radio3.m3u & Radio Euskadi –> HTTP 协议://www.listenlive.eu/radioeuskadi.m3u