Setup Guide

Steps to connect to and setup your Traffic Monitor.

At this point you have deployed your traffic monitor and it is running. Nice job!

This guide will walk you though configuring your device based on your sensors (required), adjust it for roadway conditions (recommended), optimize your data capture, and connect with the ThingsBoard platform (optional).

Steps

1. Connect to your Device

Physical Access

Physical access to the device is a less-convenient method but will allow the most control to address issues.

Monitor, Keyboard, Mouse

See Raspberry Pi Getting Started for more information on connecting your Raspberry Pi. It should be as simple as plugging in a USB keyboard, USB mouse, and micro HDMI cable to your monitor. In this case, you can use localhost as the RPi IP address or use the host name.

SD Card

If your Traffic Monitor uses the default Raspberry Pi installation method, you will have an SD Card boot media that contains all your system files. If necessary, you can insert the card into a micro-SD card reader to access the entire Raspberry Pi OS directory structure.

Remote Access

Remote access allows you to control various parts of your Raspberry Pi without connecting it to a monitor, keyboard, or mouse. This must be done from another computer, e.g. a laptop. See Raspberry Pi's remote access docs for a full rundown of options.

You will need to know the Traffic Monitor / Raspberry Pi IP address or host name to connect to the various configuration environments.

Finding Your IP address

  • If you chose the Build Your Own Device (DIY) route, we recommend you set up WiFi credentials by following the Raspberry Pi Imager docs and it will automatically be accessible the network you specified. Find the RPi IP address via your router, or if your router supports DNS host names, you can use the host name set on the RPi.

  • If you received a pre-built device, check with your provider for specific instructions. To get you started, it may be available as a Hotspot that will host a wireless network. Connect to it like any WiFi network, look for the host name as the SSID. The IP address of the Raspberry Pi will be the Gateway IP address or you may use the host name set on the RPi.

See Find the IP address of your Raspberry Pi for more options.

2. Configure Frigate Zones

Frigate controls and generates object detection events with the camera.

This section describes setting up Frigate with the Traffic Monitor Recommended Hardware. If you have alternative or optional camera(s) or other components, you may need additional configuration. Reference the official Frigate Configuration for more details.

Frigate has a well-developed front-end user interface that can be accessed by visiting http://<TM_IP_ADDRESS>:5000 in a browser.

The Traffic Monitor will be expecting the following specifically named Frigate zones to work properly with all dashboards and workflow logic. These need to manually drawn based on your deployment.

Set up or modify the following zones, overlaying any temporary or permanent stationary objects:

  1. zone_capture - Set to capture the entire roadway, including sidewalks that are clearly in view for counting objects.

  2. zone_near - Paired with zone_near, this will determine if an object moves "outbound" or "inbound". Set this to be roughly the further half of the zone_capture region.

  3. zone_far - Paired with zone_far, this will determine if an object moves "outbound" or "inbound". Set this to be roughly the closer half of the zone_capture region.

  4. zone_radar - (for units equipped with radar) - This should correspond to the field of view for the radar (where it can pick up accurate measurements) on the street. It will roughly make a rectangle in the center of the camera field of view from curb to curb.

Properly configured Frigate Zones

After changes are made, you will need to restart Frigate before they take effect. You can do this via Frigate > Settings > Restart Frigate.

Define Masks

Optional step for reducing false-positives, creating private areas, and refining your configuration.

  • Motion Masks: may be designated to prevent unwanted types of motion from triggering detection.

  • Object filter masks: filter out false positives for a given object type based on location.

For more information view Frigate > Setup > Motion Masks and detailed info at Frigate > Masks.

Optimize Object Detection

The object detection model accuracy and detection ability may vary depending on a number of factors including mounting conditions such as height and angles to the roadway, different cameras and camera settings, and environmental conditions.

The generalized model available in the base version works well at a variety of angles, but is particularly suited for an oblique angle that has a good side-view of objects as they pass through the frame. Frigate object filters have a variety of score and threshold parameters that may be set to be more effective with your deployment.

3. Configure Node-RED

Node-RED controls most of the workflow logic and data collection.

You will need to Setup Guide to edit the Node-RED Config files.

  1. Open up the terminal or via SSH enter the command: nano ~/.node-red/config.yml to begin editing the config file.

  2. Change the deployment location information to represent the current deployment. Get your latitude and longitude from any map service, such as Google Maps and enter bearing with the single-letter cardinal direction the traffic monitor is facing.

deployment:
    lat: 45.5225
    lon: -122.6919
    bearing: n
  1. Modify sensors to reflect currently installed components. For example, with a single Raspberry Pi Camera and Radar, it may look like this:

sensors:
    cameras:
        picam_h264:
            enabled: true
            camera_radar: TM_RADAR_SERIAL_PORT_00
    radars:
        TM_RADAR_SERIAL_PORT_00:
            enabled: true
  1. To save changes, press Ctr+o (hold control and o)

  2. To exit, press Ctr+x (hold control and x)

You will need to restart Node-RED for setting to take effect. Do this by entering the command systemctl restart nodered into the terminal.

Last updated

Was this helpful?