Skip to content

beranki/LoRaFire

 
 

Repository files navigation

Website and API for Synopsys Science Fair 22-23 Project

Robust, Lora-based Mesh Network - Solution for Wildfire Detection and Growth Forecast through Custom Prediction Algorithm


Web Client:

image


IoT Sensor Module:

image


Developer's Notes:

API routes in routes/api.js API implementation & documentation in controllers/[module].js Databse schematics in models/[schema].js Web Client source in client/src/

API hosted on port 8000 (change via .env file), Client hosted on port 3000


Motivations

The ever more frequent natural disasters are harmful tragedies that develop from an unfortunate environmental coincidence. Some disasters have quantifiable signs that can be compiled into a measure of risk. Though the sensor technologies exist, there lacks a system to connect a large network of sensors to survey the environment. The project aims to develop a software framework for IoT sensor networks to be used in environmental surveillance. It presents a networking protocol capable of maintaining a mesh topology, allowing for a greater covered area.

Past IoT solutions lacked an extensible topology and a long-ranged radio, often only used to cover small areas. Most IoT are not designed to span very large areas – their architectures typically only implement a hub-and-spoke topology, limiting the network diameter by the radio range. Past radio modules typically have a range-to-power tradeoff, and as such most IoT solutions do not use modules with great peer-to-peer range. Contemporary techniques in the detection of wildfires – such as aerial, visual, or infrared – require the fire to have already grown considerably.

Materials & Methods:

  • Arduino Nano: small, low power, extensible microcontroller
  • ESP-8266: similar to the nano, but with WiFi capabilities.
  • Ra-02 LoRa Module: SPI interface, long-range, low-power module with interrupts.
  • MongoDB & Mongoose: Development database and its Node.js interfacing library.
  • Express.js: A web server framework for Node.js.
  • React.js: JS library for reactive web pages.
  • Google Maps API: API to display interactive maps.
  • Pandas: Python library for handling mass data.

Setup:

Installation:

  • Clone repo and install neccesary packages with npm install for both the root and client folders.

Database Setup (Mongo DB)

  • Sign up for a MongoDB account, create a data cluster, and copy your connection key into .env under the DATABASE_URI section.

Hardware Setup:

  • Configure all nodes to run on the same channel.
  • Write Network credentials into the gateways' EEPROM.
  • Set correct server address in gateways' source file.

Google Maps API:

image

Hosting the project:

  • API and client are run on different ports. If using VS, split terminal into two seperate processes, and run the following commands in the root dir:
  1. npm run start //starts server
  2. npm run client //starts client

Hardware Source Files:

  • Repository for LoRaNet Library: repo
  • Repository for LoRaNet Nodes, Gateways & Utilities: repo
  • Repository for MQ2 Sensor Driver: repo

About

Website and API for the Synopsys 2023 Science Fair

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 95.8%
  • HTML 3.1%
  • CSS 1.1%