Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <TheThingsNetwork.h>
- #include <Adafruit_Sensor.h>
- #include <Adafruit_BME280.h>
- #include <LowPower.h>
- #define SEALEVELPRESSURE_HPA (1015)
- #define loraSerial Serial1
- #define debugSerial Serial
- #define freqPlan TTN_FP_EU868
- #define batPin A5
- TheThingsNetwork ttn(loraSerial, debugSerial, freqPlan);
- Adafruit_BME280 bme; // I2C
- const char *appEui = "REMOVED";
- const char *appKey = "REMOVED";
- void setup()
- {
- loraSerial.begin(57600);
- debugSerial.begin(9600);
- pinMode(batPin,INPUT);
- analogReference(INTERNAL);
- // Wait a maximum of 10s for Serial Monitor
- while (!debugSerial && millis() < 10000)
- ;
- debugSerial.println("-- STATUS");
- ttn.showStatus();
- debugSerial.println("-- JOIN");
- ttn.join(appEui, appKey);
- // Testing BME280 Sensor
- unsigned status;
- status = bme.begin(0x76);
- if (!status) {
- Serial.println("Could not find a valid BME280 sensor, check wiring, address, sensor ID!");
- Serial.print("SensorID was: 0x"); Serial.println(bme.sensorID(), 16);
- Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
- Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");
- Serial.print(" ID of 0x60 represents a BME 280.\n");
- Serial.print(" ID of 0x61 represents a BME 680.\n");
- while (1) delay(10);
- }
- }
- void loop()
- {
- ttn.wake();
- delay(100);
- debugSerial.println("-- LOOP");
- uint16_t humidity = bme.readHumidity() * 100;
- uint16_t temperature = bme.readTemperature() * 100;
- uint16_t pressure = bme.readPressure();
- uint16_t voltage = (analogRead(batPin) * 4.2/1023) * 100;
- byte payload[8];
- payload[0] = highByte(temperature);
- payload[1] = lowByte(temperature);
- payload[2] = highByte(humidity);
- payload[3] = lowByte(humidity);
- payload[4] = highByte(pressure);
- payload[5] = lowByte(pressure);
- payload[6] = highByte(voltage);
- payload[7] = lowByte(voltage);
- debugSerial.print("Temperature: ");
- debugSerial.println(temperature);
- debugSerial.print("Humidity: ");
- debugSerial.println(humidity);
- debugSerial.print("Pressure: ");
- debugSerial.println(pressure / 100.0F);
- debugSerial.print("Voltage");
- debugSerial.println(voltage);
- ttn.sendBytes(payload, sizeof(payload));
- ttn.sleep(2000000); //sleep RN module in [ms]
- delay(100);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
- }
Advertisement
Add Comment
Please, Sign In to add comment