You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
First, i'm great fun about your work
i watch your youtube channel too
my problem is: i have a struct with many variables for reading my sensors which is mpu6050, bmp280 and gps neo-6m. i send this struct to my receptor with a delay 750ms, but i want at last 200ms or 250ms. And when i decreasing 750ms to 700ms the lora receptor show weird numbers and "ovf" which i think it is overflow.
i google a lot but not sucefull, i hope you can help me, please.
here is my transmisson code:
"//Incluindo bibliotecas
#include <Adafruit_Sensor.h> // Incluindo biblioteca dos sensores
#include <Adafruit_MPU6050.h> // Biblioteca do acelerômetro (MPU6050)
#include <Adafruit_BMP280.h> // Biblioteca do barômetro (BMP280)
#include <Wire.h> // Biblioteca do I2C
#include "EBYTE.h" // Biblioteca do LoRa Ebyte
#include <TinyGPSPlus.h> // Biblioteca do gps
#include <HardwareSerial.h> // Biblioteca para serial
//Definição de variáveis constantes
#define SEALEVELPRESSURE_HPA 1015.50 // Define um nivel de pressão atmosferica conhecida. SEMPRE PRECISA DE AJUSTE
//Variaveis Globais
unsigned char Chan; // Seleciona a frequência de transmissão
struct DATA { // Struct contendo todas as informações que serão enviadas pela telemetria
float temperatura; // É média da temperatura do mpu com o bmp
float MPU[6]; // Guarda os dados de Accel(x,y,z) e Gyro(x,y,z) nessa ordem
float BMP[2]; // Guarda os dados de pressão e de altura nessa ordem
float GPS[3]; // Guarda os dados de latitudi, longitudi e velocidade no plano xy
uint8_t Inicializacao[5]; // Guarda o status de inicialização dos sensores CE_ER, MPU, BMP, GPS, Ebyte ; nesta ordem respectivamente
};DATA MyData;
//Cria a serial e o objeto transceptor, passando o serial e os pinos
HardwareSerial SerialGPS(2);
HardwareSerial SerialLORA(0);
EBYTE Transceiver(&SerialLORA, PIN_M0, PIN_M1, PIN_AX);
//Criação de classes e objetos
Adafruit_MPU6050 mpu;
Adafruit_BMP280 bmp;
TinyGPSPlus gps;
//Protótipo de função
void Iniciar_Sensores(); // Inicializa os sensores
void Config_Sensores(); // Configura os parâmetros de funcionamento dos sensores
void Catch_Values(); // Captura apenas os valores dos sensores
void Iniciar_Sensores() {
MyData.Inicializacao[0] = 1; // Se o circuito foi energizado e o ESP funciona recebe o valor de 1
if(mpu.begin(0x68)) MyData.Inicializacao[1] = 1; // Se o mpu não inicializar corretamente recebe 0
else MyData.Inicializacao[1] = 0; // Se o mpu inicializar corretamente recebe 1
if(bmp.begin(0x76)) MyData.Inicializacao[2] = 1; // Se o bmp não inicializar corretamente recebe 0
else MyData.Inicializacao[2] = 0; // Se o bmp inicializar corretamente recebe 1
if(bmp.begin(0x76)) MyData.Inicializacao[3] = 1; // Se o gps não inicializar corretamente recebe 0
else MyData.Inicializacao[3] = 0; // Se o gps inicializar corretamente recebe 1
Transceiver.init(); // Inicializa o LoRa Ebyte
}
void Config_Sensores() {
//Configura os parâmetros do MPU6050
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_44_HZ);
//Configura os parâmetros do BMP280
/*
//Configura os parâmetros do LoRa Ebyte
Chan = 0;
Transceiver.SetChannel(Chan);
Transceiver.SaveParameters(PERMANENT);
Transceiver.PrintParameters();
*/
}
void Catch_Values() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
// Variáveis Globais
unsigned char Chan; // Seleciona a frequência de transmissão
unsigned char flag1 = 0; // Flag 1 de identificação para exibir o status de inicialização
unsigned short count = 0; // Contagem do tempo
struct DATA { // Struct contendo todas as informações que serão enviadas pela telemetria
float temperatura; // É média da temperatura do mpu com o bmp
float MPU[6]; // Guarda os dados de Accel(x,y,z) e Gyro(x,y,z) nessa ordem
float BMP[2]; // Guarda os dados de pressão e de altura nessa ordem
float GPS[3]; // Guarda os dados de latitudi, longitudi e velocidade no plano xy
uint8_t Inicializacao[5]; // Guarda o status de inicialização dos sensores CE_ER, MPU, BMP, GPS, Ebyte ; nesta ordem respectivamente
}; DATA MyData;
//Cria o objeto transceptor, passando o serial e os pinos
EBYTE Transceiver(&Serial2, PIN_M0, PIN_M1, PIN_AX);
First, i'm great fun about your work
i watch your youtube channel too
my problem is: i have a struct with many variables for reading my sensors which is mpu6050, bmp280 and gps neo-6m. i send this struct to my receptor with a delay 750ms, but i want at last 200ms or 250ms. And when i decreasing 750ms to 700ms the lora receptor show weird numbers and "ovf" which i think it is overflow.
i google a lot but not sucefull, i hope you can help me, please.
here is my transmisson code:
"//Incluindo bibliotecas
#include <Adafruit_Sensor.h> // Incluindo biblioteca dos sensores
#include <Adafruit_MPU6050.h> // Biblioteca do acelerômetro (MPU6050)
#include <Adafruit_BMP280.h> // Biblioteca do barômetro (BMP280)
#include <Wire.h> // Biblioteca do I2C
#include "EBYTE.h" // Biblioteca do LoRa Ebyte
#include <TinyGPSPlus.h> // Biblioteca do gps
#include <HardwareSerial.h> // Biblioteca para serial
//Definição de variáveis constantes
#define SEALEVELPRESSURE_HPA 1015.50 // Define um nivel de pressão atmosferica conhecida. SEMPRE PRECISA DE AJUSTE
//Definição de pinagem
//LoRa Ebyte
#define RX_LORA 3
#define TX_LORA 1
#define PIN_M0 4
#define PIN_M1 0
#define PIN_AX 2
//GPS
#define RX_GPS 16
#define TX_GPS 17
//Variaveis Globais
unsigned char Chan; // Seleciona a frequência de transmissão
struct DATA { // Struct contendo todas as informações que serão enviadas pela telemetria
float temperatura; // É média da temperatura do mpu com o bmp
float MPU[6]; // Guarda os dados de Accel(x,y,z) e Gyro(x,y,z) nessa ordem
float BMP[2]; // Guarda os dados de pressão e de altura nessa ordem
float GPS[3]; // Guarda os dados de latitudi, longitudi e velocidade no plano xy
uint8_t Inicializacao[5]; // Guarda o status de inicialização dos sensores CE_ER, MPU, BMP, GPS, Ebyte ; nesta ordem respectivamente
};DATA MyData;
//Cria a serial e o objeto transceptor, passando o serial e os pinos
HardwareSerial SerialGPS(2);
HardwareSerial SerialLORA(0);
EBYTE Transceiver(&SerialLORA, PIN_M0, PIN_M1, PIN_AX);
//Criação de classes e objetos
Adafruit_MPU6050 mpu;
Adafruit_BMP280 bmp;
TinyGPSPlus gps;
//Protótipo de função
void Iniciar_Sensores(); // Inicializa os sensores
void Config_Sensores(); // Configura os parâmetros de funcionamento dos sensores
void Catch_Values(); // Captura apenas os valores dos sensores
void setup() {
SerialGPS.begin(9600, SERIAL_8N1, RX_GPS, TX_GPS);
SerialLORA.begin(9600);
delay(100);
Iniciar_Sensores();
Config_Sensores();
delay(100);
}
void loop() {
Catch_Values();
Transceiver.SendStruct(&MyData, sizeof(MyData));
delay(750);
}
void Iniciar_Sensores() {
MyData.Inicializacao[0] = 1; // Se o circuito foi energizado e o ESP funciona recebe o valor de 1
if(mpu.begin(0x68)) MyData.Inicializacao[1] = 1; // Se o mpu não inicializar corretamente recebe 0
else MyData.Inicializacao[1] = 0; // Se o mpu inicializar corretamente recebe 1
if(bmp.begin(0x76)) MyData.Inicializacao[2] = 1; // Se o bmp não inicializar corretamente recebe 0
else MyData.Inicializacao[2] = 0; // Se o bmp inicializar corretamente recebe 1
if(bmp.begin(0x76)) MyData.Inicializacao[3] = 1; // Se o gps não inicializar corretamente recebe 0
else MyData.Inicializacao[3] = 0; // Se o gps inicializar corretamente recebe 1
Transceiver.init(); // Inicializa o LoRa Ebyte
}
void Config_Sensores() {
//Configura os parâmetros do MPU6050
mpu.setAccelerometerRange(MPU6050_RANGE_16_G);
mpu.setGyroRange(MPU6050_RANGE_500_DEG);
mpu.setFilterBandwidth(MPU6050_BAND_44_HZ);
//Configura os parâmetros do BMP280
/*
//Configura os parâmetros do LoRa Ebyte
Chan = 0;
Transceiver.SetChannel(Chan);
Transceiver.SaveParameters(PERMANENT);
Transceiver.PrintParameters();
*/
}
void Catch_Values() {
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
MyData.temperatura = (temp.temperature + bmp.readTemperature())/2.00;
MyData.MPU[0] = a.acceleration.x;
MyData.MPU[1] = a.acceleration.y;
MyData.MPU[2] = a.acceleration.z;
MyData.MPU[3] = g.gyro.x;
MyData.MPU[4] = g.gyro.y;
MyData.MPU[5] = g.gyro.z;
MyData.BMP[0] = bmp.readPressure();
MyData.BMP[1] = bmp.readAltitude(SEALEVELPRESSURE_HPA);
while(SerialGPS.available() > 0) gps.encode(SerialGPS.read());
if(gps.location.isValid()) {
MyData.GPS[0] = gps.location.lat();
MyData.GPS[1] = gps.location.lng();
}
if(gps.speed.isValid()) MyData.GPS[2] = gps.speed.mps();
}"
i'm from Brazil, so yeah the comemnts is in portuguese kk
here is my reception code:
"// Biblioteca
#include "EBYTE.h"
// Definição de constantes
#define PIN_RX 16
#define PIN_TX 17
#define PIN_M0 4
#define PIN_M1 0
#define PIN_AX 2
// Variáveis Globais
unsigned char Chan; // Seleciona a frequência de transmissão
unsigned char flag1 = 0; // Flag 1 de identificação para exibir o status de inicialização
unsigned short count = 0; // Contagem do tempo
struct DATA { // Struct contendo todas as informações que serão enviadas pela telemetria
float temperatura; // É média da temperatura do mpu com o bmp
float MPU[6]; // Guarda os dados de Accel(x,y,z) e Gyro(x,y,z) nessa ordem
float BMP[2]; // Guarda os dados de pressão e de altura nessa ordem
float GPS[3]; // Guarda os dados de latitudi, longitudi e velocidade no plano xy
uint8_t Inicializacao[5]; // Guarda o status de inicialização dos sensores CE_ER, MPU, BMP, GPS, Ebyte ; nesta ordem respectivamente
}; DATA MyData;
//Cria o objeto transceptor, passando o serial e os pinos
EBYTE Transceiver(&Serial2, PIN_M0, PIN_M1, PIN_AX);
void setup() {
Serial.begin(9600);
Serial2.begin(9600);
delay(100);
/*
//Configura os parâmetros do LoRa Ebyte
Chan = 0;
Transceiver.SetChannel(Chan);
Transceiver.SaveParameters(PERMANENT);
Transceiver.PrintParameters();
*/
Transceiver.init();
delay(100);
}
void loop() {
if (Serial2.available()) {
Transceiver.GetStruct(&MyData, sizeof(MyData));
} else {
Serial.println("Searching: ");
}
count++;
delay(750);
}"
The text was updated successfully, but these errors were encountered: