Robust, Lora-based Mesh Network - Solution for Wildfire Detection and Growth Forecast through Custom Prediction Algorithm
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
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.
- 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.
- Clone repo and install neccesary packages with
npm installfor both the root andclientfolders.
- Sign up for a MongoDB account, create a data cluster, and copy your connection key into
.envunder theDATABASE_URIsection.
- Configure all nodes to run on the same channel.
- Write Network credentials into the gateways' EEPROM.
- Set correct server address in gateways' source file.
- Project employs Google Maps API to visualize geographical data to impose node markers upon. In order to set this up, follow this post from Google: https://support.google.com/looker-studio/answer/109z8075?hl=en
- After ensuring all has been set up, enter your API key on line 24 of src/pages/components/Map.js.
- 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:
npm run start//starts servernpm run client//starts client
- Repository for LoRaNet Library: repo
- Repository for LoRaNet Nodes, Gateways & Utilities: repo
- Repository for MQ2 Sensor Driver: repo



