diff --git a/basic_sodaq_one/basic_sodaq_one.ino b/basic_sodaq_one/basic_sodaq_one.ino index 6596c37..c8d9ec2 100644 --- a/basic_sodaq_one/basic_sodaq_one.ino +++ b/basic_sodaq_one/basic_sodaq_one.ino @@ -5,19 +5,10 @@ #define loraSerial Serial1 /* The number of the device: 1,2,3,4 */ -#define deviceNo 1 +#define deviceNo 2 #define beePin ENABLE_PIN_IO -#define LOUDNESS_SENSOR 0 -#define LIGHT_SENSOR 2 -#define WATER_SENSOR 6 -#define BUZZER 8 -#define MAGNETIC_SWITCH 12 -#define TEMPERATURE 13 - -int loudness; - void BLUE() { digitalWrite(LED_RED, HIGH); digitalWrite(LED_GREEN, HIGH); @@ -74,20 +65,6 @@ void blink(int length) { CLEAR(); } -void beep(int howlong) { - buzzOn(); - delay(howlong); - buzzOff(); -} - -void buzzOn() { - digitalWrite(BUZZER, HIGH); -} - -void buzzOff() { - digitalWrite(BUZZER, LOW); -} - void setupLED() { pinMode(LED_RED, OUTPUT); @@ -95,17 +72,23 @@ void setupLED() { pinMode(LED_BLUE, OUTPUT); } - // OTAA // Random numbers chosen + device id -uint8_t DevEUI[8] = { 0x9c, 0xd9, 0x0b, 0xb5, 0x2b, 0x6a, 0x1d, deviceNo }; +uint8_t DevEUI[8] = { 0x9c, 0xd9, 0x0b, 0xb5, 0x2b, 0x6a, 0x1d, +deviceNo }; +// 05 = dragino hat +// 9CD90BB52B6A1D05 +// appeui 70B3D57ED0000E9B + +/* Thingsnetwork */ +// uint8_t AppEUI[8] = { 0x70, 0xB3, 0xD5, 0x7E, 0xD0, 0x00, 0x0E, 0x9B }; +// uint8_t AppKey[16] = { 0xE4, 0xAC, 0x4D, 0xD4, 0xB2, 0xA7, 0x84,0xB8, 0x9D, 0xC9, 0x4C, 0x37, 0xD9, 0x0E, 0x22, 0x45 }; + +/* swisscom */ uint8_t AppEUI[8] = { 0xd4, 0x16, 0xcd, 0x0b, 0x7b, 0xcf, 0x2d, 0x5c }; +uint8_t AppKey[16] = { 0xa9, 0xbc, 0x8b, 0x6a, 0x81, 0x75, 0xf6, 0x33, 0xe0, 0xd6, 0x64, 0xd9, 0x2b, 0xcb, 0x13, 0x78 }; -uint8_t AppKey[16] = { 0xa9, 0xbc, 0x8b, 0x6a, 0x81, 0x75, 0xf6, 0x33, -0xe0, 0xd6, 0x64, 0xd9, 0x2b, 0xcb, 0x13, 0x78 }; - -uint8_t counter; void setupLoRaOTAA(){ if (LoRaBee.initOTA(loraSerial, DevEUI, AppEUI, AppKey, true)) @@ -118,81 +101,13 @@ void setupLoRaOTAA(){ } } -int readLoudness() -{ - return analogRead(LOUDNESS_SENSOR); -} - -int readLight() -{ - int sensorValue = analogRead(LIGHT_SENSOR); - return map(sensorValue, 11, 27333, 0, 413); -} - -void setupWater() { - pinMode(WATER_SENSOR, INPUT); -} - -boolean hasWater() -{ - if(digitalRead(WATER_SENSOR) == LOW) { - return true; - } else { - return false; - } -} - -void setupTemp() { - pinMode(TEMPERATURE, INPUT); -} - -float readTemp() -{ - float temperature; - int B=4250; //B value of the thermistor - float resistance; - int a; - - a=analogRead(TEMPERATURE); - resistance=(float)(1023-a)*10000/a; //get the resistance of the sensor; - temperature=1/(log(resistance/10000)/B+1/298.15)-273.15;//convert to temperature via datasheet ; - - return temperature; -} - - -void setupBuzzer() -{ - pinMode(BUZZER, OUTPUT); -} - - -void setupMagnet() -{ - pinMode(MAGNETIC_SWITCH, INPUT); -} - -boolean isMagnetic() -{ - if(digitalRead(MAGNETIC_SWITCH) == HIGH) - return true; - else - return false; -} - - void setup() { //Power up the LoRaBEE - on loraone/sodaq one pinMode(ENABLE_PIN_IO, OUTPUT); // ONE - digitalWrite(beePin, HIGH); // ONE delay(3000); - /* Enable the pins 2/3, 6/7 and 8/9 */ - pinMode(11, OUTPUT); - digitalWrite(11, HIGH); - while ((!SerialUSB) && (millis() < 10000)){ // Wait 10 seconds for the Serial Monitor } @@ -201,24 +116,11 @@ void setup() { debugSerial.begin(57600); loraSerial.begin(LoRaBee.getDefaultBaudRate()); - // Debug output from LoRaBee - // LoRaBee.setDiag(debugSerial); // optional - setupLED(); blink(60); - /* used for blinking */ - counter=0; - - loudness = 0; - //connect to the LoRa Network setupLoRa(); - - setupWater(); - setupBuzzer(); - setupMagnet(); - } void setupLoRa(){ @@ -268,76 +170,18 @@ void sendPacket(String packet){ } void loop() { - - /* Announce begin of code */ blink(20); delay(50); blink(20); delay(50); blink(20); delay(50); - loudness = readLoudness(); + sendPacket("Hallo Welt"); + blink(200); + delay(5000); - String data_loudness = String("loudness=" + String(loudness, DEC)); - debugSerial.println(data_loudness); - - String data_light = String("light=" + String(readLight(), 3)); - debugSerial.println(data_light); - - String data_temp = String("temp=" + String(readTemp(), 3)); - debugSerial.println(data_temp); - - - String data_water; - if(hasWater()) { - data_water = String("water=1"); - buzzOn(); - } else { - data_water = String("water=0"); - buzzOff(); - } - debugSerial.println(data_water); - - String data_magnet; - if(isMagnetic()) { - data_magnet = String("magnet=1"); - } else { - data_magnet = String("magnet=0"); - } - debugSerial.println(data_magnet); - - - sendPacket(data_loudness); - blink(20); delay(2980); - sendPacket(data_temp); - blink(20); delay(2980); - sendPacket(data_light); - blink(20); delay(2980); - sendPacket(data_water); - blink(20); delay(2980); - sendPacket(data_magnet); - - - /* Blink long after sending packet - if(counter >= 10) { - // Beep(20); - blink(20); - delay(10); - blink(20); - sendPacket(data_temp); - blink(500); - sendPacket(data_loudness); - blink(500); - sendPacket(data_light); - blink(500); - sendPacket(data_water); - blink(500); - sendPacket(data_magnet); - counter = 0; - } else { - blink(30); - counter++; - } - */ - - // delay(1000); + /* longer delay + for(int i=0; i < 60; i++) { + blink(100); + delay(1000); + } */ }