Intermediate Course
Build 3 different Flows in NARA: monitor a danger zone with vision, turn a temperature reading into a machine status, and count parcels moving along a conveyor.
In the Basic Course, you learned how to build and run a simple Flow. This course introduces 3 different types of Flow, each designed for a different kind of task.
The course is divided into 3 independent Mini Projects. They are not parts of one continuous system. Each project has its own Trigger, data, process, and expected result.
By working through all 3, you will see how the structure of a Flow changes depending on what you want it to do.
Before you start
This course assumes that you have completed the Basic Course and can build a simple Flow on your own (see Build Your First Flow). Installation, sign-in, and the basic interface will not be covered again.
What you will build
Each Mini Project is based on a different type of task.
| Project | Task | What you will practice |
|---|---|---|
| Mini Project 1 · Danger Zone Monitoring | Watch an area on video and act on what walks into it | Reading frames in a loop, counting inside a zone, and branching on status |
| Mini Project 2 · Machine Status Monitoring | Turn a changing reading into a machine status | Scheduled checks, smoothing a value, threshold bands, and stopping the machine once the limit is reached |
| Mini Project 3 · Conveyor Parcel Processing | Count parcels crossing a line and sort them by type | Object tracking, counting on an event, branching with Switch Case, and storing results |
Although the projects are separate, they use many of the same basic ideas. You will decide how each Flow starts, arrange the Nodes in the correct order, pass data between them, and test whether the Flow works as expected.
By the end of this course
You will be able to:
- Design a Flow based on the task it needs to perform.
- Choose a suitable Trigger for each type of work.
- Separate a Flow into Trigger, Input, Process, and Output.
- Reference and pass data between Nodes.
- Create conditions and branching paths.
- Connect NARA to an external program.
- Turn a changing reading into a status, and act only when that status changes.
- Build a process that repeats and keeps track of its state.
- Test and troubleshoot each part of a Flow.
You will also be able to use these same ideas as a starting point for your own NARA projects.
Course structure
The course begins with a short introduction to Flow design and Trigger selection, followed by four groundwork chapters: an Operation chapter on the Nodes that control how a Flow runs, a Process chapter on the Nodes that work on the data itself, a Database chapter on keeping data around, and an IO chapter on reaching outside Nara. After that, you will complete 3 Mini Projects.
Each project steps up a level from the last. The first watches a live source and branches on what it sees, the second watches a changing value and catches the moment its status changes, and the third tracks objects across frames while keeping state and storing results.
Course Introduction
│
├── Operation → Nodes that control how a Flow runs
│ └── While Loop · If-Then · Switch Case
│
├── Process → Nodes that work on the data itself
│ └── Moving Number Calculation
│
├── Database → Keeping data around
│ └── Database Table
│
├── IO → Talking to the outside
│ ├── Part 1 · Email
│ └── Part 2 · HTTP Connection
│
├── Mini Project 1 · Danger Zone Monitoring → Continuous, Observing Flow
├── Mini Project 2 · Machine Status Monitoring → Conditional Flow
└── Mini Project 3 · Conveyor Parcel Processing → Stateful, Repeating FlowThe projects are separate
The 3 Mini Projects are not connected as Danger Zone → Machine Status → Conveyor. Each one is a separate example with its own purpose and setup. Keeping them separate makes each Flow easier to understand, test, and reset.
Recommended time
| Section | Time |
|---|---|
| Course Introduction | 10 min |
| Operation | 25 min |
| Process | 10 min |
| Database | 10 min |
| IO | 10 min |
| Mini Project 1 · Danger Zone Monitoring | 35 min |
| Break | 10 min |
| Mini Project 2 · Machine Status Monitoring | 30 min |
| Mini Project 3 · Conveyor Parcel Processing | 40 min |
| Review and wrap-up | 10 min |
| Total | 190 min |
Project files
Keep each Mini Project in its own Project or Flow file rather than placing all 3 in the same project.
This prevents Variables, Setup Nodes, and Connections from interfering with one another. It also makes the projects easier to distribute, test, and reset separately.
NARA Intermediate Course
│
├── 00_Groundwork
│ ├── Operation
│ ├── Process
│ ├── Database
│ └── IO
│
├── 01_Danger_Zone_Monitoring
│ ├── Starter Flow
│ └── Completed Flow
│
├── 02_Machine_Status_Monitoring
│ ├── Starter Flow
│ └── Completed Flow
│
└── 03_Conveyor_Parcel_Processing
├── Starter Flow
└── Completed FlowIn each project, learners will first explore the required Nodes through short, focused examples. They will then combine those Nodes to build a complete Flow step by step. Each project will also include a Completed Flow for reference, along with any required test data or simulations, examples of the expected results, a troubleshooting checklist, and an additional challenge for further practice.
Flow patterns used in the course
Each part of the course introduces a different way of arranging a Flow.
Communication Flow
Part 2 of the IO chapter uses a Communication Flow. The Flow connects to an external program, exchanges data, and checks the result.
Trigger → Connect → Exchange Data → Validate ResultMonitoring Flow
Mini Project 1 uses a Monitoring Flow. The Flow keeps watching a source, analyses each new piece of data as it arrives, and updates status according to what it finds.
Trigger → Read Frame → Analyse → Evaluate Zone → Update Status → RepeatEvent-driven Flow
Mini Project 2 uses an Event-driven Flow. The Flow checks a value on a schedule, evaluates it against thresholds, and acts only at the moment the status changes.
Trigger → Check Event → Evaluate Condition → Perform ActionStateful Process Flow
Mini Project 3 uses a Stateful Process Flow. The Flow runs a process, updates its current state, and then decides whether to repeat or stop.
Trigger → Execute Process → Update State → Repeat or StopIn this course
Course Introduction · Building Different Types of Flows
Learn how the 3 Mini Projects are structured and how Triggers are used to start different kinds of Flow.
Operation · Nodes that control how a Flow runs
Read video frame by frame with a While Loop, and branch a Flow with If-Then and Switch Case.
Process · Nodes that work on the data
Use Moving Number Calculation to work out a figure from the last few numbers that came through, such as a moving average, so a wobbly value settles enough to decide on.
Database · Keeping data around
Store what a Flow produces in a table instead of a single Variable, so it can be read back later. Create the table, define its Columns, and write rows into it.
IO · Talking to the outside
Send notification mail out of a Flow in Part 1, and exchange data with an external system over HTTP in Part 2.
Mini Project 1 · Danger Zone Monitoring
Count people inside a defined zone and raise an alert when someone walks into it.
Mini Project 2 · Machine Status Monitoring
Sort a temperature into Normal, Warning, and Critical, then stop the machine once it has stayed critical too long.
Mini Project 3 · Conveyor Parcel Processing
Track parcels on a conveyor, count them as they cross a line, and sort them by type.