0% encontró este documento útil (0 votos)
32 vistas24 páginas

Programación de Dispositivos IoT

El documento detalla la programación de dispositivos IoT utilizando una MCU y sensores en un entorno de aprendizaje. Incluye ejercicios prácticos sobre la conexión y control de dispositivos mediante Python y JavaScript, así como la configuración de una red para automatizar puertas. Se enfatiza la importancia de la topología y la programación adecuada para el funcionamiento correcto de los dispositivos conectados.

Cargado por

Andres Niño
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas24 páginas

Programación de Dispositivos IoT

El documento detalla la programación de dispositivos IoT utilizando una MCU y sensores en un entorno de aprendizaje. Incluye ejercicios prácticos sobre la conexión y control de dispositivos mediante Python y JavaScript, así como la configuración de una red para automatizar puertas. Se enfatiza la importancia de la topología y la programación adecuada para el funcionamiento correcto de los dispositivos conectados.

Cargado por

Andres Niño
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

Universidad Nacional Abierta y a Distancia

Vicerrectoría Académica y de Investigación

Unidad gestora: Escuela de Ciencias Básicas tecnología e


ingeniería

Programa: Ingeniería de sistemas

Curso: Internet de las Cosas

Código: 202016915

ANEXO 3 - PROGRAMACIÓN DE DISPOSITIVOS IOT PARTE 2

Guía de actividades y rúbrica de evaluación – Tarea 4 Programación


de dispositivos IoT Parte 2

Ejercicios que se deben de Desarrollar en la Tarea 4:

Ejercicio 1 Packet Tracer: sensores y microcontrolador de PT

Imagen SEQ Imagen \* ARABIC 24


Topologia de nuevo ejercicio

1
Nota. Topología de conexión de dispositivos

Este ejercicio es la base para el desarrollo de la tarea final, revise,


practique y busque ejercicios afines.
Una unidad de microcontrolador (MCU) es una pequeña
computadora incorporada a un sistema en un chip (SoC). Contiene
un núcleo de procesador, una memoria y unidades periféricas
programables de entrada/salida. Los microcontroladores están
diseñados para las aplicaciones incorporadas o las aplicaciones que
requieren pocos recursos de computadora. Por otro lado, los
microprocesadores utilizados en las computadoras personales por lo
general se usan para admitir otras aplicaciones genéricas que
requieren más recursos informáticos.

Parte 1: Introducción

La MCU de PT es una placa con un puerto USB, seis puertos de E/S


digital y cuatro puertos de E/S analógica. Los puertos de E/S digital
en la MCU de PT permiten que un usuario conecte accionadores y
sensores digitales. Los puertos de E/S analógicos permiten que un
usuario conecte accionadores y sensores analógicos. En esta
demostración, hay una sola MCU de PT conectada a cuatro sensores
y cuatro accionadores. Los cuatro sensores incluyen un interruptor
digital, un botón alternador digital, un medidor de potencia
analógico y un sensor flexible analógico. Los cuatro accionadores
incluyen una luz, un LED, una sirena y un motor analógico. La MCU
de PT está programada en Python para leer continuamente los
valores del sensor y escribir los accionadores regidos por la lógica
condicional. La relación entre los sensores y los accionadores puede
resumirse de la siguiente manera:
● El interruptor controla la luz

● El pulsador controla el LED

● El potenciómetro controla la sirena

● El sensor flexible controla el motor

Parte 2: Los sensores y la MCU de PT

a. Tómese un momento para analizar la topología. La


MCU se coloca en el centro. Los dispositivos de
entrada (sensores e interruptores) se colocan a la
izquierda y los dispositivos de salida a la derecha.
2
Explore la MCU, los sensores, los interruptores y los
b.
dispositivos de control para abrir las ventanas de
configuración. Tenga en cuenta que los diferentes
dispositivos tienen distintas fichas.
En la ventana MCU, la ficha Programación contiene el código
en ejecución de Python. El código de Python define el
comportamiento del dispositivo.
c. ALT + clic (mantenga presionada la tecla ALT mientras
hace clic en el dispositivo) para interactuar con el
dispositivo.
d. ALT + clic en el interruptor para encender/apagar la luz.
ALT + clic en el pulsador para encender/apagar el LED.
e. ALT + clic (presione y arrastre el medidor de potencia
para controlar el volumen de la sirena).
f. ALT + clic (presione y arrastre el sensor flexible para
controlar la velocidad del motor).
Anote a qué puertos de la MCU se conectan los sensores, los
interruptores y los dispositivos

Parte 3: Programación de la MCU


Agregar el siguiente código en la MCU, creando un archivo tipo Python,
Analícelo. (Este código hace funcionar la simulación, pero debe de
copiar y pegar, pero ajustar la estructura, tener cuidado con los
argumentos – traduzca los argumentos) resalte e identifique las
líneas de código que controlas los pines de la conexión de cada
dispositivo.

Consultar: Que es indentar


from gpio import * # imports all modules in the GPIO library
from time import * # imports all modules in the time library
switchValue = 0 # initialize Switch sensor value global variable to 0
togglePushButtonValue = 0 # initialize Toggle Push Button sensor value global variable to 0
potentiometerValue = 0 # initialize Potentiometer sensor value global variable to 0
flexSensorValue = 0 # initialize Flex Sensor value global variable to 0
def readFromSensors():
global switchValue # declare switchValue as global
global togglePushButtonValue # declare togglePushButtonValue as global
global potentiometerValue # declare potentiometerValue as global

3
global flexSensorValue # declare flexSensorValue as global
switchValue = digitalRead(0) # read Switch sensor value
togglePushButtonValue = digitalRead(1) # read Toggle Push Button sensor value
potentiometerValue = analogRead(A0) # read Potentiometer sensor value
flexSensorValue = analogRead(A1) # read Flex Sensor value

def writeToActuators():
if (switchValue == HIGH): # evaluates to True if the Switch sensor value is digital HIGH,
otherwise false
customWrite(2, 1) # turn on the Light
else:
customWrite(2, 0) # turn off the Light
if (togglePushButtonValue == HIGH): # evaluates to True if the Toggle Push
Button sensor value is digital HIGH, otherwise false
digitalWrite(3, HIGH) # turn on the LED
else:
digitalWrite(3, LOW) # turn off the LED
if (potentiometerValue > 512): # evaluates to True if the Potentiometer is turned at least
half way
customWrite(4, HIGH) # turn on the Siren
else:
customWrite(4, LOW) # turn off the Siren

if (flexSensorValue > 0): # evaluates to True if the Flex Sensor is bent,


otherwise false
analogWrite(5, flexSensorValue) # turn on the motor with speed equal to the Flex
Sensor value
else:
analogWrite(5, 0) # turn off the motor
def main(): # defines the main function
pinMode(0, IN) # sets digital slot 0 (Switch) to input
pinMode(1, IN) # sets digital slot 1 (Toggle Push Button) to input
pinMode(2, OUT) # sets digital slot 2 (Light) to output
pinMode(3, OUT) # sets digital slot 3 (LED) to output
pinMode(4, OUT) # sets digital slot 4 (Siren) to output
pinMode(5, OUT) # sets digital slot 5 (Motor) to output

while True: # loop indefinitely


readFromSensors() # call the readFromSensors function
writeToActuators() # call the writeToActuators function
4
delay(1000) # delay script execution for 1000 ms

if __name__ == "__main__": # Evaluates to True if this module is the script being


executed, otherwise False if this module is being imported into another module
main() # call the main function

Observe el código de programación analícelo y ubique la


conexión o pin usado en el bordad para cada dispositivo, de
esto depende que el circuito funcione bien.

Tabla 1. Identificación de pines

Dispositivo Pin de Conexión Dispositivo Pin de Conexión


D o A (0-9+) D o A (0-9+)

El interruptor Lampara

El pulsador Led

El potenciómetro Sirena

El sensor flexible Motor

En las líneas 1 y 2, todas las clases en las bibliotecas tiempo y gpio se


importan al programa. Esto es importante para brindar acceso a las
funciones de tiempo y entrada/salida de uso general (GPIO).
Registre Pantallazo de Evidencia del Código
Se declaran e inician cuatro variantes globales en las líneas 4, 5, 6 y
7. Estas variables se utilizarán para mantener los valores del sensor.
Se crea la función readFromSensors() (líneas 9 a 18). En primer
lugar, la función prepara las variables del sensor (líneas 10 a 13). La
función readFromSensors() convoca a otras dos funciones,
digitalRead() y analogRead(), para capturar el estado de los
sensores y almacenarlo en las variables adecuadas (líneas 15 a 18).
Tenga en cuenta que digitalRead() y analogRead() toman un número
de pin como parámetro. Registre Pantallazo de Evidencia del
Código

5
Mediante la conexión de sensores específicos en los pines, el programa
puede capturar el estado de los sensores específicos.
Se crea otra función en las líneas 20 a 39: writeToActuators() se
usa para cambiar el estado de los accionadores en función del estado de
los sensores. Registre Pantallazo de Evidencia del Código

En las líneas 21 a 24, el programa prueba los contenidos de la


variable switchValue. Debido a que switchValue almacena el estado
del pin 0 (vea la línea 15), el programa puede decidir si enciende la luz;
si el valor almacenado en switchValue es equivalente a ALTO (se aplica
voltaje o el interruptor está ENCENDIDO), el programa enciende la luz
escribiendo el valor 2 en el accionador 2. Por otro lado, si switchValue
es equivalente a BAJO (no se aplica voltaje o el interruptor está
APAGADO), el programa apaga la luz escribiendo 0 en el accionador 2.
Asimismo, las líneas 26 a 39 prueban y modifican otros accionadores
en función de los sensores de control respectivos. Registre Pantallazo
de Evidencia del Código

Las líneas 41 a 54 definen la función main(). Como lo indica su


nombre, la función main() se ejecuta automáticamente cuando se
enciende la MCU por primera vez. Las líneas 42 a 46 inician los pines;
los pines 0 a 1 se configuran como ENTRADA (líneas 42 y 43) mientras
que los pines 2, 3 y 4 se configuran como SALIDA. Esto es importante
porque los pines de ENTRADA reciben voltaje y los pines de SALIDA
emiten voltaje generado por la MCU. Registre Pantallazo de
Evidencia del Código

Se crea un bucle while infinito en las líneas 48 a 51. Dado que la


condición del bucle simplemente indica true, la MCU ejecutará las líneas
49, 50 y 51 continuamente. Registre Pantallazo de Evidencia del
Código

Ahora Responda as siguientes preguntas:

● Cuando realice las pruebas respectivas, concluya sobre el


ejercicio, y como le daría utilidad en su vida cotidiana.

Desafío práctico de sensores y microcontrolador de PT:

6
A la simulación del ejercicio 1 de la tarea Adicione dos dispositivos a la
tipología actual y explíquela la idea de su funcionamiento o genere una
simulación completamente nueva utilizando otros dispositivos, pero
manteniendo la idea inicial.

Nota no olvidar que cada una de las imágenes que registre debe de
estar nombrada acorde a normas APA.

7
Ejercicio 4 Automatizar Puertas
Para el desarrollo de este ejercicio se debe de seguir cuidadosamente
las instrucciones para el funcionamiento.
Un cliente de un hogar desea revisar desde su computador persona y su
Celular, cuando se abra y cierre el garaje y la puerta. De acuerdo con lo
anterior se tiene la siguiente topología donde se disponen algunos
requerimientos.
Topología (Cada imagen debe de estar arde a normas APA)
Imagen 25.
Topología para automatizar puertas

Nota: ejemplo de puertas administradas mediante dispositivos


Requerimientos:
Se tiene dos tarjetas, la SBC0 funcionando como recolector de
información, la cual envía a la otra tarjeta que será el servidor y la
encargada de tener la aplicación o programación necesaria para poder
visualizar. Para el funcionamiento de la red, es necesario realizar las
siguientes configuraciones en los equipos:
Imagen 26.
Tarjeras SBC0 y la MCU

Nota: Muestra las dos tarjetas requeridas en la simulación.


8
A la board SBC agregue el código JavaScrip (js) en la pestaña
programming, para ello cree el proyecto en New y busca una plantilla
(Templete que dice Emty- JavaScrit) le da el nombre que considera y
registra el código.

var state =0;


var i =0;
var f =0;
var st =0;

function setup(){
pinMode(1,OUTPUT);
IoEClient.setup({
type:"Arduino Detector",
states:[{
name:"State",
type:"bool",
controllable:true
}],
});
}

function loop(){
IoEClient.onInputReceive=function(input){
st=input;
if(f==1) {f=0;}
f=1;
i=0;
};

if (st==1){
Serial.println(1+"i have a wind"+st);
customWrite(0,0);
customWrite(1,2);
}else{
Serial.println(i+"i have a wind"+st);
customWrite(0,1);
customWrite(1,0);
}
if(f==1 && i==5) {st=0; i=0;}
delay(100);
i++
}

9
Agregue un Router inalámbrico se recomienda el WTR300N, será el
encargado de conectarnos, luego agregue un server (Servidor) donde
configurara el server DNS y el Server Iot
En la pestaña Services Seleccione el servicio DNS y configurarlo como
indica la imagen 27.
Imagen 27.
Configure: Servidor DNS

Nota. Corregir Configurar server DNS en services ip 192.168.0.20

10
En la pestaña Desktop configurar de manera estática las direcciones del
servidor como lo indica la imagen 28. Tenga en cuentas estas
direcciones que las utilizara en la configuración de otros dispositivos.
Imagen 28.
Configurar DNS

Nota. Direccionamiento DNS


Una vez haya configurado el servicio DNS active el servicio IoT como se
muestra en la imagen 29.

11
Imagen 29.
Active el servidor

Nota: este servidor solo se activa, las credenciales se crean cuando se


ingrese desde otro dispositivo.

12
Para configurar el router siga las siguientes instrucciones
Imagen 30.
Configure: Router Inalámbrico

Nota: Configuración de la red inalámbrica

13
Imagen 31.
Nombre de la Red Inalámbrica

Nota. Asignación del nombre de la red

Imagen 32.
Seguridad de la red inalámbrica

Nota. Se configura la seguridad de la red inalámbrica

14
Configure: Computador de escritorio
Imagen 33.
Para el PC de escritorio se dejará en la opción DHCP

15
16
Nota. Configurar DHCP del computador de escritorio

Configuración del teléfono celular, tener en cuenta que este se conecta


de manera inalámbrica.

17
Imagen 34.
Configure: Smartphone

Nota. Para la conexión del smartphone, seguir las instrucciones de la


imagen

Imagen 35
Configure Arduino
18
Nota: Se conecta por medio inalambrico, se configura el usuario y
contraseña. Activa el DHCP

19
Imagen 36.
Si el Arduino tiene tarjeta red Lan

| Nota: solo configura el DHCP


1. El arduino que tiene los dispositivos conectados requiere que sea
programado.
2. Configure primero la comunicación entre los dispositvos
conectados al router, cuando ya tenga una comunicación
satisfactoria, programa el arduino para poder conectar los otros
dispositivos.

Conectemos el PC al SBC para abrir las puertas


Para ello ingresa a las configuración del PC y busca al WEB Browser, en
este navegdador registrada la direción IP del servidor DNS o la Dirección
que se registro. Si es la primera vez que ingresa registrese en Sign up
Now donde asignara el usuario admin y la contraseña 1234
Imagen 37.
Conectar al dispositivo SBC

Nota: pantallazo de ingreso a controlar los disposotivos IoT

20
Si la programación y la configuración de cada dispositivo esta vien
podremos visulizar el siguiente pantallazo.

Imagen 38
Iot Server Conectado

Nota: Conexión al servidor IoT para controlar los dispositivos


conectados

Si al conectar al servidos IoT y no se evidencia un pantallazo mo


lo muestra en la imagen 38 debe de verificar dos situaciones.

La primer situación que la board SBC este conectada al servidor


IoT

Imagen 39
Configurar Servidor IoT en SBC

Nota: la board debe de tener configurado el acceso al servidor IoT,


para permitir el control de los dispositivos.

21
Segunda Sutuación que el programa aplicado a la borad sete
corriendo RUN.

Si ya esta configurada la conexión de la board con el Arduino y no


permite visualizar el pantallazo de la imagen 38, revise que el
codigoque sregistro en la borad SBC esre corriendo “Run”

Imagen 40
Activar Run en la SBC

Nota: Actar Run para que el programa se active y permita la


coneción de la SBC con el servidot IoT.

Por ultimo queda ralizar puebas de coneción como se muestra en


la imagen 41.

22
Imagen 41
Conexiones al roter y pruebas de conexión e PDU

Nota. Topologia de la conexión al router inalambrico

23
Reto Final de tipo Autónomo

Teniendo en cuenta las dos simulaciones realizadas se solicita hacer la


simulación de reto que consiste en conectar varios dispositivos de una
casa.

Automatizar los siguientes dispositivos.

Genere una simulación donde permita controlar los siguientes


dispositivos en una casa.

1. Una ventana
2. Una Puerta
3. Una Lampara (O sistemas de Luz)
4. Por último, un dispositivo de su agrado. Cámara, ventilador, cafetera,
etc.

La simulación me debe de permitir ingresar al pc o al celular y poder


controlar cualquiera de los dispositivos y mostrara un pantallazo como la
imagen 38. Y un botón por cada dispositivo.

24

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy