Infrasonic Wildfire Detector

The goal of the project is to create a MESH Network of Infrasonic Wildfire Sensors.
=Problem Definition=
Wildfires ravage through the forests and destroy ecosystems and economies, yet still, our best means of detection is by seeing and smelling smoke. The ability to provide a signal to firefighting services when the fire is still small could save countless homes and wilderness areas. In order to modernize this detection process, we propose a device that uses infrasonic detection and signal processing to detect wildfires. Our aim is to set up a mesh network of smart nodes and dumb nodes that can detect infrasound waves (0 – 20 Hz) and communicate this information wirelessly. This technology has the potential to drastically improve our ability to mitigate wildfires by allowing us to detect the problem sooner.
==Background==
Wildfires ravage through the forests and destroy ecosystems and economies, yet currently, our best means of detection is by seeing and smelling smoke. To modernize this detection process, we propose a device that uses infrasonic detection and signal processing to detect wildfires. 
There is research precedent suggesting that wildfires emit inaudible low-frequency sound signatures in the infrasonic range. Our aim is to set up a mesh network of smart nodes and dumb nodes that can detect infrasound waves (0 – 20 Hz) and communicate this information wirelessly. This technology has the potential to drastically improve our ability to mitigate wildfires by allowing us to detect the problem sooner.
The key features of this prototype are its robust enclosure, cost-effective infrasound sensor, and reliable networking capabilities. The enclosure allows the device to withstand large drops and survive inclement weather and will also use a parachute for potential deployment via aircraft. Meanwhile, the infrasound sensor minimizes the required hardware to detect a fire. Normal infrasonic detection utilizes specialized microphones that cost thousands of dollars, so our goal was to reduce the cost as much as possible by designing a cheaper version.
==Specifications==
* Detect infrasonic sound waves.
* Creates a mesh network of similar devices to transmit fire status.
* Has a rugged enclosure capable of surviving drops and impacts, as well as surviving the elements.
==Deliverables & Final Design==
Enclosure
Our final design for the enclosure was constrained and inspired by our product requirements and our electronics sizing. We needed the device to survive a considerable drop, upwards of 100ft, and the microcontroller and electrical equipment would need safe and secure housing for the journey and wilderness. The final design consists of three separate components that work together to complete all the requirements: the shock absorbers, PVC housing, and parachute.
The shock absorbers were inspired by Naomi Wu’s “TTGO T-Beam Shock Resistant Enclosure”. Her design has more spring-like attachments to the center chip slot, but we decided that our would-be dropped with a parachute, so we wanted more durability and less oscillation, so we came up with a honeycomb pattern. This design created more support in the plane of the shock, but still allowed movement and dampening in the orthogonal axis. The shocks are printed using a flexible TPU 3D printer filament. TPU or thermoplastic polyurethane is known to be specifically flexible and soft, has excellent impact resistance and vibrational dampening, which is why it was chosen for this application. The final design is shown below as a CAD model on the left and 3D printed on the right.
The second part of our enclosure was the water-resistant casing, which was created with prefabricated PVC. This made the parts very consistent in shape and sizing and they were easily accessible and cheap. We designed around 2-inch Schedule 40 PVC which is shown below in clear to visualize the internal components but could easily be used in white for the final design. The caps are fabricated to fit onto the PVC and create a water-resistant seal and are press fit in such a way that they require quite a bit of force to take them off. 
The final piece of the puzzle was the parachute, which was prototyped to be helped by the end caps. The parachute was created out of cotton material to be biodegradable once it has served its purpose and landed the device safely, with the electronic components unharmed. The parachute had a diameter of 33 inches and was attached with 8 supporting ropes. A 3D model of the parachute and assembly.
All of this came together for the final enclosure shown in Figure 10 with holes on the top for the microphone and antenna. The chip fits between two shock absorbers, with the PCB attached by the empty pin connections and held snugly between the shocks.
As you can see, our entire design, from our chip choice to our fabricated PCB and 3D printed shock absorbers, was able to fit together properly as we had designed it.
Mesh Network
For the final software design, each node was able to communicate with one another. The nodes were able to relay JSON messages between themselves. Smart nodes periodically sent out UDP messages and relayed messages. The dumb nodes only relayed messages. To minimize development time a forever loop software architecture was used. Basically, upon power being applied each node will do the following:
*1.	Depending on the platformIO.ini configuration settings a node will be either smart or dumb.
*2.	Run the setup function that setups up system resources.
*3.	Execute code to check for GPS information.
*4.	Read the infrasonic sensor. (This has been deferred since the sensor got done later in the year).
*5.	Read the temperature sensor.
*6.	Build and send the JSON message to other nodes.
*7.	For smart nodes only, send broadcast UDP messages to the Wi-Fi network.
*8.	Repeat.
The block diagram below helps illustrate what the software is doing. It is worth noting that only smart nodes will send UDP messages. To configure a smart node the platformIO.ini file must be set properly. This file is found inside the source-development GitLab repository under the infrasonic wildfire detector folder.
	For the mesh network aspect, we took advantage of an open-source library called RadioHead. The RadioHead library is an object-oriented library designed for microcontrollers. Fortunately for us, it has support for the LORA-32 radios available on the TTGO T-Beam development board. To get the mesh network up and running the RH_RF95 RadioHead driver was used. This driver is responsible for controller the LORA-32 radios. On top of the RH_RF95 driver is the RHMesh driver that incorporates and builds the mesh network. To get a better picture refer to the image below. From the image, we see our application sits on top of the networking stack. To send a message, we pass it off to the RH_Mesh driver and let the network deliver it.
	Lastly, all the codes’ documentation is inside the codebase. We used a tool called Doxygen to automatically generate documentation. Instructions on how to use Doxygen and update it are inside README.md files. These files are inside directories and can be easily found.
Printed Circuit Board
We designed the PCB to be a more compact and usable version of our testing breadboard circuit. We wanted it to contain all the analog filters and amplifiers needed to get a clean reading from the microphone using the dev board. We chose to use KiCAD to design this PCB, since it is open-source, and many resources exist for learning to use the software suite. The first iteration of the board was compact and only attached to the T-beam using 3 pins. The compact size made assembly with through-hole components difficult and error-prone, and the 3-pin connection was unstable and positioned poorly so that the PCB would interfere and collide with the shock absorbers. Version 2 of the PCB was changed dramatically to resolve these issues. We expanded the size of the board to spread out the components for ease of assembly and added two full headers to both sides of the board. With these adjustments, the PCB was easier to assemble, and it fits snugly and securely with the rest of the design. These changes are all tracked in a repository in the GitLab. Unfortunately, we were unable to take a valid sensor reading using this PCB, and we were unable to debug it due to time constraints.
Infrasonic Sensor
The design consists of an electret condenser microphone capsule, a preamplifier, a Chebyshev filter (3rd Order, Low-Pass, fc = 20 Hz), and a level adjust amplifier. The purpose of this design is to filter out unwanted noise sources and focus on the infrasonic range. While the microphone and preamplifier detect and amplify sound signals across the frequency spectrum, the Chebyshev filter attenuates unwanted high-frequency noise and passes through low-frequency waves to the final stage of amplification. The primary benefit of this design is cost-effectiveness. Special infrasound microphones cost upwards of thousands of dollars and are not mass-produced, making them extremely impractical. By contrast, electric condenser microphones are cheap, abundant, and can run on 5 volts. When using electret condenser microphone capsules, it is important to note that the ground pin of the microphone is connected to the outer casing via three conductive lines. Therefore, it is essential to wire the microphone properly according to polarity, or else it will not work. Also, wires should be soldered onto the pins of the microphone to easily connect it to the rest of the electronics. Furthermore, the simulated Bode plot of the circuit illustrates the role of the 3rd order Chebyshev filter. While being a relatively simple design, it is nonetheless a powerful filter with significant attenuation, making it much more effective than a Butterworth filter by comparison. To simulate the system, the microphone capsule was modeled as an AC voltage source and the OPAMPs were modeled as ideal.
			
			
==Design Considerations==
	
Here you will find our network layer model		
Here you will find our program structure design
	
Here you will find a diagram of our development board		
This here is a tool designed to get network stats and visualize it.
==Project Learning==
* Fire Infrasound - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6929188/
* LoRa Range and Reliability - https://medium.com/home-wireless/testing-lora-radios-with-the-limesdr-mini-part-2-37fa481217ff
* LoRa Mesh Example - https://nootropicdesign.com/projectlab/2018/10/20/lora-mesh-networking/
* Simple LoRa Library - https://github.com/sandeepmistry/arduino-LoRa
* RadioHead Mesh Networking Library - https://www.airspayce.com/mikem/arduino/RadioHead/
* Shock Absorber Inspiration - https://www.fabbaloo.com/blog/2020/6/15/design-of-the-week-ttgo-t-beam-shock-resistant-enclosure
* KiCAD Tutorials - https://learn.sparkfun.com/tutorials/beginners-guide-to-kicad
* KiCAD Resources - https://www.kicad.org/help/learning-resources/
==Validation==
	
This is a sample output of what our mesh server tool renders.		
Design Validation Plan
	
Design for shock absorber 
SolidWorks Simulation Performed
Load applied in the chip slot 
Notice deformations where we want them		
LoRa GPS Test
Red dots where packets were received
1 mile range for line of sight
==Team Members==
	
Name: Meridian Haas
Major: Mechanical Engineering 
Hometown: Colorado Springs, CO 
Responsibility: Mechanical Design 
Email: haas7000@vandals.uidaho.edu		
Name: Cory Holt
Major: Electrical Engineering 
Hometown: Jerome, ID
Responsibility: uController programming, PCB design 
Email: holt3393@vandals.uidaho.edu
	
Name: Andrew Malinowski 
Major: Electrical Engineering
Hometown: Boise, ID
Responsibility: Infrasonic Sensor - Signal Processing 
Email: mali3036@vandals.uidaho.edu		
Name: Carlos Santos 
Major: Computer Engineering
Hometown: Jerome, ID
Responsibility: MicroController and Programming 
Email: port3116@vandals.uidaho.edu
==Additional Documentation==
Project Schedule
Meeting Minutes
Presentations
Client Interview
Hardware Datasheets & Description Sheets