I am a little helpless. In my opinion, my code would have to be correct to send the data from the DHT11 sensor to TheThingsNetwork. ABP is used. However, I do not receive any data in the TTN Console. The serial monitor displays:
Beginning Humidity: 0 13: 21: 35,474 -> Temperature: 0 13: 21: 35.474 -> 17159: EV_JOINING
For help, I would be grateful. Here is my code:
include
include <hal/hal.h>
include
include
include
define DHTPIN 6 //Der Sensor wird an PIN 0 angeschlossen
define DHTTYPE DHT11 // Es handelt sich um den DHT11 Sensor
// These callbacks are only used in over-the-air activation, so they are
// left empty here (we cannot leave them out completely unless
// DISABLE_JOIN is set in config.h, otherwise the linker will complain).
void os_getArtEui (u1_t buf) { }
void os_getDevEui (u1_t buf) { }
void os_getDevKey (u1_t* buf) { }
static osjob_t sendjob;
// Schedule TX every this many seconds (might become longer due to duty
// cycle limitations).
const unsigned TX_INTERVAL = 20;
void onEvent (ev_t ev) {
Serial.print(os_getTime());
Serial.print(": ");
switch(ev) {
case EV_SCAN_TIMEOUT:
Serial.println(F("EV_SCAN_TIMEOUT"));
break;
case EV_BEACON_FOUND:
Serial.println(F("EV_BEACON_FOUND"));
break;
case EV_BEACON_MISSED:
Serial.println(F("EV_BEACON_MISSED"));
break;
case EV_BEACON_TRACKED:
Serial.println(F("EV_BEACON_TRACKED"));
break;
case EV_JOINING:
Serial.println(F("EV_JOINING"));
break;
case EV_JOINED:
Serial.println(F("EV_JOINED"));
// Disable link check validation (automatically enabled
// during join, but not supported by TTN at this time).
LMIC_setLinkCheckMode(0);
break;
case EV_RFU1:
Serial.println(F("EV_RFU1"));
break;
case EV_JOIN_FAILED:
Serial.println(F("EV_JOIN_FAILED"));
break;
case EV_REJOIN_FAILED:
Serial.println(F("EV_REJOIN_FAILED"));
break;
break;
case EV_TXCOMPLETE:
Serial.println(F("EV_TXCOMPLETE (includes waiting for RX windows)"));
if (LMIC.txrxFlags & TXRX_ACK)
Serial.println(F("Received ack"));
if (LMIC.dataLen) {
Serial.println(F("Received "));
Serial.println(LMIC.dataLen);
Serial.println(F(" bytes of payload"));
}
// Schedule next transmission
os_setTimedCallback(&sendjob, os_getTime()+sec2osticks(TX_INTERVAL), do_send);
break;
case EV_LOST_TSYNC:
Serial.println(F("EV_LOST_TSYNC"));
break;
case EV_RESET:
Serial.println(F("EV_RESET"));
break;
case EV_RXCOMPLETE:
// data received in ping slot
Serial.println(F("EV_RXCOMPLETE"));
break;
case EV_LINK_DEAD:
Serial.println(F("EV_LINK_DEAD"));
break;
case EV_LINK_ALIVE:
Serial.println(F("EV_LINK_ALIVE"));
break;
default:
Serial.println(F("Unknown event"));
break;
}
}
void do_send(osjob_t j){
// Check if there is not a current TX/RX job running
if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending"));
} else {
// Prepare upstream data transmission at the next possible time.
uint32_t humidity = dht.readHumidity(false) 100;
uint32_t temperature = dht.readTemperature(false) * 100;
Hello everyone,
I am a little helpless. In my opinion, my code would have to be correct to send the data from the DHT11 sensor to TheThingsNetwork. ABP is used. However, I do not receive any data in the TTN Console. The serial monitor displays: Beginning Humidity: 0 13: 21: 35,474 -> Temperature: 0 13: 21: 35.474 -> 17159: EV_JOINING
For help, I would be grateful. Here is my code:
include
include <hal/hal.h>
include
include
include
define DHTPIN 6 //Der Sensor wird an PIN 0 angeschlossen
define DHTTYPE DHT11 // Es handelt sich um den DHT11 Sensor
DHT dht(DHTPIN, DHTTYPE);
static const u1_t NWKSKEY[16] = { 0x6C, 0xA9, 0x3C, 0x3A, 0xA7, 0x51, 0x25, 0xA7, 0xE0, 0x9A, 0x02, 0x2A, 0x6D, 0x79, 0x82, 0xE9 }; static const u1_t APPSKEY[16] = { 0x7A, 0xB4, 0xD5, 0x57, 0x06, 0x5C, 0x77, 0xD0, 0x33, 0x67, 0x36, 0xD7, 0x0A, 0x0C, 0xAB, 0x30 }; static const u4_t DEVADDR = 0x260116AC;
// These callbacks are only used in over-the-air activation, so they are // left empty here (we cannot leave them out completely unless // DISABLE_JOIN is set in config.h, otherwise the linker will complain). void os_getArtEui (u1_t buf) { } void os_getDevEui (u1_t buf) { } void os_getDevKey (u1_t* buf) { }
static osjob_t sendjob;
// Schedule TX every this many seconds (might become longer due to duty // cycle limitations). const unsigned TX_INTERVAL = 20;
// Pin mapping Dragino Shield const lmic_pinmap lmic_pins = { .nss = 10, .rxtx = LMIC_UNUSED_PIN, .rst = 9, .dio = {2, 6, 7}, };
void onEvent (ev_t ev) { Serial.print(os_getTime()); Serial.print(": "); switch(ev) { case EV_SCAN_TIMEOUT: Serial.println(F("EV_SCAN_TIMEOUT")); break; case EV_BEACON_FOUND: Serial.println(F("EV_BEACON_FOUND")); break; case EV_BEACON_MISSED: Serial.println(F("EV_BEACON_MISSED")); break; case EV_BEACON_TRACKED: Serial.println(F("EV_BEACON_TRACKED")); break; case EV_JOINING: Serial.println(F("EV_JOINING")); break; case EV_JOINED: Serial.println(F("EV_JOINED"));
}
void do_send(osjob_t j){ // Check if there is not a current TX/RX job running if (LMIC.opmode & OP_TXRXPEND) { Serial.println(F("OP_TXRXPEND, not sending")); } else { // Prepare upstream data transmission at the next possible time. uint32_t humidity = dht.readHumidity(false) 100; uint32_t temperature = dht.readTemperature(false) * 100;
}
void setup() { Serial.begin(9600); Serial.println(F("Starting"));
}
void loop() { os_runloop_once(); }