Está en la página 1de 8

http://arduino-yun.blogspot.

cl/

ntes de proceder con la instalación, hay que mencionar en este momento, que en este
proyecto, no se trata el aspecto de control de seguridad y acceso.

Úselo bajo su propia responsabilidad. Si va a acceder desde internet o acceso público está
expuesto y vulnerable a los ataques.

Configuración del lado Linino (Linux) de Arduino:

Descargar todos los archivos necesarios desde el siguiente enlace:


https://drive.google.com/file/d/0B-CQXux6nrNkbXJ4OVRfZFo1SGs/edit?usp=sharing
Instalamos LAMP más información en el siguiente sitio web:

http://wiki.openwrt.org/doc/howto/lamp

Instalación y configuración del servidor web

lº Paso entramos en Linino por SSH.


Putty

usuario: root contraseña la que tengamos por defecto en arduino-Yun.

Debemos tener conectado Linino a internet, para que pueda descargar los paquetes por cable
o Wifi.

Ya hay un servidor Web en ejecución en arduino-YUN para la interfaz Web de usuario.

Instalamos otro para ser independiente de las paginas de configuración.

uHTTPd

→ http.uhttpd es un servidor web bajo BSD-licencia. Luci WebUI ya utiliza este servidor. Si
uHTTPd no está instalado puede instalarlo con:

>opkg update

>opkg install uhttpd


La imagen predeterminada ejecuta un WebUI para OpenWrt en el puerto 80 (HTTP) y el puerto
443 (HTTPS).

Para habilitar nuestro servidor web PHP5, iniciamos uHTTPd en una nueva instancia con un
puerto diferente.
Aquí utilizamos el puerto 81.

>uci set uhttpd.llmp=uhttpd


>uci set uhttpd.llmp.listen_http=81
>uci set uhttpd.llmp.home=/mnt/sda1/www
>uci commit uhttpd

Creamos un directorio para el contenido del servidor web dentro de la SD

>mkdir -p $(uci get uhttpd.llmp.home)

Si uHTTPd ya estaba instalado y funcionando reiniciamos con

>/etc/init.d/uhttpd restart

Si hemos instalado uHTTPd través opkg tenemos que iniciar el servidor web de forma manual y
también añadir la ejecución en el arranque, añadiendo en el script de inicio.

>/etc/init.d/uhttpd start
>/etc/init.d/uhttpd enable

Instalación y configuración de un servidor de base de datos.

>opkg update
>opkg install libpthread libncurses libreadline mysql-server
>sed -i 's,^datadir.*,datadir = "/mnt/sda1/mysql",g' /etc/my.cnf
>sed -i 's,^tmpdir.*,tmpdir = "/tmp",g' /etc/my.cnf
>mkdir -p /mnt/sda1/mysql
>mysql_install_db --force
>/etc/init.d/mysqld start
>/etc/init.d/mysqld enable
>mysqladmin -u root password 'new-password'

yo he puesto de contraseña arduino en caso de cambiarla hay que cambiarla también en los
scripts
Para habilitar MySQL en PHP

>opkg update
>opkg install php5-mod-mysql

y cargarmos el módulo mysql.so en /etc/php.ini


>sed -i 's,;extension=mysql.so,extension=mysql.so,g' /etc/php.ini
>mysqli.default_socket = /var/run/mysqld.sock

Para que trabaje MySQL con PHP, también se debe configurar el archivo (vi/etc/php.ini) php.ini,
en la sección [MySQL].

[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port = 3306
mysql.default_socket = /tmp/run/mysqld.sock
mysql.default_host = 127.0.0.1
mysql.default_user = root
mysql.default_password = MySuperSecretPassword
mysql.connect_timeout = 60
mysql.trace_mode = Off

yo no he utilizado el vi en su lugar utilizo WinSCP.


WinSCP
Ya tenemos instalado MySQL y PHP.

2º Copiamos los archivo de www en la carpeta del servidor web que ejecuta Arduino.
podemos utilizar WinSCP.
ejecutamos MySQL.

>mysql -h localhost -u root -p


Nos pide la contraseña.
mysql> CREATE DATABASE homeautomation;
mysql>use homeautomation;
mysql> CREATE TABLE LEDstatus (id INT(2) NOT NULL AUTO_INCREMENT PRIMARY
KEY,name VARCHAR(15), LEDstatus VARCHAR(5), pin INT(2), pinOut INT(2));
mysql> CREATE TABLE WEBstatus (status INT(1));
mysql> INSERT INTO LEDstatus VALUES (1,'LED1','-1',2,8);
mysql> INSERT INTO LEDstatus VALUES (2,'LED2','-1',3,9);
mysql> INSERT INTO WEBstatus VALUES (1);

Hemos creado la base de datos homeautomation y las tablas LEDstatus y WEBstatus.


verificamos y nos tiene que dar como a continuación:

mysql> DESCRIBE LEDstatus;

Tabla LEDstatus:

Nu Ke Defa
Field Type Extra
ll y ult
int N P AUTO_INCRE
id NULL
(2) O RI MENT

varch YE
name ar NULL
(15) S

LEDstat varch YE NULL


us ar (5) S

int YE
pin NULL
(2) S

int YE
pinOut (2) S NULL

.. Y ha añadido dos entradas en la tabla LEDstatus:


mysql> SELECT * FROM LEDstatus;

id name LEDstatus pin pinOut

1 LED1 -1 2 8

2 LED2 -1 3 9

mysql> DESCRIBE WEBstatus;


Tabla WebStatus:

Field Type Null Key Default Extra

status int (1) YES NULL

3º Creamos una carpeta llamada scripts y copiamos los archivos que realizaran las
operaciones para diferentes consultas MySQL. Si se cambio la contraseña hay que editarlos
para actualizarlos.

4º Probamos colocamos en el navegador.


http://ip-arduino:81/ y nos aparecerá los dibujos de los 2 led.
https://geekytheory.com/como-permitir-el-acceso-remoto-a-una-base-de-datos-mysql/

Cuando desarrollo código relacionado con páginas o aplicaciones web,


siempre utilizo máquinas virtuales con una configuración exactamente
igual que la que tendrá el servidor donde dicha página será alojada. Por
otra parte, casi en todos los casos necesito acceso a bases de datos que se
encuentren dentro de la máquina virtual, pero MySQL no está
configurado por defecto para permitir conexiones remotas. Debido a
esto, hay que modificar algunos parámetros de configuración de
MySQL, así como dar permisos a un determinado usuario para que
pueda acceder.

Paso 1

Modificar el archivo de configuración de MySQL:

Terminal

1 sudo nano /etc/mysql/my.cnf

Buscaremos las siguientes líneas y se descomentarán en caso de estar


comentadas:
 skip-external-locking

 bind-address = 127.0.0.1

La IP que le vamos a dar a bind-address será 0.0.0.0. En caso de que


tengáis una IP específica a la que queráis dar acceso, simplemente
ponedla.

Paso 2

En este paso se reiniciará el servicio de MySQL para que se apliquen los


cambios:

Terminal

1 sudo service mysql restart

Paso 3

Hay que dar permisos específicos de acceso al usuario de la base de


datos. Yo para desarrollo siempre utilizo usuario root y contraseña root,
pero cada uno que ponga el suyo. Antes de nada, hay que entrar a la
consola de MySQL:
Terminal

1 mysql –u root -p

Tras esto, se le dan los privilegios al usuario en cuestión. En este


caso root:

1 GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'password';


2 FLUSH PRIVILEGES;

Gracias a estos sencillos pasos, ya tendremos acceso remoto a la base de


datos de un servidor o máquina virtual en la que estemos desarrollando.

También podría gustarte