0% encontró este documento útil (0 votos)
181 vistas54 páginas

NodeMCU PDF

Este documento presenta información sobre diferentes tecnologías de desarrollo para Internet de las Cosas (IoT), incluyendo MQTT, REST, Thingspeak, Thingsboard y Micropython. Explica que MQTT es un protocolo ligero y de bajo consumo ideal para comunicaciones máquina a máquina en IoT, mientras que REST se usa para crear APIs web y HTTP. Luego introduce el dispositivo NodeMCU y su uso en proyectos IoT.

Cargado por

Alberto Cardenas
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
181 vistas54 páginas

NodeMCU PDF

Este documento presenta información sobre diferentes tecnologías de desarrollo para Internet de las Cosas (IoT), incluyendo MQTT, REST, Thingspeak, Thingsboard y Micropython. Explica que MQTT es un protocolo ligero y de bajo consumo ideal para comunicaciones máquina a máquina en IoT, mientras que REST se usa para crear APIs web y HTTP. Luego introduce el dispositivo NodeMCU y su uso en proyectos IoT.

Cargado por

Alberto Cardenas
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 PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 54

NodeMCU

Dr. Jhon Edgar Amaya


MSc María Tarazona

Diplomado en IoT
Decanato de Extensión
Universidad Nacional Experimental del Táchira

UNET, 2020

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 1 / 54
Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 2 / 54
Tecnologías de desarrollo MQTT

Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 3 / 54
Tecnologías de desarrollo MQTT

MQTT

MQTT es uno de los protocolos más utilizados en proyectos de IoT.


Es sinónimo de transporte de telemetría de Message Queue Server.
Está diseñado como un protocolo de mensajería ligero que utiliza
operaciones de publicación / suscripción para intercambiar datos entre
clientes y el servidor. Además, su pequeño tamaño, bajo consumo de
energía, paquetes de datos minimizados y facilidad de implementación
hacen que el protocolo sea ideal para el mundo de 'máquina a
máquina' ó 'Internet de las cosas'.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 4 / 54
Tecnologías de desarrollo MQTT

MQTT

MQTT tiene características únicas que difícilmente puede encontrar en


otros protocolos, como:
Es un protocolo ligero. Por lo tanto, es fácil de implementar en
software y rápido en la transmisión de datos.
Se basa en una técnica de mensajería.
Paquetes de datos minimizados. Por lo tanto, bajo uso de red.
Bajo consumo de energía. Como resultado, ahorra la batería del
dispositivo conectado.
Es en tiempo real, eso es especícamente lo que lo hace perfecto para
aplicaciones IoT.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 5 / 54
Tecnologías de desarrollo MQTT

MQTT

Al igual que cualquier otro protocolo de Internet, MQTT se basa en


clientes y un servidor. Del mismo modo, el servidor es el responsable de
manejar las solicitudes del cliente de recibir o enviar datos entre ellos.
El servidor MQTT se llama intermediario o broker y los clientes son
simplemente los dispositivos conectados.
Cuando un dispositivo (un cliente) quiere enviar datos al broker,
llamamos a esta operación una "publicación".
Cuando un dispositivo (un cliente) quiere recibir datos del broker,
llamamos a esta operación "suscribirse".

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 6 / 54
Tecnologías de desarrollo MQTT

MQTT
Además, estos clientes están publicando y suscribiéndose a temas.
Entonces, el intermediario aquí es el que maneja las acciones de
publicación/suscripción a los temas de destino.
Ejemplo
Digamos que hay un dispositivo que tiene un sensor de temperatura, quiere
enviar sus lecturas al broker. Por otro lado, una aplicación de teléfono /
escritorio quiere recibir este valor de temperatura. Por lo tanto, sucederán 2
cosas:
El dispositivo dene el tema topic en MQTT sobre el que desea
publicar, por ejemplo: "temp". Luego, publica el mensaje "valor de
temperatura".
La aplicación de teléfono / escritorio se suscribe al tema "temp".
Luego, recibe el mensaje que el dispositivo ha publicado, que es el
valor de temperatura.
La función del broker aquí es tomar el mensaje "valor de temperatura 2

entregarlo a la aplicación de teléfono / escritorio.


Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 7 / 54
Tecnologías de desarrollo MQTT

Componentes MQTT

El broker, que es el servidor que maneja la transmisión de datos entre


los clientes.
Un tópico , que es el lugar desde el que un dispositivo desea colocar o
recuperar un mensaje.
El mensaje, que son los datos que recibe un dispositivo 'cuando se
suscribe' de un tema o envía 'cuando se publica' a un tema.
Publicar, es el proceso que hace un dispositivo para enviar su mensaje
al broker.
Suscribir, donde un dispositivo lo hace para recuperar un mensaje del
broker.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 8 / 54
Tecnologías de desarrollo MQTT

Por qué no HTTP

HTTP es un protocolo más lento, más pesado y que consume más energía
que MQTT.
Más lento porque utiliza paquetes de datos más grandes para
comunicarse con el servidor.
Gastos generales: la solicitud HTTP abre y cierra la conexión en cada
solicitud, mientras que MQTT permanece en línea para hacer que el
canal siempre se abra entre el "servidor"del intermediario y los clientes.
Consumo de energía: dado que lleva más tiempo y más paquetes de
datos, utiliza mucha energía.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 9 / 54
Tecnologías de desarrollo MQTT

MQTT

El broker puede almacenar los datos en forma de mensajes retenidos (debe


suscribirse con el cliente de la base de datos) para que los nuevos
suscriptores del tema puedan obtener el último valor de inmediato.
El broker también realiza un seguimiento de toda la información de la
sesión a medida que los dispositivos se activan y desactivan, denominados
"sesiones persistentes".
Las principales ventajas del broker MQTT son:
Elimina las conexiones de clientes vulnerables e inseguras.
Puede escalar fácilmente de un solo dispositivo a miles.
Administra y rastrea todos los estados de conexión del cliente,
incluidas las credenciales de seguridad y los certicados.
Reducción de la tensión de la red sin comprometer la seguridad (red
celular o satelital)

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 10 / 54
Tecnologías de desarrollo MQTT

Ejemplo

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 11 / 54
Tecnologías de desarrollo MQTT

Ejemplo

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 12 / 54
Tecnologías de desarrollo MQTT

Ejemplo

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 13 / 54
Tecnologías de desarrollo MQTT

Niveles de calidad de servicio:


0 = como máximo una vez (mejor esfuerzo, sin reconocimiento),
1 = al menos una vez (Acked, retransmitido si no se recibe ack),
2 = exactamente una vez [Solicitud de envío (Publicar), Borrar para
enviar (Pubrec), mensaje (Pubrel), ack (Pubcomp)]

Mensajes retenidos: el servidor mantiene los mensajes incluso después


de enviarlos a todos los suscriptores. Los nuevos suscriptores reciben
los mensajes retenidos

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 14 / 54
Tecnologías de desarrollo MQTT

Sesiones limpias y conexiones duraderas: en la conguración de la


conexión: Indicador de sesión limpia > todas las suscripciones se
eliminan al desconectar De lo contrario, las suscripciones
permanecerán vigentes después de la desconexión > Los mensajes
posteriores con alta QoS se almacenan para su entrega después de la
reconexión
Testamentos: en la conexión, un cliente puede informar que tiene un
testamento o un mensaje que debe publicarse si se produce una
desconexión inesperada
Alarma: si el cliente pierde la conexión mantener mensajes vivos, si un
cliente todavía está vivo
Árboles de temas: los temas se organizan como árboles

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 15 / 54
Tecnologías de desarrollo MQTT

El protocolo se puede implementar en micropython deniendo el tipo


de broker y estableciendo el cliente.
Para el caso del cliente en ESP32/ESP8266 y MicroPython puede
importarse una librería denominada umqttsimple y para el caso del
broker mosquitto

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 16 / 54
Tecnologías de desarrollo REST

Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 17 / 54
Tecnologías de desarrollo REST

¾Qué es una API web?

API signica interfaz de programación de aplicaciones. Una API web


permite acceder y manipular métodos especícamente expuestos de
una aplicación fuera del programa en sí. Las API web utilizan
protocolos usados por la web (HTTP, HTTPS, JSON, XML, etc.).
Por ejemplo, una API web se puede usar para obtener datos de un
recurso (como los códigos postales del servicio postal de los EE. UU.)
sin tener que visitar la aplicación en sí (vericando usps.com).

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 18 / 54
Tecnologías de desarrollo REST

¾Qué es REST?

REST es la abreviatura de Representational State Transfer. REST es


un estilo arquitectónico de software ... un conjunto de reglas y
convenciones para la creación de una API.
Roy Fielding denió los principios de REST en 2000. Los principios de
REST están destinados a hacer API y sistemas que sean: ecientes,
escalables, simples, conables y modicables (es decir, a prueba de
futuro), entre otras cosas.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 19 / 54
Tecnologías de desarrollo REST

REST

Arquitectura cliente-servidor: en pocas palabras, los sistemas RESTful


separan sistemas responsables de almacenar y procesar los datos (el
servidor) desde sistemas responsables de recopilar, solicitar, consumir y
presentar el datos a un usuario (el cliente).
Esta separación debe ser tan distinta que el cliente y servidor se
pueden mejorar y actualizar de forma independiente entre sí.
Una actualización al cliente no debería requerir una actualización al
servidor y viceversa.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 20 / 54
Tecnologías de desarrollo REST

Benecios de REST

Statelessness. En lo que respecta al servidor, todas las solicitudes de


los clientes son tratados por igual. No hay memoria especial del lado
del servidor de la actividad pasada del cliente.
La responsabilidad de administrar el estado (por ejemplo, conectado o
no) está en cliente. Esta restricción es lo que hace que el enfoque
RESTful sea tan escalable.
En REST, cada solicitud de recursos debe transmitir el estado de la
aplicación Eso signica que el estado se transere con cada solicitud

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 21 / 54
Tecnologías de desarrollo REST

Benecios de REST

Capacidad de almacenamiento en caché: los clientes y servidores


deben poder almacenar en caché los datos de recursos que cambia con
poca frecuencia. Por ejemplo, hay 52 estados y otras jurisdicciones en
EE. UU. No es probable que eso cambie pronto. Entonces, es
ineciente construir un sistema que consulta una base de datos de
estados cada vez que necesita esos datos. Los clientes deben poder
almacenar en caché esa fecha y los servidores web que se actualizan
con poca frecuencia debería poder controlar la duración de ese caché.
Sistema en capas: un cliente no puede saber si está conectado
directamente a un extremo servidor o a un intermediario en el camino.
Los servidores intermediarios también pueden mejorar la escalabilidad
del sistema.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 22 / 54
Tecnologías de desarrollo REST

Convenciones API RESTful - Métodos HTTP

GET: el método get se usa para recuperar datos de un recurso. De


acuerdo a Convenciones RESTful, los GET son seguros de ejecutar
una y otra vez. Por ejemplo, Es seguro ejecutar la siguiente solicitud
GET tantas veces como desee:
https : //www .amazon.com/s/ref = nb _sb _noss _1?url =
search − alias %3Daps&field − keywords = robot
POST: el método POST se usaría para crear un registro de datos o
iniciar un acción. Imagine que cada POST es una solicitud para
realizar una compra en Amazon.
PUT: el método PUT existe en HTTP. Debe usarse para actualizar
datos existentes.
DELETE: el método DELETE existe en HTTP. Se debe usar para
eliminar un dato.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 23 / 54
Tecnologías de desarrollo REST

Convenciones API RESTful

Cada solicitud HTTP da como resultado que se envíe un código de


estado al cliente.
Los códigos de estado 2xx indican éxito. El código de estado más
común es 200, OK.
Los códigos de estado 3xx indican que el cliente necesita hacer algo
más para completar la solicitud. Por lo general, esto signica hacer la
solicitud desde una ubicación diferente.
El código de estado 301 signica que el recurso se ha movido
permanentemente a algún lugar más.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 24 / 54
Tecnologías de desarrollo REST

Convenciones API RESTful

Los códigos de estado 4xx indican un error del cliente. Es decir, el


cliente envió una solicitud que hizo no tiene sentido.
Internet se basa en estándares como HTTP y estos códigos de error
son parte de eso estándar.
Los códigos de estado 5xx indican un error del servidor. Eso signica
que la solicitud realizada por el cliente parece estar bien. Pero el
servidor está experimentando algunas dicultades.
Un servidor que experimenta alguna dicultad puede informar "500
error interno del servidor"

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 25 / 54
Tecnologías de desarrollo REST

Ejemplo

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 26 / 54
Tecnologías de desarrollo REST

Ejemplo

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 27 / 54
Tecnologías de desarrollo REST

Ejemplo

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 28 / 54
Tecnologías de desarrollo Thingspeak

Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 29 / 54
Tecnologías de desarrollo Thingspeak

ThingSpeak

ThingSpeak es un servicio de plataforma de análisis de IoT que


permite agregar, visualizar y analizar ujos de datos en vivo en la nube.
Puede enviarse datos a ThingSpeak desde dispositivos, crear
visualizaciones instantáneas de datos en vivo y enviar alertas utilizando
servicios web como Twitter
ThingSpeak permite a los ingenieros y cientícos crear prototipos y
construir sistemas IoT sin congurar servidores o desarrollar software
web.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 30 / 54
Tecnologías de desarrollo Thingspeak

ThingSpeak

ThingSpeak es una plataforma de IoT que utiliza canales para


almacenar datos enviados desde aplicaciones o dispositivos. Se puede
crear un canal y luego enviar y recuperar datos hacia y desde el canal.
Puede hacerse canales públicos para compartir datos.
Usar las llamadas a la API REST como GET, POST, PUT y DELETE,
puede crear un canal y actualizar un canal existente, borrar un canal y
eliminar un canal.
También se puede usar el método de publicación MQTT para
actualizar una fuente de canal y suscripción MQTT para recibir
mensajes cuando se actualiza un canal.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 31 / 54
Tecnologías de desarrollo Thingsboard

Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 32 / 54
Tecnologías de desarrollo Thingsboard

Thingsboard

ThingsBoard es una plataforma o entorno de software libre y de código


abierto con el objetivo de implementar un sistema de control
doméstico de internet de las cosas.
ThingsBoard permite gestionar dispositivos, recoger la información
generada, análisis y procesamiento de datos y visualización.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 33 / 54
Tecnologías de desarrollo Micropython

Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 34 / 54
Tecnologías de desarrollo Micropython

MicroPython

MicroPython es una implementación eciente del lenguaje de


programación Python 3, que incluye un pequeño subconjunto de la
biblioteca estándar de Python y está optimizado para ejecutarse en
microcontroladores y en entornos restringidos.
MicroPython implementa un subconjunto de funciones Python para
cada módulo.
Para facilitar la extensibilidad, las versiones de MicroPython de los
módulos Python estándar generalmente tienen u ("micro") como
prejo.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 35 / 54
Tecnologías de desarrollo Micropython

MicroPython

http://micropython.org/
MicroPython está repleto de características avanzadas, como mensaje
interactivo, números enteros de precisión arbitraria, listas, manejo de
excepciones y más. Sin embargo, es lo sucientemente compacto
como para caber y ejecutarse dentro de solo 256k de espacio de
código y 16k de RAM.
MicroPython pretende ser tan compatible con Python normal como
sea posible para permitirle transferir código con facilidad desde el
escritorio a un microcontrolador o sistema integrado.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 36 / 54
Tecnologías de desarrollo Micropython

MicroPython

MicroPython es un compilador completo de Python en tiempo de


ejecución. Obtiene una solicitud interactiva (REPL) para ejecutar
comandos de inmediato, junto con la capacidad de ejecutar e importar
secuencias de comandos desde el sistema de archivos incorporado. El
REPL tiene modo de historial, sangría automática y pegado para una
excelente experiencia de usuario.
MicroPython se esfuerza por ser lo más compatible posible con Python
normal (conocido como CPython) de modo que si conoce Python ya
conoce MicroPython.
Además de implementar una selección de bibliotecas centrales de
Python, MicroPython incluye módulos como "machine"para acceder a
hardware de bajo nivel.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 37 / 54
Tecnologías de desarrollo Micropython

Bibliotecas estándar y microbibliotecas


cmath # mathematical functions for complex numbers
gc # control the garbage collector
math # mathematical functions
sys # system specic functions
uarray # arrays of numeric data
ubinascii # binary/ASCII conversions
uerrno # system error codes
uio # input/output streams
ujson # JSON encoding and decoding
uos # basic operating system services
ure # simple regular expressions
uselect # wait for events on a set of streams
usocket # socket module
ussl # SSL/TLS module
utime # time related functions
_thread # multithreading support
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 38 / 54
Tecnologías de desarrollo Micropython

Bibliotecas especícas

btree # simple BTree database


framebuf # frame buer manipulation
machine # functions related to the hardware
micropython # access and control MicroPython internals
network # network conguration
ubluetooth # low-level Bluetooth
ucryptolib # cryptographic ciphers
uctypes # access binary data in a structured way

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 39 / 54
Tecnologías de desarrollo Micropython

Las siguientes bibliotecas son especícas de ESP8266 y ESP32.

/esp # functions related to the ESP8266 and ESP32


Functions

/esp32 # functionality specic to the ESP32


Functions
Flash partions
RMT
Ultra-Low-Power co-processor
Constants

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 40 / 54
Tecnologías de desarrollo Micropython

MicroPython

MicroPython REPL está en UART0 (GPIO1 = TX, GPIO3 = RX) a


una velocidad en baudios de 115200. La nalización de tabulación es
útil para averiguar qué métodos tiene un objeto. El modo Pegar
(ctrl-E) es útil para pegar código Python en el REPL.

import machine
machine.freq() # get the current frequency of the CPU
machine.freq(160000000) # set the CPU frequency to 160 MHz

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 41 / 54
Tecnologías de desarrollo Micropython

Networking

import network
wlan = network.WLAN(network.STA_IF) # create station interface
wlan.active(True) # activate the interface
wlan.scan() # scan for access points
wlan.isconnected() # check if the station is connected to an AP
wlan.connect('essid', 'password') # connect to an AP
wlan.cong('mac') # get the interface's MAC adddress
wlan.ifcong() # get the interface's IP/netmask/gw/DNS addresses
ap = network.WLAN(network.AP_IF) # create access-point interface
ap.active(True) # activate the interface
ap.cong(essid='ESP-AP') # set the ESSID of the access point

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 42 / 54
Tecnologías de desarrollo Micropython

Networking

Una función útil para conectarse a su red WiFi local es:

import network
def do_connect():
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
print('connecting to network...')
wlan.connect('essid', 'password')
while not wlan.isconnected():
pass
print('network cong:', wlan.ifcong())

Una vez establecida la red, el módulo de socket se puede usar para crear y
usar sockets TCP / UDP como de costumbre.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 43 / 54
Tecnologías de desarrollo Micropython

Módulo de time

import time
time.sleep(1) # sleep for 1 second
time.sleep_ms(500) # sleep for 500 milliseconds
time.sleep_us(10) # sleep for 10 microseconds
start = time.ticks_ms()# get millisecond counter
delta = time.ticks_di(time.ticks_ms(), start)# compute time dierence

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 44 / 54
Tecnologías de desarrollo Micropython

Pins y GPIO

from machine import Pin


p0 = Pin(0, Pin.OUT) # create output pin on GPIO0
p0.on() # set pin to .on"(high) level
p0.o() # set pin to .o"(low) level
p0.value(1) # set pin to on/high
p2 = Pin(2, Pin.IN) # create input pin on GPIO2
print(p2.value()) # get value, 0 or 1
p4 = Pin(4, Pin.IN, Pin.PULL_UP)# enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1)# set pin high on creation

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 45 / 54
Tecnologías de desarrollo Micropython

Pins y GPIO

Los pines disponibles son: 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, que
corresponden a los números de pin GPIO reales del chip ESP8266. Tenga
en cuenta que muchas placas de usuario nal usan su propia numeración de
pin adhoc (marcada, por ejemplo, D0, D1, ...).
Como MicroPython admite diferentes placas y módulos, se eligió la
numeración física del pin como el mínimo común denominador, para el
mapeo entre los pines lógicos de la placa y los pines del chip físico .
Tenga en cuenta que el Pin(1) y el Pin(3) son REPL UART TX y RX
respectivamente.
También tenga en cuenta que el Pin(16) es un pin especial (utilizado para
despertarse del modo sleep)

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 46 / 54
Tecnologías de desarrollo Micropython

ADC

ADC está disponible en un pin dedicado. Tenga en cuenta que los voltajes
de entrada en el pin ADC deben estar entre 0v y 1.0v.

from machine import ADC


adc = ADC(0) # create ADC object on ADC pin
adc.read() # read value, 0-1023

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 47 / 54
Tecnologías de desarrollo Micropython

PWM

PWM se puede habilitar en todos los pines, excepto el Pin (16). Hay una
frecuencia única para todos los canales, con un rango entre 1 y 1000
(medido en Hz). El ciclo de trabajo es entre 0 y 1023 inclusive.

from machine import Pin, PWM


pwm0 = PWM(Pin(0)) # create PWM object from a pin
pwm0.freq() # get current frequency
pwm0.freq(1000) # set frequency
pwm0.duty() # get current duty cycle
pwm0.duty(200) # set duty cycle
pwm0.deinit() # turn o PWM on the pin
pwm2 = PWM(Pin(2), freq=500, duty=512)# create and congure in one
go

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 48 / 54
Introducción al NodeMCU NodeMCU

Contenido

1 Tecnologías de desarrollo
MQTT
REST
Thingspeak
Thingsboard
Micropython

2 Introducción al NodeMCU
NodeMCU

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 49 / 54
Introducción al NodeMCU NodeMCU

NodeMCU

NodeMCU es una plataforma de código abierto basada en ESP8266 que


puede conectar objetos y permitir la transferencia de datos mediante el
protocolo Wi-Fi. Además, al proporcionar algunas de las características más
importantes de los microcontroladores como GPIO, PWM, ADC, etc.,
puede resolver muchas de las necesidades del proyecto solo.
Las características generales de esta placa son las siguientes:
Fácil de usar
Programabilidad con lenguajes Arduino IDE o IUA
Disponible como punto de acceso o estación practicable en
aplicaciones API controladas por eventos
una antena interna
Contiene 13 pines GPIO, 10 canales PWM, I2C, SPI, ADC, UART y
1-Wire

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 50 / 54
Introducción al NodeMCU NodeMCU

ESP8266

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 51 / 54
Introducción al NodeMCU NodeMCU

ESP8266

Fue presentado en agosto de 2014 por Espressif Systems, una empresa


de Shanghai y desde entonces no ha dejado de extenderse.
Es un módulo de bajo costo (aproximadamente 1 euro) y permitió que
todos hicieran lo primero experimentos con IoT (Internet de las cosas)
, una compañía que produce CPU y DSP personalizables, es parte de
Cadence Sistemas de diseño

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 52 / 54
Introducción al NodeMCU NodeMCU

ESP8266

El ESP8266 es un módulo con conectividad inalámbrica de bajo costo


que le permite recibir datos de sensores y actuadores de control a
través de sus pines de E / S capaces de conectarse a Internet
mediante la conexión Wi-Fi.
ESP8266 puede conectarse a una red existente (modo cliente) o crear
la suya (modalidad servidor) al que podemos conectarnos con la PC o
el teléfono inteligente.

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 53 / 54
Introducción al NodeMCU NodeMCU

ESP8266

Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 54 / 54

También podría gustarte