Skip to content

Repository files navigation

PROBLEM

During major disasters, first responders (police, fire, medical) do not have a reliable way to track their environment, find survivors, and receive information in real time. Existing systems can be expensive, hard to deploy, or require additional personnel to operate, wasting manpower that can be used from more urgent tasks.

SOLUTION

The FirstResponderSystem uses cheap to manufacture, durable, and easy-to-deploy custom-made PCBs that create a centralized long-range radio network suited for emergencies instead of relying on broken or buggy connection systems (WiFi, Mobile Data, etc). By providing real-time sensor data and survivor detection, FirstResponderSystem allows emergency personnel to analyze dangerous conditions, locate any survivors, and make safe decisions while allowing responders to work on more urgent things. The data can also be sent to other organizations to relay information to people in the area, declare evacuations/emergencies, and more. The survivor node can be put in rubble to detect survivors, while the environmental node can be put in various parts of the disaster area. Multiple survivor and environmental nodes can be used at once.

CONTENTS OF GITHUB REPO

  1. Survivor PCB

    • This PCB utilizes the cheap ATTINY16-14 MCU and utilizes Doppler Radars, Distance Sensors, and Infrared cameras to detect survivors trapped under rubble or other items. It broadcasts its data using an RFM95W LoRa transceiver (receiver and transmitter) on 915mHz. It is battery powered and uses a u.FL port for the antenna.
  2. Environmental PCB

    • This PCB utilizes the cost-friendly ESP32 MCU and uses Bosch BME280 and BME680 Sensors to capture data about the environment. It also uses AQI, VOC, and other environmental sensors. It broadcasts its data using an RFM95W LoRa module on 915mHz, with a u.FL antenna port. It is battery powered.
  3. Broadcast PCB

    • This PCB uses the cheap ATTINY16-14 MCU and receives data from the other two PCBS using the RFM95W LoRa transceiver. It takes the information received and sends it over Serial on Micro-USB to a computer to read. It is powered by the Micro-USB port.
  4. Computer Software

    • The computer software includes a .py file for universal execution, as well as a .exe file generated by py2exe for quick use. The software is able to detect packets sent by the Broadcast PCB over serial and has an interface to select the COM port to read from. Once detected, it lists all the PCBS and shows info if you click on the names of the PCBS. It classifies the PCB as either ENV (environmental) or SRV (survivor detection). It shows all the info recorded by both PCBS. There is also a DEMO mode, which populates the user interface with "fake" broadcasting PCBS for showing at events or getting used to the interface.

INFO

The PCBS were made in KiCAD 10 with footprints and symbols from LCSC, bundled KiCAD files, and SnapEDA.

All of the PCBS come with images:

  • Image of the schematic
  • Image of the PCB top-down
  • Image of the PCB in 3D view

All of the PCBS come with code made in PlatformIO in VSCode. The programming language used to make the code is C++. The code successfully compiles with the firmware file in the .pio/build/[MCU NAME]/ and uses a good amount of 3rd-party libraries to interface with various components.

The folders inside the survivornode, broadcastnode, or environmental node are structured as follows:

  • The pcb_code folder includes the PCB Code written in C++.
  • The pcb_images folder includes images of the schematic, PCB top-down, and the PCB in 3D.
  • The pcb_data folder includes KiCAD files for opening the PCB in KiCAD. It also includes the Bill of Materials (BOM) and component positions CSV as well as the Gerber files in a zip.

The computer_code folder has a reciever.exe file for running on Windows without any dependencies being required to be installed. The reciever.py file can be run universally and requires Tkinter (already installed on most Python distributions), pyserial, and Python 3.13+ to run.

WHAT I LEARNED

I learned how to make PCBs in KiCad 10 with proper symbols and footprints. I also learned how to use the design and electrical rules checker to make sure my project met all of the rules.

CHALLENGES I FACED

Some challenges I faced included having issues with footprint/symbol quality, finding proper footprints for some of my component choices, and exporting gerbers. I solved these issues by searching up solutions online and using external plugins to export gerbers properly since it was bugged out with LCSC symbols.

DIAGRAM

DiagramFirstResponderSystem

About

reverie hacks submission

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages