Instalar Mosquitto fácil y rápido

La parte de rápido depende mucho de la conexión de internet de cada uno para poder descargar los archivos, habiendo hecho esta salvedad.

Nos encontramos que para la mayoría de los proyectos IoT en los que trabajamos necesitamos tener disponible un servidor broker para poder enviar mensajes con el dispositivo que estamos armando; en muchas ocasiones con un broker publico de internet solucionamos el problema, pero otras veces necesitamos tener algo local (a raíz que nuestra conectividad no es estable o simplemente no disponemos de acceso a internet donde vamos a instalar el dispositivo).

Mosquitto es uno de los brokers mas utilizado por ser opensource y ser mantenido por la fundación Apache, para instalarlo es entornos linux es sencillo simplemente lo hacemos por medio del gestor de paquetes.

Pero la realidad es que en la mayoría de los laboratorios en escuelas o universidades las pcs tiene Windows; e instalar el servicio del broker resulta un poco engorroso, particularmente si no se va a usar de manera dedicada y no queremos el servicio corriendo.

La forma mas sencilla de instalarlo es utilizando el esquema de contenedores de Docker, tres sencillos pasos:

  1. Será necesario instalar primero Docker en nuestra pc, la instalación es sencilla simplemente damos continuar y al finalizar nos pedirá reiniciar el sistema.
  2. Luego que tengamos Docker corriendo en el sistema (en la traybar veremos el icono de la ballena) ejecutamos desde la consola:
docker pull eclipse-mosquitto

Para que descargue el contenedor de mosquitto en nuestra pc.

3. Creamos una instancia del contenedor, especificando el puerto sobre el que va a trabajar, utilizaremos los puertos 9001 y 1883 que son estándar para este servicio:

docker run -p 1883:1883 -p 9001:9001 eclipse-mosquitto

Esto crea un contenedor que sirve para entornos de prueba y laboratorio, no se guarda las configuraciones, ni tienen ningún mecanismo de seguridad.

Pero la puesta en marcha es rápida y sin complicaciones; luego de que se haya descargado la primera vez el contenedor las siguientes ejecuciones son aun mas ágiles.

ESP32-Cam: primeros pasos y algo de Python

Estos días estuve probando esta versión de ESP32 con cámara, si bien esta hace ya algún tiempo, recién logro tener uno para hacer algunas pruebas, y puedo decir que quede impresionado.

No solo que es muy compacto, sino que la resolución y la forma de instalarse es muy sencilla. A continuación los primeros pasos para trabajar con este módulo.

Entorno de desarrollo

Al igual que con el ESP8266 es necesario incluir una serie de librerías y herramientas para utilizar el ESP32-CAM junto con el Arduino IDE, para ello debemos agregar dentro de Archivos – Preferencias la siguiente URL: https://dl.espressif.com/dl/package_esp32_index.json

Confirmamos, y luego desde el menú Herramientas – Gestor de tarjetas, buscamos ESP32 y lo instalamos. En mi caso tenia instalado una versión anterior, tuve que eliminar y volver a instalar la nueva.

Libreria ESP32CAM

Utilizaremos esta librería para acceder fácilmente a la cámara del modulo; la descargamos desde Github en el siguiente link:
https://github.com/yoursunny/esp32cam

Luego la instalamos desde Programas – Incluir librerías – Añadir biblioteca ZIP.

Concluidos estos pasos, podemos pasar a ver como lo conectamos

Conexiones

Para cargar el programa en el ESP32-CAM, debido a que no cuenta con un puerto USB, sera necesario utilizar un conversor USB-Serial, se utiliza el siguiente esquema:

Conversor USB-SerialESP32-CAM
RXTX
TXRX
VCC5V (no conectarlo a 3v3)
GNDGND

Además debemos conectar, solo para programarlo, en el modulo ESP32-CAM el GND al GPIO0.

Programa de ejemplo

Utilizaremos uno de los ejemplos provistos por la librería, para convertir el ESP32-CAM en una cámara IP, puede encontrarlo en Archivos – Ejemplos – esp32cam – WifiCam.

En el ejemplo solo debemos editar las lineas indicando el nombre de nuestra red inalámbrica y la contraseña de la misma.

const char* WIFI_SSID = "my-ssid";
const char* WIFI_PASS = "my-pass";

Antes de cargar el programa al ESP32-CAM debemos presionar el botón de Reset del mismo, cargar el código al mismo, desconectar el cable que puentea GND con GPIO0 y volver a reiniciar para que cargue el código.

Si abrimos el Monitor Serie veremos que nos indica una URL, a la cual podemos conectarnos desde el navegador.

Tomar imágenes desde Python

La gran ventaja de utilizar esta librería es que es muy sencillo integrarla con nuestras aplicaciones en Python; pueden encontrar el programa en el siguiente repositorio de github:
https://github.com/gsampallo/esp32cam-python

Solo debemos tener en cuenta de reemplazar la IP de la URL por la correcta en el programa y luego ejecutarlo; cada vez que se ejecute toma una foto.