Instalación de conda en windows


En este post vamos a explicar paso a paso cómo instalar Anaconda Navigator 3 para Windows 10 o 11  paso a paso

¿ Qué son las Jupyter Notebooks ?

Como primer paso para manejar nuestros conjuntos de datos (data sets)utilizaremos  la herramienta favorita de los científicos de datos el llamado  Jupyter Notebooks.

que funciona como un cuaderno de notas “interactivo” donde podremos ir haciendo paso a paso nuestros ejercicios y nuestros propios proyectos de Aprendizaje Automático  (Machine Learning)  e Inteligencia Artificial.

Júpiter notebook se puede utilizar de 2 formas diferentes:

  • Desde Google a través de una herramienta llamada Google colaboratory,  la cual permite ejecutar Júpiter notebook en un ambiente totalmente en la nube como sin la necesidad de estar instalando librerías no cambiará nada desde terceras fuentes.    Hay muchos tutoriales de cómo utilizar colaboratory.  Lo primero que hay que hacer es hacer una cuenta de correo en Gmail, con lo que tendremos acceso A Google Drive dónde guardaríamos nuestros modelos de datos.  Activarlo es tan simple como hacer un clic derecho y darle abrir A Google colaboratory, la primera vez que lo utilices se instalará coma y posteriormente no hace falta instalarlo nuevamente. Los archivos de Júpiter notebook tienen la extensión tipo “.ipynb” posteriormente Google reconocerá este tipo de extensión para seguir abriendo la Júpiter notebook de manera automática.
  • A través de una suite de datos muy utilizada también en el mundo de la ciencia de datos y que se conoce como Anaconda  Navigator.   Esta es la Suite más completa para la Ciencia de datos y que utiliza el lenguaje Python, y cuenta con más de 25 millones de usuarios alrededor del mundo   y que nos brinda una gran cantidad de funcionalidades que permitirán que desarrollemos aplicaciones de una manera más eficiente, rápida y sencilla.  Dentro de anaconda Navigator también se incluye el conocido paquete R muy utilizado en el mundo de la estadística y el procesamiento de datos.

Anaconda navigator la mejor suite para la ciencia de datos

Anaconda es una Suite de código abierto que abarca una serie de aplicaciones, librerías y conceptos diseñados para el desarrollo de la Ciencia de datos.   funciona como un gestor de entorno, un gestor de paquetes y que posee una colección de más de 720 paquetes de código abierto.  La instalación de anaconda es relativamente simple y tiene la ventaja de qué es interoperable o sea que puede instalarse ya sea en ambientes Linux,  Windows, iOS (Mac).

La ultima versión de Anaconda es la 3 y por defecto instala la versión de Python 3.11, lo cual es hasta cierto punto un problema, ya que muchas de las librerías que se pueden necesitar para nuestros modelos de datos todavía no han sido actualizadas a esa versión de Python,  por lo tanto utilizaremos una de las grandes funcionalidades que ofrece Anaconda que se conoce como “ambientes virtuales” en los cuales es posible instalar diferentes versiones de Python, y por tanto seguir utilizando las librerías anteriores que si funcionaban  por ejemplo la versión de Python 3.8 que necesitamos para NILMTK.

Pasos para la instalación

1) Lo primero es ingresar a esta dirección y descargar la versión ó distribución que corresponde a nuestro computador (Windows, Mac , o Linux ). OJO no hay disponibilidad de Anaconda para Smartphones ni tabletas.

https://www.anaconda.com/products/individual

El sistema de forma automática identificará su sistema operativo y le guiará hacia la mejor versión para usted, en caso contrario seleccione la mejor versión de acuerdo a su computador y su sistema operativo.

Anaconda navigator la suite para la ciencia de datos

Anaconda navigator la suite para la ciencia de datos

2.) Descargue la versión sugerida haciendo clic sobre el boton “Download”

Pantalla para la instalación de anaconda navigator 3

Pantalla de instalación para la versión de anaconda navigator 3

en este caso el sistema ha seleccionado para mí la versión 3 para Windows y procesadores de 64 bits.

Ingresando a Anaconda Navigator MENU PRINCIPAL

3.) continúe aceptando las opciones por defecto que le va mostrando la instalación y que finalmente lo llevará a la pantalla de inicio básica donde estarán instaladas las aplicaciones esenciales.  ( al inicio notará que varias pantallas de color negro se Irán apareciendo y desapareciendo hasta que finalmente llegará al menú principal.  En nuestro caso seleccione la opción Júpiter Notebooks,  (preste atención que también hay otra opción con un nombre similar llamada Júpiter Labs, que es un poco mas completa pero un tanto compleja al inicio)

Menú principal Júpyter notebook

seleccione el icono de la primera fila a la derecha. (jupyter Notebook)     el programa tarda unos segundos en arrancvar.  ESPERE !!!

4.) Una vez dentro de Jupyter , el primer paso es familiarizarse con los menús, e ir actualizando algunas de las versiones internas.  Para ello deberá localizar en primer término el boton par acceder a la ventana de terminal.

Localice en la parte superior derecha el botón New, haga clic, hasta la opción terminal y se abrirá una pantalla en negro, similar a la siguiente:

Júpiter notebook ventana terminal

Júpiter notebook ventana terminal

5.) paso seguido actualizaremos e instalaremos algunas de las librerías necesarias desde el inicio.  Ahora deberá ir escribiendo estos comandos (ponga especial cuidado en los espacios y en las mayúsculas /minúsculas) si obtiene un error, puede escribirlo de nuevo)    haga un enter después de cada línea para ir ejecutando los comandos uno por uno

conda update conda
conda update conda-build

conforme vaya instalando las diferentes librerías podrá ir obteniendo pantallas similares a esta,  observe que debe dar su aprobación (Proceed ( y / n) para la respectiva instalación con la tecla “Y” de yes aprobado .

Júpyter notebook instalando librerías

Júpyter notebook instalando librerías

Instalación de librerías en Jupyter Notebook

A lo largo del curso hablaremos de Cómo instalar Anaconda 3 en Windows 11 paso a paso, par ello les iré compartiendo algunas notebooks que posiblemente requieran alguna librería que no está instalada. En estos casos para instalar esas librerías se puede hacer de diversas maneras:

a.) la manera más simple de instalar una librería es con el comando PIP seguido del nombre de la librería. Veamos estos ejemplos:

Ej. pip install pandas  pip install numpy, pip install selenium, pip install xgboost, etc

b.) tambien se pueden instalar con sus dependencias dentro del ambiente “conda” de Anaconda  (con esta forma de instalación se instalan además algunas otras librerías que son dependientes de la librería principal y que en ocasiones son requeridas para realizar algunas funciones más específicas dentro de los modelos. Si ya tiene alguna experiencia puede utilizar preferiblemente el comando que a continuación se describe

Ej. conda install lightgbm   

b.1) las librerías de condá están en repositorios públicos que se conocen como canales,  muchas veces estos repositorios deben indicarse de manera explícita, lo que facilita su instalación de manera más expedita

Ej. conda install -c conda-forge lightgbm

c. )  otra forma simple de instalar las librerías con sus respectivas dependencias es directamente desde el menú principal de anaconda,  (ver tres pasos en la figura)  . Veamos la pantalla donde se accede a estas opciones

Júpiter notebook agregando librerías adicionales

Júpiter notebook agregando librerías adicionales

Instalación de los ambientes virtuales (vitual environments)

Debemos reconocer que una de las grandes ventajas que ofrece Anaconda es la posibilidad de instalar simultáneamente varios ambientes de trabajo. A estos ambientes se les conoce como ambientes virtuales o virtual environments.Para crear un ambiente virtual en anaconda debemos entrar al mismo menú que expusimos anteriormente en la opción environments y debemos seleccionar del menú inferior la opción crear.

El menú nos pregunta qué versión de Python queremos instalar y el nombre que queremos darle al nuevo ambiente de trabajo.

Podemos utilizar cualquier nombre por ejemplo Python37  y escogemos la versión de Python 3.7. x para arrancar.  Una vez que el proceso finaliza entramos utilizando el mismo menú a la opción de ventana terminal del nuevo ambiente de trabajo que recién acabamos de crear.

Júpyter notebook agregar ambiente de trabajo virtuales

Júpyter notebook añadiendo ambientes de trabajo virtuales

Instalar librerías dentro de ambientes virtuales

Si queremos instalar  librerías, siempre debe ser en algún ambiente determinado .  Para hacerlo  primero debemos seleccionarlo y abrir la ventana terminal respectiva.  ( la ventana terminal mostrará a la izquierda el nombre del ambiente de trabajo escogido)

una vez abierta la ventana terminal podemos utilizar las opciones de instalación antes mencionadas coma ya sea, PIP, conda, ó a través de anaconda los ambientes de trabajo deben activarse ya sea de forma manual o a través de anaconda.

Los comandos para instalar y activar los ambientes virtuales son los siguientes:  ( estos comando se escriben  en la ventana terminal del ambiente “Base ó root”

CREAR:  conda create -n v-env python=3.7   ( OJO: v-env es un nombre cualquiera escogido por mi )
ACTIVAR:  conda activate v-env

Para consultar comandos adicionales que se utilizan en los ambientes virtuales y el uso de los kernels consulte acá

Para ver todos los entornos que tenemos instalados se puede utilizar: conda env list

Para instalar paquetes dentro de nuestro entorno virtual podemos hacerlo mediante pip o con el instalador de anaconda.

Para ver todos los paqutes instalados podemos hacerlo con : pip list 

Instalación de otras librerías especializadas

En muchas ocasiones requerimos de la instalación de una serie de librerías es parte de Cómo instalar Anaconda 3 en Windows 1, 1 que no se instalan tan fácilmente cómo dar PIP o conda. Veamos la instalacion de NILMTK, una librería abierta especializada en la desagregación del consumo eléctrico.

Abra una ventana de terminal de conda, crearemos un nuevo entorno de Conda y lo activaremos con los comandos:

conda create --name nilmtk-env 
conda activate nilmtk-env

Si aún no está presente en su instalación de Conda, agregue el conda-forge a la lista de canales:

conda config --add channels conda-forge

Finalmente, instale la última versión de NILMTK de conda-forge :

conda install -c nilmtk nilmtk=0.4.3

Observe que el signo igual no lleva espacios(piense estamos usando Python). La ejecución del comando puede tardar un rato. Mientras tanto, consulte otros paquetes en Forge de NILMTK .

Observe que puede dar problemas si tiene instalado una version de python superior a 3.9:

En este caso esto nos obliga a eliminar el entrono y crear uno nuevo con python 3.8

Para ello lo podemos eliminar desde anaconda navigator opción Remove o bien desde consola (conda deactivate y conda env remove -n nilmtk-env), y crearemos uno nuevo desde anaconda navigator, con python 3.8

Como puede experimentar algunos problemas posteriores a la instalación con NILMTK y Matplotlib., para solucionarlos, aplique el comando:

conda install matplotlib 

Para verificar que Matplotlib está instalado, intente invocar la versión de Matplotlib en Python REPL. Use desde el interprete Python los comandos a continuación que incluyen llamar a .__ version__, un atributo común a la mayoría de los paquetes de Python.

>>> import matplotlib

>>> matplotlib.__version__

Ejemplo de salida:

(nilmtk-env) C:\Users\carlo>python
Python 3.6.13 (default, Sep 7 2021, 06:39:02) [MSC v.1916 64 bit (AMD64)] on win32
Type “help”, “copyright”, “credits” or “license” for more information.

import matplotlib
matplotlib.version
‘3.1.3’

Agregar un kernel de Jupyter

Básicamente, NILMTK ahora está instalado en su ordenador. El siguiente paso involucra los cuadernos de Jupyter. Trabajar con Jupyter abre muchas posibilidades y se dice que es una herramienta imprescindible. Por lo tanto, agregue el entorno NILMTK a Jupyter:

python -m ipykernel install --user --name nilmtk-env --display-name "Python (nilmtk-env)"

Prueba de la instalación

Ha llegado el momento de comprobar su instalación. Antes que nada, cree una nueva carpeta y descargue el conjunto de prueba aleatorio de Github:

md nilmtk_testcd nilmtk_test  wget https://raw.githubusercontent.com/nilmtk/nilmtk/master/data/random.h5

Como puede comprobar random.h5 es el fichero de de datos en en formato hdf5 .A continuación, levante Jupyter:

notebook jupyter

Para probar su instalación, intente importar el conjunto de datos aleatorio usando NILMTK y trazar todos los medidores:https://klemenjak.medium.com/media/9ba2be16d331653a7b4093a0fe412434

La salida debe ser:

1MeterGroup (metros =   ElecMeter (instancia = 1, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 2, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 3, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 4, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = [])   ElecMeter (instancia = 5, edificio = 1, conjunto de datos = Ninguno, electrodomésticos = []) )

¡Felicitaciones! Lo ha logrado. ¡NILMTK parece funcionar según lo previsto! 

Monitorización del consumo eléctrico en remoto (Parte 2) con HomeAssistant


Como continuación de un post anterior donde probamos el popular sensor de consumo  PZEM004 junto con un simple sensor de humedad y temperatura ( DHT11) con un barato pero potente microcontrolador como es un ESP32, en este post vamos a dar un paso más, porque ya no nos vamos a conformar con ver las lecturas de temperatura, humedad, voltaje, corriente, frecuencia, potencia y factor de potencia en la consola de Arduino, ya que lo vamos a poder ver desde cualquier ordenador (y además guardando un histórico para poder estudiar con detenimiento como evoluciona nuestro consumo eléctrico a lo largo del tiempo).  

AVISO: Existen en el mercado multitud de dispositivos que cumplen este cometido pero desde este blog hemos preferido fabricarnos uno propio por muy poco dinero que es además ampliable en múltiples aspectos y lo mas importante : NO ES INVASIVO, es decir, no requiere que la línea con la corriente a medir pase por el dispositivo gracias al uso de un sensor de pinza , por tanto, su montaje y uso es más seguro. Este tutorial es avanzado y requiere tocar el cuadro eléctrico de la casa si queremos monitorizar el consumo global de nuestra vivienda o negocia lo que implica ciertos conocimientos de electricidad y electrónica, así como asegurar el corte total de la corriente antes de su manipulación.

EL circuito

En efecto como vimos en un post anterior donde probamos el sensor PZEM004 junto con un sensor DHT11 con  un ESP32, en este post vamos a dar un paso mas, vamos a poder ver las lecturas de temperatura, humedad, voltaje, corriente, frecuencia, potencia y factor de potencia desde cualquier ordenador (y además guardando un histórico ) gracias a la infraestructura de el HomeAssistant ( que vimos también en un post anterior).  

En cuanto a las conexiones, seguiremos un esquema bastante simple que ya vimos y que puede ajustarse a diversas necesidades y configuraciones. Como ya se comentado, se ha optado además del citado modulo sensor de consumo  PZEM004 , usar el clásico sensor de humedad y temperatura ( DHT11 ) y que hemos visto en numerosos proyectos de este blog. Por otra parte como »cerebro» usaremos el potente microcontrolador como es un ESP32, que gracias a su conectividad WIFI nos va a permitir enviar las medidas al HomeAssistent. Por ultimo el montaje se completa con una fuente sellada de 5V ultra-miniatura ( aunque un cargador USB debería también ser suficiente).

Los componentes como vemos son de los mas normales:

  • Un módulo  ESP32 que usaremos para obtener los datos del medidor y transmitirlos por Wi-Fi a nuestro servidor. Puedes encontrar distintos modelos en Amazon.
  • Medidor PZEM-004T V3 que puedes comprar en Amazon. También vale la versión 1, pero ofrece menos datos.
  • Un sensor DHT11 ( se puede comprar también en Amazon)
  • Una pinza / anillo de corriente CT. Normalmente incluido con el medidor, ha de aguantar como mínimo la intensidad límite que aguante la línea que vamos a medir. Puede elegir si usar una pinza, que, aunque no requiere la desconexión del cable que queremos medir, nos da unos datos menos precisos, o un anillo, que tiene más precisión, pero requiere que previamente pasemos el cable, con lo que habrá que desmontarlo.
  • Cables dupont para conectar ambos dispositivos ( hembra-hembra). Aunque lo ideal es realizar un circuito puedes usar cables dupont y una placa de desarrollo para realizar el tutorial.
  • Una fuente  selladade 5V de al menos 100mA , aunque puede usarse un cargador USB .Este tipo de fuente sellada por cierto la podemos encontrar de nuevo en Amazon.
  • Cables Azul y Marrón para enchufar el medidor PZEM-004T a la corriente.

Software

Se aconseja probar el circuito anterior primero con el sketch que ya vimos en un post anterior y cuando todas las medidas sean mostradas correctamente en la consola serie de Arduino, y el servidor homeassistant este funcionando, seguir con los siguientes pasos.

Primero vamos a meter el software generado con ESPHome al módulo ESP32 para lo cual tendremos que taner instalado en nuestro HomeAssistant el añadido de ESPHome.

Bien, una vez conectado el montaje a nuestro PC y el ESP32 con un cable USB a nuestro PC con el que ya cargamos el skecth de pruebas, vamos a cambiar totalmente el fw para que pueda entenderse este con el HomeAssistant.

El siguiente código es solo una plantilla que se puede adaptar a las necesidades de cada uno:


esphome:

name: "medidor-consumo-pzem004t"

platform: ESP32

board: nodemcu-32s




# Recuerda cambiar la plataforma y placa según corresponda a tu módulo ESP.

# https://esphome.io/components/esphome.html

# ESP8266: https://esphome.io/devices/nodemcu_esp8266.html

# ESP32: https://esphome.io/devices/nodemcu_esp32.html



wifi:

ssid: "AAAAAAAAAA"

password: "XXXXXXXXX"



manual_ip:

static_ip: 192.168.1.74

subnet: 255.255.255.0

gateway: 192.168.1.1







#Enable Home Assistant API

# API para que Home Assistant pueda conectarse al módulo

# https://esphome.io/components/api.html





api:

encryption:

key: "ZZZZZZZZZ"



# Servidor Web para poder consultar información por web

# https://esphome.io/components/web_server.html



web_server:

# port: 80



# Componente OTA para poder actualizar el módulo sin necesidad de cables

# https://esphome.io/components/ota.html







ota:

# password: "ZZZZZZZZZZZZZZZZZZZZZZ"



# Servidor Web para poder consultar información por web

# https://esphome.io/components/web_server.html



# Enable logging

logger:

#baud_rate: 0









# Indicamos los pines donde hemos conectado TX y RX del dispositivo, teniendo en cuenta que siempre han de ser invertidos TX->RX, RX->TX

uart:

rx_pin: 16

tx_pin: 17

baud_rate: 9600

# stop_bits solo es necesario si así lo indica el log mientras probamos el circuito

stop_bits: 1







# Enable fallback hotspot (captive portal) in case wifi connection fails

#ap:

# ssid: "Dht11Pzem004 Fallback Hotspot"

# password: "SSSSSSSSSSSSSSSSSSSSSS"



sensor:



#usamos un dht11

- platform: dht

pin: 4



temperature:

name: "Temperature"

unit_of_measurement: °C

humidity:

name: "Humidity"

unit_of_measurement: '%'

update_interval: 1s



# Usaremos pzemac o pzem004t dependiendo de si estamos usando un PZEM-004T V3 o V1

- platform: pzemac

address: 0xF8

current:

name: "Current"

voltage:

name: "Voltage"

energy:

name: "Energy"

power:

name: "Power"

frequency:

name: "Frequency"

power_factor:

name: "Power Factor"

update_interval: 1s





# Indicamos el pin del LED de la placa para que parpadee según su estado

# https://esphome.io/components/status_led.html

status_led:

pin: 2


Una vez hayamos metido nuestras credenciales de WIFI, generamos el binario compilado del archivo .yaml y lo metemos en el módulo ESP. Como siempre, se puede realizar por USB o si ya lo tenemos configurado previamente por OTA. Una vez listo pasamos al circuito.

Si pulsamos en el icono de la corriente podemos ver el seguimiento de las variaciones de la corriente a lo largo del tiempo.

El consumo lógicamente va incrementando de forma acumulativa como vemos en la siguiente imagen:

Asimismo poder ver el histórico del valor de la frecuencia:

Asimismo podemos ver la fluctuaciones de la potencia:

Asimismo también podemos ver la fluctuación del factor de potencia en un histórico y de ahí podríamos deducir la potencia reactiva.

Por ultimo podemos ver como el suministrador no nos suministra un valor de voltaje estable fluctuando en nuestro caso entre los valores de 240v y 250v.

Dado que hemos equipado al ESP32 con un DHT11 podemos asimismo ver las fluctuaciones de humedad y temperatura en el interior de nuestra vivienda.

Asimismo, dado que especificamos una IP fija también podemos ver las medidas junto a la traza a traves de la url especificada ( en nuestro caso http://192.168.1.74).

INSTALACION

Una vez bien probado la instalación, puede ser una buena idea incorporar el montaje a nuestra vivienda , pero por favor únicamente haga esto si tiene los conocimientos eléctricos suficientes dado el riesgo evidente de electrocución por lo que lo recomendable es cortar completamente el suministro de ca.

En primer lugar vamos a conectar el PZEM004 y el alimentador de 5v a la salida de un disjuntor con poca carga ( se recomienda antes de conectar los cables que efectivamente no hay tensión con un polímetro)

En el bloque donde solia ir el limitador ahí podemos ubicar nuestro montaje, eso si sin olvidar aislar al máximo todas las partes.

Ahora deberemos conectar la sonda de pinza en el lado activo de la general qeu sera la encargada de medir la corriente y con ello deducir la potencia, y el factor de potecnia

Ya solo nos queda cerrar el montaje y probar la funcionalidad

!Terminado el trabajo! Ahora ya solo nos queda ir a la la url http://homeassistant.local:8123/lovelace/0 desde un pc conectado a nuestra red y disfrutar del montaje.