Está en la página 1de 96

Control, adquisicin y

monitoreo con Arduino y


Visual Basic .net
MTRO. RUBEN OLIVA RAMOS
Captulo 9: Desarrollo de Proyectos
del Internet de las Cosas basados en
el Shield Ethernet de Arduino
Aplicaciones de
automatizacin con
Arduino
Mundo actual
Internet
Automviles
Casas inteligentes
Robots
Seguridad
Arduino
Arduino es una plataforma de prototipos electrnica de cdigo abierto
(open source) basada en hardware y software flexibles y fciles de
usar.

Est pensado e inspirado en artistas, diseadores, y estudiantes de


computacin o robtica y para cualquier interesado en crear objetos o
entornos interactivo, o simplemente por hobby.

Arduino consta de una placa principal de componentes elctricos,


donde se encuentran conectados los controladores principales que
gestionan los dems complementos y circuitos ensamblados en la
misma
Arduino
Adems, requiere de un lenguaje de programacin para poder ser
utilizado y, como su nombre lo dice, programado y configurarlo a
nuestra necesidad, por lo que se puede decir que Arduino es una
herramienta "completa" en cuanto a las herramientas principales nos
referimos, ya que slo debemos instalar y configurar con el lenguaje de
programacin de esta placa los componentes elctricos que
queramos para realizar el proyecto que tenemos en mente, hacindola
una herramienta no slo de creacin, sino tambin de aprendizaje en el
mbito del diseo de sistemas electrnicos-automticos y, adems, fcil
de utilizar
Que es Arduino?
Entradas y salidas digitales

Microcontrolador

Entradas analgicas
Alimentacin de voltaje
Estructura
Sensores:
Actuadores
Relevador:
Modulo de relevadores
Aplicacin domtica para
casa
Control motor industrial
Mundo conectado (mdulos
de red) para Arduino
Wifi shield
GSM/GPRS shield
GPS shield
Internet of things (iot) internet
de las cosas
Aplicaciones iot
Monitoreo
remoto
Tecnologa GSM
SHIELD GSM PARA ARDUINO
GSM-SMS

Global System for Mobile Comminications (GSM)

Short Message Service (SMS)


Shield GSM para Arduino
Introduccin:
El telfono celular es considerado el artculo de uso ms popular
gracias a su versatilidad.

Actualmente, se emplea el concepto de Smart Phone para clasificar


a los Telfonos Inteligentes, que no solo se emplean para hacer
llamadas,sino para diversas aplicaciones,similares a una PC.

Actualmente, se tienen las tecnologas GSM y GPRS para poder


transmitir datos por la red celular.
Un mdem GSM (Global System for Mobile Communications) es un
dispositivo inalmbrico que funciona en la red GSM. Un mdem GSM
inalmbrico se comporta como un mdem dial- up telefnico.

La principal diferencia entre ellos, es que un mdem dial-up enva y


recibe datos a travs de una lnea telefnica fija, mientras que un
mdeminalmbrico enva y recibe datos a travs de las ondas
de radio.
El mdem GSM puede verse como un telfono celular al cual se le ha
adaptado una interfaz serial RS232, con el objeto de ser manejado a
travs de computadora.

A travs del mdem GSM puede realizarse enlaces para trasmisin de


voz, fax, datos, comunicacin por internet y mensajes SMS (Short
Message Service).
El mdem GSM puede ser operado a travs de un microcontrolador,
por ejemplo Arduino y de esta manera ser incorporado a sistemas de
control remoto supervisorio automtico.

En una segunda aplicacin puede conectarse a una computadora PC


Laptop mediante un cable serial RS232 o un cable USB-Serial y usarse
software comercial propietario para el envo programado de mensajes
SMS mviles.

Al igual que un telfono mvil celular, un mdem GSM requiere una


tarjeta SIM de un operador de telefona mvil y por tanto cuentan con un
receptculo para insertar el chip SIM.
Para controlar a los mdems GSM, ya sea desde la
computadora PC desde un microcontrolador, se utilizan los
comandos AT.

Adems de los comandos AT estndar, utilizados en el pasado para los


mdems dial-up, los mdems GSM cuenta con un amplio conjunto de
comandos AT. Estos comandos AT extendidos estn definidos en las
normas GSM.

Con los comandos AT extendidos, se pueden hacer cosas como:


Deteccin automtica del enlace del mdem a la red GSM.
Envo y recepcin de mensajes SMS (Short Message Service).
Seguimiento de la intensidad de la seal en la red GSM.
Marcado, o recepcin de llamadas de audio ya sea a ( de)
telfonos mviles locales.
Lectura, escritura y bsqueda de datos del directorio de
contactos.
El nmero de mensajes SMS que pueden ser procesados por un mdem
GSM por minuto de alrededor de seis a diez mensajes por minuto.

Un mdem GPRS (General Packet Radio Service) es un mdem GSM,


que, adems, es compatible con la tecnologa GPRS para la transmisin de
datos. Es una tecnologa de conmutacin de paquetes que es una extensin
de GSM.

Una ventaja de la tecnologa GPRS sobre GSM es que tiene una


velocidad de trasmisin de datos de 115,000 kbps. Esto es mucho ms
rpido que el SMS ordinario a travs de GSM, cuya velocidad de
transmisin de SMS es de 6 a 10 mensajes SMS por minuto.

Con GPRS se puede trasmitir hasta 30 mensajes SMS por minuto.


GPRS se puede utilizar como portador de mensajes SMS, para el
envo de archivos largos como medio de comunicacin para
conexin a la red internet.
Como operan los comandos AT?
AT = ATention
Debido a la simplicidad de su protocolo de comunicaciones, los mdems
GSM externos no requieren de ningn driver para la conexin a la
computadora PC a un microcontrolador.
Una vez conectado a travs de un cable serial un cable de interfaz USB-
Serial (el cable s requiere de un driver para funcionar), el mdem puede
controlarse enviando los comandos AT, que no son otra cosa que cadenas
(strings) de cdigos ASCII. sto permite realizar pruebas preliminares
usando cualquier programa emulador de terminal, como lo es por ejemplo
el software Hyperterminal que se incluye como parte de los
sistemas operativos Windows.
Controlar el mdem GSM a travs de un microcontrolador desde la PC
desde un programa escrito por ejemplo en C, es igualmente sencillo, dada la
facilidad del lenguaje de enviar cadenas de cdigos ASCII a travs de
funciones simples como sera Serial.print".
Comunicacin GSM

Arduino GSM Shield

Actuadores Sensores
Explicacin del Shield GSM
Arduino
Caractersticas:
Quad-Band 850 / 900/ 1800 / 1900 MHz - would work on GSM networks in all countries across the
world.
GPRS multi-slot class 10/8
GPRS mobile station class B
Compliant to GSM phase 2/2+
Class 4 (2 W @ 850 / 900 MHz)
Class 1 (1 W @ 1800 / 1900MHz)
Control via AT commands - Standard Commands: GSM 07.07 & 07.05 | Enhanced
Commands: SIMCOM AT Commands.
Short Message Service - so that you can send small amounts of data over the network
(ASCII or raw hexadecimal).
Embedded TCP/UDP stack - allows you to upload data to a web server.
RTC supported.
Selectable serial port.
Speaker and Headphone jacks
Low power consumption - 1.5mA(sleep mode)
Industrial Temperature Range - -40C to +85 C
Diagrama:
Configuracin de
comunicacin serial
Arduino Wifi Shield
Direccion donde vienen
tutoriales de ethernet shield

http://startingelectronics.com/tutorials/arduino/ethernet-shield-web-
server-tutorial/
Ejemplo bsico wifii shield
http://www.openhomeautomation.net/monitor-your-home-remotely-
using-the-arduino-wifi-shield/
Monitor your home remotely
using the Arduino WiFi Shield
Connect With WPA
/*

This example connects to an unencrypted Wifi network.

Then it prints the MAC address of the Wifi shield,

the IP address obtained, and other network details.

Circuit:

* WiFi shield attached

created 13 July 2010

by dlf (Metodo2 srl)

modified 31 May 2012

by Tom Igoe

*/

#include <WiFi.h>

char ssid[] = "yourNetwork"; // your network SSID (name)

char pass[] = "secretPassword"; // your network password

int status = WL_IDLE_STATUS; // the Wifi radio's status


void setup() {

//Initialize serial and wait for port to open:

Serial.begin(9600);

while (!Serial) {

; // wait for serial port to connect. Needed for Leonardo only

// check for the presence of the shield:

if (WiFi.status() == WL_NO_SHIELD) {

Serial.println("WiFi shield not present");

// don't continue:

while(true);

}
// attempt to connect to Wifi network:

while ( status != WL_CONNECTED) {

Serial.print("Attempting to connect to WPA SSID: ");

Serial.println(ssid);

// Connect to WPA/WPA2 network:

status = WiFi.begin(ssid, pass);

// wait 10 seconds for connection:

delay(10000);

// you're connected now, so print out the data:

Serial.print("You're connected to the network");

printCurrentNet();

printWifiData();

}
void loop() {
// check the network connection once every 10 seconds:
delay(10000);
printCurrentNet();
}

void printWifiData() {
// print your WiFi shield's IP address:
IPAddress ip = WiFi.localIP();
Serial.print("IP Address: ");
Serial.println(ip);
Serial.println(ip);
// print your MAC address:

byte mac[6];

WiFi.macAddress(mac);

Serial.print("MAC address: ");

Serial.print(mac[5],HEX);

Serial.print(":");

Serial.print(mac[4],HEX);

Serial.print(":");

Serial.print(mac[3],HEX);

Serial.print(":");

Serial.print(mac[2],HEX);

Serial.print(":");

Serial.print(mac[1],HEX);

Serial.print(":");

Serial.println(mac[0],HEX);

}
void printCurrentNet() {

// print the SSID of the network you're attached to:

Serial.print("SSID: ");

Serial.println(WiFi.SSID());

// print the MAC address of the router you're attached to:

byte bssid[6];

WiFi.BSSID(bssid);

Serial.print("BSSID: ");

Serial.print(bssid[5],HEX);

Serial.print(":");

Serial.print(bssid[4],HEX);

Serial.print(":");

Serial.print(bssid[3],HEX);

Serial.print(":");

Serial.print(bssid[2],HEX);

Serial.print(":");

Serial.print(bssid[1],HEX);

Serial.print(":");

Serial.println(bssid[0],HEX);
// print the received signal strength:
long rssi = WiFi.RSSI();
Serial.print("signal strength (RSSI):");
Serial.println(rssi);

// print the encryption type:


byte encryption = WiFi.encryptionType();
Serial.print("Encryption Type:");
Serial.println(encryption,HEX);
Serial.println();
}
Wifii server configurado como
servidor web
Codigo

http://arduino.cc/en/Tutorial/WiFiWebServer
Comunicacin serial
1
2
// Push button pin
int pushButton = 2;
3
4 // Setup
5 void setup() {
6 Serial.begin(9600);
7 }
8
9 // Main loop
1 void loop() {
0
1 // read the pin number 2
1 int buttonState = digitalRead(pushButton);
1
2 // print out the state of the button
1 Serial.println(buttonState);
3 delay(1);
1 }
4
1
5
1
6
1
7
1
8
Aplicaciones en la nube:
arduino con wifii shield
https://xively.com/dev/tutorials/arduino_wi-fi/
Internet of things
http://www.buildinginternetofthings.com/list-of-projects/
Arduino feeding
xively.com with
temperature from
DS18B20
Internet of Things
Connect a DS18B20 temperature sensor to an arduino

Read from the sensor using the 1-wire interface

Send that data to xively.com directly from the arduino

View the resulting graph on the internet


Materiales:
Power supply (it can be powered via the USB port)
DS18B20 temperature sensor
RJ45 network cable connected between the arduino and your router
Comunicacin entre Arduinos
Redes entre dispositivos
El arduino conectado a otro
dispositivo en la red

Se debe de crear un programa en cada dispositivo.

Cliente se conecta al servidor a travs de su puerto y la direccin IP del servidor.

En el servidor se crea el puerto y se reciben las instrucciones enva das por el cliente.
Arquitectura:
Arduino configurado como cliente
Enva datos al servidor A TRAVES DE Arduino configurado como servidor
UN TECLADO CONECTADO AL recibe datos del cliente
ARDUINO

El servidor recibe datos para


Si se configura como cliente puede ACTIVAR las salidas conectadas al
monitorear los datos enviados por el Arduino Y PUEDE ENVIAR LOS
servidor (temperatura y humedad por VALORES DE UN SENSOR
ejemplo)
Conectando Arduino a un
Servidor de base de datos:
Direccin IP del Arduino:
IPAddress ip(192,168,1,50);

Direccin del Servidor de BD


IPAddress server(192,168,1,100);

Clase Ethernet Client


EthernetClient client;
Conectndose con el servidor:
Conectndose con el servidor:

if (client.connect(server, 80)) {
if (client.connected()) {
Serial.println("connected");
Peticin GET para enviar los datos
al servidor o dispositivo servidor:

client.println("GET /datalogger/datalogger.php?temp=" + temp + "&hum=" + hum + " HTTP/1.1");

client.println("Host: 192.168.1.100");

client.println("Connection: close");

client.println();
Respuesta del servidor:

while (client.connected()) {
while (client.available()) {
char c = client.read();
Serial.print(c);
}
}
Cuando el cliente se
desconecta del servidor:

if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}
Tiempo entre cada envo

delay(1000);
Lectura de valores en el
servidor WEB:

$temperature = intval($_GET["temp"]);
$humidity = intval($_GET["hum"]);
Prueba Direccin URL:
para el envi de los datos

http://localhost:85/datalogger1/datalogger1.php?temp=100&
hum=56
Conectando Arduino a un servidor
WEB de Base de Datos MySQL
XAAMP FOR WINDOWS
ETHERNET SHIELD
Conectando Arduino a un servidor de Datos el Arduino se conecta al
servidor con XAAMP conectados en la misma red

En este equipo se El Arduino se configura


configura el PORT como cliente se le asigna
FORWARDING PARA una direccin IP en la red
ACCESO DESDE EL se conecta al servidor
EXTERIOR AL SERVIDOR
WEB puerto 80

Conectados a Internet El servidor de base de


http://187.205.104.45/consulta.php datos XAAMP se le
Se pueden consultar los datos guardados asigna una direccin IP
en la misma red donde
se encuentra el
Arduino y recibe los
datos
A travs de un archivo
en PHP se leen los
valores y se insertan
en la base de datos
Qu es XAAMP?
Es un paquete de instalacin para Windows y MAC que
contiene un servidor WEB (apache), una base de datos
MYSQL y el lenguaje de pginas WEB PHP.

Todos en conjunto forman XAAMP y forman una


herramienta para desarrollo de proyectos WEB con bases de
datos.
Implementando la base de datos en el
servidor mediante XAAMP
XAMPP Apache + MySQL + PHP
+ Perl
XAMPP es el entorno ms popular de desarrollo con PHP

XAMPP es una distribucin de Apache completamente gratuita y fcil de


instalar que contiene MySQL, PHP y Perl.

El paquete de instalacin de XAMPP ha sido diseado para ser


increblemente fcil de instalar y usar.
Ventajas de utilizar XAAMP

El entorno de desarrollo PHP ms popular.


Para Windows, Mac OS X y Linux
Fcil instalacin y configuracin.
Completamente gratuito
Instalacin de
XAAMP
Seleccionar el ejecutable de
xaamp
Pagina principal
Seleccionar todas las opciones
de la instalacin
Hacer click en siguiente
Hacer click en siguiente
Hacer click en siguiente
Esperar en el proceso de
instalacin:
Termin la instalacin hacer click en
finish
Cuando se termina la instalacin se crea en
la unidad C una carpeta que se llama
xaamp
adentro de esta carpeta crea una carpeta
que se llama hdocs dentro de la misma se
copia la pagina WEB
Siguiente paso ver tutorial para configurar el
servidor con XAAMP

También podría gustarte