Cómo programar ESP32 LoRa Gateway con Arduino

Cómo programar ESP32 LoRa Gateway con Arduino

junio 24, 2021

Cómo programar-ESP32-LoRa-Gateway-con -Arduino-1

En mi proyecto anterior, le mostré cómo monitorear la humedad del suelo con lora, y utilicé el ESP32-Lora para ser una puerta de enlace lora, que estaba programando porMicropitón. No es amigable para los usuarios de Arduino.

Puedes ver el proyecto anterior a través de este vídeo:


Esta vez, le diréCómo programar ESP32 LoRa Gatewaycon Arduino, para controlar la humedad del suelo mediante el uso de MakePyrhon ESP32 Lora Gateway y Lora Soil Moisture Sensor.

1. Humedad del suelo

La humedad del suelo es uno de los componentes importantes del suelo. No solo es un factor de supervivencia indispensable para la vida de la vegetación, sino que también forma una solución de suelo junto con sales solubles, que se convierte en el medio que suministra nutrientes a las plantas. Para que el monitoreo de la humedad del suelo sea más necesario para la granja, el jardín.

2. ESP32 Lora Gateway

Este Lora Gateway es una combinación de MakePython ESP32 y MakePython LoRa. ESP32 es un MCU muy popular para Arduino o MicroPython. MakePython ESP32 base en el ESP32 y pantalla, está diseñado para que sea fácil de desarrollar, que puede programarlo simplemente conecte el cable USB.

MakePython LoRa es una expansión LoRa de dos canales para MakePython ESP32. Proporciona una solución sobre LoRa a WIFI que ESP32 conecta al módulo LoRa con SPI. El esquema se muestra como la imagen:
MakePython-Lora-Gateway-Schematic

Haydos módulos LoRa a bordo, en este proyecto, se utilizó un módulo llamado U2 para recibir los datos. Módulo LoRa conectado a ESP32 con SPI y GPIOs, como imagen.
Módulo ESP32 -------> U2 LoRa
IO12 ------> MISO
IO13 ------> MOSI
IO14 ------> SCK
IO32 ------> NSS
RESTABLECIMIENTO ------> IO33
IO36 ------> DIO0
IO27 ------> DIO1
A continuación, programemos el ESP32 para que controle el módulo U2 LoRa para recibir algo.

3. Codificación a ESP32

1. Configure la interfaz del módulo LoRa que refiere el esquema.
#define DIO0 36
#define DIO1 27

#define LORA_RST 33
#define LORA_CS 32

#define SPI_MOSI 13
#define SPI_MISO 12
#define SPI_SCK 14
2. Instale elBiblioteca LoRa—RadioLib.hpara soportar el funcionamiento del módulo LoRa.
3. Recibir los datos transmitidos por el otro módulo.
String str;
int state = radio.receive(str);
4. Para reconocer los datos de qué módulo de suelo transmitió, cada dato transmitido se incluiría el signo como"SUELO1".
Serial.println(str);

if(str.indexOf("SOIL1")>-1)
        { sensorADC = str.substring(str.indexOf("ADC:")+4,str.indexOf("ADC:")+7);

ADCvalue[0] = sensorADC;
            Serial.println("1: "+ADCvalue[0]);
            }

if(str.indexOf("SOIL2")>-1)
        { sensorADC = str.substring(str.indexOf("ADC:")+4,str.indexOf("ADC:")+7);

ADCvalue[1] = sensorADC;
            Serial.println("2: "+ADCvalue[1]);

}
5. Mostrar los datos en elSSD1306que han aparecido en la placa ESP32.
display.clearDisplay();
      display.setTextSize(2);
      display.setTextColor(SSD1306_WHITE);
      display.setCursor(0, 0);
      display.print(F("SUELO1: "));
      display.println(ADCvalue[0]);
      display.print(F("SUELO2: "));
      display.println(ADCvalue[1]);
      display.display();
6. El código se puede obtener de laMakerfabs Github.

4. Sensor de humedad del suelo

Lora-Suelo-Humedad-Sensor

El sensor de humedad del suelo LoRa se basa enAtmel's Atmega328P, recoge la temperatura / humedad del aire local con el sensor AHT10 y detecta la humedad del suelo con una solución de medición de humildad del condensador con 555. El sensor transmite los datos de lectura a la puerta de enlace con comunicación LoRa. Y es muy adecuado para recordar si las plantas en un jardín necesitan riego.
Lora-Suelo-Hidratante-Sensor-Esquema

El módulo LoRa también se conecta a Atmega328P con SPI y GPIO, el detalle de conexión es el siguiente:
Módulo Atmega328P ------> Lora
D12 ----> MISO
D11 ------> MISO
D13 ------> SCK
D10 ------> NSS
D4 ------> RESTABLECER
D2 ------> DIO0
D6 ----> DIO1

5. Codificación del sensor de humedad del suelo

1. Para conectarse a la puerta de enlace con éxito, fue necesario utilizar la misma biblioteca para controlar el módulo LoRa.
2. Cuando la LoRa transmitió los datos, agregue el signo a la información transmitida para que ESP32 lo reconozca.
String message = "#"+(String)packetnum+" Humedad:"+(String)humidity+"% Temperature:"+(String)temperature+"C"+" ADC:"+(String)sensorValue+" SOIL2";
  Serial.println(mensaje);
  packetnum++;
  Serial.println("Transmitir: Enviar a rf95_server");
    int state = radio.transmit(message);
3. Puede obtener el código deMakerfabs Github.

6. Prueba

Alimente cada módulo respectivamente, y la pantalla LCD mostrará la lectura del sensor.
ESP32-Lora-Gateway-Test
Mornitor-Suelo-Humedad-con-ESP32-Lora-Gateway

ESP32 puede transmitir los datos recibidos por el módulo LoRa al sitio web a través de wifi, como el Thinkspeak. También puede transmitir los datos o comandos al otro módulo LoRa o LoRa-Relay a través de LoRa.

Si tiene más preguntas para este tutorial sobre Cómo programar ESP32 LoRa Gateway con Arduino, o necesitaServicio PCBA llave en mano, pls contactoservice@makerfabs.com.corazón

Contáctenos