sábado, 14 de junio de 2014

Cliente torrent para RaspberryPi

Cliente torrent para RaspberryPi


Tenemos un equipo conectado a la red y encendido 24 horas al día. Uno de los mejores usos que le podemos dar es que se ponga a descargar contenido por torrent. En este post os pongo la solución que instalado en mi RaspberryPi, no es la más elegante pero si que es la más cómoda.

Lo que buscamos es poder descargar torrents, añadiéndolos a nuestro RaspberryPi desde el propio Raspberry, desde VPN, por tunel ssh y desde nuestro móvil con Android. Para que cumpla con todo, he buscado, rebuscado y probado y la mejor solución es usar Transmission. Como en realidad se trata de un programa para entorno gráfico, tenemos que usar XVFB

 

Tal que así:



apt-get install xvfb transmission

Probamos que no tiene fallos:


usr/bin/xvfb-run -a transmission
y quitamos con ctrl+c a los 30 segundos. Lo mejor, para hacer la configuración es exportar las X desde el equipo desde el que nos estemos conectando:



xhost +
ssh root@192.168.1.2 -X
esa es la IP de mi RaspberryPi. Ponemos la clave y ejecutamos:



transmission
Nos abrirá el programa en cuestion:


y ajustamos las opciones. Es casi obligatorio activar el control remoto y acceso web. Si nos resulta imposible exportar las X, podemos cambiar las opciones a mano en el fichero:


/root/.config/transmission/settings.json
Presta especial atención a las líneas:













"download-dir": "/mnt/porver",
"incomplete-dir": "/mnt/tmptorrents",
"incomplete-dir-enabled": true,
"peer-port": 51413,
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": ALGO_ENCRIPTADO
"rpc-port": 9091,
"rpc-username": "admin",
"watch-dir": "/mnt/tmptorrents",
"watch-dir-enabled": true
Lo que viene a ser más o menos, que los .torrents que se añadan a /mnt/tmptorrents/ se descargaran automáticamente y los terminados se moverán a /mnt/porver/ Ahora creamos unos enlaces para que arranque con el sistema:


vim /etc/init.d/transmission.sh
y ponemos por ejemplo:


/usr/bin/xvfb-run -a transmission &
Y ahora para que arranque solito:



cd /etc/rc2.d/
ln -s ../init.d/transmission.sh S99transmission.sh
y probamos reiniciando o:


/etc/init.d/transmission.sh
O tambien podemos añadir al archivo:


/etc/rc.local
la linea:


/etc/init.d/transmission.sh
Antes del exit 0
Bajando torrents
Vale, ahora vamos a acceder via web:


http://192.168.1.2:9091
Pide el usuario y clave, metemos y:


que bonito es, desde ahí podemos hacer cambios en la configuración, añadir torrents y gestionar las descargas. Si estas en otra lan, puedes hacer un tunel ssh:


ssh root@TU_HOST.dyndns.org -L 6543:192.168.1.2:9091
y en el navegador:


http://localhost:6543
O podemos abrir un elinks por ssh o similar y bajar los torrents en /mnt/tmptorrents. O bien desde android, vpn con Remote Transmission.


No se te olvide añadir /mnt/porver a tu minidlna!

viernes, 13 de junio de 2014

Webcam streaming y sensor de movimiento con Raspberry Pi

Tras seguir este tutorial y si todo sale bien :) podras conectarte a tu raspberry y ver lo que la webcam esta viendo, esto da infinitas posiblidades, como el control a distancia de tu casa o la deteccion de movimiento. Con este sistema te podras ahorrar mucho dinero en alarmas ya que cumpliras la misma funcion con tu raspberry pi.

Tambìén podemos combinar el otro tutorial http://tutorialesraspberry.blogspot.com.es/2014/03/como-enviar-y-recibir-whatsapps-usando.html  para que cuando captures una foto enviarla por Whatsapp.


1-ACTUALIZAR LA RASPBERRY

 
sudo apt-get update
sudo apt-get upgrade

 

2-INSTALAR MOTION:::


sudo apt-get install motion

 

3-CONFIGURAR:

 
Con este conjunto se puede controlar un brick y todos sus motores desde python

sudo nano /etc/motion/motion.conf

Daemon = OFF a ON
webcam_localhost = ON a OFF
 


sudo nano /etc/default/motion

start_motion_daemon=no a yes

 

4-COMENZAR SERVICIO


sudo service motion start

 

5-COMPROBAR QUE TODO FUNCIONA

 
abrimos el navegador y vamos a http://laipdenuestraraspberry:8080
si no funciona comprobad que en el archivo /etc/motion/motion.conf el parametro port es el 8080, se puede cambiar el puerto donde va a hacer streaming desde este archivo, tambien se pueden modificar muchas variables como la calidad de imagen, altura... el mio lo he configurado asi pero el vuestro puede ser totalmente diferente.



daemon on
videodevice /dev/video0
width 1600
height 1200
framerate 100

############################################################
# Live Webcam Server
############################################################

# The mini-http server listens to this port for requests (default: 0 = disabled)
webcam_port 8080

# Quality of the jpeg (in percent) images produced (default: 50)
webcam_quality 60

# Output frames at 1 fps when no motion is detected and increase to the
# rate given by webcam_maxrate when motion is detected (default: off)
webcam_motion off

# Maximum framerate for webcam streams (default: 1)
webcam_maxrate 100

# Restrict webcam connections to localhost only (default: on)
webcam_localhost off

# Limits the number of images per connection (default: 0 = unlimited)
# Number can be defined by multiplying actual webcam rate by desired number of seconds
# Actual webcam rate is the smallest of the numbers framerate and webcam_maxrate
webcam_limit 0

domingo, 2 de marzo de 2014

Enviar y recibir Whatsapps usando PHP en Raspberry

Sencillos pasos para usar Whatsapp en nuestra Raspberry Pi

 

  En este tutorial aprenderemos a usar Whatsapp en nuestra Raspberry Pi a travès de PHP. Primero nos bajaremos el programa Yowsup para coger la contraseña y después usaremos el programa Whatsapi para enviar y recibir mensajes, fotos videos..

 

1. Conseguir tu password para Whatsapp

 

Lo primero que debemos tener, es un número de teléfono y registrarlo en Whatsapp. Normalmente si tienes tu número de teléfono ya registrado no puedes volverlo a registrar en otro terminal. Así funciona Whatsapp. Así que lo primero que vamos hacer es coger un número de teléfono y asociarlo al que ya tenemos. Como hacemos eso? Con un servicio que se llama FonYou.

Registro en FonYou
  1. Leer atentamente toda la información que nos proporcionan en la web es algo muy interesante, y más para aquellos que no vean del todo claro este tema de asociar otro número de teléfono.
  1. Registrarse y rellenar todos los campos
  1. Seguir los pasos que te van indicando.
  Instalar dependencias
Para que funcione tenemos que tener instaladas unas dependencias de python, abrimos el terminal y escribimos:

sudo apt-get install python2-6 python-dateutil

Registrar tu número FonYou a Whatsapp con Yowsup
 
Nos vamos a descargar un programa escrito en Python que nos va a permetir registrar nuestro número FonYou y que luego usaremos para enviar mensajes a nuestro Whatsapp.
git clone git://github.com/tgalal/yowsup.git

Entramos en yowsup/src/
cd yousup/src

Editamos un fichero que se llama config.example donde dejaremos las siguientes líneas de la siguiente manera:
cc=34 phone=34666777888 id= password=

Donde cc, es el préfijo telefónico de tu país. Phone es el prefijo telefónico más tu número registrado en FonYou. En id y password lo dejaremos en blanco.
Ahora pasaremos a registrar el número de teléfono con el siguiente comando:
python yowsup-cli -c config.example --requestcode sms

Recibiremos un código vía SMS en nuestro teléfono que usaremos en este otro comando:
python yowsup-cli -c config.example --register XXX-XXX

Donde pone XXX-XXX es nuestro código que hemos recibido.

 Una vez ejecutemos este comando, nos mostrará una serie de datos, buscaremos el que pone “password” o “pw” y lo copiaremos.



yowsup


 Volveremos a modificar el fichero config.example y donde pone password= copiaremos esa contraseña que nos apareció anteriormente.
  Ahora, para enviar un mensaje al Whatsapp es muy sencillo:

python yowsup-cli -c config.example -s ccphone "Mensaje"

Donde ccphone es el prefijo telefónico más el número de teléfono a quien quieres enviar un mensaje.


Però nosotros vamos a usar este password que hemos conseguido para la API de Whatsapp para php "Whatsapi".


2. Bajarse Whatsapi y configurarlo.

 

Aquí tienen el link de descarga:

WhatsAPI

Una vez decomprimido editar el archivo /WhatsAPI/tests/whatsapp.php

En las primeras lineas habrà esto:

$nickname = "XXXXXX";
// #### DO NOT ADD YOUR INFO AND THEN COMMIT THIS FILE! ####
$sender =     "34xxxxxxxxx"; // Mobile number with country code (but without + or 00)
$imei =     ""; // MAC Address for iOS IMEI for other platform (Android/etc)
$password =     "xxxxxxxxxxxxxxx"; // Password you received from WhatsApp


El nickname és el nick ke saldrá quando envies Whatsapps, en el sender le pones tú numero de telefono de FonYou i en el campo password ponemos el que hemos conseguido antes con el Yowsup.
 
Ahora ya está. Ejecutamos este archivo desde el terminal y nos dirá las opciones que tiene, un ejemplo para enviar un whatsapp desde el terminal es este:

php whatsapp.php -s 34645656565 "Hola, este mensaje esta enviado desde php"




whatsapi


 No entraré dentro del codigo pero se puede modificar, implementarlo en tu web, app, linux y hacer tus propios scripts, enviar fotos.. etc. A partir de aquí os dejo experimentar.