projekte:grossprojekte:lorawan:12_temp-feuchte
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| projekte:grossprojekte:lorawan:12_temp-feuchte [2020/03/18 19:19] – fablab_wiki | projekte:grossprojekte:lorawan:12_temp-feuchte [2022/12/14 12:48] (aktuell) – michael | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ===== 12 Temperatur - Luftfeuchte ===== | + | ===== 12. Temperatur - Luftfeuchte ===== |
| \\ | \\ | ||
| \\ | \\ | ||
| Zeile 76: | Zeile 76: | ||
| ====Sketch==== | ====Sketch==== | ||
| Was wäre eine Node ohne Programm (Sketch)? ([[projekte: | Was wäre eine Node ohne Programm (Sketch)? ([[projekte: | ||
| - | Zur Verwendung kommt der LoRa-Universalsketch mit Erweiterungen zum Auslesen des Sensors DHT22. | + | Zur Verwendung kommt der LoRa-Universalsketch |
| - | Zum ersten Test wurden einige Serial.print-Anweisungen verwendet, sobald | + | Zum ersten Test wurden einige |
| - | Nartürlich muss der Sensor | + | Nartürlich muss die Node vorher wieder im TTN-Netzwerk in seiner zugehörigen Applikation |
| (Ich habe diese Daten im nachfolgenden Listing natürlich wieder unkenntlich gemacht)\\ | (Ich habe diese Daten im nachfolgenden Listing natürlich wieder unkenntlich gemacht)\\ | ||
| - | Der Sketch wurde mit der Bibliothek " | + | Der Sketch wurde mit der Bibliothek " |
| \\ | \\ | ||
| - | <code JavaScript [enable_line_numbers=" | + | <code JavaScript [enable_line_numbers=" |
| / | / | ||
| | | ||
| Zeile 124: | Zeile 124: | ||
| // | // | ||
| // eigene Defintitionen | // eigene Defintitionen | ||
| - | int t, tt, h, hh; | ||
| - | // | ||
| //DHT22 | //DHT22 | ||
| int pinDHT22 = 4; | int pinDHT22 = 4; | ||
| SimpleDHT22 dht22(pinDHT22); | SimpleDHT22 dht22(pinDHT22); | ||
| - | byte temperature = 0; | + | float temperature = 0; |
| - | byte humidity = 0; | + | float humidity = 0; |
| // | // | ||
| // | // | ||
| // Application EUI Reihenfolge LSB MSB | // Application EUI Reihenfolge LSB MSB | ||
| - | static const u1_t PROGMEM APPEUI[8] = { 0x37, 0x41, 0x02, 0xD0, 0x7E, 0xD5, 0xB3, 0x70 }; | + | static const u1_t PROGMEM APPEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; |
| void os_getArtEui (u1_t* buf) { | void os_getArtEui (u1_t* buf) { | ||
| memcpy_P(buf, | memcpy_P(buf, | ||
| Zeile 140: | Zeile 138: | ||
| //Device EUI Reihenfolge LSB MSB | //Device EUI Reihenfolge LSB MSB | ||
| - | static const u1_t PROGMEM DEVEUI[8] = { 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02 }; | + | static const u1_t PROGMEM DEVEUI[8] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; |
| void os_getDevEui (u1_t* buf) { | void os_getDevEui (u1_t* buf) { | ||
| memcpy_P(buf, | memcpy_P(buf, | ||
| Zeile 146: | Zeile 144: | ||
| // Application Key Achtung: Reihenfolge MSB LSB | // Application Key Achtung: Reihenfolge MSB LSB | ||
| - | static const u1_t PROGMEM APPKEY[16] = { 0x7F, 0xC3, 0xCB, 0x17, 0xA8, 0x14, 0x0F, 0x11, 0xC7, 0x61, 0xCC, 0xCC, 0xEE, 0x1D, 0x8D, 0xC0 }; | + | static const u1_t PROGMEM APPKEY[16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; |
| void os_getDevKey (u1_t* buf) { | void os_getDevKey (u1_t* buf) { | ||
| memcpy_P(buf, | memcpy_P(buf, | ||
| Zeile 195: | Zeile 193: | ||
| } else { | } else { | ||
| // Eigene Sensoren | // Eigene Sensoren | ||
| - | | + | temperature = 0; |
| - | | + | humidity = 0; |
| int err = SimpleDHTErrSuccess; | int err = SimpleDHTErrSuccess; | ||
| if ((err = dht22.read(& | if ((err = dht22.read(& | ||
| Zeile 206: | Zeile 204: | ||
| } | } | ||
| // | // | ||
| - | // | + | // |
| - | // | + | // |
| //DHT22 sampling rate is 0.5HZ. | //DHT22 sampling rate is 0.5HZ. | ||
| delay(2500); | delay(2500); | ||
| Zeile 213: | Zeile 211: | ||
| // d.h. Anzeige TTN 1. Byte 14 (Hex) ist 20 Grad Celsius | // d.h. Anzeige TTN 1. Byte 14 (Hex) ist 20 Grad Celsius | ||
| // 2. Byte 38 (Hex) ist 56 % Rel H | // 2. Byte 38 (Hex) ist 56 % Rel H | ||
| - | payload[0] = temperature; | + | payload[0] = int(temperature); |
| - | payload[1] = humidity; | + | payload[1] = int(humidity); |
| // Ende eigene Sensoren | // Ende eigene Sensoren | ||
| // Prepare upstream data transmission at the next possible time. | // Prepare upstream data transmission at the next possible time. | ||
| Zeile 228: | Zeile 226: | ||
| // Ende eigenes Setup | // Ende eigenes Setup | ||
| // | // | ||
| - | #ifdef VCC_ENABLE | + | |
| - | // For Pinoccio Scout boards | + | |
| - | pinMode(VCC_ENABLE, | + | |
| - | digitalWrite(VCC_ENABLE, | + | |
| - | delay(1000); | + | |
| - | #endif | + | |
| // LMIC init | // LMIC init | ||
| Zeile 239: | Zeile 232: | ||
| // Reset the MAC state. Session and pending data transfers will be discarded. | // Reset the MAC state. Session and pending data transfers will be discarded. | ||
| LMIC_reset(); | LMIC_reset(); | ||
| - | LMIC_setClockError(MAX_CLOCK_ERROR * 2 / 100); | ||
| - | LMIC_setupChannel(0, | ||
| - | LMIC_setupChannel(1, | ||
| - | LMIC_setupChannel(2, | ||
| - | LMIC_setupChannel(3, | ||
| - | LMIC_setupChannel(4, | ||
| - | LMIC_setupChannel(5, | ||
| - | LMIC_setupChannel(6, | ||
| - | LMIC_setupChannel(7, | ||
| - | LMIC_setupChannel(8, | ||
| - | |||
| - | LMIC_setLinkCheckMode(0); | ||
| - | LMIC.dn2Dr = SF9; | ||
| - | LMIC_setDrTxpow(DR_SF7, | ||
| // Start job (sending automatically starts OTAA too) | // Start job (sending automatically starts OTAA too) | ||
| do_send(& | do_send(& | ||
| Zeile 264: | Zeile 243: | ||
| Was kommt hinzu: (Zeilenangaben in Klammern)\\ | Was kommt hinzu: (Zeilenangaben in Klammern)\\ | ||
| \\ | \\ | ||
| - | * (38) Bibliothek für den DHT22 (ist eine Einfachbibliothek, | + | * (39) Bibliothek für den DHT22 |
| - | * (44-47) Datenpin, Initialisierung, | + | * (43-46) Datenpin |
| - | * (69) Vorbelegung payload Variablen auf zwei Byte (wird später mit den Daten überschrieben) | + | * (110-131) Auslesen des Sensors mit Fehlerbehandlung, |
| - | * (76) Sendeintervall in Sekunden | + | |
| - | * (120-137) Auslesen des Sensors mit Fehlerbehandlung, | + | |
| - | * (147-148) Ausgabe auf den seriellen Monitor - damit man weiß, dass es los geht | + | |
| \\ | \\ | ||
| \\ | \\ | ||
| - | Stand: | + | Stand: |
projekte/grossprojekte/lorawan/12_temp-feuchte.1584559141.txt.gz · Zuletzt geändert: von fablab_wiki
