NodeMCU PDF
NodeMCU PDF
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
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 4 / 54
Tecnologías de desarrollo MQTT
MQTT
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 5 / 54
Tecnologías de desarrollo MQTT
MQTT
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
Componentes MQTT
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 8 / 54
Tecnologías de desarrollo MQTT
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
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
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 14 / 54
Tecnologías de desarrollo MQTT
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 15 / 54
Tecnologías de desarrollo MQTT
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
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 18 / 54
Tecnologías de desarrollo REST
¾Qué es REST?
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 19 / 54
Tecnologías de desarrollo REST
REST
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 20 / 54
Tecnologías de desarrollo REST
Benecios de REST
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 21 / 54
Tecnologías de desarrollo REST
Benecios de REST
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 22 / 54
Tecnologías de desarrollo REST
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 23 / 54
Tecnologías de desarrollo REST
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 24 / 54
Tecnologías de desarrollo REST
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
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 30 / 54
Tecnologías de desarrollo Thingspeak
ThingSpeak
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
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
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
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 37 / 54
Tecnologías de desarrollo Micropython
Bibliotecas especícas
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 39 / 54
Tecnologías de desarrollo Micropython
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 40 / 54
Tecnologías de desarrollo Micropython
MicroPython
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
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
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.
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.
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
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
Dr. Jhon Edgar Amaya, MSc María Tarazona (UNET) UNET 2020 UNET, 2020 52 / 54
Introducción al NodeMCU NodeMCU
ESP8266
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