Trim down basic example

This commit is contained in:
Nico Schottelius 2016-10-09 21:16:07 +02:00
parent 7c5d339420
commit a226a09be5
1 changed files with 21 additions and 177 deletions

View File

@ -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);
} */
}