• Stars
    star
    327
  • Rank 125,445 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 5 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

LoRa mesh networking

LoRa Mesh Networking

This project implements the components of a system that demonstrates mesh networking between LoRa nodes and a way to visualize the network on a web page. For full details of the project, see the full project writeup on the Project Lab blog.

Nodes in the network are Arduino-compatible boards with a LoRa tranceiver. For example, Moteino boards.

There are several components of this project:

SetNodeId

Arduino sketch to set the node's ID in EEPROM so that every node can have the same source code (without hard-coding the node ID). This is a one-time process for each node. Set the node ID in this sketch then upload to a node (e.g. a Moteino). When it runs it saves the node ID in EEPROM. Then you can load the LoRaMesh sketch to the node.

LoRaMesh

Arduino sketch that attempts to talk to all other nodes in the mesh. Each node sends its routing information to every other node. The process of sending data and receiving acknowledgements lets a node determine which nodes it can successfully communicate with directly. This is how each node builds up it's routing table. You must set N_NODES to the max number of nodes in your mesh.

Dependencies:

Gateway

ESP8266 Arduino sketch that talks to a connected LoRa node via Serial (node number 1 in the mesh) and publishes mesh routing information to an MQTT topic. Node 1 in the mesh will eventually receive routing info from every other node.

Dependencies:

mesh-server

Node.js server provides a web visualization of the mesh. Runs on port 4200. Install with npm install. The server subscribes to the MQTT topic to receive routing info about nodes. This server sends the received routing info to the web client using Socket.IO. The web client uses p5.js to draw a representation of the mesh based on the routing information received from each node.

Dependencies (install with npm install)

  • express
  • jquery
  • mqtt
  • socket.io
  • rxjs
  • p5

More Repositories

1

lumazoid

Firmware for the Lumazoid realtime music visualizer board
Assembly
92
star
2

audio-hacker

Arduino library for the nootropic design Audio Hacker Shield
C++
50
star
3

arduino-tvout-ve

TVout library with new features to support the Video Experimenter shield
C++
47
star
4

samd21-lora-gps

SAMD21 Development Board with LoRa and GPS
C++
35
star
5

wx-ground-station

Automated weather satellite ground station for Raspberry Pi
JavaScript
33
star
6

iridium-signal-strength-monitor

Iridium Signal Strength Monitoring
JavaScript
24
star
7

arduino-tvout

Arduino libraries for composite video output.
C++
18
star
8

lora-weather-station

Remote weather station with LoRa radio communication to base station.
Arduino
12
star
9

iridium-satellite-comm

Communication with Iridium satellites using Arduino and RockBLOCK 9603 satellite modem
C++
11
star
10

game-timer-pro

Firmware for the Game Timer Pro
C++
10
star
11

realtime-music-visualizer

Arduino code for a real-time music visualizer
Assembly
9
star
12

arduino-asteroids

Arduino implementation of Asteroids.
Arduino
9
star
13

hackvision

Firmware for the Hackvision Arduino-based video game system
Arduino
8
star
14

defusable-clock

Firmware for the original Defusable Clock, version 2
Arduino
6
star
15

iot-wifi-outlet

Wi-Fi enabled electrical outlet
Arduino
5
star
16

wifi-camera-trap

Motion triggered camera trap that uploads images over Wi-Fi to a Node.js server.
C++
4
star
17

hackvision-controllers

Controllers library for Hackvision
C++
3
star
18

node-red-contrib-twilio-ivr

A set of Node-RED nodes for Twilio IVR development
HTML
3
star
19

laser-show-motor-controller

Arduino code to control motor-driven laser show.
C++
3
star
20

skywire-cat-m1-modem-shield

Arduino Shield for Nimbelink CAT M1 and NB-IoT modems
2
star
21

digit-shield

Arduino library for the nootropic design Digit Shield
C++
2
star
22

node-red-contrib-nmea

Node-RED node to parse NMEA sentences.
HTML
1
star
23

matrix-backpack

Demo Arduino sketch for the nootropic design matrix backpack
Arduino
1
star