Code
Before you go off coding, first do some preparations:
– get the latest Arduino IDE
– install the nodemcu devkit driver
– install the esp8266 board in the Boards manager (or update to the latest)
– install the RN2483 library
– install the ESPSoftwareSerial library
The code I’m using is a modification of this nice tutorial done by jpmeiers.
#include <rn2483.h>
#include <SoftwareSerial.h>
#define RST D7
SoftwareSerial mySerial(D6, D5); // RX, TX
//create an instance of the rn2483 library,
//giving the software UART as stream to use,
//and using LoRa WAN
rn2483 myLora(mySerial);
// the setup routine runs once when you press reset:
void setup() {
// Open serial communications and wait for port to open:
Serial.begin(57600);
mySerial.begin(9600);
Serial.println("Startup");
//reset rn2483
pinMode(RST, OUTPUT);
digitalWrite(RST, LOW);
delay(500);
digitalWrite(RST, HIGH);
//initialise the rn2483 module
myLora.autobaud();
//print out the HWEUI so that we can register it via ttnctl
Serial.println("When using OTAA, register this DevEUI: ");
Serial.println(myLora.hweui());
Serial.println("RN2483 version number:");
Serial.println(myLora.sysver());
//OTAA: init(String AppEUI, String AppKey);
myLora.init("<Insert you app EUI key here>", "<insert your default app key here>");
delay(2000);
}
// the loop routine runs over and over again forever:
void loop() {
//Do your stuff here
//Measure things if you're working with a sensor
//and pack them into an output string
String toSend = "DataHere";
Serial.println("TXing: " + toSend);
myLora.txUncnf(toSend ); //send the data
Serial.println("TXed.");
delay(60000); //Send every minute (maybe you need to tune this)
}
*) this is the bare minimum you need in order to start things working. I got it by modifying the original code and removing the other parts afterwards, so let me know if something is not right.
When you got all packed, choose NodeMCU to be your current board, fire the serial monitor, set it to 57600 baud rate, and flash the code to the device. If everything is fine, you should see nice messages in the serial log, and by refreshing the app page on TTN, you should see your device registered and messages arriving every minute.