Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #include <stdio.h>
- // Librerias agregadas //
- #include <SFE_BMP180.h>
- #include <Wire.h>
- SFE_BMP180 bmp180;
- SoftwareSerial loraSerial(10, 11); //RX TX
- /// Variables del programa ///
- String bandera= "";
- String str;
- String eui= "";
- int inicializacion = 0;
- // Variables modificables //
- String str2 = "02"; // Llenar con el valor de bandera seleccionado
- String decimales = "2"; // Llenar con el valor de decimales seleccionado
- String str1 = ""; //Se va a tomar de datos
- /// Variables Agregadas ///
- long presion;
- void setup() {
- Serial.println("Iniciando LoRa");
- Serial.begin(57600);
- loraSerial.begin(9600);
- loraSerial.setTimeout(100); // Revisar..
- lora_autobaud();
- loraSerial.listen();
- str = loraSerial.readStringUntil('\n');
- Serial.println(str);
- LoRa("sys get ver");
- LoRa("mac pause");
- LoRa("radio set freq 902000000");
- LoRa("radio set mod lora");
- LoRa("radio set pwr 14");
- LoRa("radio set sf sf7");
- LoRa("radio set afcbw 41.7");
- LoRa("radio set rxbw 125");
- LoRa("radio set prlen 8");
- LoRa("radio set crc on");
- LoRa("radio set iqi off");
- LoRa("radio set cr 4/5");
- LoRa("radio set sync 12");
- LoRa("radio set bw 125");
- // Setup del sensor //
- bmp180.begin();
- Serial.println("Comienza el ciclo");
- }
- void loop() {
- /////////////////// Recepcion ///////////////////////////////
- while (bandera != str2){
- bandera= "";
- loraSerial.println("radio rx 0");
- str = loraSerial.readStringUntil('\n');
- //Serial.println(str);
- if ( str.indexOf("ok") == 0 )
- {
- str = String("");
- while (str == "")
- {
- str = loraSerial.readStringUntil('\n');
- }
- if ( str.indexOf("radio_rx") == 0 )
- {
- toggle_led();
- //Serial.println(str);
- }
- else
- {
- Serial.println("Received nothing");
- }
- }
- else
- {
- Serial.println("radio not going into receive mode");
- delay(100);
- }
- int var1 = 3;
- while (var1 > 1) {
- bandera= bandera+ str[str.length() - var1] ;
- var1--;
- }
- }
- if (inicializacion == 0){
- loraSerial.println("sys get hweui");
- str = loraSerial.readStringUntil('\n');
- int var2 = 0;
- while (var2 < str.length()-1) {
- eui = eui + str[var2] ;
- var2++;
- }
- str1 = eui;
- //Serial.println(str1);
- }
- else {
- //////////// Datos //////////////
- char status;
- double T,P;
- status = bmp180.startTemperature(); //Inicio de lectura de temperatura
- if (status != 0){
- delay(status); //Pausa para que finalice la lectura
- status = bmp180.getTemperature(T); //Obtener la temperatura
- if (status != 0){
- status = bmp180.startPressure(3); //Inicio lectura de presión
- if (status != 0){
- delay(status); //Pausa para que finalice la lectura
- status = bmp180.getPressure(P,T); //Obtenemos la presión
- if (status != 0){
- P = P + 275;
- int var2 = 0;
- while (var2 < 7) {
- if (var2 == 4){ // A4 (SDA) and A5 (SCL)
- var2++;
- }
- else {
- str1 = str1 + String(P)[var2] ;
- var2++;
- }
- }
- Serial.println(str1);
- }}}}}
- inicializacion = 1;
- ///////// Transmision ////////////
- if (bandera == str2){
- delay(100);
- loraSerial.print("radio tx ");
- loraSerial.print(str1);
- loraSerial.print(bandera);
- loraSerial.println(decimales);
- str = loraSerial.readStringUntil('\n');
- delay(100);
- str = loraSerial.readStringUntil('\n');
- str1 = String(str1.toInt() + 1);
- }
- eui = "";
- bandera= "";
- str1 = "";
- }
- void lora_autobaud()
- {
- String response = "";
- while (response == "")
- {
- delay(1000);
- loraSerial.write((byte)0x00);
- loraSerial.write(0x55);
- loraSerial.println();
- loraSerial.println("sys get ver");
- response = loraSerial.readStringUntil('\n');
- }
- }
- void LoRa(String ini)
- {
- loraSerial.println(ini);
- str = loraSerial.readStringUntil('\n');
- }
- void toggle_led()
- {
- digitalWrite(13, !digitalRead(13));
- }
Add Comment
Please, Sign In to add comment