Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ARDUINO
Recientemente ha aparecido la expresin IOT, Internet of things. Este
acrnimo hace referencia al Internet de las Cosas, esto es que cualquier
aparato electrnico se pueda intercomunicar a travs de la red de Internet,
o bien que paulatinamente cualquier objeto que antes no tena
componentes electrnicos, los tenga, con finalidad de obtener datos y
nuevas relaciones de comunicacin entre objetos-humanos y as nuevos
conocimientos que antes no era posible. Por ejemplo imaginemos que
tenemos un sensor en la cama que detecta nuestros estados de sueo y
cuando detecta el momento idneo de despertarnos sube las persianas,
prepara la cafetera para que tengamos el caf a punto, enciende los
radiadores para que disfrutemos de una agradable temperatura al salir de la
cama, etc
Este sueo es el que representa el IOT, y para hacerse realidad necesitamos
que nuestros aparatos se interconecten con una electrnica preparada para
conectarse a Internet. A da de hoy, el exponente ms evidente para
desarrollar y prototipar este tipo de interconexin lo encontramos en
el hardware Arduino para programar entradas (sensores de temperatura,
humedad, ritmo cardiaco, etc) y salidas (relays, actuadores, leds, etc)
A continuacin dar a conocer unos dispositivos las cuales juntos con el uso
del hardware Arduino, nos permitir realizar la comunicacin a internet que
deseamos.
Mdulo ENC28J60
Arduino Uno
VCC
Pin 3.3V
GND
Pin GND
SS (CS)
Pin 10
MOSI (SI)
Pin 11
MISO (SO)
Pin 12
SCK
Pin 13
Shield,
pero
para
aplicaciones
bsicas
es
muy
til.
Hay
que
resaltar que las conexiones son vlidas para el Arduino Uno o placas
basadas en el Atmega328 (Arduino mini pro, Arduino nano, etc) pues el
Mdulo ENC28J60 usa la comunicacin SPI, por lo que si se trabaja con el
Mega, se tiene que conectarse a sus pines SPI correspondientes.
PROGRAMA PARA EL MDULO ETHERNET ENC28J60
Para usar este mdulo es necesario descargar e importar a nuestro IDE de
Arduino la librera Ethercard.
#include <EtherCard.h>
Serial.println();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
static word homePage() {
BufferFiller bfill = ether.tcpOffset();
bfill.emit_p(PSTR("HTTP/1.0 200 OKrn"
"Content-Type: text/htmlrnPragma: no-cachernRefresh: 5rnrn"
"<html><head><title>Naylamp Mechatronics</title></head>"
"<body>"
"<div style='text-align:center;'>"
"<h1>Test del Mdulo ENC28J60</h1>"
"Tiempo transcurrido : $L segundos"
"<br /><br />Estado del LED: $S<br />"
"<a href="/?status=ON"><input type="button" value="ON"></a>"
"<a href="/?status=OFF"><input type="button" value="OFF"></a>"
"<br /><br />Potencimetro: $D (resolucin de 1024)"
"<br /><br />"
"<a
href='http://www.naylampmechatronics.com/'>www.naylampmechatronics.c
om</a >"
"</body></html>"
),millis()/1000,EstadoLed,analogRead(0));
return bfill.position();
}
void loop() {
word len = ether.packetReceive();
word pos = ether.packetLoop(len);
if(pos) {
if(strstr((char *)Ethernet::buffer + pos, "GET /?status=ON") != 0) {
Serial.println("Comando ON recivido");
digitalWrite(ledPin, HIGH);
EstadoLed = "ON";
}
Debemos buscar en los mens del Router algo tipo NAT, Virtual
Servers o Port Forwarding. El nombre vara en funcin del Router pero
buscamos modificar los puertos as que nos guiaremos por la palabra
Port.
Una vez
ests en men de puertos de tu Router, activa la opcin de Port
Forwarding y, para la IP local que le diste a tu Arduino Ethernet
Shield, abre un puerto (tpicamente el puerto 80 aunque puedes abrir
otros como el puerto 5400). De nuevo no te olvides de guardar los
cambios.
en
Se
de
en
Dejar Tu IP Dinmica
CDIGO DE PROGRAMACIN
#include <SPI.h>
#include <Ethernet.h>
}
client.println(</html>);
break;
}
if (c == \n) {
El mdulo
ESP8266
WiFi
es un SOC
autocontenida con la pila integrada protocolo TCP / IP que puede dar acceso
a cualquier microcontrolador a su red WiFi. El ESP8266 es capaz de acoger
ya sea una aplicacin o la descarga de todas las funciones de red Wi-Fi
desde otro procesador de aplicaciones. Cada mdulo ESP8266 viene preprogramado con un conjunto de firmware con comando AT, es decir, slo
tiene que conectar esto a su dispositivo Arduino y obtener
aproximadamente la misma cantidad de WiFi-ability como WiFi Shield ofrece.
El mdulo ESP8266 es barato a comparacin del Ethernet Shield y a la vez
muy parecido a los mdulos Bluetooth y que al igual que ellos incluye toda
la electrnica necesaria para la comunicacin de Radio Frecuencia en la
banda WFI, as como la pila TCPIP y que se comunica con nosotros a travs
de un puerto serie. De hecho, exactamente igual que los modos HC-06 y HC05 se gobierna mediante comandos AT.
Este mdulo tiene una potente capacidad suficiente a bordo de
procesamiento y almacenamiento que le permite integrarse con los
sensores y dispositivos especficos de la aplicacin a travs de sus GPIO con
un desarrollo mnimo por adelantado y la carga mnima durante el tiempo
de ejecucin. Su alto grado de integracin en el chip permite la circuitera
externa mnima, incluido el mdulo front-end, est diseado para ocupar el
mnimo rea de PCB. El ESP8266 apoya APSD para aplicaciones VoIP y las
interfaces de co-Existance Bluetooth, contiene un RF auto-calibrado que
permite que funcione en todas las condiciones, y no requiere de partes
externas de RF.
El mdulo de ESP8266 trabaja hasta con 3.3 V.
PROGRAMACIN EN ARDUINO
Los mdulos ESP se suele programar usando cdigos AT pero gracias a que
en su interior cuenta con un microcontrolador de 32 bits y capaz de correr
hasta 160 MHz, tenemos un potente dispositivo de INTERNET DE LAS
COSAS. Existe un proyecto llevado a cabo por el ruso Ivan Grokhotkov que
est explotando todos los beneficios de este microcontrolador, los cuales
podemos ver en la pgina: https://github.com/esp8266/Arduino. El Beneficio
principal es que podemos programar los ESP como si fuera un arduino,
utilizando unas libreras las cuales encontramos en dicha pgina
CDIGO DE PROGRAMACIN
#include <SoftwareSerial.h>
NodeMCU Arduino
Recientemente se ha desarrollado el
plugin
ESP2866
para
el IDE
Arduino, por lo que podemos utilizarlo
ahora
tambin
para
programar
el NodeMCUdesde el IDE de Arduino.
En lugar de tener que aprender a programar el mdulo en LUA, ahorrarnos
tiempo y podemos directamente programar con l usando el C que
utilizamos en nuestro IDE de Arduino.
Ventajas del plugin del ESP2866 para programar el NodeMCU:
1. Se puede desarrollar con el mismo IDE que ya conocemos.
2. Han hecho un Cross compiler, de forma que prcticamente utilizas los
mismos comandos que utilizas con Arduino, con lo que te ahorras
aprender nada nuevo.
3. Dependiendo del modelo de ESP8266 que tengas, dispones de ms o
menos pines disponibles con PWM y otras cosas ms como I2C y SPI,
pero para el tpico modelo ESP8266-01 solo tienes dos pines
disponibles GPIO0 y GPIO2, pera ya hablaremos que hay otros
modelos con todos los pines disponibles
4. Es decir, que puedes programar el procesador de tu ESP8266
exactamente como si fuera un Arduino con los mismos comandos, y
en lo que se refiere a la WIFI, ya puedes olvidarte de los comandos
AT, porque incluye una serie de libreras, que imitan la librera WIFI de
Arduino con lo que se pueden trasplantar muchos programas.
NodeMcu es una iniciativa Open Source de Espressif systems para el
desarrollo de un modelo sencillo de integrar la IOT en donde haga falta. Para
ello desarrollan modelos de hardware y software que facilite el desarrollo de
programas y aplicaciones basados en WIFI.
Una ventaja con respecto a otros mdulos que integran el ESP2866 es que
todos sus pines estn disponibles en el exterior, en un montaje que se
puede colocar en una protoboard y adems incluye un conector mini
USB para programar el chip interno y comunicarse con el PC si es necesario,
con lo que nos evitamos el adaptador FTDI a USB que siempre es engorroso.