NODE-RED Y Raspberry PI PDF

Title NODE-RED Y Raspberry PI
Author Denikin Santos
Course Ingeniería de sistemas I
Institution Universidad Mayor de San Simón
Pages 37
File Size 2.5 MB
File Type PDF
Total Downloads 81
Total Views 146

Summary

NODE-RED Y RASPBERRY PI EN INTERNET DE LAS COSAS (IoT)
usando un modulo NodeMCU.
...


Description

Corp. Santos

NODE-RED Y RASPBERRY PI EN INTERNET DE LAS COSAS (IoT)

Autor: DENIKIN SANTOS UÑO

Corp. Santos

Contenido NODE-RED .............................................................................................................................................. 3 CONFIGURACIÓN DE RASPBERRY PARA TRABAJAR CON NODE-RED .................................... 5 INSTALACIÓN DE MOSQUITTO .................................................................................................. 5 PRUEBA DE MOSQUITTO .............................................................................................................. 6 Instalando mysql Usando phpMyAdmin .................................................................................................. 8 Instalar Apache.................................................................................................................................... 8 Instalar PHP ........................................................................................................................................ 8 Instalar MySQL .................................................................................................................................. 9 Instalar PHPmyAdmin ..................................................................................................................... 10 phpMyAdmin .......................................................................................................................................... 12 PROGRAMACIÓN DEL MÓDULO ESP8266 EN ARDUINO PARA TRABAJAR CON MOSQUITTO. ........................................................................................................................................ 18 Instalando Plugin del ESP8266 para Arduino ................................................................................ 18 INTRODUCCIÓN AL SENSOR DHT11 Y ESP8266 ........................................................................... 21 Instalacion de librerias ..................................................................................................................... 22 Codificación ....................................................................................................................................... 23 MQTT Y NODE-RED EN EL MISMO RASPBERRY PI ..................................................................... 25 Códificacion ....................................................................................................................................... 25 Conexión de la protoboard , sensor y Esp8266 ............................................................................... 29 USANDO NODE-RED........................................................................................................................... 30 Instalacion del nodo dashbobard ..................................................................................................... 30 Intalacion del nodo mysql................................................................................................................. 30 Trabajando con Node-Red ............................................................................................................... 30 Configuración .................................................................................................................................... 31 MQTT ................................................................................................................................................ 31 FUNCIONES(Function) ................................................................................................................... 32 Función Temperatura .......................................................................................................................... 32 Función Humedad ............................................................................................................................... 33 Función Insertar .................................................................................................................................. 34 MySQL ............................................................................................................................................... 35 DASHBOARD ................................................................................................................................... 36

Corp. Santos

NODE-RED

Node-red es un motor diseño visual, también llamado motor de flujos, que se enfoca a IoT, node-red nos permitirá implementar diferentes diseños de proyectos, lo que uno quiere realizar, empezaremos a trabajar y a conoces los nodos que se emplearan para adquirir datos del módulo esp8266 mediante un protocolo de comunicación conocido como MQTT, y almacenarla en una base de datos.

Corp. Santos

MA MATERIALES TERIALES NE NEC CESA ESARIOS RIOS PPARA ARA REAL REALIIZAR EL PRO PROYE YE YEC CTO MA MATERIALES: TERIALES: •

Cable de red



Memoria Sd



Raspberry



Router portátil



NodeMCU o esp8266



DHT11

DESARR DESARROL OL OLLLO: Conexión de la Raspberry al Router La conexión puede ser inalámbrica, pero el trabajo también se puede realizar desde VNC, que es tener la vista de la interfaz de la Raspberry en tu ordenado o en cualquier dispositivo que realice esta operación.

Inicialización en putty Usamos Putty para la instalación de todos los programas por ser muy eficiente para adquirir enlaces o líneas de código desde este proyecto para que usted puede inicialarlos rápidamente en la Raspberry.

Corp. Santos

CONFIGURACIÓN DE RASPBERR RASPBERRYY PPAR AR ARA A TRAB TRABA AJAR CO CON N NODENODE-RED RED A lo largo de este de este proceso, configuraremos la raspberry pi, para trabajar cómodamente. Instalaremos mosquitto para usar el protocolo MQTT, instalaremos MySQL para gestionar nuestra base de datos, con PhpMyAdmin tendremos una mejor interfaz de la base de datos. INST INSTALACIÓN ALACIÓN D DE E MOSQUITTO En la terminal de raspberry ejecutar los siguientes comandos: $ curl -O http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key $ sudo apt-key add mosquitto-repo.gpg.key $ rm mosquitto-repo.gpg.key $ cd /etc/apt/sources.list.d/ $ sudo curl -O http://repo.mosquitto.org/debian/mosquitto-repo.list $ sudo apt-key add mosquitto-repo.list $ rm mosquitto-repo.list $ sudo apt-get update Posteriormente instalamos Mosquitto Broker y por línea de comandos instalar clientes Instalando Mosquito MQTT Broker-Cliente $ sudo apt-get install mosquitto mosquitto-clients Una vez instalado mosquitto-Broker se inicializa rápidamente, antes de lo primero configuraremos mosquitto. $ sudo /etc/init.d/mosquitto stop Ahora que nuestro mosquitto está instalado en la raspberry y corriendo, incluiremos seguridad básica al protocolo MQTT. Creamos un archivo de configuración. $ cd /etc/mosquitto/conf.d/ $ sudo nano mosquitto.conf Detendremos a los clientes anónimos que se conecten con Mosquitto-Broker, para controlar en acceso del cliente a Mosquitto-Broker. Definimos un usuario y contraseña válidos para la configuración, copie en siguiente código en el editor de abrió. allow_anonymous false password_file /etc/mosquitto/conf.d/passwd require_certificate false guarde y salga del editor nano. Ahora realice desde el mismo directorio actual en el que se encuentra /conf.d. Crea un archivo para la contraseña vacio.

Corp. Santos $ sudo touch passwd Desde el directorio principal, utilice la herramienta mosquitto_passwd para creas un hash para el usuario pi. $ sudo mosquitto_passwd -c /etc/mosquitto/conf.d/passwd pi Se le pedirá que ingrese una contraseña dos veces, introduzca la contraseña que desea utilizar para el usuario pi. PRUEBA DE MOSQUITTO Abrir tres ventanas de terminales al mismo tiempo, si esta trabajando en Putty, ejecute también tres veces, asegúrese de que Mosquitto-Broker este corriendo. Realizar los siguientes pasos 1ro: Primera Terminal $ mosquitto

2do: Segunda Terminal $ mosquitto_sub -v -t 'topic/test'

Corp. Santos

3ro: Tercera Terminal $ mosquitto_pub -t 'topic/test' -m 'helloWorld'

Esta prueba nos ayuda a ver la conexión entre cliente y mosquito Podemos apreciar en la imagen (la segunda terminal) como tenemos un cliente al cual le mandamos un mensaje (como se puede ver en la tercera terminal) y dicho mensaje mandado aparece en la segunda terminal. Comprobamos que Mosquitto ha sido configurado correctamente y que podemos interactuar de manera sencilla entre Mosquitto server y el cliente.

Corp. Santos

Inst Instalando alando my mysql sql Usand Usando o phpMyAdmin Antes de empezar la instalación actualice su raspberry. Estos son comandos expecializados úselos si es necesario. En este caso solo use el siguiente con aptget. $ sudo aptitude update && sudo aptitude upgrade $ sudo apt-get update

Inst Instalar alar Apache Para instalar el servidor web Apache, primero tendremos que crear un grupo de usuarios para el servidor: $ sudo groupadd www-data $ sudo usermod -a -G www-data www-data

// si le sale que ya existe pase al siguiente código.

Instalamos el Apache: $ sudo apt-get install apache2 Una vez finalizado, vemos que se ha creado un directorio en /var/www/html/ donde se ubicaran los archivos HTML y PHP del servidor. Por defecto, hay un archivo llamado index.php. Si ponemos en un navegador la dirección IP de la Raspberry Pi veremos una página con la frase It Works!. Esto quiere decir que el servidor se ha instalado correctamente. Ahora podemos probar de crear un archivo html: $sudo nano /var/www/html/prueba.html I escribimos el siguiente código:

DIYMakers

DIYMakers Prueba de archivo HTML

Para guardar pulsamos CTRL+X, luego Y e INTRO. Ahora en el navegador ponemos la dirección IP de la Raspberry más el nombre del archivo html para ver nuestra web: http://192.168.1.134/prueba.html (poner vuestra dirección IP)

Inst Instalar alar PHP El lenguaje de programación PHP sirve para poder crear webs dinámicas. Procedemos a instalar el

Corp. Santos lenguaje PHP en la Raspberry Pi: $ sudo apt-get install php5 $ sudo apt-get update Después instalaremos sus paquetes: $ sudo apt-get install libapache2-mod-php5 libapache2-mod-perl2 php5 php5-cli php5-common php5-curl php5-dev php5-gd php5-imap php5-ldap php5-mhash php5-mysql php5-odbc Para comprobar que se haya instalado correctamente, creamos un archivo php en el servidor: $ sudo nano /var/www/html/pruebaphp.php I escribimos el siguiente código php:

Para guardar pulsamos CTRL+X, luego Y e INTRO. Ponemos en el navegador web lo siguiente: http://192.168.1.134/pruebaphp.php (poner vuestra dirección IP). I nos tiene que salir el texto “Hello World” en una página web.

Inst Instalar alar MySQL MySQL es una base de datos Open Source que sirve para almacenar datos. Para su instalación escribimos lo siguiente: $ sudo apt-get install mysql-server mysql-client php5-mysql Nos pedirá que pongamos una contraseña que nosotros queramos. Al terminar la instalación, debemos iniciar el MySQL:

Corp. Santos $ sudo service mysql start

Inst Instalar alar PHPm PHPmyyAdmin PHPmyAdmin és un software basado en PHP que sirve para administrar la base de datos MySQL a través de interfaz web. Para su instalación escribimos el siguiente comando: $ sudo apt-get install php5-mysql phpmyadmin Nos preguntará que servidor web hemos instalado. Seleccionamos Apache con la tecla Espacio y pulsamos Enter. Después preguntará si queremos configurar la base de datos, decimos que Sí. Luego tendremos que poner la contraseña que establecimos previamente en el MySQL y finalmente nos pedirá que pongamos una nueva contraseña para PHPmyAdmin.

Al finalizar la instalación, tenemos que modificar el siguiente archivo, solo si usted lo desea: $ sudo nano /etc/php5/apache2/php.ini Tenemos que escribir el siguiente comando en una nueva línea en cualquier sitio, aunque si queremos tener el archivo ordenado lo pondremos en la sección “Dynamic Extensions”: Solo búsquelo abajo, y lo encontrara. extension=mysql.so

Corp. Santos

Para guardar pulsamos CTRL+X, luego Y e INTRO. Esta modificación sirve para si usamos la base de datos MySQLi (distinta a MySQL). Después, como hemos modificado un archivo tendremos que reiniciar la Raspberry Pi: $ sudo reboot Tras reiniciar, tenemos que ejecutar dos comandos más: sudo ln-s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf sudo/etc/init.d/apache2reload Finalmente, vamos al navegador y ponemos: http://192.168.1.134/phpmyadmin/ (poner vuestra dirección IP) Nos saldrá una interfaz como esta donde usuario es root y la contraseña la que hemos asignado en la instalación:

Corp. Santos

phpMyAdmin PhpMyAdmin es un interfaz de usuario que nos permite administrar nuestra base de datos, como anteriormente ingresamos ponemos de usuario root y la contraseña que pusieron, en mi caso denikinsantos.

Ahora una vez en ingresado, crearemos un usuario, primeramente, para no usar el usuario root.

Vamos a usuarios en la ventanilla de arriba, y encontraremos una lista de usuarios con las caraceristicas que tienen y el servidor que usan, nos vamos a agregar usuario.

Y nos llevara a una ventana para poner los datos de nuevo usuario. Asignamos nombre de usuario, el servidor, las contraseña y los privilegios que adquirirá. En las imágenes observara como se realiza

Corp. Santos

Aquí otorgamos los privilegios de usuario, en este caso será otro usuario de realizar cualquier operación sin restricción.

Corp. Santos Nos saldrá la siguiente vista, que se agregado un nuevo usuario. Y como observan ahí tienen al usuario denikin

Ahora creamos una nueva base datos para almacenar nuestros valores, estamos realizando esto para trabajar más adelante con node-red.

En este caso la base de datos se llamará node-red. Y saldrá como la base de datos node-red ha sido creada, usted puede observarlo.

Corp. Santos Nos dirigimos a nuestra base de datos creada. Y creamos una tabla, para almacenar nuestros datos en esa tabla, se llamara mediciones. Como observa al seleccionar nuestra base de datos node-red, nos da la oportunidad para crear directamente una tabla, le asignamos tres como número de columnas, le damos crear.

Nos pedirá configurar las columnas, asignamos los nombres, el tipo, longitud permitida para el dato y predeterminado, de nombre empezaremos con tiempo, temperatura y humedad. Los tipos será para tiempo por defecto TIMESTAMP, y para temperatura y humedad como INT. Los valores de longitud asignamos como máximo 5 a temperatura y humedad. Así seguidamente como se muestra en la imagen.

Como observa ya tenemos creada nuestra tabla.

Corp. Santos Nos dirigimos a insertar un dato para comprobar si todo está en orden, nos dirigimos a insertar, como observa en la imagen realícelo, y seleccione continuar.

Esto es importante porque usaremos el código sé que se observa en la imagen, en node-red. Este lenguaje es SQL, y emplearemos para la inserción de datos en Node-Red. Usted mismo puede insertar desde PhpMyAdmin con el lenguaje SQL, cambie el 12 y 45 por otros valores, y te selecciona continuar. Observara dos datos de la inserción. Cuando estemos avanzando progresivamente entenderá, la importancia del lenguaje.

Nos dirigimos a examinar los valores que insertamos en la base de datos. Como observa en la imagen, el valor de inserción está realizada, en este caso no realizamos otra inserción, puede observar los datos insertados.

Corp. Santos

Corp. Santos

PROGRAMACIÓN DEL MÓDUL MÓDULO O ESP8266 EN ARDUINO PPARA ARA TRABAJAR C CON ON MOSQUITTO MOSQUITTO..

Inst Instalando alando PPlugin lugin del EESP8 SP8 SP8266 266 para Arduino El primer requisito necesario es tener instalado Arduino IDE con versión 1.6.4 o superior. Seguidamente vamos a archivo>Preferencias y en la casilla “Gestor de URLs Adicionales de Tarjetas” agregamos: http://arduino.esp8266.com/stable/package_esp8266com_index.json

Corp. Santos Seguidamente vamos a Herramientas>placa: … >Gestor de Tarjetas Y buscamos en la lista “esp8266 by ESP8266 Community “, lo seleccionamos e instalamos.

Al finalizar, el ítem del ESP8266 les debe marcar como instalado. Ahora en herramientas>placas, deben de estar las nuevas placas instaladas.

Corp. Santos En nuestro caso en vez de elegir la opción NodeMCU 1.0(ESP-12E Module).

Corp. Santos

INTRODUCCIÓN AL SENSOR DHT11 Y ESP8 ESP8266 266

Vamos a programar el NodeMCU, utilizando el IDE de Arduino. De manera que nos facilite el trabajo con el DHT11. Coloque el NodeMCU en el tablero. El resto de las instrucciones que asuma la parte delantera (con los agujeros) de la DHT11 que se enfrenta. El pasador de más a la izquierda de la DHT11 es el pin positivo. Usted debe conectarlo [3v3 o [Vin] en la MCU. El segundo pasador de la DHT11(desde la izquierda) es el pin de datos. Usted debe conectarlo(D2)en la MCU. La tercera pata de la DHT11(desde la izquierda) no hace nada. La última clavija de la DHT11(desde la izquierda) es el conector de tierra. Debe ser conectado GND.

Corp. Santos En nuestro caso, tomamos el pin 8 que es igual a GPIO 15 en arduino.

Inst Instalac alac alacion ion de libr librerias erias Para leer el sensor utilizaremos la biblioteca de DTH11 Adafruit. Se puede instalar mediante el administrador de la biblioteca de Arduino. Se presenta en dos componentes. En primer lugar, tendrá que descargar la biblioteca del sensor Unificado Adafruit:

continuación, instale la biblioteca sensor de DHT:

Corp. Santos Importante: Por último, tendrá que aumentar límite de memoria de la biblioteca MQTT subyacente. La biblioteca PubSubClinet MQTT tiene un límite de memoria predeterminada que no es suficiente para mantener a todos los valores que el sensor DHT11 puede recoger. El error también no es evidente, lo que hace que sea difícil de rastrear.

Codificación /** *Ejemplo para leer temperatura y humedad *usando DTH11 y ESP8266 **/ #include “DHT.h” #define DHTPIN 15 // el pin digital al cual DHT11 está conectado PIN 8 #define DHTTYPE DHT11 // hay múltiples tipos de sensores DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.setTimeout(2000); //esperar a que inicialice el serial While( !Serial) { } Serial.println(“Device Started”); Serial.println(" -------------------------------------"); Serial.println("Running DHT!"); Serial.println("-------------------------------------"); } int timeSinceLastRead = 0; void loop() { // Report ar cada 2 segundos if(timeSinceLastRead > 2000) { // Leer la temperature o la humedad toma como 250 millisegundos! // lectura del sensor puede ser arriba de los 2 segundos 'old' (sensor bastante lento) float h = dht.readHumidity(); //Lectura de temperatura en Celsius (el por defecto float t = dht.readTemperature(); // Lectura de temperatura en Fahrenheit (isFahrenheit = true) float f = dht.readTemperature(true); // Chequea si alguna lectura fallo y se sale rapidamente(para intentar de nuevo). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!" ); timeSinceLastRead = 0; return; } // Compute heat index in Fahrenheit (the default) float hif = dht.computeHeatIndex(f, h);

Corp. Santos // Compute heat index in Celsius (isFahreheit = false) float hic = dht.computeHeatIndex(t, h, false); Serial.print("Humidity: " ); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Hita index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); timeSinceLastRead = 0; } delay(100); timeSinceLastRead += 100; }

Corp....


Similar Free PDFs