PREPARACION DEL IDE ARDUINO PARA TTGO LORA32 V2.0/433/868/915 MHz ESP32
Descargamos la última versión del Arduino IDE, en este caso la 1.8.10 de la pagina oficial de arduino. (https://www.arduino.cc/en/Main/Software)
Una vez instalado, descargamos los drivers para el ESP8266, en este enlace (https://wiki.wemos.cc/downloads). Lo descomprimimos e intalamos.
Una vez instalado, abrimos el programa de arduino y copiamos “http://arduino.esp8266.com/stable/package_esp8266com_index.json” en Archivo→ Preferencias→ Gestor de URL Adicionales… para el wemos d1 mini, en caso de ser para LoRa demos además añadir la siguiente ULR, https://dl.espressif.com/dl/package_esp32_index.json.
Entramos en Herramientras, placas y entramos en gestor de placas donde instalamos la ultima versión del ESP8266 que nos da permiso también para LoRa.
Y ya tendríamos preparado el IDE de arduino para wemos y LoRa.
22 scl o como salida/entrada digital
21 sda o como salida/entrada digital
23 salida/entrada digital
18 salida/entrada digital CLK RST actúa poniendo a tierra
5 salida/entrada digital CSO 33 salida/entrada digital
13 salida/entrada digital TOUCH 25 salida/entrada digital, TOUCH
15 salida/entrada digital, TOUCH 27 salida/entrada digital, TOUCH
2 salida/entrada digital, TOUCH 14 salida/entrada digital, TOUCH
4 salida/entrada digital, TOUCH 12 salida/entrada digital, TOUCH
Características:
Voltaje de trabajo: 1,8 ~ 3,7 v
Aceptable: 10 ~ 14mA
Transmitir:
120mA @ + 20dBm
90mA @ + 17dBm
29mA @ + 13dBm
Frecuencia de funcionamiento: 433/470 MHz (versión 433HMz) / 868 M/915 M (868 MHz)
Potencia de transmisión: + 20dBm
Sensibilidad de recepción:
-139dBm @ LoRa y 62,5 Khz y SF = 12 y 146bps
-136dBm @ LoRa y 125 Khz y SF = 12 y 293bps
-118dBm @ LoRa y 125 Khz y SF = 6 y 9380bps
-123dBm @ FSK y 5 Khz y 1,2 Kbps
Error de frecuencia:+/-15 KHz
FIFO espacio:64 Byte
Velocidad de datos0:
1.2K ~ 300Kbps @ FSK
0.018K ~ 37.5Kbps @ LoRa
Modo de modulación: FSK, GFSK, MSK... el sistema GMSK LoRa TM OOK
Interfaz de la forma: SPI
Dormir:
0.2uA @ dormir
1.5uA @ IDLE
Temperatura de funcionamiento: -40℃-+ 85℃
Digital RSSI función
De Frecuencia automático de corrección
Control automático de ganancia
Función de despertador RF
Despertador rápido y salto de frecuencia
Controlador de paquetes de datos altamente configurable
Bus SPI:
MOSI 15
MISO 2
CLK 14
CS: 13
#include <MCP3008.h>
// define las conexiones de pin
# define CS_PIN 13
# define CLOCK_PIN 14
# define MOSI_PIN 15
# define MISO_PIN 2
MCP3008 adc ( CLOCK_PIN, MOSI_PIN, MISO_PIN, CS_PIN ) ;
void setup ( )
{
// abrir puerto
Serial.begin ( 115200 ) ;
}
void loop ( )
{
// lee el canal 0 de MCP3008 ADC (pin 1)
Serial.println ( adc.readADC ( 0 ));
delay ( 1000 ) ;
}
Este convertidor analógico/decimal utiliza 16 bits lo que nos proporciona mayor resolución que el MCP3008. Este se comunica por bus I2C por esto nos permite este tamaño de datos.
En arduino los pines de conexión seria:
Pero en el LoRa los pines de conexión cambian:
VDD= 3,3V /5V
GND= GND
SCL= 22
SDA=21
ADDR= GND
Incluir la librería necesaria descargada en este enlace exterior y añadir mediante librería ZIP en Programar, librería, (https://github.com/adafruit/Adafruit_ADS1X15)
#include <Adafruit_ADS1015.h>
#include <Wire.h>
//ADS1115
Adafruit_ADS1115 ads;
int16_t adc0=0;
float Voltage0;
void setup ( ) {
Serial.begin (115200);
ads.begin();
ads.setGain(GAIN_ONE);
}
void loop ( ) {
adc0=ads.readADC_SingleEnded(0); //lectura del puerto A0
Serial.print("valor"); Serial.println(adc0);
delay(500);
Voltage0 = (adc0 * 0.125)/1000; //conversión a analógico
Serial.print("valor analogico"); Serial.println(Voltage0);
delay(500);
}
Conexión de multiplexor para aumento de salidas.
Con la conexión del multiplexor mediante 5 Pins digitales de salida del LoRa, podemos obtener 16 pines de salida digitales, contralados por S0, S1, S2 y S3 que seleccionan el pin de salida del multiplexor de la Y0 a Y15, por el cual saldrá el valor aplicado en el pin Z de este por otro pin digital de salida del LoRa.
Pines:
Z=33 EN=GND
S3=25 VCC=3,3V
S2=27 GND=GND
S1=14
S0=12
Además, podemos observar que mediante pruebas podríamos utilizar este multiplexor para aumentar las entradas analógicas que nos permite el ADS1115, ya que con los pines por S0, S1, S2 y S3 seleccionaríamos el pin de lectura de los Y0 a Y15, y saliendo el valor de lectura por Z.
Pines:
Z=A0 EN=GND
S3=25 VCC=3,3V
S2=27 GND=GND
S1=14
S0=12
PROGRAMA:
#include <Adafruit_ADS1015.h>
#include <Wire.h>
//ADS1115
Adafruit_ADS1115 ads;
int16_t adc0=0;
float Voltage0;
void setup ( ) {
Serial.begin (115200);
ads.begin();
ads.setGain(GAIN_ONE);
// el CD74HC4067 se podria utilizar la patilla Z como entrada para transferir las salidas "Y" o como señal de las entradas "Y".
pinMode(12, OUTPUT); //bit de control S0
pinMode(14, OUTPUT); //bit de control S1
pinMode(27, OUTPUT); //bit de control S2
pinMode(25, OUTPUT); //bit de control S3
pinMode(33, OUTPUT); //bit de control Z o señal para enviar la señal al multiplexor que sera la salida de la patilla que seleccionamos con los bits de control
}
void loop ( ) {
//control cd74hc4067
// selecciona la salida Y15 poniendola a 1
digitalWrite(33, HIGH); //pone a "1" la patilla Z del multiplexor
digitalWrite(12, HIGH); //pone a "1" el bits S0
digitalWrite(14, HIGH); //pone a "1" el bits S1
digitalWrite(27, HIGH); //pone a "1" el bits S2
digitalWrite(25, HIGH); //pone a "1" el bits S3
//ademas podriamos utilizarla conectandolo al "ADS1115" el pin "Z" y conectando un potenciometro al pin "Y15" o el que se seleccione mediante los bits "S"
adc0=ads.readADC_SingleEnded(0);
Serial.print("valor"); Serial.println(adc0);
delay(500);
Voltage0 = (adc0 * 0.125)/1000;
Serial.print("valor analogico"); Serial.println(Voltage0);
delay(500);
}