Tabla de contenido:
- Paso 1: Suministros
- Paso 2: Nodo LoRa
- Paso 3: Conexión de nodo y sensor
- Paso 4: enviar datos a la puerta de enlace
- Paso 5: MakePython Lora
- Paso 6: puerta de enlace LoRaWAN
- Paso 7: Código de descarga
- Paso 8: recibir datos
- Paso 9: Utilice ThingSpeak IoT
- Paso 10: Resultado
Video: Lora Gateway basado en MicroPython ESP32: 10 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Lora ha sido muy popular en los últimos años. El módulo de comunicación inalámbrica que utiliza esta tecnología suele ser económico (utiliza espectro libre), de tamaño pequeño, energéticamente eficiente y tiene una larga distancia de comunicación, y se utiliza principalmente para la comunicación mutua entre terminales de IoT o el intercambio de datos con un host. Hay muchos módulos LoRa en el mercado, como el RFM96W, que está equipado con el chip SX1278 (compatible), que es muy pequeño. Lo uso con MakePython ESP32 como puerta de enlace.
A continuación, usaré dos nodos LoRa para enviar los datos de temperatura y humedad a la puerta de enlace y luego los subiré a Internet a través de la puerta de enlace. Aquí aprenderá cómo cargar datos remotos de múltiples nodos LoRa a la nube a través de la puerta de enlace.
Paso 1: Suministros
1 * MakePython ESP32
MakePython ESP32 es una placa ESP32 con una pantalla OLED SSD1306 integrada.
2 * Radio Maduino LoRa
Maduino Lora Radio es una solución de IoT (Internet de las cosas) basada en el módulo Atmega328P MCU y Lora de Atmel. Puede ser un proyecto real para proyectos de IoT (especialmente aplicaciones de bajo consumo y largo alcance)
2 * DHT11
1 * MakePython Lora
Paso 2: Nodo LoRa
Este es el esquema de Maduino Lora Radio.
Módulo Arduino Lora Radio como nodo LoRa, lo usamos para enviar datos de temperatura y humedad a la puerta de enlace.
(Este WiKi presenta cómo usar Maduino Lora Radio y enviar y recibir datos)
Paso 3: Conexión de nodo y sensor
El VCC y GND de DHT11 están conectados a 3V3 y GND de Maduino, y el pin DATA está conectado a D4 de Maduino.
El nodo 0 está en el parque, el nodo 1 está en el edificio de oficinas cerca de la empresa, están a unos 2 kilómetros de distancia y luego obtengo sus datos de temperatura y humedad en casa.
Paso 4: enviar datos a la puerta de enlace
Descargue TransmitterDHT11.ino, ábralo en Arduino IDE.
Al agregar un nodo, modifique el número de nodo en consecuencia. Por ejemplo, ahora use 2 nodos, el primer nodo para modificar nodenum = 0 para ejecutar el programa, el segundo nodo para modificar nodenum = 1 para ejecutar el programa, y así sucesivamente, puede agregar más nodos.
int16_t packetnum = 0; // contador de paquetes, lo incrementamos por emisión
int16_t nodenum = 0; // Modifica el número de nodo
Recopile datos e imprímalos
Mensaje de cadena = "#" + (Cadena) nodenum + "Humedad:" + (Cadena) humedad + "% Temperatura:" + (Cadena) temperatura + "C" + "num:" + (Cadena) packetnum; Serial.println (mensaje); packetnum ++;
Envíe un mensaje a rf95_server
uint8_t radioPacket [message.length () + 1];
message.toCharArray (radioPacket, message.length () + 1); radioPacket [message.length () + 1] = '\ 0'; rf95.send ((uint8_t *) radioPacket, message.length () + 1);
Abra el monitor en serie, puede ver los datos recopilados de temperatura y humedad y enviarlos.
# 0 Humedad: 6,00% Temperatura: 27,00C num: 0
Transmitir: Enviando a rf95_server Enviando… Esperando que se complete el paquete… Esperando respuesta… No hay respuesta, ¿hay alguien que escucha?
Déjalo a un lado, ahora tenemos que hacer el Lora Gateway.
Paso 5: MakePython Lora
Este es el pin correspondiente del módulo RFM96W y MakePython ESP32. Para facilitar la conexión con MakePython ESP32, hice una placa de circuito con el módulo RFM96W. Sí, hay dos RFM96W en él, que pueden enviar y recibir datos al mismo tiempo, pero ahora solo necesito uno.
Paso 6: puerta de enlace LoRaWAN
LoRaWAN es una red de área amplia de baja potencia basada en LoRa, que puede proporcionar uno: bajo consumo de energía, escalabilidad, alta calidad de servicio y red inalámbrica segura de larga distancia.
Reúna MakePython Lora y ESP32 para crear una puerta de enlace que pueda recibir datos remotos y cargarlos en Internet.
Paso 7: Código de descarga
Descarga todos los archivos "xxx.py" de WiKi y súbelos a ESP32.
Abra el archivo LoRaDuplexCallback.py. Necesita hacer algunos ajustes para que su ESP32 pueda conectarse a la red y cargar datos al servidor.
Modifique la API_KEY que obtuvo en ThingSpeak (presentaré cómo obtenerla más adelante)
#https://thingspeak.com/channels/1047479
API_KEY = 'UBHIRHVV9THUJVUI'
Modifique SSID y PSW para conectar WiFi
ssid = "Makerfabs"
pswd = "20160704"
Paso 8: recibir datos
Busque la función on_receive (lora, payload) en el archivo LoRaDuplexCallback.py, donde puede decirle a ESP32 qué hacer después de recibir los datos. El siguiente código analiza y muestra los datos de temperatura y humedad recibidos.
def on_receive (lora, carga útil):
lora.blink_led () rssi = lora.packetRssi () try: length = len (payload) -1 myStr = str ((payload [4: length]), 'utf-8') length1 = myStr.find (':') myNum1 = myStr [(length1 + 1):(length1 + 6)] myNum2 = myStr [(length1 + 20):(length1 + 25)] print ("*** Mensaje recibido *** / n {}". format (payload)) if config_lora. IS_LORA_OLED: lora.show_packet (("{}". format (payload [4: length])), rssi) if wlan.isconnected (): global msgCount print ('Enviando a la red…') node = int (str (payload [5: 6], 'utf-8')) if node == 0: URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 = "+ myNum1 +" & field2 = "+ myNum2 res = urequests.get (URL) print (res.text) elif node == 1: URL =" https://api.thingspeak.com/update?api_key= "+ API_KEY +" & field3 = "+ myNum1 +" & field4 = "+ myNum2 res = urequests.get (URL) print (res.text) excepto Excepción como e: print (e) print (" con RSSI {} n ".format (rssi))
Juzgando el número para distinguir los nodos, y cargando los datos a Internet a través de la URL, podemos monitorear los datos remotos de diferentes nodos en cualquier momento. Puede agregar más nodos y realizar cambios similares en el código.
si nodo == 0:
URL = "https://api.thingspeak.com/update?api_key=" + API_KEY + "& field1 =" + myNum1 + "& field2 =" + myNum2 res = urequests.get (URL) print (res.text)
Paso 9: Utilice ThingSpeak IoT
Pasos:
- Registre una cuenta en https://thingspeak.com/. Si ya tiene uno, inicie sesión directamente.
- Haga clic en Nuevo canal para crear un nuevo canal ThingSpeak.
- Ingrese el nombre, la descripción, el campo de selección 1. Luego, guarde el canal en la parte inferior.
- Haga clic en la opción API Keys, copie la API Key, la usaremos en el programa.
Paso 10: Resultado
Puedes ver los datos del nodo 0 y del nodo 1 en la pantalla, aunque están separados por 2 kilómetros.
Inicie sesión en su cuenta de ThingSpeak y haga clic en el canal que creó, puede ver los datos de temperatura y humedad cargados.
El gráfico field1 y los gráficos field2 son los datos de humedad y temperatura del nodo Lora 0, y el gráfico field3 y el gráfico field4 son los datos de humedad y temperatura del nodo Lora 1.
Recomendado:
MuMo - LoRa Gateway: 25 pasos (con imágenes)
MuMo - LoRa Gateway: ### ACTUALIZACIÓN 10-03-2021 // la última información / actualizaciones estarán disponibles en la página de github: https: //github.com/MoMu-Antwerp/MuMo¿Qué es MuMo? MuMo es una colaboración entre desarrollo de productos (un departamento de la Universidad de Amberes) bajo el
Termómetro infrarrojo sin contacto basado en Arduino - Termómetro basado en infrarrojos con Arduino: 4 pasos
Termómetro infrarrojo sin contacto basado en Arduino | Termómetro basado en infrarrojos con Arduino: Hola chicos, en este instructivo, haremos un termómetro sin contacto con arduino, ya que a veces la temperatura del líquido / sólido es demasiado alta o demasiado baja y luego es difícil hacer contacto con él y leer su temperatura entonces en ese escenario
Generador de música basado en el clima (generador Midi basado en ESP8266): 4 pasos (con imágenes)
Generador de música basado en el clima (Generador Midi basado en ESP8266): Hola, hoy explicaré cómo hacer tu propio generador de música basado en el clima. Está basado en un ESP8266, que es como un Arduino, y responde a la temperatura, la lluvia y la intensidad de la luz. No espere que haga canciones completas o programas de acordes
MicroPython IoT Rover basado en WEMOS D1 (ESP-8266EX): 7 pasos (con imágenes)
MicroPython IoT Rover Basado en WEMOS D1 (ESP-8266EX): ** Actualización: publiqué un nuevo video para v2 con una lanza ** Realizo talleres de robótica para niños pequeños y siempre estoy buscando plataformas económicas para construir proyectos intrigantes. Si bien los clones de Arduino son baratos, utiliza el lenguaje C / C ++ que los niños no son
Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266: 3 pasos (con imágenes)
Cómo flashear el firmware MicroPython en un interruptor inteligente Sonoff basado en ESP8266: ¿Qué es Sonoff? Sonoff es una línea de dispositivos para Smart Home desarrollada por ITEAD. Uno de los dispositivos más flexibles y económicos de esa línea son Sonoff Basic y Sonoff Dual. Estos son conmutadores habilitados para Wi-Fi basados en un gran chip, ESP8266. Mientras