Änderungen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche

LoRaWAN

1.521 Byte hinzugefügt, 22:22, 5. Mär. 2018
/* Konfiguration für bestimmte Hardware */
== Konfiguration für bestimmte Hardware ==
=== ESP32 ===
Der ESP32 hat eine sog. Schaltmatrix und man kann damit sämtliche wichtigen IO-Funktionen auf andere Pinne "umbiegen". Das Umbiegen gelingt unter Arduino meist indem beim XXX.begin() die Pinne als Parameter übergeben werden (wo normalerweise nix übergeben wird).
 
Um typische ESP32 + OLED + LoRA-Module richtig zu befeuern, muss man daher im Setup noch vor dem LMIC-Init eine Zeile hinzufügen, die die Pinne entsprechend für die SPI zuordnet - bei mir ging das mit folgender Zeile:
<pre>
SPI.begin(5, 19, 27, 18);
</pre>
 
Die Syntax ergibt sich dabei übrigens aus den Headern des ESP32 Arduino Moduls - hier mal einige Zeilen aus den Headern, aus denen hervorgeht, wie man Pinne umbelegen kann:
<pre>
void begin(int8_t sck=-1, int8_t miso=-1, int8_t mosi=-1, int8_t ss=-1); // SPI.h
void begin(int sda=-1, int scl=-1, uint32_t frequency=100000); // Wire.h
void begin(unsigned long baud, uint32_t config=SERIAL_8N1, int8_t rxPin=-1, int8_t txPin=-1, bool invert=false); // Hardware-Serial
</pre>
 
Folgendes Pinmapping wurde dann noch LMIC übergeben:
<pre>
const lmic_pinmap lmic_pins = {
.nss = 18,
.rxtx = LMIC_UNUSED_PIN,
.rst = 14,
.dio = {26, 33, 32},
};
</pre>
 
Damit war die Belegung für den LoRa-Chip wie folgt:
{| class="wikitable" style="text-align:center"
! RFM95 Pin
! ESP32 GPIO#
|-
|DIO2
|32
|-
|DIO1
|33
|-
|DIO0
|26
|-
|MISO
|19
|-
|MOSI
|27
|-
|SCK
|5
|-
|NSS
|18
|-
|RESET
|14
|}
 
Achtung: GPIO5 (SCK) kollidiert manchmal mit I2C was für OLED Displays benutzt wird!
=== ESP8266 ===
1.949
Bearbeitungen