Skip to content

Commit

Permalink
Reubicación de archivos y eliminación de prints
Browse files Browse the repository at this point in the history
  • Loading branch information
rossmpj committed Sep 19, 2020
1 parent 683af3a commit 3b77466
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 95 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@

// @file Bateria.ino
// @brief Archivo de ejemplo que puede ser utilizado para la captura/envío del
// porcentaje de una batería al Backend de Sigfox, mediante comandos AT.
/**
* @file Bateria.ino
* @brief Archivo de ejemplo que puede ser utilizado para la captura/envío del
* porcentaje de una batería al Backend de Sigfox, mediante comandos AT.
*/

#include "SensorInteligente.h"
#include <SensorInteligente.h>

const int pinA1 = A1;
int contador = 1;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
/*
// @file VelostatBateria.ino
// @brief Archivo de ejemplo que puede ser utilizado para captura/envío del
// voltaje de un sensor de peso y del porcentaje de una batería
// al Backend de Sigfox, haciendo uso de comandos AT.
/**
* @file VelostatBateriaAT.ino
* @brief Archivo de ejemplo que puede ser utilizado para captura/envío del
* voltaje de un sensor de peso y del porcentaje de una batería
* al Backend de Sigfox, haciendo uso de comandos AT.
*/

#include "SensorInteligente.h"
#include <WISOL.h>
#include <Isigfox.h>
#include <SensorInteligente.h>

const int pinA0 = A0;
const int pinA1 = A1;
Expand All @@ -30,11 +29,9 @@ void loop() {
Serial.print(bateria);
Serial.println("%");
Serial.print(" 2 Voltaje del velostat = ");
float voltaje = sensores.leerVoltajeBateria();
float voltaje = sensores.leerVoltajeVelostat();
Serial.println(voltaje);
//sensores.leerVoltajeVelostat();
uint8_t byteBateria = (uint8_t)bateria;
// Serial.println("");
byte *float_velostat = (byte *)&voltaje;
const uint8_t payloadSize = 5;
uint8_t bufferDatos[payloadSize];
Expand All @@ -54,16 +51,17 @@ void loop() {
sprintf(cad, "%02x", bufferDatos[i]);
strcat(cadena, cad);
}
Serial.println(millis());
Serial.print(" Cadena: ");
Serial.println(cadena);
char *enviar = sensores.rot47(cadena);

/*La cadena enviar no se puede enviar por lo que contiene caracteres especiales que no son aceptados
* por el backend de Sigfox por lo que se hace un casting hacia uint8_t para almacenar los caracteres
* de la cadena como bytes uint8_t *c = (uint8_t *)cadena, para alli recorrer el buffer, concatenar en
* cadenaEnviar y enviar mediante comandos AT.
* /
/*
*/
Serial.print(" rot 47: ");
Serial.println(enviar);
uint8_t *c = (uint8_t *)cadena;
const uint8_t payload = 10;
uint8_t newBuffer[payload];
Expand All @@ -82,19 +80,13 @@ void loop() {
char cad1[2];
sprintf(cad1, "%02x", newBuffer[i]);
strcat(cadenaEnviar, cad1);
}
Serial.print(" rot 47: ");
Serial.println(enviar);
Serial.println(cadena);
}
Serial.println("AT$RC");
delay(100);
Serial.print("AT$SF=");
Serial.println(cadenaEnviar);
Serial.println(strlen(cadenaEnviar));
memset(enviar, '\0', strlen(enviar));
memset(cadena, '\0', strlen(cadena));
memset(cadenaEnviar, '\0', strlen(cadenaEnviar));
delay(3000);
}
*/
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
/*
// @file VelostatBateria.ino
// @brief Archivo de ejemplo que puede ser utilizado para captura/envío del
// voltaje de un sensor de peso y del porcentaje de una batería
// al Backend de Sigfox, haciendo uso de comandos AT.
/**
* @file VelostatBateriaSigfox.ino
* @brief Archivo de ejemplo que puede ser utilizado para captura/envío del
* voltaje de un sensor de peso y del porcentaje de una batería
* al Backend de Sigfox, haciendo uso de la librería ISigfox.
*/

#include "SensorInteligente.h"
#include <SensorInteligente.h>
#include <WISOL.h>
#include <Isigfox.h>

Expand All @@ -28,17 +29,14 @@ void loop() {
Serial.print("PRUEBA ");
Serial.println(contador++);
Serial.print(" 1 Porcentaje de bateria = ");
int bateria = 81;
int bateria = sensores.leerPorcentajeBateria();;
Serial.print(bateria);
Serial.println("%");
Serial.print(" 2 Voltaje del velostat = ");
float voltaje = 1.751;
float voltaje = sensores.leerVoltajeVelostat();
Serial.println(voltaje);
//sensores.leerVoltajeVelostat();
uint8_t byteBateria = (uint8_t)bateria;
// Serial.println("");
byte *float_velostat = (byte *)&voltaje;
//byte *float_bateria = (byte *)&bateria;
const uint8_t payloadSize = 5;
uint8_t bufferDatos[payloadSize];
bufferDatos[0] = float_velostat[0];
Expand All @@ -50,20 +48,18 @@ void loop() {
uint8_t *sendData = bufferDatos;
for (int i = 0; i < sizeof(bufferDatos); i++) {
char cad[2];
//cad[2] = imprimirEnHex(bufferDatos[i]);
sprintf(cad, "%02x", bufferDatos[i]);
strcat(cadena, cad);
}
Serial.println(millis());
Serial.print(" Cadena: ");
Serial.println(cadena);
char * enviar = sensores.rot47(cadena);
Serial.println(enviar);
/*La cadena enviar no se puede enviar por lo que contiene caracteres especiales que no son aceptados
* por el backend de Sigfox por lo que se hace un casting hacia uint8_t para almacenar los caracteres
* de la cadena como bytes uint8_t *c = (uint8_t *)cadena, para alli recorrer el buffer, concatenar en
* cadenaEnviar y enviar mediante comandos AT.
* /
/* La cadena enviar no se puede enviar directamente usando comandos AT ya que contiene caracteres especiales
* no aceptados por el backend de Sigfox por lo que se hace un casting hacia uint8_t para almacenar los
* caracteres de la cadena como bytes uint8_t *c = (uint8_t *)cadena, para alli recorrer el buffer,
* concatenar en cadenaEnviar y enviar mediante comandos AT.
*/
uint8_t *c = (uint8_t *)cadena;
const uint8_t payload = 10;
uint8_t newBuffer[payload];
Expand All @@ -78,10 +74,8 @@ void loop() {
newBuffer[8]= c[8];
newBuffer[9]= c[9];
Send_Pload(newBuffer, 10);
memset(enviar, '\0', strlen(enviar));
memset(cadena, '\0', strlen(cadena));
delay(3000);
}

Expand All @@ -95,18 +89,3 @@ void Send_Pload(uint8_t *sendData, const uint8_t len){
Serial.println("");
free(RecvMsg);
}
char *rot47(char *s)
{
char *p = s;
while(*p) {
if(*p >= '!' && *p <= 'O'){
*p = ((*p + 47) % 127);
}else if(*p >= 'P' && *p <= '~'){
*p = ((*p - 47) % 127);
}
p++;
}
return s;
}
*/
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ void SensorInteligente::inicializar()
float SensorInteligente::leerVoltajeBateria()
{
bateria = analogRead(_pinA1);
delay(2); // permite que se estabilice el convertidor analógico-digital (ADC).
delay(2);
voltajeBateria = (((float) bateria) * 5.0) / 1023.0;
return voltajeBateria;
}
Expand All @@ -66,15 +66,13 @@ float SensorInteligente::leerVoltajeBateria()
* Es necesario que se implemente un divisor de voltaje.
* Establece el voltaje máximo de entrada que entrega la batería en el rango de [0, 1023].
* Debe utilizarse en la función setup() luego de inicializar las variables de la librería.
* @param rBajo: valor de la resistencia en Ohmios (Ω) que se encuentra conectada al negativo.
* @param rArriba: valor de la resistencia en Ohmios Ohmios (Ω) que está conectada al positivo.
* @param rBajo: valor de la resistencia en Ohmios (Ω) que se encuentra conectada al polo negativo.
* @param rArriba: valor de la resistencia en Ohmios Ohmios (Ω) que está conectada al polo positivo.
* @param VIn: voltaje de la batería, puede indicar un voltaje nominal o realizar mediciones con un multímetro.
*/
void SensorInteligente::calibrarBateria(float rBajo, float rArriba, float vIn){
float vMax = (rBajo / (rBajo + rArriba)) * vIn;
_limiteMaximoBateria = (int)(vMax * (1023 / 5));
Serial.print("Calibrado! - El valor analogico maximo de bateria es = ");
Serial.println(_limiteMaximoBateria);
}


Expand All @@ -84,7 +82,7 @@ void SensorInteligente::calibrarBateria(float rBajo, float rArriba, float vIn){
*/
int SensorInteligente::leerPorcentajeBateria(){
bateria = analogRead(_pinA1);
delay(5); // permite que se estabilice el convertidor analógico-digital (ADC).
delay(5);
porcentajeBateria = map((int) bateria, 0, _limiteMaximoBateria, 0, 100);
return porcentajeBateria;
}
Expand Down Expand Up @@ -117,37 +115,26 @@ int SensorInteligente::compararNivelBateria(int porcentajeBateria)
nivelBateriaMayor = porcentajeBateria;
}
return nivelBateriaMayor;

/*if ((porcentajeBateria <= nivelBateriaMayor)) {
nivelBateriaMayor = porcentajeBateria;
return nivelBateriaMayor;
}*/
}


/**
* @brief Función que determina el envío de la batería dado cierto intervalo de tiempo.
* La batería solo se envía cuando el nivel es mayor a 30%.
* @param intervalo: tiempo de espera para realizar el envío del valor de la batería.
* @param porcentaje:
* @param porcentaje: valor entre 0 y 100 que se transforma a un byte para ser enviado.
*/
void SensorInteligente::enviarBateria(long intervalo, int porcentaje)
{
int bateria = SensorInteligente::compararNivelBateria(porcentaje);
Serial.print("Bateria: ");
Serial.print(bateria);
Serial.print(" - Porcentaje bateria: ");
Serial.println(porcentaje);
//if (millis() - _tiempoAnterior > intervalo) {
if (millis() - _tiempoAnterior > intervalo) {
_tiempoAnterior = millis();
if(bateria > 30){
//Serial.println(_tiempoAnterior);
//Serial.println(millis());
SensorInteligente::enviarPorcentajeBateria(bateria);
}else{
Serial.println(" -> Bateria baja");
}
//}
}
}


Expand Down Expand Up @@ -209,16 +196,3 @@ char *SensorInteligente::rot47(char *s)
}
return s;
}


/**
* @brief Función que envía un buffer a Sigfox en el intervalo asignado
*/
void SensorInteligente::tiempoEspera(long intervalo, float voltajeSensor, float porcentajeBateria, void (*funcionEnvio)(float, float))
{
long tiempoA = millis();
if (millis() - _tiempoAnterior > intervalo) {
_tiempoAnterior = millis();
funcionEnvio(voltajeSensor, porcentajeBateria);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ class SensorInteligente

// Funciones
void inicializar();
void tiempoEspera(long intervalo, float voltajeSensor, float porcentajeBateria, void (*funcionEnvio)(float, float));
void calibrarBateria(float rBajo, float rArriba, float vIn);
void enviarBateria(long intervalo, int porcentajeBateria);
void enviarPorcentajeBateria(int porcentaje);
Expand Down

0 comments on commit 3b77466

Please sign in to comment.