Skip to content

usnistgov/UAS-6.0-First-Responder-UAS-Wireless-Data-Gatherer-Challenge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Disclaimer

Any references to commercial entities, products, services, or other non-governmental organizations or individuals in this repository are provided solely for the information of individuals using this document. These references are not intended to reflect the opinion of NIST, the Department of Commerce or the United States, or its officers or employees. Such references are not an official or personal endorsement of any product, person, or service, nor are they intended to imply that the entities, materials, or equipment are necessarily the best available for the purpose. Such references may not be quoted or reproduced for the purpose of stating or implying an endorsement, recommendation, or approval of any product, person, or service.

Scope

This repository contains the IoT-Client or "Sensor Module" reference software for the NIST-PSCR UAS6.0: First Responder UAS Data Gatherer Challenge "Fox Hunt" Stage 2 & 3 events. These IoT nodes/Sensor Modules will be referred to herein as "Fox-Node(s)".

Stage 2: Sensor Module addition to the Guidance for Stage 2 document. See document for further information.

Stage 3: UAS prize challenge competitors will participate in an in-person event to perform NIST-standardized tests and collect data from nodes scattered throughout the competition theater.

Fox-Node Solution Components

Hardware:

NOTE: The ESP32 family of embedded microcontrollers has many different purchasing options that often use different/incompatible displays, bus connections, peripherals, etc. To avoid confusion, it is highly advisable to purchase the specific ESP32 "flavor" mentioned above for the best compatibility with the provided source code.

Software:

Installation & Setup

  • Install the Arduino IDE on the target "host PC" to build project source code and program ESP32 hardware.
    • ESP32 hardware support package dependencies listed below, install via Arduino IDE GUI "Board Manager"
      • esp32 by Espressif Systems <-- main "Arduino-esp32" wrapped software stack
    • Software dependencies libraries shown below, install via Arduino IDE GUI "Library Manager" outside of the core Arduino-ESP32 software stack.
      • ArduinoJson v7.1.0 by Benoit Blanchon
      • Adafruit ST7735 and ST7789 Library v1.10.4 by Adafruit (Select "Install All" option to bring in dependencies listed below)
        • Adafruit BusIO v1.16.1 (dependency of Adafruit ST7735 and ST7789 installed along side by default.)
        • Adafruit GFX Library v1.11.10 (dependency of Adafruit ST7735 and ST7789 installed along side by default.)
        • Adafruit seesaw v1.7.8 Library (dependency of Adafruit ST7735 and ST7789 installed along side by default.)
        • SD v1.3.0 Library (dependency of Adafruit ST7735 and ST7789 installed along side by default.)

With the IDE setup completed, the "Fox-Node to be" (ESP32 hardware) can now be connected to the host PC via USB and programmed with the provided "Foxclient_HTTP.ino" source code file via Arduino IDE.

Usage

The "Fox Hunt" project leverages the Arduino IDE, Arduino ESP32 software stack and ESP32 hardware to run a simple HTTP-Client. This client (Foxclient_HTTP.ino), referred to as a "Fox-Node" will auto-connect to the predefined WiFi credentials and beacon an HTTP-POST message every 10 seconds.

NOTE: Target WiFi SSID/PSWD can be easily updated in the source. Default SSID/PSWD are both hardcoded as "UAS6".

Fox Node State Diagram

Fox-Node verification: The Arduino IDE provides easy access to a serial interface connection (115200 baud) that displays runtime information. This information is also pushed/displayed via an ESP TFT display (unique to the Adafruit ESP32-S2 TFT Feather).

Upon connection to "UAS6" WiFi Network serial output... ex:

WiFi connected
**Fox-Node Initialized**
WiFi Tx Power: 28
IP address: 
192.168.1.2
Attempting POST.
Server connected, Sending POST.
POST success.
STA PWR: 28
HTTP Response code: 200
POST Payload: {"Node_RSSI":-38}

If the Fox-Node fails to find the specified WiFi Network... ex:

**Fox-Node Initialized**
WiFi Station: 14 Reason: 201
Trying to Reconnect
WiFi Station: 14 Reason: 201
Trying to Reconnect

NOTE: not all ESP32 hardware will have a display output. To make this project compatible with such hardware all references to the TFT display can be removed from the source Foxclient_HTTP.ino file to provide more "generic" ESP32 flavor compatibility.

ESP32 Display

Fox-Node display states:

<Disp. # >, description (background color)

  • 3, on sent POST, (GREEN)

Fox Node State Diagram

  • 2, no connection to HTTP server, (Orange)

Fox Node State Diagram

  • 1, On WiFi got IP, (Blue)

Fox Node State Diagram

  • 0, TFT init code, (Green)

Fox Node State Diagram

Branch List

main:

  • UAS 6.0 Stage 2 code (only dummy data + RSSI info from the Fox Node)

Live_Sensors:

  • Support for live data via I2C (sending real sensor data as payload via I2C --> ESP --> HTTP-POST)

3D Printer Models

  • .3mf files are included if you choose to do your own slicing for your specific 3D printer or application
  • .gcodes are included for both PLA and PETG filament types, specifically for the Prusa 3D Printer
  • .dfx CAD files are included for the fabrication of the case window, so the LCD is visible
  • Any printer with a .4mm nozzle that uses 1.75mm filament shall work as long as it can accommodate .15mm tall layers

Project status

Development targets PSCR - UAS 6.0 First Responder UAS Data Gatherer Challenge

  • Working Proof of concept w/ HTTP.POST "Fox-Nodes" w/real-time and dummy data.

Future Work

Implement:

  • NTP
  • mDNS
  • LittleFS

License

  • Arduino ESP32 stack - LGPL-2.1 license
  • ArduinoJson - MIT license
  • 3D Printer Models - NIST License (See License.md)

Contact

psprizes@nist.gov

About

UAS 6.0 First Responder UAS Wireless Data Gatherer Challenge

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages