Cómo conectar Arduino con una Raspberry


En este tutorial de Zagur, vamos a ver como es posible  conectar de una forma muy sencilla a través del puerto serie  una   placa   Arduino  con  una Raspberry Pi utilizando Python para hacer esta comunicación.

El resultado va a ser  reproducir una melodía con un zumbador  conectado a Arduino por medio de un servicio (Apache, por ejemplo)que correrá en la Rasberry Pi.

Para hacer posible el ejemplo conectaremos primero Arduino en nuestro PC,  cargaremos el software en él y luego lo conectaremos a la Rasberry Pi.

El código de Arduino es realmente sencillo, y el montaje no requiere mucho tiempo, ya que solo es conectar el zumbador piezoléctrico en el pin 8 (cable rojo) y en el pin GND (cable negro).

Ahora cargamos este programa en nuestro Arduino,

#include «pitches.h»
// Notas en la melodía
int melody[] = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3,0, NOTE_B3, NOTE_C4};

// Duración de las notas: 4 (negra), 8 (semicorchea), etc
int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4};

void setup () {
Serial.begin(9600); //Inicializamos el puerto serial a 9600 baudios
}

void loop() {
if (Serial.available()) { //Si está disponible el puerto serie
char c = Serial.read(); //Guardamos la lectura en una variable char

if (c == ‘w’) { // Si escribo w  entonce  haremos sonar una melodía y reiniciamos  apache (en la RPi)

for (int thisNote = 0; thisNote < 8; thisNote++) {

int noteDuration = 1000/noteDurations[thisNote];
tone(8, melody[thisNote],noteDuration);

int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// parar el tono que se esta reproduciendo:
noTone(8);
}
}
}
}

 

 

Este código resumidamente lo que hace es que comprobar mediante el   condiciona   if (c == ‘w’)   si la variable que Raspberry Pi le envía es igual  el carácter ‘w’ ( o el carácter que se desee siempre  que lo defina en este código) , entonces ejecutará la melodía hasta que finalice    por medio del bucle for{} .

Junto a esto, abriremos un fichero nuevo y lo llamaremos pitches.h que contendrá las notas musicales  que se puede descargar aquí.

 

Una vez hemos cargado este código en Arduino, el siguiente paso es preparar la Raspberry Pi.

Aquí tendremos que hacer un pequeño programa en Python que nos permitirá mandarle comandos a la placa Arduino. Para eso, tendremos que instalar una librería de Python en Raspberry Pi mendiante el comando.

aptget install pythonserial  
 Una vez instalado, conectamos Arduino a nuestra Rasberry Pi y creamos un fichero llamado RaspDuino.py. En él añadiremos lo siguiente:
import os
 
arduino = serial.Serial(‘/dev/ttyACM0’, 9600)
 
print(«Starting!»)
 
continuar = True
while continuar:
        comando = raw_input(‘Introduce un comando: ‘) #Input
        arduino.write(comando) #Mandar un comando hacia Arduino
 
        if comando == ‘w’:
                print(‘Reiniciando apache…’)
                resultado = os.system(«service apache2 restart»)
        elif comando == ‘exit’:
                continuar = False
arduino.close() #Finalizamos la comunicacion

 

Este código también es sencillo. En primer lugar creamos un bucle para que nos vaya pidiendo siempre el “Introduce un comando“, y todo lo que vayamos escribiendo, se enviará al Arduino y de modo  que dependiendo del código qeu tenga Arduino hará una cosa u otra. En el ejemplo si enviamos ‘w‘ ejecutará la melodía en el Arduino y además, ejecutaremos en la Raspberry Pi, “service apache2 restart“. Si escribimos “exit” saldrá del bucle while y se acabará el programa.

Para ejecutar este fichero ya sólo queda ejecutar el fichero en python: python RaspDuino.py

 

 

Fuente   aqui

Cómo instalar wordpress en Ubuntu


En este momento, WordPress es el CMS más popular (gestor de contenidos) en Internet permitiendo configurar fácilmente blogs y sitios web flexibles  gracias a  que esta basado en  un motor MySQL con el procesamiento de PHP. WordPress ha visto una adopción increíble y es una gran opción para conseguir un sitio web en funcionamiento de forma rápida.
En esta guía, nos centraremos en conseguir una instancia de WordPress creado con un servidor web Apache en Ubuntu 14.04.

Antes de empezar esta guía, hay algunos pasos importantes que usted necesita para completar en su servidor.Estaremos procediendo a través de estos pasos como un usuario no root con privilegios sudo, por lo que tendrá que tener uno disponible. Además, usted necesita tener un LAMP (Linux, Apache, MySQL y PHP) pila instalada en la instancia de VPS.

Cuando haya terminado con estos pasos, puede continuar con esta guía.

1- Crear una base de datos MySQL y usuario de WordPress
WordPress utiliza una base de datos relacional para gestionar y página de la tienda y la información del usuario.  Tenemos instalado MySQL, que puede proporcionar esta funcionalidad, pero tenemos que hacer una base de datos y un usuario de WordPress para trabajar.

Para empezar, inicie sesión en la raíz de MySQL cuenta (administrativa) mediante la emisión de este comando:

mysql -u root -p

Se le pedirá la contraseña que estableció para la cuenta root de MySQL al instalar el software. A continuación, se dará una línea de comandos de MySQL.

En primer lugar, podemos crear una base de datos independiente que WordPress puede controlar. Usted puede llamar a esto lo que usted quisiera, pero yo le llamándolo wordpress ya que es descriptiva y simple. Escriba este comando para crear la base de datos:
CREATE DATABASE wordpress;

Cada declaración de MySQL debe terminar en punto y coma (;), a fin de comprobar para asegurarse de que esto está presente si está ejecutando en cualquier problema.

A continuación, vamos a crear una cuenta separada de usuario de MySQL que vamos a utilizar exclusivamente para operar en nuestra base de datos nueva. Creación de bases de datos de una sola función y cuentas es una buena idea desde el punto de vista de gestión y seguridad.

Voy a llamar a la nueva cuenta de que estoy haciendo wordpressuser y voy a asignarle una contraseña de password Definitivamente usted debería cambiar la contraseña de su instalación y puede nombrar el usuario lo desea. Este es el comando que necesita para crear el usuario:
CREATE USER wordpressuser@localhost IDENTIFIED BY ‘password’;

En este punto, usted tiene una base de datos y una cuenta de usuario, cada uno hecho específicamente para WordPress. Sin embargo, estos dos componentes no tienen ninguna relación todavía. El usuario no tiene acceso a la base de datos.

Vamos a arreglar que al acceder a nuestra cuenta de usuario el acceso a nuestra base de datos con este comando:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost;

Ahora el usuario tiene acceso a la base de datos. Tenemos que eliminar los privilegios para que la instancia actual de MySQL sabe acerca de los recientes cambios de privilegios que hemos hecho:

 FLUSH PRIVILEGES;

Estamos listos ahora. Podemos salir de la línea de MySQL escribiendo:

 exit

Ahora debe volver a su símbolo del sistema regular.

2- Descargar WordPress
A continuación, vamos a descargar los archivos de WordPress reales desde la web del proyecto.

Por suerte, el equipo de WordPress siempre vincula la versión estable más reciente de su software a la misma URL, por lo que puede obtener la versión más actualizada de WordPress escribiendo esto:

 cd ~ wget http://wordpress.org/latest.tar.gz

Esto descargará un archivo comprimido que contiene el contenido del directorio archivadas de los archivos de WordPress en nuestro directorio home.

Podemos extraer los archivos para reconstruir el directorio de WordPress que necesitamos escribiendo:

 tar xzvf latest.tar.gz

Esto creará un directorio llamado wordpress en su directorio personal.

Mientras estamos descargando cosas, también hay que conseguir algunos paquetes más que necesitamos. Podemos conseguir éstos directamente de los repositorios por defecto de Ubuntu después de que actualizamos nuestro índice local de paquetes:

 sudo apt-get update sudo apt-get install php5-gd libssh2-php

Esto le permitirá trabajar con imágenes y también le permitirá instalar plugins y porciones de actualización de su sitio utilizando sus credenciales de inicio de sesión SSH.

 

3- Configurar WordPress
La mayor parte de la configuración que vamos a hacer será a través de una interfaz web más adelante. Sin embargo, nosotros tenemos que hacer un poco de trabajo de la línea de comandos antes de que podamos conseguir este en funcionamiento.

Comience moviendo en el directorio de WordPress que acaba de desempaquetar:

 cd ~/wordpress

Un archivo de configuración de ejemplo que la mayoría coincide con la configuración que necesitamos se incluye por defecto. Sin embargo, tenemos que copiarlo en el archivo de configuración predeterminado ubicación para obtener WordPress para reconocer el archivo. Hágalo ahora escribiendo:

 cp wp-config-sample.php wp-config.php

Ahora que tenemos un archivo de configuración para trabajar, vamos a abrirlo en un editor de texto:

 nano wp-config.php

Como se  ha dicho antes, este archivo es casi totalmente adecuado para ya nuestras necesidades. Las únicas modificaciones que tenemos que hacer son los parámetros que sostienen nuestra información de base de datos.

Tendremos que encontrar la configuración para DB_NAME DB_USER y DB_PASSWORD para que WordPress para conectar y autenticar la base de datos que hemos creado correctamente.

Rellene los valores de estos parámetros con la información de la base de datos que ha creado. Debe tener un aspecto como este:
// ** Configuración MySQL – Usted puede obtener esta información de su proveedor de alojamiento web ** //
/ ** El nombre de la base de datos para WordPress * /
define (‘DB_NAME’, ‘wordpress’);

/ ** MySQL base de datos de nombre de usuario * /
define (‘DB_USER’, ‘wordpressuser’);

/ ** MySQL contraseña de base de datos * /
define (‘DB_PASSWORD’, ‘contraseña’);

Estos son los únicos valores que usted necesita cambiar.

Cuando haya terminado, guarde y cierre el archivo.

4- Copiar archivos a la raíz de documentos
Ahora que ya hemos configurado nuestra aplicación, tenemos que copiarlo en la raíz de documentos de Apache, donde se puede servir a los visitantes de nuestro sitio web.

Uno de la manera más fácil y confiable de transferir archivos desde el directorio al directorio es con elrsync comandos. Esto preserva los permisos y tiene buenas características de integridad de datos.

La ubicación de la raíz del documento en la guía LÁMPARA Ubuntu 14.04 es /var/www/html/ Podemos transferir nuestros archivos de WordPress no escribiendo:

 sudo rsync -avP ~/wordpress/ /var/www/html/

Esto copiará seguridad de todo el contenido del directorio ha desempaquetado a la raíz del documento.

Ahora debemos pasar a la raíz del documento para hacer algunos cambios de permisos finales

 cd /var/www/html

Usted tendrá que cambiar la propiedad de nuestros archivos para mayor seguridad.

Queremos dar a la propiedad de usuario al usuario normal, no root (con privilegios sudo) que usted planea usar para interactuar con su sitio. Este puede ser tu usuario normal si lo desea, pero algunos puede sugerir que se crea un usuario adicional para este proceso. Le corresponde a usted que usted elija.

Para esta guía, vamos a utilizar la misma cuenta que hemos creado durante la configuración inicial del servidor guía, que llamamos demo Esta es la cuenta estoy realizando todas las acciones de esta guía como.

La propiedad del grupo que dará a nuestro proceso de servidor web, que es www-data Esto permitirá Apache para interactuar con el contenido según sea necesario.

Podemos asignar rápidamente estos valores de propiedad escribiendo:

sudo chown -R demo: www-data *

Esto configurará las propiedades de propiedad que estamos buscando.

Si bien se trata de propiedad y los permisos, también hay que mirar en la asignación de la propiedad correcta en nuestro directorio los archivos subidos. Esto nos permitirá subir imágenes y otros contenidos de nuestro sitio. Actualmente, los permisos son demasiado restrictivas.

En primer lugar, vamos a crear manualmente el uploads directorio bajo el wp-content directorio a nuestra raíz del documento. Este será el directorio padre de nuestro contenido:

 mkdir /var/www/html/wp-content/uploads

Tenemos un directorio ahora a los archivos de la casa cargado, sin embargo los permisos siguen siendo demasiado restrictivo. Tenemos que permitir que el propio servidor web para escribir en este directorio.Podemos hacer esto mediante la asignación de propiedad de grupo de este directorio para nuestro servidor web, así:

 sudo chown -R :www-data /var/www/html/wp-content/uploads

Esto permitirá que el servidor web para crear archivos y directorios bajo este directorio, lo que nos permitirá cargar contenido en el servidor.

5- Instalación completa a través de la interfaz web
Ahora que tiene sus archivos en su lugar y su software está configurado, puede completar la instalación a través de la interfaz web.

En su navegador web, vaya a nombre de dominio de su servidor o la dirección IP pública:
http: // server_domain_name_or_IP

Usted verá la página de configuración inicial de WordPress, donde se va a crear una cuenta de administrador inicial:

Config inicial WordPress

Complete la información para el la cuenta administrativa que desea hacer sitio y. Cuando haya terminado, haga clic en el botón de instalación en la parte inferior.

WordPress confirmará la instalación y, a continuación, le pedirá que inicie sesión con la cuenta que acaba de crear:

WordPress confirmar instalar

Pulse el botón en la parte inferior y luego complete la información de su cuenta:

Entrada WordPress

Se le presentará con la interfaz de WordPress:

Interfaz de administración de WordPress 

6 (Opcional) – Configurar permalinks bonitos para WordPress

Por defecto, WordPress crea dinámicamente las URL que se ven algo como esto:
http: // server_domain_name_or_IP / p = 1

Esto no es exactamente la interfaz más útil para los visitantes o los motores de búsqueda, por lo que la mayoría de los usuarios desea modificar esto. WordPress tiene la capacidad de crear vínculos permanentes «bonitas» que limpiar el URL en un formato más amigable humana.

Hay algunas cosas que tenemos que hacer para conseguir que esto funcione con Apache en Ubuntu 14.04.
Modificación de Apache para permitir URL reescrituras
En primer lugar, tenemos que modificar el archivo host virtual Apache para WordPress que permiten.htaccess anulaciones. Usted puede hacer esto mediante la edición del archivo de host virtual.

De forma predeterminada, esto es 000-default.conf pero su archivo podría ser diferente si ha creado otro archivo de configuración:

 sudo nano /etc/apache2/sites-available/000-default.conf

Dentro de este archivo, queremos configurar algunas cosas. Debemos establecer el ServerName y crear una sección de directorio donde permitimos que las anulaciones. Esto debe ser algo como esto:
<VirtualHost *: 80>
ServerAdmin webmaster @ localhost
DocumentRoot / var / www / html
ServerName server_domain_name_or_IP
<Directory / var / www / html />
AllowOverride All
</ Directory>
. . .

Cuando haya terminado, guarde y cierre el archivo.

A continuación, tenemos que activar el módulo de reescritura, lo que le permite modificar las direcciones URL. Usted puede hacer esto escribiendo:

 sudo a2enmod rewrite

Después de haber realizado estos cambios, reinicie Apache:

 sudo service apache2 restart

Crear un archivo .htaccess
Ahora que Apache está configurado para permitir reescrituras mediante .htaccess archivos, tenemos que crear un archivo real.

Es necesario colocar este archivo en la raíz del documento. Escribe esto para crear un archivo vacío:

 touch /var/www/html/.htaccess

Esta será creado con su nombre de usuario y grupo de usuarios. Necesitamos que el servidor web para ser el propietario del grupo, sin embargo, por lo que debemos ajustar la propiedad escribiendo:

 sudo chown :www-data /var/www/html/.htaccess

Ahora tenemos la propiedad correcta de este archivo.

Es posible que tengamos que ajustar los permisos sin embargo. Esto depende de cómo usted prefiere trabajar. WordPress generará las reglas de reescritura necesarias para usted. Si tiene permisos de escritura a este archivo, se puede poner en práctica las normas de forma automática. Si no lo hace, tendrá que editar manualmente este archivo para agregar las reglas correctas.

¿Qué configuración que elija dependerá de lo mucho que valora la comodidad sobre la seguridad. Permitir el acceso de escritura servidor web para este archivo será definitivamente más conveniente, pero algunos dicen que es un riesgo de seguridad innecesario.

Si quiere  que WordPress  actualize automáticamente este archivo con reglas de reescritura, puede asegurarse de que tiene los permisos correctos para hacerlo escribiendo:

 chmod 664 /var/www/html/.htaccess

Si desea actualizar este archivo de forma manual por el bien de un pequeño aumento de la seguridad, puede permitir que el servidor web de sólo lectura privilegios escribiendo:

 chmod 644 /var/www/html/.htaccess

Cambiar la configuración Permalink en WordPress
Cuando haya terminado de hacer los cambios a nivel de servidor, puede ajustar fácilmente la configuración de enlace permanente a través de la interfaz de administración de WordPress.

En el lado izquierdo, bajo la Settings del menú, puede seleccionar Permalinks

Enlaces permanentes de WordPress

Usted puede elegir cualquiera de los ajustes preconfigurados para organizar las direcciones URL, o puede crear el suyo propio.

Opciones perma WordPress

Cuando haya hecho su selección, haga clic en «Guardar cambios» para generar las reglas de reescritura.

Si ha permitido el acceso de escritura servidor web a su .htaccess archivo, debería ver un mensaje como este:

Actualización perma WordPress

Si no permite que el acceso de escritura servidor web a su .htaccess archivo, se le proporcionará con las reglas de reescritura que necesita añadir al archivo de forma manual.

Copie las líneas que WordPress y luego da editar archivo en el servidor:

 nano /var/www/html/.htaccess

Esto debe darle la misma funcionalidad.

Una vez  tenga instalado su servidor de wordpress  ,  el  trabajo no acaba mas que empezar pues por ejemplo pues configurar actualizaciones seguras y de fácil acceso para WordPress, puede  utilizar WPScan parqa pasar un Test de Plugins vulnerables y Temas ,administrar WordPress desde la línea de comandos, establecer sitios de WordPress múltiples ( no multisitio ) o establecer sitios de WordPress múltiples con varios sitios, etc    !mucha suerte!

 

Mas información aqui