Translate

Mostrando entradas con la etiqueta internet. Mostrar todas las entradas
Mostrando entradas con la etiqueta internet. Mostrar todas las entradas

jueves, abril 27, 2017

Usar datos gratis para proyectos IoT FreedomPop y Orange Pi 2G IoT (también Simyo).


Configuración PPP, freedompop y tarjera Orange Pi 2G IoT:

He preparado este pequeño tutorial para poder usar los datos de conexión gratuita de freedompop con esta pequeña tarjeta de Orange Pi, comprada en aliexpress por unos 12€.
La versión usada de Linux es Ubuntu Server, Link de descarga (http://www.orangepi.org/downloadresources/) también funcionará en Armbian, aunque no lo he probado.

Es necesario registar el modem de la Orange Pi 2G IoT en la red GSM de movistar (de momento es la predeterminada por freedompop). Sin este paso no se puede registrar en su red.

1.Instalar el software necesario:

#sudo apt-get install ppp wvdial

2. Configurar ficheros:

        2.1  fichero:  /etc/wvdial.conf para Freedompop:
[Dialer defaults]
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/modem0
Baud = 460800
Init1 = AT+COPS=0
Init2 = AT+CFUN=1
Init3 = AT+CGATT=1
Init4 = AT+CGDCONT=1,"IP","freedompop.foggmobile.com","",0,0
Init5 = AT+CGACT=1,1
Username = " "
Password = " "


          2.2 fichero  /etc/ppp/peers/wvdial
                   noauth
                   name wvdial
                   # Descomenta esta linea si quieres utilizar los DNS de Freedompop (son las DNS de google)
                  #usepeerdns
                 defaultroute
                  replacedefaultroute
           2.3 fichero /etc/ppp/options
                 comentar la linea lcp-echo-failure 4, si no la comentamos se desconectará cada 2 minutos.



3.Ejecutar wvdial, este es el log:

+CREG: 5
OK
--> Sending: AT+CGATT=1
AT+CGATT=1
+CGREG: 5
--> Sending: ATQ0
ATQ0
+CGATT:1
OK
--> Re-Sending: AT+CGATT=1
AT+CGATT=1
+CGATT:1
OK
--> Sending: AT+CGDCONT=1,"IP","freedompop.foggmobile.com","",0,0
AT+CGDCONT=1,"IP","freedompop.foggmobile.com","",0,0
OK
--> Sending: AT+CGACT=1,1
AT+CGACT=1,1
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Thu Apr 27 08:45:06 2017
--> Pid of pppd: 4484
--> pppd: ú¶P{
--> Using interface ppp0
--> pppd: ú¶P{
--> local  IP address 10.xxx.xxxx.xxxx
--> pppd: ú¶P{
--> remote IP address 192.xxx.xxxx.xxxx
--> pppd: ú¶P{
--> primary   DNS address 8.8.8.8
--> pppd: ú¶P{
--> pppd: ú¶P{
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Nameserver (DNS) Ok.
--> Connected... Press Ctrl-C to disconnect
--> pppd: ú¶P{


4. Podemos probar la comunicacion con una ping al puerto ppp0 y DNS de google:
Deveremos iniciar antes una nueva sesión ssh a la Orange Pi, o bien hacerlo como lo ago yo, usando 
el gestor de ssiones "tmux", creo que tengo el tutorial en este blog:

ping -I ppp0 8.8.8.8

Y el resultado es este:


root@OrangePi:~# ping -I ppp0 8.8.8.8

PING 8.8.8.8 (8.8.8.8) from 10.186.19.228 ppp0: 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=58 time=836 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=58 time=1071 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=58 time=944 ms

64 bytes from 8.8.8.8: icmp_seq=4 ttl=58 time=1025 ms

64 bytes from 8.8.8.8: icmp_seq=5 ttl=58 time=548 ms

64 bytes from 8.8.8.8: icmp_seq=6 ttl=58 time=302 ms

64 bytes from 8.8.8.8: icmp_seq=7 ttl=58 time=2372 ms

....

Nota: si usamos Simyo la configuración de /etc/wvdial.conf es:

[Dialer Simyo]
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/modem0
Baud = 460800
Init1 = AT+COPS=0
Init2 = AT+CFUN=1
Init3 = AT+CGATT=1
Init4 = AT+CGDCONT=1,"IP","orangeworld"
Init5 = AT+CGACT=1,1
Username = " "
Password = " "

Podemos elegir entre conectar con Freedomopop o Simyo, podemos etiquetar [Dialer freedompop] y [Dialer Simyo] luego, dependiendo de la Sim que tengamos insertada usar: wvdial freedompop para conectar con freedompop o wvdial Simyo para conectar con Simyo.



lunes, abril 24, 2017

Configurar modem GSM en la Orange Pi 2G IoT (Orange España)

Configurar modem GSM en la Orange Pi 2G IoT
Comentaros que necesitáis unos conocimientos más o menos básicos para poder seguir esto, pero vamos, está todo cortado y pelado.
Empezamos. Abrimos terminal.
sudo apt-get install  ppp wvdial

Hacemos
sudo vim /etc/wvdial.conf
Y metemos:
[Dialer defaults]
Modem = /dev/modem0
Baud = 30720000
Dial Command = ATDT
Init1 = ATE1
Init2 = AT+CGDCONT=1,"IP","internet","",0,0
FlowControl = CRTSCTS
Init3 = ATM0
Phone = *99#
Username = orange
Password = orange
Stupid Mode = 1
"internet" es donde va el nombre del APN, que en el caso de Orange es, precisamente ese, internet. El username y password de Orange son orange para ambos, si teneis otra compañía estos datos serán diferentes. De hecho, quizá estas configuraciones no funcionen para ellos. NOTA: Lo he probado exitosamente también con Vodafone con el APN "airtelnet.es" y como usuario y contraseña vodafone.
Hacemos
sudo vim /etc/ppp/peers/wvdial
y metemos:
hide-password
noauth
name wvdial
debug
usepeerdns
defaultroute
noipdefault
mtu 472
Ahora hacemos
sudo vim /etc/ppp/peers/wvdial-pipe
y metemos:
noauth
name wvdial
plugin passwordfd.so
defaultroute
replacedefaultroute
Hacemos, finalmente,
sudo wvdial
Y a volar!!!!!!!!!! Para ahora deberíais estar conectados. Si no obtenéis conexión, puede deberse a varias cosas. Podríais tener una conexión abierta de otra red (LAN, Wireless) mientras conectábais al móvil, luego la habéis cerrado para probar la conexión móvil, y ésta no funciona. Desactivad otras redes antes de conectar con el móvil.
También podrían ser las DNS, vamos a descubrirlo.
ping -w 3 www.google.es
Si os responde correctamente, es que estáis conectados. Si no, probad:
ping -w 3 8.8.8.8
Si os responde este, pero no el anterior, es que os fallan las DNS. La solución es sencilla:
sudo echo "nameserver 208.67.222.222" >/etc/resolv.conf
sudo echo "nameserver 208.67.220.220" >>/etc/resolv.conf
Con estos dos comandos hemos añadido las DNS de OpenDNS. Ahora todo debería funcionar correctamente.
Hay unas últimas consideraciones a hacer.
Ya lo hemos configurado todo, pero ¿cómo desconectamos? y ¿cómo volvemos a conectar?
Los procesos "sudo rfcomm connect 0" y "sudo wvdial" se cierran haciendo Ctrl+C en la consola donde se ejecutan. Otra forma para cerrar ambos es matarlos mediante
sudo killall wvdial pppd rfcomm
Para volver a conectar, podemos hacer un script. El primero que os propongo es "silencioso", "ciego":
sudo rfcomm connect 0 & sleep 5 && sudo wvdial
El segundo que os propongo abre dos pantallas de xterm mostrando los procesos (debéis tener instalado xterm; sudo apt-get install xterm):
echo -e 'sudo xterm -e rfcomm connect 0 & sleep 5 && sudo xterm -e wvdial' >> ~/.conectbt.sh
chmod +x  ~/.conectbt.sh
Ahora teneis el script hecho, sólo teneis que crear un acceso directo a
gksudo sh ~/.conectbt.sh
Para desconectar, vamos a las pantallas donde se ejecutan los procesos, y hacemos Ctrl+C
Espero que os haya sido de utilidad!!

sábado, abril 01, 2017

Raspberry Pi Trasplante de Regulador de Voltaje (Hard Mod)


Si bien es cierto que para una gran cantidad de aplicaciones alimentamos nuestra placa Raspberry Pi con un adaptador de pared, otros usos podrían requerir de una fuente de alimentación portátil a baterías, como por ejemplo: Construyendo Nuestro Propio Pi(rate)Box Desde Cero.
Lamentablemente el circuito de la fuente de alimentación de la placa Raspberry Pi utiliza un regulador de tensión lineal para la línea de alimentación principal de 3.3V. El regulador de tensión en cuestión es un SE8117T33 fabricado por Seaward Electronics Inc., el cual, si bien es de alto rendimiento, por sus características lineales desperdicia aproximadamente un 30% de energía la cual disipa en forma de calor. Este porcentaje puede parecer despreciable si la placa Raspberry Pi es alimentada utilizando un adaptador de pared, pero cuando se trata de baterías, este porcentaje no es para nada insignificante. Para incrementar la autonomía utilizando baterías, sustituiremos el regulador de tensión lineal por un regulador de tensión switching.
Sin más preámbulos procederemos a analizar las características eléctricas del regulador de tensión original de la placa Raspberry Pi encontradas en la hoja de datos provista por el fabricante.
Características principales del regulador de voltaje SE8117T33:
  • Voltaje de Entrada: 9V (Máx.)
  • Voltaje de Salida: 3.3V
  • Corriente Máxima: 1A
Conociendo estos datos, buscaremos un módulo regulador switching de características iguales o superiores para alimentar correctamente nuestra placa. En el mercado existe una gran cantidad de módulos switching de diversos fabricantes que pueden satisfacer nuestros requerimientos, como por ejemplo, el módulo D24V6ALV de la Casa Pololu, que si bien provee una corriente de salida máxima de 600mA, es suficiente para nuestro propósito. En particular, no me fué posible encontrar dicho módulo dada la actual escasez de componentes electrónicos importados en mi país. Sin desistir de la búsqueda, conseguí mediante un importador local un módulo genérico de procedencia China, rotulado “DSN-MINI-360”, cuyas características eléctricas se detallan a continuación:
Características principales del módulo regulador switching DSN-MINI-360:
  • Voltaje de Entrada: 4.75V – 23V
  • Voltaje de Salida: 1.0V – 17V (Ajustable)
  • Corriente Máxima: 1.8A
  • Eficiencia: 96%
Como podemos observar, las características satisfacen perfectamente nuestros requerimientos, y con una eficiencia del 96% sólo tenemos una pérdida del 4% en contraste con el 30% del regulador de tensión lineal original, obteniendo así una mejora del 26%.
El módulo regulador switching DSN-MINI-360 se observa en las siguientes imágenes:
A continuación debemos soldar al módulo switching los 3 cables de conexión en los lugares correspondientes:
  • IN+ –> Entrada (+) [5V]
  • IN- –> GND (-) [Común a Entrada/Salida]
  • OUT+ –> Salida (+) [3.3V]
En la siguiente imagen se observa el resultado de este proceso:
Habiendo realizado exitosamente el paso anterior, ahora debemos ajustar la tensión de salida del módulo a un voltaje de 3.3V, la misma tensión de salida del regulador de voltaje original de la placa. Conectaremos el módulo switching a una fuente de alimentación cuyo voltaje de salida sea 5V, respetando el esquema de conexiones detallado anteriormente. Con el multímetro ajustado en la escala apropiada, comenzaremos a ajustar el trimpot ayudándonos con un destornillador de precisión hasta obtener el voltaje deseado en la salida. NO DEBE EXCEDER 3.3V!!!
IMPORTANTE: el ajuste de la tensión de salida del módulo switching debe realizarse ANTES de ser conectado a la placa Raspberry Pi. Una tensión de alimentación mayor a 3.3V causará daños irreparables en la placa.
Llegados a este punto, ya tenemos el módulo switching listo para ser instalado como reemplazo del regulador de voltaje original. La etapa siguiente probablemente sea las más crítica (y emocionante) de todo el proceso, que consiste en remover el regulador de voltaje original e instalar el módulo switching como reemplazo del mismo.
Antes de remover el regulador de voltaje SE8117T33, debemos verificar el pinout del mismo para identificar los puntos de conexión de nuestro módulo switching. El pinout se observa en la siguiente imagen:
Luego, buscamos el regulador de voltaje original en la placa Raspberry Pi y en su correspondiente diagrama esquemático para identificar correctamente los puntos de conexión:
Para remover el regulador de tensión original, emplearemos una estación de soldado SMD con aire caliente, en particular he utilizado la estación HONY 908 con excelentes resultados.
Con extremo cuidado calentaremos el componente hasta que sea posible extraerlo de la placa con la ayuda de una brusela antiestática. Debemos asegurarnos de calentar lo suficiente el componente ya que de lo contrario existe el riesgo de dañar los pads del PCB. La placa con el regulador de voltaje removido se observa a continuación:
Si logramos remover el regulador de tensión sin inconvenientes, podemos volver a respirar y la modificación estará casi completa. En caso de tener algún contratiempo, a no perder la calma y revisar el diagrama esquemático en busca de alguna solución.
Con el componente original removido, solamente nos queda soldar los 3 cables de conexión de nuestro módulo switching a los pads correspondientes en nuestra placa Raspberry Pi. También es conveniente fijar el módulo al PCB, para esta tarea utilizaremos un pegamento no abrasivo a base de silicona, por ejemplo “Fastix®”. El único inconveniente será que la frambuesa (logo) quedará oculta. Triste
En particular, he sometido a todo el proceso descripto anteriormente a dos placas Raspberry Pi con excelentes resultados. En las siguientes imágenes se observan ambas placas: