meetup embedded iot colombia · 2015-10-29 · agenda objetivo meetup 15.5 tipos de dispositivos...
TRANSCRIPT
Meetup
IoT Colombia
Meetup 15.5 Dispositivos de interconexión a internet
y practica con ESP8266 + Arduino
Jueves, 14 Octubre de 2015
HackBo Hacker Space
Hola!
Jorge Ernesto Guevara C. Ingeniero de Sistemas - Miembro de HackBo
@jegc_
Andres Kwan Orjuela Ingeniero Electrónico
@andreskwan
Gabriel Enrique Garcia R. Ingeniero Mecatrónico
@GabrielGarciaR
Organizadores del Meetup 15.5
Agenda
Objetivo Meetup 15.5
Tipos de dispositivos comerciales en Colombia para
Interconexión a la red.
Proyectos y aplicaciones IoT.
El ESP8266, clases y caracteristicas.
Practica basica del funcionamiento del ESP8266 y Arduino.
Conclusiones y Preguntas.
Agradecimientos y Networking.
1.
Objetivo Meetup
15.5
“ En este Meetup 15.5, evaluaremos
algunos dispositivos para conectividad a
la red disponibles en el mercado
colombiano, con los cuales podemos
implementar el concepto de IoT a
nuestros proyectos.
2. Tipos de dispositivos
comerciales en Colombia para
interconexión a la red.
Shield WiFi CC3000
El módulo Shield CC3000 es un dispositivo que se ha
encargado de romper barreras gracias a su usabilidad,
precio y excelente capacidad. Esta board usa
comunicación SPI (no UART), por lo que la
transferencia de datos es tan lenta o tan rápida como el
usuario la desee, esto ya depende de la aplicación a
llevar a cabo.
Este Shield posee un sistema adecuado de interrupción
a través de un pin IRQ, obteniendo así conexiones así-
ncronas. Este módulo es soportado por protocolo
802.11b/g, con seguridad open/WEP/WPA/WPA2,
TKIP y AES. Está board está diseñada en base a la
librería computacional BSD manejando así los
protocolos TCP/IP, TCP y UDP como cliente y servidor,
con hasta 4 conexiones de socket simultáneas.
Arduino WiFi Shield R3
Se basa en el controlador WiFi HDG204,
802.11b/g, WEP y WPA/WPA2 Personal, stack
de red (IP) con capacidad para TCP y UDP,
antena integrada, conector para tarjetas de
memoria microSD. Con el
microcontrolador Atmega 32UC3 y con la tarjeta
de memoria por medio del la interfaz SPI a
través del conector ICSP, esto ocupa los pines
digitales 11, 12 y 13 en la
Arduino Duemilanove y Uno, y pines 50, 51 y
52 en el Mega. Además en todas estas boards
(Incluyendo la Leonardo) el pin 10 se utiliza
para seleccionar el HDG204, el pin 7 para
handshake entre la shield y el Arduino base, el
pin 4 para seleccionar la tarjeta microSD.
Arduino YUN
Combina el chip del modelo Leonardo
(ATMega32U4) junto con un módulo SOC
(System-On-a-Chip) corriendo una distribución de
Linux llamada Linino, basada en OpenWRT. Una
de las características más interesantes es que
soporta red cableada Ethernet y Wifi.
El chip Arduino está conectado al módulo Linux,
por lo que es muy fácil que se comuniquen entre
ambos y delegar procesos pesados a la máquina
Linux integrada en la placa.
Dispone de dos conexiones de red. Una red
ethernet 10/100 mbps y otra Wifi (IEEE 802.11
b/g/n, 2,4GHz) que puede montarse como cliente
o como punto de acceso.
Shield Ethernet W5100
Este módulo permite a una board Arduino conectarse a
internet. Está basada en el chip Ethernet Wiznet
W5100. El Wiznet W5100 tiene una pila de red IP
capaz de funcionar mediante los protocolos TCP y
UDP. Soporta hasta cuatro conexiones de sockets
simultáneas. Usa la librería Ethernet para escribir
programas que se conecten a internet usando la
Shield.
La Ethernet Shield dispone de unos conectores que
permiten conectar a su vez otras board encima y
apilarlas sobre la placa Arduino. Mediante esta board
Shield y con sus respectivas librerías, se pueden
realizar tanto un servidor web pequeño, como un
cliente. Incorpora un módulo PoE, en pocas palabras
esto es para que se pueda alimentar la board desde la
red Ethernet que se tenga. Dispone de un zócalo para
tarjetas de memoria micro-SD con el fin de almacenar
ficheros o servirlos como servidor web embebido.
Modulo Ethernet ENC28J60
Esta pequeña board es básicamente un controlador
Ethernet dotado de un puerto SPI (Serial Peripheral
Interface), diseñado especialmente para actuar
como un puente entre una red Ethernet y un
microcontrolador equipado con SPI. El ENC28J60
cumple con las especificaciones IEEE 802.3, e
incorpora una serie de esquemas de filtrado de
paquetes para limitar el número de paquetes
entrantes.
También provee un módulo DMA interno para
facilitar el flujo de datos y hardware específico para
el cálculo de las sumas de control (IP checksums).
La comunicación con el microcontrolador que hace
las veces de host se realizan mediante el bus SPI a
una velocidad de hasta 10Mb/s y dos pines
especiales capaces de provocar interrupciones en el
ENC28J60.
Modulo Inalámbrico WiFi ESP8266
Este módulo trabaja con comunicación serial, en pocas
palabras, esto significa que hace uso de transmisión
serial TX / RX para enviar y recibir buffers de Ethernet,
y del mismo modo, el uso de comandos serial para
consultar y cambiar las configuraciones del módulo
WiFi.
Esto es muy conveniente, ya que sólo requiere dos
cables (TX / RX) para la comunicación entre un
microcontrolador y WiFi, pero más importante aún,
descarga las tareas relacionadas con WiFi al módulo,
permitiendo que el código del microcontrolador no
ocupe mucha memoria.
Nos ofrece además puertos GPIO (General Purpose
Input/Output, Entrada/Salida de Propósito General) los
cuales son pines, cuyo comportamiento (incluyendo si
es un pin de entrada o salida) se puede controlar
(programar) por el usuario en tiempo de ejecución.
3.
Proyectos IoT y
Aplicaciones
Campos de aplicación del Internet of Things
4.
El Modulo ESP8266
Clases y
Caracteristicas
Tipos de ESP8266
Características del ESP8266
Protocolos soportados: 802.11 b/g/n
Wi-Fi Direct (P2p), Soft Access Point
Stack TCP/IP integrado
PLL, reguladores y unidades de manejo de energía
integrados.
Potencia de salida: +19.5dBm en modo 802.11b
Sensor de temperatura integrado.
Consumo en modo de baja energía: <10 uA
Procesador integrado de 32 bits, puede ser utilizado como
procesador de aplicaciones.
5.
Practica básica de
funcionamiento del
ESP8266 + Arduino
Materiales de la practica y montaje
Arduino UNO
(Puede trabajar igualmente con
cualquier tipo de Arduino)
Modulo ESP8266 Tipo ESP-01
LED (Cualquier color)
PC
Comandos AT e instrucciones
▧Resetear = AT+RST
▧Verificar el modo de funcionamiento = AT+CWMODE?
▧Modificar el modo de funcionamiento =.
AT+CWMODE=n (Donde n puede ser 1, 2 o 3).
▧Verificar los puntos de acceso WiFi de los alrededores.
AT+CWLAP
▧Conectar al router.
AT+CWJAP=”nombre_de_red”,”clave”
▧Verificar la IP asignada al ESP8266 por el router.
AT+CIFSR
▧Habilitar múltiples conexiones simultáneas.
AT+CIPMUX=1
Arrancar un servicio número de servicio = 1 y puerto 80.
AT+CIPSERVER=1,80
▧Averiguar la velocidad de comunicación serial
AT+CIOBAUD=?
▧Modificar la velocidad de comunicación del puerto serie.
AT+CIOBAUD=xxxx (Donde xxxx puede ser 9600, 19200,
38400, 74880, 115200, 230400, 460800 y 921600,
pero el monitor serie del IDE Arduino funciona solo a 9600,
19200 y 115200. Recomendable 19200.)
▧Enviar líneas de texto.
▧AT+CIPSEND
▧Restaurar los valores de fabrica
▧AT+RESTORE
Chequear la versión del filmware
AT+GMR
Habilitar múltiples conexiones
AT+CIPMUX=1
Ayuda comando CIPSTART CORROBORAR
AT+CIPSTART=?
ACLARAR
AT+CIPSTART=0,"TCP","192.168.1.100",8080
ID de conexión,Protocolo, Server IP, puerto
ID y Longitud de la cadena a transmitir en Bytes
AT+CIPSEND=0,4
Cierra conexión TCP NO 0
AT+CIPCLOSE=0
Habilitar múltiples conexiones
AT+CIPMUX=1
AT+CIFSR
1=crea server,Puerto por 8080
AT+CIPSERVER=1,8080
Borra conexión NO.0 (La conexión la podemos cerrar desde
el cliente o desde el servidor)
AT+CIPCLOSE=0
0= Borra Server (se necesita restaurar)
AT+CIPSERVER=0
Comando para desconectar de la red.
AT+CWQAP
Código y programación – recepción AT
#include <SoftwareSerial.h>
SoftwareSerial BT1(3, 2); // RX | TX
void setup()
{ Serial.begin(9600);
BT1.begin(9600);
}
void loop()
{ String B= "." ;
if (BT1.available())
{ char c = BT1.read() ;
Serial.print(c);
}
if (Serial.available())
{ char c = Serial.read();
BT1.print(c);
}
}
Monitor serial IDE Arduino - 1
Monitor serial IDE Arduino - 2
Monitor serial IDE Arduino - 3
Monitor serial IDE Arduino - 4
Resultados y análisis de la practica
- Versatilidad del
dispositivo.
- Económico.
- Independiente.
- Compatible.
- Comercial.
- Información extensa
y ejemplos en la red.
- Variedad de
modelos y
adaptabilidad.
6.
Conclusiones y
Preguntas
Conclusiones
▧Hemos visto un primer contacto con el módulo
WIFI ESP8266.
▧Presentamos un pequeño circuito de prueba para
conectarlo a nuestros Arduinos, sin necesidad de
programas externos de comunicación.
▧Vimos las primeras instrucciones AT que acepta
este módulo.
▧Montamos un mínimo servidor Web con nuestro
modula, apto ya para recibir instrucciones a través
de un navegador Web.
7.
Agradecimientos
Agradecimientos
Hackbo (Hackerspace Bogota)
Equipo Organizador
▧ Leandro Perez
▧ Andres Kwan
▧ Giovani García
▧ Gabriel García
▧ Jorge Guevara
IoT Colombia
http://iotcolombia.wordpress.com
@iotcolombia
Meetup: ioT Colombia