0% encontró este documento útil (0 votos)
65 vistas9 páginas

Informe 3-4

Este documento describe la implementación de un sistema de control del estado del clima en diferentes ciudades de Colombia utilizando Raspberry Pi, Python y la plataforma Thingspeak. Se crearon códigos en Python para monitorear la temperatura, humedad y otras condiciones climáticas y enviar los datos a Thingspeak mediante el protocolo HTTP. Adicionalmente, el código envía alertas por correo electrónico utilizando SMTP cuando se superan ciertos umbrales de temperatura.

Cargado por

michaellopezla
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)
65 vistas9 páginas

Informe 3-4

Este documento describe la implementación de un sistema de control del estado del clima en diferentes ciudades de Colombia utilizando Raspberry Pi, Python y la plataforma Thingspeak. Se crearon códigos en Python para monitorear la temperatura, humedad y otras condiciones climáticas y enviar los datos a Thingspeak mediante el protocolo HTTP. Adicionalmente, el código envía alertas por correo electrónico utilizando SMTP cuando se superan ciertos umbrales de temperatura.

Cargado por

michaellopezla
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/ 9

1

Laboratorio III y IV
Sistemas embebidos y sensores (07 de julio de 2020)
Kelly Johana. Castro Avelino, Michael Stiven López Amaya, Ronald Palacios Palacios (Internet de las cosas - Unipanamericana
Fundación Universitaria Panamericana)

Resumen——Raspberry: Es un ordenador de placa simple, de


bajo costo y con un tamaño compacto, del porte de una tarjeta
de crédito, puede ser conectada a un monitor de computador o
un TV, y usarse con un mouse y teclado estándar. Es capaz de
hacer la mayoría de las tareas típicas de un computador de II. OBJETIVOS
escritorio, desde navegar en internet, reproducir videos en alta
[1] Aprender a programar por medio de código en Thonny
resolución, manipular documentos de ofimática, hasta
Python con el fin de realizar un sistema de control del
reproducir juegos.
estado del clima de las ciudades del país, sobre una
máquina virtual con raspberry
Python es un lenguaje de programación independiente de
plataforma y orientado a objetos, preparado para realizar [2] Monitorizar desde plataforma thingspeak los datos que nos
cualquier tipo de programa, desde aplicaciones Windows a arroja el sistema de control desde la simulación en
servidores de red o incluso, páginas web. Es un lenguaje raspberry
interpretado, lo que significa que no se necesita compilar el [3] Observar el proceso de alertas que arroja la simulación
código fuente para poder ejecutarlo. realizada por medio de correo electrónico configurado con
código por medio del protocolo SMTP

Palabras clave—— Compilar, Ordenador, Placa,


Programación, Thingspeak
III. DESARROLLO
SMTP (Protocolo para Transferencia Simple de Correo) es un
protocolo de comunicación que permite el envío de correos
electrónicos en internet. Montaje de máquina virtual con Raspberry

Simulación Estado del clima de la ciudad número 1 Cartagena


Palabras clave—— Transferencia, protocolo, comunicación

I. INTRODUCCION

A continuación, se realizará la implementación de una máquina


virtual donde se instalará el escritorio de Raspberry con el fin
de realizar simulaciones y configuración bajo código utilizando
un programador como thonny Python. Usando un código de
programación diseñado por nosotros se realizará la
implementación de un control de temperatura en diferentes
ciudades del país

Imagen 1 Montaje máquina virtual en VirtualBox


Por otra parte, haciendo uso del protocolo de SMTP se
implementará un servicio de envió y recibido de correos sobre
las alertas de temperatura de un datacenter. Este iniciará desde
el código programado en Python, enviando asi mismo mensajes
a la plataforma openweathermap, llegando a una cuenta de
correo creada por nosotros, donde nos informará la temperatura
del datacenter.
2

Imagen 2 Se realiza la instalación del escritorio de raspberry

Imagen 5 Se valida los datos que arroja la simulación en


thingspeakde los primeros 4 canales

Imagen 3 Se realiza implementación del primer codigo para el Imagen 6 Se valida los datos que arroja la simulación en
control de la primera ciudad thingspeakde de los otros 4 canales

Montaje 2
Código de implementación:

/*importar clases necesarias*/


import math

import ssl

import sys

import time

import urllib.request

import random

import requests
Imagen 4 Compilación del código para revisar su
funcionamiento location="Bogotá"

api_key="60a56cabb26eba0e4b4a40e653f58262" /*key
generado por OpenWeather*/
3

#lat=4.6209279 print(f.read())

#lon=-74.0742169 print(main_url)

url = "https://api.openweathermap.org/data/2.5/weather? f.close()


q={}&units=metric&appid={}".format(location, api_key)
time.sleep(25)
#url="https://api.openweathermap.org/data/2.5/weather?
lat={}&lon={}&units=metric&appid={}".format(lat,lon,api_k
ey)

#sensor=Adafruit_DHT.DHT11

#Cambiar API_KEY por la clave generada en la plataforma

#pin=2

baseUrl="https://api.thingspeak.com/update?
api_key=TZ9LI1Z9QAFSK237" /*Key generado
ThingSpeak*/

while True:

#hum ,temp =Adafruit_DHT.read_retry(sensor,pin)


Imagen 7: compilación de código en Thonny Phyton IDE.
#hum,temp=round(10*random.random()),round(20*random.ra
ndom())

r = requests.get(url) #traer datos

info=r.json()

print(info)

thermal_sens=info['main']['feels_like']

temp=info['main']['temp']

hum=info['main']['humidity']

velocidad_viento=info['wind']['speed']

temp_min=info['main']['temp_min']

clouds=info['clouds']['all']

timezone=info['timezone']

deg=info['wind']['deg']

main_url=baseUrl+"&field1=%s&field2=%s&field3=
%s&field4=%s&field5=%s&field6=%s&field7=%s&field8=
%s"%(temp, hum, thermal_sens, velocidad_viento, temp_min,
clouds, timezone, deg)#enviar datos

f=urllib.request.urlopen(main_url)#enviar datos
4
5

#sensor=Adafruit_DHT.DHT11
#Cambiar API_KEY por la clave generada en la plataforma
#pin=2

baseUrl="https://api.thingspeak.com/update?
api_key=UWNHNZBG79QACF52"

while True:
#hum ,temp =Adafruit_DHT.read_retry(sensor,pin)

#hum,temp=round(10*random.random()),round(20*random.ran
dom())
r = requests.get(url) #traer datos

info=r.json()
print(info)
temp=info['main']['temp']
hum=info['main']['humidity']
thermal_sens=info['main']['feels_like']
velocidad_viento=info['wind']['speed']
temp_min=info['main']['temp_min']
Montaje 3 clouds=info['clouds']['all']
timezone=info['timezone']
Simulación estado de clima y condiciones atmosféricas ciudad deg=info['wind']['deg']
Pereira
main_url=baseUrl+"&field1=%s&field2=%s&field3=
Montaje de máquina virtual sobre VMware %s&field4=%s&field5=%s&field6=%s&field7=%s&field8=
%s"%
(temp,hum,thermal_sens,velocidad_viento,temp_min,clouds,tim
ezone,deg)
f=urllib.request.urlopen(main_url)#enviar datos

print(f.read())
print(main_url)
f.close()
time.sleep(25)

Montaje de código sobre VM

Código de implementación cuidad, Pereira

#import Adafruit_DHT
import math
import ssl
import sys
import time
import urllib.request
import random
import requests
location="Pereira"
api_key="93662a4c0ca66cc303e49619edb072b6"
#lat=4.6209279
#lon=-74.0742169
url = "https://api.openweathermap.org/data/2.5/weather?
q={}&units=metric&appid={}".format(location, api_key)
#url="https://api.openweathermap.org/data/2.5/weather?
lat={}&lon={}&units=metric&appid={}".format(lat,lon,api_k
ey)
6

Ejecución de Código

Resultados de la ejecución en Thingspeak


7

IV. ACTIVIDAD 2

En esta segunda parte implementaremos un código el cual nos


enviara notificaciones vía correo electrónico según el intervalo
de tiempo que configuremos para esto haremos uso de las
estructuras de control (while, if , else) ademas usaremos las
siguientes herramientas:

1. ThingSpeak: Es una plataforma de IoT la cual nos


permite recoger y almacenar datos de sensores en la
nube.
2. OpenWeather: Servicio en línea que proporciona datos
y pronósticos meteorológicos.
3. Gmail: Servidor de correo electrónico.

Código Phyton con las instrucciones del programa:

import smtplib

import time

import math

import ssl

import sys

import time

import urllib.request

import random

import requests

from email.mime.text import MIMEText

location="Bogotá"

api_key="494454abf9856d466122946a472c7205"

#lat=4.6209279
8

server.starttls()
#lon=-74.0742169
server.login('[email protected]','12345678IOT')
url = "https://api.openweathermap.org/data/2.5/weather?
q={}&units=metric&appid={}".format(location, api_key) msg['Subject']="Notificaciones data center"

#url="https://api.openweathermap.org/data/2.5/weather?
lat={}&lon={}&units=metric&appid={}".format(lat,lon,api_k server.sendmail("[email protected]","internetiot1@g
ey) mail.com",msg.as_string())

#sensor=Adafruit_DHT.DHT11 print("Email enviado")

#Cambiar API_KEY por la clave generada en la plataforma server.quit()

#pin=2 time.sleep(60)

baseUrl="https://api.thingspeak.com/update?
api_key=99PGZGZSIXAXM3I2" Con este código buscamos controlar la temperatura que se
presenta dentro de un centro de datos (data center), lo primero
while True: que hacemos es importar las librerías necesarias para poder
recopilar la información que necesitamos, enseguida ponemos
r = requests.get(url) #traer datos una condición la cual nos enviara una notificación a un correo
electrónico configurado alertándonos sobre la temperatura en la
info=r.json() que se encuentra el Datacenter, de esta firma podemos estar
atentos a cualquier incidencia que se nos presente en este.
print(info)

thermal_sens=info['main']['feels_like']

main_url=baseUrl+"&field1=%s"%(thermal_sens)#enviar
datos

f=urllib.request.urlopen(main_url)#enviar datos

if thermal_sens<17:

print("La temperatura esta por debajo de la recomendada,


enviando alerta....") Imagen: visualización de notificaciones recibidas, según las
condiciones de temperatura del Datacenter.
msg=MIMEText("Revisar temperatura de data center ")

if thermal_sens>21: V. CONCLUSIONES

print("La temperatura esta por encima de la recomendada, Podemos concluir de este taller que las tecnologías e
enviando alerta....") implementaciones basadas en IoT son de gran relevancia
actualmente debido a la cantidad de soluciones que podemos
msg=MIMEText("Temperatura data center muy alta, por sacar de ella, tanto para poder monitorear recursos, como para
favor revise ") tener el control de todas las terminales que integremos a la
solución en sí, como ejemplo estas dos implementaciones son de
else: gran importancia debido a que surge la necesidad de tener el
control centralizado para verificar las condiciones de un lugar o
print("La temperatura es la adecuada, enviando email de de un territorio para saber cuándo se presenta una novedad y
alerta...") poder actuar eficazmente.

msg=MIMEText("Temperatura data center estable ")

server=smtplib.SMTP('smtp.gmail.com',587)
VI. REFERENCIAS

[1] https://raspberrypi.cl/que-es-raspberry/

[2] https://desarrolloweb.com/articulos/1325.php

[3] https://blog.mailrelay.com/es/2017/04/25/que-es-el-
smtp
[4] https://aprendiendoarduino.wordpress.com/2018/11/2
3/thingspeak/

También podría gustarte