Compare commits

...

4 Commits

  1. 44
      src/MessenSensoren.cpp
  2. 121
      src/main.cpp

44
src/MessenSensoren.cpp

@ -46,7 +46,7 @@ int h,m,t;
zerortc.setDate(t, 1, 22); zerortc.setDate(t, 1, 22);
uiOnStd = 0; uiOnStd = 0;
Serial.println(" InitTimeDate "); Serial1.println(" InitTimeDate ");
PrintTimeDate(); PrintTimeDate();
} }
@ -58,11 +58,11 @@ int i;
// Datum auch // Datum auch
sprintf(szUhrzeit2, "%02d.%02d.%02d ", zerortc.getDay(), zerortc.getMonth(), zerortc.getYear() ); sprintf(szUhrzeit2, "%02d.%02d.%02d ", zerortc.getDay(), zerortc.getMonth(), zerortc.getYear() );
Serial.print(szUhrzeit2); Serial1.print(szUhrzeit2);
// Zum Test Uhrzeit ausgeben // Zum Test Uhrzeit ausgeben
sprintf(szUhrzeit2, "%02d:%02d:%02d", zerortc.getHours(), zerortc.getMinutes(), zerortc.getSeconds() ); sprintf(szUhrzeit2, "%02d:%02d:%02d", zerortc.getHours(), zerortc.getMinutes(), zerortc.getSeconds() );
Serial.println(szUhrzeit2); Serial1.println(szUhrzeit2);
// gesammt Stunden berechnen // gesammt Stunden berechnen
i = zerortc.getHours(); i = zerortc.getHours();
@ -70,7 +70,7 @@ if ( uiOldHour != i)
{ {
uiOldHour = i; uiOldHour = i;
uiOnStd++; uiOnStd++;
Serial.println(uiOnStd); Serial1.println(uiOnStd);
} }
} }
@ -99,7 +99,7 @@ return result;
void init_Messen() { void init_Messen() {
int i; int i;
Serial.println("PowerOn I2C"); Serial1.println("PowerOn I2C");
// I2C Power einschalten LoRa Transponder // I2C Power einschalten LoRa Transponder
pinMode(I2C_POWER, OUTPUT); pinMode(I2C_POWER, OUTPUT);
digitalWrite(I2C_POWER, HIGH); digitalWrite(I2C_POWER, HIGH);
@ -108,7 +108,7 @@ void init_Messen() {
Wire.begin(); Wire.begin();
// Hardware detection, liste was angeschlossen ist // Hardware detection, liste was angeschlossen ist
Serial.println("I2C Hardware detection"); Serial1.println("I2C Hardware detection");
if (I2C_Test(BME280_ADR) != 0xFF) { if (I2C_Test(BME280_ADR) != 0xFF) {
Set_I2C_Adresse(BME280_ADR); Set_I2C_Adresse(BME280_ADR);
@ -120,24 +120,24 @@ void init_Messen() {
} }
if (I2C_Test(0x77) != 0xFF) { if (I2C_Test(0x77) != 0xFF) {
Serial.println("BMP180 gefunden"); Serial1.println("BMP180 gefunden");
} }
if (I2C_Test(0x38) != 0xFF) { if (I2C_Test(0x38) != 0xFF) {
Serial.println(F("AHT10 gefunden")); Serial1.println(F("AHT10 gefunden"));
} }
// such BH1730 // such BH1730
if (I2C_Test(0x29) != 0xFF) { if (I2C_Test(0x29) != 0xFF) {
Serial.println("BH1730 gefunden"); Serial1.println("BH1730 gefunden");
} }
// such BH1750 // such BH1750
if (I2C_Test(0x23) != 0xFF) { if (I2C_Test(0x23) != 0xFF) {
Serial.println("BH1750 gefunden"); Serial1.println("BH1750 gefunden");
BH1750_Init(); BH1750_Init();
} }
Serial.println("ende"); Serial1.println("ende");
} }
//------------------------------------------ //------------------------------------------
@ -185,21 +185,21 @@ void MessenSensoren() {
if (lVisLux > 65535) lVisLux = 654321; if (lVisLux > 65535) lVisLux = 654321;
Serial.print(F("Temp = ")); Serial1.print(F("Temp = "));
Serial.println(t); Serial1.println(t);
Serial.print(F("Druck = ")); Serial1.print(F("Druck = "));
Serial.println(p); Serial1.println(p);
Serial.print(F("Feuchte = ")); Serial1.print(F("Feuchte = "));
Serial.println(h); Serial1.println(h);
Serial.print(F("Vis = ")); Serial1.print(F("Vis = "));
Serial.println(lVisLux); Serial1.println(lVisLux);
Serial.print(F("Ubatt = ")); Serial1.print(F("Ubatt = "));
fUb = readVcc(); // T3 und T5 fUb = readVcc(); // T3 und T5
Serial.print( fUb ); Serial1.print( fUb );
Serial.println(F("mV ")); Serial1.println(F("mV "));
hse.reset(); hse.reset();

121
src/main.cpp

@ -123,15 +123,15 @@ const lmic_pinmap lmic_pins = {
void printHex2(unsigned v) { void printHex2(unsigned v) {
v &= 0xff; v &= 0xff;
if (v < 16) if (v < 16)
Serial.print('0'); Serial1.print('0');
Serial.print(v, HEX); Serial1.print(v, HEX);
} }
void do_send(__attribute__((unused)) osjob_t *j) { void do_send(__attribute__((unused)) osjob_t *j) {
// Check if there is not a current TX/RX job running // Check if there is not a current TX/RX job running
if (LMIC.opmode & OP_TXRXPEND) { if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending")); Serial1.println(F("OP_TXRXPEND, not sending"));
} else { } else {
// Prepare upstream data transmission at the next possible time. // Prepare upstream data transmission at the next possible time.
MessenSensoren(); MessenSensoren();
@ -140,56 +140,56 @@ void do_send(__attribute__((unused)) osjob_t *j) {
LMIC_setDrTxpow(DR_SF7, 10); LMIC_setDrTxpow(DR_SF7, 10);
LMIC_setTxData2(1, buffer, size, 0); LMIC_setTxData2(1, buffer, size, 0);
Serial.println(F("Packet queued")); Serial1.println(F("Packet queued"));
} }
// Next TX is scheduled after TX_COMPLETE event. // Next TX is scheduled after TX_COMPLETE event.
} }
void onEvent(ev_t ev) { void onEvent(ev_t ev) {
Serial.print(os_getTime()); Serial1.print(os_getTime());
Serial.print(": "); Serial1.print(": ");
switch (ev) { switch (ev) {
case EV_SCAN_TIMEOUT: case EV_SCAN_TIMEOUT:
Serial.println(F("EV_SCAN_TIMEOUT")); Serial1.println(F("EV_SCAN_TIMEOUT"));
break; break;
case EV_BEACON_FOUND: case EV_BEACON_FOUND:
Serial.println(F("EV_BEACON_FOUND")); Serial1.println(F("EV_BEACON_FOUND"));
break; break;
case EV_BEACON_MISSED: case EV_BEACON_MISSED:
Serial.println(F("EV_BEACON_MISSED")); Serial1.println(F("EV_BEACON_MISSED"));
break; break;
case EV_BEACON_TRACKED: case EV_BEACON_TRACKED:
Serial.println(F("EV_BEACON_TRACKED")); Serial1.println(F("EV_BEACON_TRACKED"));
break; break;
case EV_JOINING: case EV_JOINING:
Serial.println(F("EV_JOINING")); Serial1.println(F("EV_JOINING"));
break; break;
case EV_JOINED: case EV_JOINED:
Serial.println(F("EV_JOINED")); Serial1.println(F("EV_JOINED"));
{ {
u4_t netid = 0; u4_t netid = 0;
devaddr_t devaddr = 0; devaddr_t devaddr = 0;
u1_t nwkKey[16]; u1_t nwkKey[16];
u1_t artKey[16]; u1_t artKey[16];
LMIC_getSessionKeys(&netid, &devaddr, nwkKey, artKey); LMIC_getSessionKeys(&netid, &devaddr, nwkKey, artKey);
Serial.print("netid: "); Serial1.print("netid: ");
Serial.println(netid, DEC); Serial1.println(netid, DEC);
Serial.print("devaddr: "); Serial1.print("devaddr: ");
Serial.println(devaddr, HEX); Serial1.println(devaddr, HEX);
Serial.print("AppSKey: "); Serial1.print("AppSKey: ");
for (size_t i = 0; i < sizeof(artKey); ++i) { for (size_t i = 0; i < sizeof(artKey); ++i) {
if (i != 0) if (i != 0)
Serial.print("-"); Serial1.print("-");
printHex2(artKey[i]); printHex2(artKey[i]);
} }
Serial.println(""); Serial1.println("");
Serial.print("NwkSKey: "); Serial1.print("NwkSKey: ");
for (size_t i = 0; i < sizeof(nwkKey); ++i) { for (size_t i = 0; i < sizeof(nwkKey); ++i) {
if (i != 0) if (i != 0)
Serial.print("-"); Serial1.print("-");
printHex2(nwkKey[i]); printHex2(nwkKey[i]);
} }
Serial.println(); Serial1.println();
} }
// Disable link check validation (automatically enabled // Disable link check validation (automatically enabled
// during join, but because slow data rates change max TX // during join, but because slow data rates change max TX
@ -201,95 +201,106 @@ void onEvent(ev_t ev) {
|| point in wasting codespace on it. || point in wasting codespace on it.
|| ||
|| case EV_RFU1: || case EV_RFU1:
|| Serial.println(F("EV_RFU1")); || Serial1.println(F("EV_RFU1"));
|| break; || break;
*/ */
case EV_JOIN_FAILED: case EV_JOIN_FAILED:
Serial.println(F("EV_JOIN_FAILED")); Serial1.println(F("EV_JOIN_FAILED"));
break; break;
case EV_REJOIN_FAILED: case EV_REJOIN_FAILED:
Serial.println(F("EV_REJOIN_FAILED")); Serial1.println(F("EV_REJOIN_FAILED"));
break; break;
case EV_TXCOMPLETE: case EV_TXCOMPLETE:
Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)")); Serial1.println(F("EV_TXCOMPLETE (includes waiting for RX windows)"));
if (LMIC.txrxFlags & TXRX_ACK) if (LMIC.txrxFlags & TXRX_ACK)
Serial.println(F("Received ack")); Serial1.println(F("Received ack"));
if (LMIC.dataLen) { if (LMIC.dataLen) {
Serial.print(F("Received ")); Serial1.print(F("Received "));
Serial.print(LMIC.dataLen); Serial1.print(LMIC.dataLen);
Serial.print(F(" bytes of payload: ")); Serial1.print(F(" bytes of payload: "));
for (int i = 0; i < LMIC.dataLen; i++) { for (int i = 0; i < LMIC.dataLen; i++) {
if (LMIC.frame[LMIC.dataBeg + i] < 0x10) { Serial.print(F("0")); } if (LMIC.frame[LMIC.dataBeg + i] < 0x10) { Serial1.print(F("0")); }
Serial.print(LMIC.frame[LMIC.dataBeg + i], HEX); Serial1.print(LMIC.frame[LMIC.dataBeg + i], HEX);
Serial.print(F(" ")); Serial1.print(F(" "));
} }
Serial.println(F("")); Serial1.println(F(""));
} }
// Schedule next transmission // Schedule next transmission
os_setTimedCallback(&sendjob, os_getTime() + sec2osticks(TX_INTERVAL), do_send); os_setTimedCallback(&sendjob, os_getTime() + sec2osticks(TX_INTERVAL), do_send);
PrintTimeDate();
Serial.println(F("vor sleep")); Serial1.println(F("vor sleep"));
Serial.flush(); Serial1.flush();
LowPower.sleep(1000);
Serial.println(F("wieder aufgewacht")); // => er wacht nicht wieder auf //LowPower.sleep((uint32_t) (TX_INTERVAL-10)*1000); // bis kurz vor dem Ereignis schlafen
LowPower.sleep(1000); // ich will wissen wie häufig er hier vorbei kommt
Serial1.println(F("wieder aufgewacht")); // => er wacht nicht wieder auf
break; break;
case EV_LOST_TSYNC: case EV_LOST_TSYNC:
Serial.println(F("EV_LOST_TSYNC")); Serial1.println(F("EV_LOST_TSYNC"));
break; break;
case EV_RESET: case EV_RESET:
Serial.println(F("EV_RESET")); Serial1.println(F("EV_RESET"));
break; break;
case EV_RXCOMPLETE: case EV_RXCOMPLETE:
// data received in ping slot // data received in ping slot
Serial.println(F("EV_RXCOMPLETE")); Serial1.println(F("EV_RXCOMPLETE"));
break; break;
case EV_LINK_DEAD: case EV_LINK_DEAD:
Serial.println(F("EV_LINK_DEAD")); Serial1.println(F("EV_LINK_DEAD"));
break; break;
case EV_LINK_ALIVE: case EV_LINK_ALIVE:
Serial.println(F("EV_LINK_ALIVE")); Serial1.println(F("EV_LINK_ALIVE"));
break; break;
/* /*
|| This event is defined but not used in the code. No || This event is defined but not used in the code. No
|| point in wasting codespace on it. || point in wasting codespace on it.
|| ||
|| case EV_SCAN_FOUND: || case EV_SCAN_FOUND:
|| Serial.println(F("EV_SCAN_FOUND")); || Serial1.println(F("EV_SCAN_FOUND"));
|| break; || break;
*/ */
case EV_TXSTART: case EV_TXSTART:
Serial.println(F("EV_TXSTART")); Serial1.println(F("EV_TXSTART"));
break; break;
case EV_TXCANCELED: case EV_TXCANCELED:
Serial.println(F("EV_TXCANCELED")); Serial1.println(F("EV_TXCANCELED"));
break; break;
case EV_RXSTART: case EV_RXSTART:
/* do not print anything -- it wrecks timing */ /* do not print anything -- it wrecks timing */
break; break;
case EV_JOIN_TXCOMPLETE: case EV_JOIN_TXCOMPLETE:
Serial.println(F("EV_JOIN_TXCOMPLETE: no JoinAccept")); Serial1.println(F("EV_JOIN_TXCOMPLETE: no JoinAccept"));
break; break;
default: default:
Serial.print(F("Unknown event: ")); Serial1.print(F("Unknown event: "));
Serial.println((unsigned) ev); Serial1.println((unsigned) ev);
break; break;
} }
} }
void setup() { void setup() {
delay(5000); //delay(5000);
//while (!Serial); //while (!Serial);
Serial.begin(19200);
Serial.println(F("Starting 1.04")); // usb auschalten
USBDevice.detach();
Serial1.begin(19200);
Serial1.println(F("Starting 1.04"));
Serial1.println(F(__FILE__));
Serial1.println(F(__DATE__));
#ifdef __SAMD21G18A__ #ifdef __SAMD21G18A__
Serial.println(F("SAMD21G18A ARM Cortex-M0+ detected")); Serial1.println(F("SAMD21G18A ARM Cortex-M0+ detected"));
#endif #endif
#ifdef ARDUINO_SAMD_FEATHER_M0 #ifdef ARDUINO_SAMD_FEATHER_M0
Serial.println(F("defined for Feather M0 Board")); Serial1.println(F("defined for Feather M0 Board"));
#endif #endif
init_Messen(); init_Messen();
@ -298,7 +309,7 @@ void setup() {
#ifdef CFG_eu868 #ifdef CFG_eu868
Serial.println(F("Using EU868")); Serial1.println(F("Using EU868"));
#endif #endif

Loading…
Cancel
Save