Entradas

Mostrando entradas de febrero, 2019

Proyecto Estación Meteorológica 6: Resultados

Imagen
Resultados Una vez terminado de programar todos los puntos del proyecto, se pueden observar los resultados en conjunto. Para ello, se seguirá el mismo orden que durante la memoria. En cuanto al código de Python mostrado en “ Obtención y Envío de Datos Mediante Python ”, este se ejecuta desde la terminal de la Raspberry. Para ello, primero se debe abrir la terminal (esto puede hacerse pulsando “ ctrl + alt + t ”). Una vez en la terminal, se abre el directorio en el que está el archivo (por ejemplo, si el archivo está en el escritorio con “ cd /home/pi/Desktop ”). Puede hacerse lo mismo abriendo la carpeta con la interfaz gráfica y pulsando “ F4 ” una vez dentro de ella. Después, es un poco diferente en caso de las versiones de Python instaladas. En caso de disponer solo de la versión 2.7, en este caso se ejecuta el archivo con el comando “ python thingSpeak_datalogger.py ”. En caso de disponer de más de una versión de Python, en el comando habrá que es...

Proyecto Estación Meteorológica 5: Análisis y Tratamiento de Datos Mediante Matlab

Imagen
Análisis y Tratamiento de Datos Mediante Matlab Para terminar de forma adecuada el proyecto, se ha decidido darles una razón de ser a los datos recogidos. Con la ayuda del software Matlab se hace el control de la temperatura y la humedad de la habitación utilizando un controlador fuzzy . La habitación en cuestión tendrá un climatizador que se ocupará de calentar, enfriar, humidificar o deshumidificar el aire de la sala. El climatizador estará formado por los siguientes elementos: Un intercambiador de calor para enfriar el aire. Un contenedor para retirar el agua condensada. Una resistencia para calentar el aire. Un humidificador. Pasando al código de Matlab, este cuenta con 3 partes principales: la obtención de datos de ThingSpeak, el controlador fuzzy y el Simulink en el cual se conseguirán las acciones de control. Tal y como se ha mencionado, primero hay que obtener los datos de entrada, los cu...

Proyecto Estación Meteorológica 4: Visualización de Resultados Mediante HTML y D3.js

Imagen
Visualización de Resultados Mediante HTML y D3.js Una vez se han subido los datos a ThingSpeak, tal y como se describe en el post anterior , se quiere visualizar el contenido que se ha subido. Para ello, se diseña una página web utilizando HTML, JavaScript, CSS y D3.js. El código de la página consiste principalmente en 3 partes: la importación de datos y su tratamiento, la visualización de estos en una gráfica y la visualización en una tabla. Primero, la importación de datos. Para ello, se debe conseguir una URI desde ThingSpeak, la cual se puede conseguir entrando en la pestaña “ Data Import/Export ” de los canales que se han creado, en la sección “ Get a Channel Feed ”. Se decide que se quieren recuperar 5 sets de datos desde cada canal, por lo que esto se tiene en cuenta a la hora de codificar las URIs. Se cargan los datos llamando a estas con JavaScript, las cuales, tras ser llamadas, ejecutan unas funciones previamente definidas. El cometido de...

Proyecto Estación Meteorológica 3: Obtención y Envío de Datos Mediante Python

Imagen
Obtención y Envío de Datos Mediante Python Una vez se ha configurado la Raspberry como es debido, se comienza la codificación. Lo primero que se codifica es el programa de Python. La función de este programa es el de crear automáticamente los canales necesarios en ThingSpeak, recoger datos del sensor y subir estos a los canales previamente mencionados. Para ello, primero se observan las especificaciones del usuario para definir la problemática. Haciendo esto, se observa que hay que subir datos con una frecuencia de 10 segundos, pero los canales de ThingSpeak solo aceptan datos cada 15 segundos. Para solucionar este problema, se crean dos canales, a los cuales se suben datos alternamente. En cuanto al código, lo primero es importar las librerías. Ya que la comunicación con ThingSpeak se hace mediante peticiones http, se importan las librerías urllib y httplib , además de json , la cual será necesaria para interpretar las respuestas. También se...

Proyecto Estación Meteorológica 2: Configuración de la Raspberry

Imagen
Configuración de la Raspberry Para poner en marcha el proyecto ya presentado en el anterior post, lo primero que hay que hacer es poner a punto la Raspberry. En este caso, se ha utilizado la Raspberry Pi 3b+, como ya se ha mencionado en el post anterior . A este, se le ha instalado el sistema operativo Raspbian , el cual puede ser descargado desde la página oficial . Una vez se ha instalado el sistema operativo, se configura el dispositivo utilizando la terminal. El primer paso es conectarlo a la red Wi-Fi. Para ello, se accede a la terminal y se escribe lo siguiente: “ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf ”. Este comando abre el archivo wpa_supplicant.conf en la terminal, en el cual se pueden configurar las redes a las que se conecta la Raspberry. En este caso, se han configurado 2 redes cuya seguridad es distinta. La primera es la que se usa en casa, cuya seguridad es del tipo WPA-PSK. La segunda es la más interesante en este caso, y...

Proyecto Estación Meteorológica 1: Introducción

Imagen
Introducción El objetivo de este proyecto es el de crear una estación de lectura de parámetros atmosféricos, el cual funcionará de manera automática, remota y necesitará de una interacción mínima con el usuario. Se realizan lecturas cada 10 segundos, las cuales se suben a una plataforma de IoT, en la cual se crean los canales necesarios automáticamente. Se ha especificado por el usuario final que la estación ha de funcionar en cualquier institución adherida a la red de “ eduroam ”, por lo que está configurado para ello. Los datos recibidos podrán ser visualizados mediante una gráfica y una tabla en una página web ya diseñada. Por último, los datos también pueden ser descargados desde Matlab, los cuales se analizan y tratan para controlar la temperatura y la humedad de la habitación en la que se encuentra la estación, con la ayuda de un humidificador, una calefacción y un sistema de enfriamiento. Para llevar todo esto a cabo, se utilizan un ord...

Análisis del video "Cómo matar al intermediario" de Hernán Casciari

Imagen
La cultura tiene que ser libre, y tiene que ser gratuita Hace ya tiempo se cuestionó la necesidad de los intermediarios externos, ya sea por encarecer el precio de los productos que llegan a los consumidores, o por lo poco que ganan los creadores de contenido, como pueden ser los escritores, caso expuesto por el escritor Hernán Casciari en su charla "Cómo matar al intermediario". Este caso se puede extrapolar a otros ámbitos de la cultura (literatura, cine, música, ...); la distribución de alimentos, sector en el cual los granjeros y agricultores son los que se llevan la peor parte; la industria de la moda, donde nos encontramos mujeres y niños, en su mayoría, trabajando largas horas en condiciones deplorables para ganar una miseria; o incluso el mundo tecnológico, cuyas fábricas presentan una situación parecida a la situación de las fábricas textiles. Imagen: Hernán Casciari. La charla mencionada en el párrafo anterior se centra en los intermediarios del ámbi...

Diferentes técnicas de las redes neuronales

Imagen
DIFERENTES TÉCNICAS DE LAS REDES NEURONALES En la entrada anterior hemos visto, un poco por encima, lo que son las redes neuronales artificiales y de que se componen. La explicación de como se consigue  la salida de las neuronas y de la red en su totalidad, encaja con una técnica de las redes neuronales: Forward Propagation. La primera técnica que se va a explicar en esta entrada. Forward propagation El Forward propagation  es una implementación vectorial de las funciones de las redes neuronales, es decir, explica como pasan los valores de entrada (x) a ser los valores de salida, como se transforman.  Aunque ya se haya explicado este proceso en la entrada anterior, vemos necesario volver a explicarlo, para entender correctamente las demás técnicas (si lo habéis entendido bien, podéis saltar un poco más hacia adelante). Bien pues, primero las entradas (x) se multiplican con una  matriz de pesos ( θ )  que controla la función de mapeo de una ca...

Redes neuronales

Imagen
REDES NEURONALES Hasta ahora hemos comentado una rama del aprendizaje automático que consistía en el aprendizaje supervisado ( Regresión lineal ) y el no supervisado ( Regresión logística ). En esta entrada saltaremos a otra rama de este tipo de aprendizaje: a las Redes neuronales . Si en las técnicas de aprendizaje anteriores hemos visto cómo aprenden las máquinas a partir de ejemplos y como consiguen modelos o funciones (h) que se parecen a la realidad (y); usando para ello funciones de coste (J), gradientes de descenso para optimizar, etc. Ahora nos centraremos en el aprendizaje automático que más se parece al de nuestro cerebro: aprender usando  neuronas. Una neurona artificial funciona de la misma manera que una neurona real. Tiene unas entradas (Dendritas) que se introducen al cuerpo de la neurona y después de una computación salen por la salida (Axiomas). Neuronal real : La información entra por las dendritas, en el cuerpo y núcleo se dan los "cálculos" o ...

BSA & Bee

Imagen
Lo siento, pero estos algoritmos ya están cogidos II En la segunda ronda de Técnicas Evolutivas os presentamos el algoritmo Backtracking Search y el algoritmo de las abejas. Algoritmo Backtracking Search - BSA El algoritmo BSA se basa en una mutación de retroceso, esto es, se creará una población mutada utilizando las poblaciones de la iteración actual y la anterior. Vamos a ser prácticos. Este algoritmo es muy parecido al algoritmo DE . La diferencia: la fórmula de la población mutada. La fórmula esta vez será la siguiente: Y i = X actual + F*(X anterior - X actual ) Donde F es el rango de mutación y puede tomar cualquier valor de 0 a 3. Los pasos del BSA son los mismos del algoritmo DE: Generar una población de agentes X. En la primera generación/iteración, la población anterior (X anterior ) será igual que X actual . Crear una población mutada Y, usando las poblaciones Xactual y Xanterior. Crear una cuarta población de agentes descendientes (T) con l...