LoraWanNode: Difference between revisions

From RevSpace
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:


== Introduction ==
== Introduction ==
This page describes the steps needed to create a simple LoraWAN node for the-things-network.
This page describes the steps needed to create a simple LoraWAN node for the-things-network, using an Arduino Pro Mini and a HopeRF RFM95 module.
It doesn't currently contain any new work, it just describes the steps I've done to use existing code to get a LoraWAN node to work with a LoraWAN network.


I've tested this on the TTN in the city of Utrecht.
I've tested this successfully on the TTN in the city of Utrecht.


=== How to tell if it works
=== How to tell if it works ===
On the Arduino side, you'll see XXX.
On the Arduino side, every time a packet has been successfully sent, you'll see a message containing "EV_TXCOMPLETE" on the serial output of the Arduino.


On the TTN side, you can go to http://thethingsnetwork.org/api/v0/nodes/YOUR_DEVICE_ID
On the TTN side, you can go to http://thethingsnetwork.org/api/v0/nodes/YOUR_DEVICE_ID
where you should see the content of the message you just sent, along with information about the particular gateway that received your signal, how strong it was received and with what settings (bandwidth, spreading factor) your packet was received.


== Hardware ==
== Hardware ==
Line 22: Line 24:
* a HopeRF RFM95 module
* a HopeRF RFM95 module
* an Arduino mini pro, 8MHz/3.3V
* an Arduino mini pro, 8MHz/3.3V
* a CP2104-based serial-USB converter
* a CP2104-based USB-serial converter


The HopeRF RFM95 module is connected to the Arduino as follows:
The HopeRF RFM95 module is connected to the Arduino as follows:
Line 35: Line 37:
* pin DIO2 to arduino pin D7
* pin DIO2 to arduino pin D7


Basically this connects the RFM95 to the SPI bus of the Arduino, connects the RFM95 to 3.3V power and connects some of the RFM95 geneta
Basically this connects the RFM95 to the SPI bus of the Arduino, connects the RFM95 to 3.3V power and connects some of the generic RFM95 I/Os (like interrupt signals) to the Arduino.
I don't know if connection of all the DIOx pins is really needed.


== Software ==
== Software ==
Line 43: Line 46:
=== Libraries ===
=== Libraries ===
I've used this version of the LoRa LMIC library: https://github.com/things4u/LoRa-LMIC-1.51.git
I've used this version of the LoRa LMIC library: https://github.com/things4u/LoRa-LMIC-1.51.git
Clone this library into ~/Arduino/libraries and restart the Arduino IDE
  cd ~/Arduino/libraries
  git clone https://github.com/things4u/LoRa-LMIC-1.51.git


=== Node firmware ===
=== Node firmware ===

Revision as of 20:30, 3 April 2016

Project LoraWanNode
350px
Description of how to set up an Arduino Pro Mini and an HopeRF RFM95 to create a LoraWAN node
Status Initializing
Contact bertrik
Last Update 2016-04-03


Introduction

This page describes the steps needed to create a simple LoraWAN node for the-things-network, using an Arduino Pro Mini and a HopeRF RFM95 module. It doesn't currently contain any new work, it just describes the steps I've done to use existing code to get a LoraWAN node to work with a LoraWAN network.

I've tested this successfully on the TTN in the city of Utrecht.

How to tell if it works

On the Arduino side, every time a packet has been successfully sent, you'll see a message containing "EV_TXCOMPLETE" on the serial output of the Arduino.

On the TTN side, you can go to http://thethingsnetwork.org/api/v0/nodes/YOUR_DEVICE_ID where you should see the content of the message you just sent, along with information about the particular gateway that received your signal, how strong it was received and with what settings (bandwidth, spreading factor) your packet was received.

Hardware

The hardware I've used is:

  • a HopeRF RFM95 module
  • an Arduino mini pro, 8MHz/3.3V
  • a CP2104-based USB-serial converter

The HopeRF RFM95 module is connected to the Arduino as follows:

  • pin VCC to arduino Vcc pin (3.3V)
  • pin GND to arduino Gnd pin
  • pin NSS to arduino pin D10
  • pin SCK to arduino pin D13
  • pin MOSI to arduino pin D11
  • pin MISO to arduino pin D12
  • pin DIO0 to arduino pin D4
  • pin DIO1 to arduino pin D5
  • pin DIO2 to arduino pin D7

Basically this connects the RFM95 to the SPI bus of the Arduino, connects the RFM95 to 3.3V power and connects some of the generic RFM95 I/Os (like interrupt signals) to the Arduino. I don't know if connection of all the DIOx pins is really needed.

Software

Tools

  • Arduino IDE 1.6.8

Libraries

I've used this version of the LoRa LMIC library: https://github.com/things4u/LoRa-LMIC-1.51.git

Clone this library into ~/Arduino/libraries and restart the Arduino IDE

 cd ~/Arduino/libraries
 git clone https://github.com/things4u/LoRa-LMIC-1.51.git

Node firmware

The firmware used on the arduino is the nano-lmic-v1.51-F.ino from the examples directory of the LoRa LMIC library.

Additionally I made the following changes:

  • in the library: replaced all instances of "arduino.h" to "Arduino.h" (capital "A")
  • changed the device address (variable "DevAddr") in the .ino file to another number
  • changed the payload string in function do_send in the .ino file