LoRax is an award-winning wildfire risk monitor. Specifically, LoRax is an IoT distributed system of nodes reporting information that is centralized via the cloud. The name comes from Long Range examination, from its ability to report soil moisture, temperature, UV light, humidity data, and GPS coordinates from nearly 300 meters away.
The progressive web app is built using a MongoDB/Express/React/NodeJS (MERN) stack using Heroku as our cloud server and MongoDB Atlas to store and persist data.
Each LoRax node uses an ESP 32, using the Arduino IDE to load and flash the firmware onto the board. Each node contains:
- UV sensor
- Temperature & humidity sensor
- Soil temperature & moisture sensor
- OLED display
- Neo-6M GPS
- 4 AA batteries (for power)
Each node communicates to our Heroku-hosted backend where data is
Install the following to get started:
The following hardware is required to build the device:
- Clone this repo from here:
git clone https://github.com/RogueArt/firerisk
- Install required dependencies:
cd firerisk # Go into the project folder
npm run build # Install dependencies
-
Ensure that the ESP32 board configuration has installed.
-
Install the following libraries in the Arduino IDE Library Manager:
- Adafruit VEML6070
- Adafruit Si7021
- Adafruit Seesaw
- Arduino Websockets
- ArduinoJson
- ESPAsyncWebServer
- TinyGPSPlus
-
Update
secrets.h
for your WiFi SSID and server details. -
Compile and upload
firmware/ESP32Node/ESP32Node.ino
.
To run the client or server, simply run the following command from their respective folders:
npm run start