viernes, 9 de junio de 2023

JDownloader en una PI con un USB para descargas

Vamos a por otro "Proyecto" que he hecho y que si se estropea, siempre tengo que buscar en varios sitios para ver como se hacen los 4 ô 5 pasos para tener todo puesto.

El resultado es tener una Raspeberry con JDownloader y sitio suficiente para descargar cosas y acceder desde otro ordenador para mandar los links o para ver los ficheros bajados (que se vea por red).

Componentes:
- una Raspberry Pi
- un USB de 256Gb (es lo que tengo, pero pueden ser mas o menos Gb)
- y nada mas de hardware.

Software:
- Linux
- JDownloader
- que el JDownloader lo vea por "Internet"
- que el USB se monte automaticamente
- que el USB se vea en la red

Pues vamos a empezar.
Cogemos una micro SD y le metemos la ultima version del sistema operativo, y lo actualizamos por si las moscas.
sudo apt-get update -y
sudo apt-get dist-upgrade -y

Con esto ya tenemos el SO funcionando.

Se puede instalar el JDownloader y luego el USB o viceversa, total, es lo mismo. Lo único es que al JDownloader luego hay que decirle que las descargas vayan al USB.

Pues venga, vamos primero a poner el USB y asi la configuración del JDownloader la ponemos tras instalarlo.
Recomendacion, el USB, como lo vamos a dejar en la Raspberry Pi, lo mejor es formatearlo en ext4, que es lo mejor para Linux (y luego haremos que Windows lo vea por red).

Primero se pone el USB en la Raspberry Pi.
Ahora es un biuen momento para crear un fichero en el USB para que luego puedas comprobar que lo has montado correctamente:
touch fichero.txt

Ahora hay que saber el "ID" del USB, que es el identificador único del USB, que es el mismo si lo pinhas en el 1, 2 ó en otro de los conectores USB.
sudo fdisk -l
y como sólo tenemos tenemos un USB, y sabemos el tamaño, será el que dice /dev/sda1, pero hay que buscar el que sea del tamaño que sabemos:

Ahora vamos a crear una carpeta dentro del usuario para que el USB se "monte" en esa carpeta.
sudo mkdir /home/pi/256Gb
Como mi USB es de 256Gb, he creado la carpeta con ese nombre por comodidad, asi lo reconozco correctamente, pero se puede poner el nombre que sea.

Ahora hay que saber el identificador del USB, y hay que recordar que ya lo identificamos antes como "/dev/sda1", asi que...
sudo ls -l /dev/disk/by-uuid/
Nos apuntamos el ID del "../sda1", que en mi caso es "9e55f9bf-fc07-43f3-9118-b62b92cf9207".

editamos el fichero...
sudo nano /etc/fstab

Y añadimos al final la configuracion del USB con el ID que hemos obtenido:

Guardamos y ahora todo el mundo diría que reinicies, pero yo recomiendo que pruebes que lo has hecho bien directamente sin reiniciar, asi que a ejecutar esto:
sudo mount -a
Si todo está bien, el contenido del USB lo puedes ver en la carpeta que lo has anclado.

Si reinicias en algún momento la Raspberry Pi, el USB tiene que segir estando donde lo hemos configurado, asi que todo va perfecto por ahora.

Vamos a por el JDownloader.

Antes, deberias confirmar que Java está instalado, aunque en las últimas versiones del SO de Raspbian lo lleva:
sudo apt install default-jdk
sudo apt update && sudo apt install openjdk-8-jdk -y

Creamos una carpeta para tener el programa:
sudo mkdir ~/jd2
y nos metemos en la carpeta:
cd jd2

Ahora mucha gente que si uses Wget, que si esto o lo otro...
Yo recomiendo ir a la pagina de JDownloader y descargar el fichero que tienen.
Asi que a...
https://jdownloader.org/download/index
Seleccionamos Linux, y bajamos el fichero.
Lo movemos a la carpeta que hemos creado antes, en mi caso "jd2", porque la descarga se habrá bajado en la carpeta de descargas.
Ahora ejecutamos el fichero:
sudo java -jar /home/pi/jd2/JDownloader.jar
La instalación tarda un poco, pero normalmente no da fallos.

Ahora probamos que funciona el JDownloader:
./startjd2.sh

Quizá los permisos fallen, asi que es posible que haya que poner:
sudo chmod 777 ./startjd2.sh
y volvemos a probar:
./startjd2.sh

Seguro que ha funcionado.

Pero ahora se nos pasa por la cabeza la duda de si al reiniciar la Raspberry Pi, JDownloader se inicia.
Pues no, no se inicia solo, o si?
Hay que hacer que arranque al inicio, asi que al crontab.
Espera, que si que se inicia solo, asi que nada de poner algo en el crontab.

Reinicia la Raspberry, y podo despues, verás que JDownloader arranca.

JDownloader funciona !!!

Vamos a configurar un poco el JDownloader.

Ahora configuramos que las descargas se hagan en la carpeta que hemos configurado para el USB:

Y con esto, lo que se descargue estará en el USB.
Perfecto !

Espera, que queremos ver el JDownloader cuando vamos por la calle.
Y asi mandamos nuevos links, o hacemos los captchas cuando nos los pida.
Pues venga, nos registramos en MyJDownloader.com y nos apuntamos el usuario y la contraseña, que los vamos a usar en 2 sitios.
En el JDownloader de la Raspeberry Pi tenemos que poner las credenciales:

Y ahora nos instalamos en el movil la aplicacion (MyJDownloader) para controlar el JDownloader, metemos las credenciales y nos conectamos al equipo que tenemos funcionando:

Con esto, cuando tengas descargas funcionando y te salte un captcha mientras estas por la calle, el telefono te avisa y lo puedes meter sin tener que estar en casa.
Y ahora toca que la carpeta de descargas sea visible en la red de casa.
Asi que a instalar SAMBA:
sudo apt-get install samba
sudo apt-get install samba-common-bin


La segunda línea seguro que te dira que ya está instalado, pero mejor comprobarlo.

Editamos el fichero de configuración de Samba:
sudo nano /etc/samba/smb.conf

Después de "Browsing/Identification" hay que añadir>
workgroup = WORKGROUP
wins support=yes
netbios name=hostname
public=yes


Y al final del archivo ponemos:
[256Gb]
comment=256Gb de JDownloader
path=/home/emilio/256Gb
browseable=yes
guest oK=yes
read only=no
create mask=0777
force create mode=0777
directory mask=0777
force directory mode=02777
force user=emilio


Reiniciamos la Raspberry Pi o si no queremos porque quizá lo hayamos hecho mal, mejor executar esto para no tener que reiniciar:
sudo service smbd restart

Ahora ya deberiamos ver la carpeta "256Gb" en la IP de la Raspberry Pi desde Windows.
Supongo que montar una unidad de red se sabe hacer, pero ya sabes, en el Explorador de Windows, botón derecho sobe "Mi PC" y "montar unidad de red".
\\192.168.2.99\256Gb selecccionado la unidad "Z" y marcando que se vuelva a conectar la próxima vez y asi la tendremos conectada al reiniciar.
Como pusimos que la carpeta era publica, no hace falta poner usuario y contraseña.

Y ya tenemos todo instalado y funcionando.

domingo, 10 de enero de 2021

Comprueba la velocidad de la red (y los seguidores de Twitter)

Bueno, pues basandome en un codigo que vi por internet, me he puesto en una pantalla de tinta electronica y una Raspberry Pi 1 (si, si, la primera, y vieja ya bastante) la velocidad que tiene mi internet de casa y el numero de seguidores que tengo en Twitter.
Y se actualiza cada pocos minutos.

Lo primero, los materiales necesarios:
- Raspberry Pi ( en mi caso tenia una PI 1 que lo bueno es que tiene cable de red, asi que va a dar los datos bastante bien)
- Tarjeta SD (4 Gb o mas).
- eInk HAT (en mi caso he usado uno de 3 colores)
- Cable de red (es mejor tenerla por cable que por WiFi).
- Teclado (para 5 minutos de uso inicial).
- Monitor (para 5 minutos de uso inicial).
- Corriente de 5V.

Consideraciones:
- Se puede usar una Raspberry Pi Zero, pero como va por WiFi, la velocidad te va a salir bastante baja, y no es la real que tienes en internet.
- Se puede usar una SD pequeña e intalar todo sin entorno grafico mo hice la primer vez. Pero se me estropeo la tarjeta SD y ya solo me quedaban tarjetas de 8 Gb, asi que la siguiente vez que la he preparado, le he puesto el entorno grafico, que no es necesario, pero ttal, a la SD le sobran Gigas.

Vamos al trapo:
Instalamos Raspbian en la SD.
Creamos el fichero ssh (sin extension y vacio para tener la conexion SSH activa).
Copiamos el wpa_supplicant.confcon la configuracion de l WiFi (que no es necesario porque la voy a conectar por cable, pero lo hago por rutina).
Y a poner la SD en la Pi con monitor y teclado pequeño para saber la IP en version rapida en lugar de buscarla con el "Advanced IP Scanner".

Cancelamos la ventana de configuracion que sale la primera vez, ya que lo haremos luego.

Abrimos la configuracion y hacemos varias cosas:
- Cambiamos la password del usuario.
- Activamos la conexion VNC para poder quitar el teclado y el monitor.
- Cambiamos el nombre dela pi a "Bandwidth".

Miramos la IP que le ha asignado para podernos conectar por VNC.

Pero vamos a asignar una IP estatica:
sudo /etc/dhcpcd.conf
descomentamos la parte del "eth0" para que quede similar a esto:
interface eth0
static ip_address=192.168.1.110/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1 8.8.8.8
grabamos y reiniciamos.

Una vez que estamos aqui, ya podemos quitar el teclado y el monitor, porque seguiremos conectandonos por VNC.

Nos conecatmos por VNC a la PI.
Lo primero, corregir la configuracion horaria porque seguro que esta con la de Londres.

Ahora toca el paso mas aburrido de todos, actulizar el SO:
sudo apt-get update
Como estoy usando una PI 1, no es necesario el "full-upgrade", asi que lo omitimos, pero si usaas una PI3 o PI4, te lo recomiendo.

Empezamos a instalar programas que necesitaremos:
sudo apt-get install xrdp
(por si quieres usar otro tipo de conexion remota).
sudo apt-get install python-pip (omitible, se instala en las ultimas versiones del SO).
sudo apt-get install speedtest-cli

Vamos a probar que funciona el test de la red: speedtest-cli
Deberia salir algo parecido a:
pi@Bandwidth:~ $ speedtest-cli
Retrieving speedtest.net configuration...
Testing from Vodafone Germany (37.201.225.50)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Contabo (Dusseldorf) [1.61 km]: 29.585 ms
Testing download speed................................................................................
Download: 25.31 Mbit/s
Testing upload speed......................................................................................................
Upload: 5.36 Mbit/s

Vamos a instalar la libreria wiringPI
sudo apt-get install wiringpi (omitible, se instala en las ultimas versiones del SO).

Instalacion de BCM2835:
Web a http://www.airspayce.com/mikem/bcm2835/
Descargar la ultima version, en mi caso es la "bcm2835-1.68.tar.gz".
Y descomprimirla:
tar zxvf bcm2835-1.68.tar.gz
tar zxvf bcm2835-1.68.tar.gz
./configure
make
sudo make check
sudo make install

Ahora vamos con la libreria para mostrar graficos.
sudo apt-get install python-pil (omitible, se instala en las ultimas versiones del SO).

Vamos a habilitar el I2C:
sudo raspi-config
(Interface Options-> I2C -> yes).

Ahora hay que añadirlo en el fichero de configuracion:
sudo nano /etc/modules
Y añadimos estas dos lineas:
i2c-bcm2708
i2c-dev

Vamos a habilitar el SPI:
sudo raspi-config
(Interface Options-> SPI -> yes).

Ahora toca instalar fuentes adicionales para que los textos tengan otro tipo de letra:
sudo apt-get install ttf-mscorefonts-installer



Ahora toca descargar unas fuentes de Google:
Roboto
Droid

Como suelen venir en un fichero zip, hay que descomprimir los ficheros:
unzip Roboto.zip
unzip droid-sans.zip

Ahora las copiamos a la carpeta de fuentes del sistema:
sudo cp -r /home/pi/Downloads/Droid* /usr/share/fonts/truetype
sudo cp -r /home/pi/Downloads/Roboto* /usr/share/fonts/truetype

Los zip los podemos borrar
Ahora nos descargamos el repositorio con el codigo para mostrar la insformacion en la pantalla de tinta electronica:
git clone https://github.com/EmiHermes/eInkBandwidth.git Bandwidth
Vamos a instalar la conexion de Twitter:
pip3 install tweepy


Bueno, ya tenemos TODO instalado y funcionando.

Convertimos los ficheros en ejecutables:
chmod +x *.py

Ahora solo queda lanzar el programa cada 5 minutos automaticamente:
crontab -e
*/5 * * * * python3 /usr/bin/python /home/pi/Bandwidth/e-Paper_BandwidthMonitor/Bandwidth.py

martes, 16 de junio de 2020

Nueva Raspberry PI, ¿Cual es su IP?

Éste es el tipico problema.
Pones una nueva Raspberry PI y lógicamente no sabes la IP que tu router le ha asignado.
¿Por qué? Sencillo, no le vas a poner un monitor y teclado para conectarte a ella.

¿Cómo se soluciona eso?

domingo, 7 de junio de 2020

Coleccion de e-Books (con Calibre)

    Tengo un montón de libros electrónicos, y tengo un desorden inmenso. Es domingo y he pensado, "tengo alguna Raspberry PI sin usar y podria organizar mis coleccción de libreos electrónicos en algún sitio centralizado".

viernes, 5 de junio de 2020

Hacer un "TimeLapse"

    Por todas partes ves que la gente ha puesto una Raspberry PI con la camara y la deja haciendo fotos automaticamente cada cierto tiempo y luego te muestran el video de las fotos. Es chulo y te gustaria hacerlo, ¿a que si?
    Bueno, pues hece tiempo que puse una a hacerlo, y hace unas semanas hice un manual para hacer todo eso. Vamos a ver si te sirve !!!

Nueva aventura

Raspberry PI    Siempre buscas información en internet sobre la Raspberry PI. Hay muchos sitios que son útiles, Pero narices, si llevo bastante tiempo jugando con la Raspberry PI y siempre me dice al gente que comparta mis conocimientos y los proyectos que he hecho.
    Pues bien, es el momento, me he decidido a hacerlo. Espero que ésto funcione. Y espero que este blog me sirva para encontrar lo que he hecho alguna vez, y que, por supuesto, a alguien le sirvan de algo mis experiencias con la famosa Raspberry PI.
    Espero publicar algo de vez en cuando. No prometo hacerlo todas las semanas, pero espero no dejar este blog en desuso, aunque pasará, pero espero que no sea muy pronto.
    No creo que sea un gran conocedor de todo lo que se puede hacer con este pequeño ordenador, pero he hecho mis pinitos desde hace unos años, y puedo decir que en mi casa tengo unas 10 haciendo alguna que otra tonteria, como un servidor web, un bloqueador de publicidad, un centro multimedia, una radio por internet....
    Si, con éste minúsculo ordenador se pueden hacer grandes cosas, y por un precio mas que asumible.

JDownloader en una PI con un USB para descargas

Vamos a por otro "Proyecto" que he hecho y que si se estropea, siempre tengo que buscar en varios sitios para ver como se hacen ...