Skip to content

Greengrass V2 Edge Walkthrough

A greenhouse edge lab in two acts — closed loop on the LAN, then wire the same data into AWS. Every step is plain AWS CLI.

One NUC
Intel NUC6CAY — compact x86 PC used as the Greengrass core in this lab (spare unit on hand; any quiet Ubuntu 24.04 x86 host works).
runs Nucleus
Greengrass Nucleus — the edge runtime on the core device. Installs components, talks to AWS, and hosts the local client-device stack.
. Up to three ESP32-S3
Espressif ESP32-S3 — Wi‑Fi microcontroller used here as the Greengrass client device (not a second core).
boards are zone client devices
Greengrass client device — an IoT Thing (here the ESP32-S3) that discovers a core and uses local MQTT. It does not run Nucleus.
. Press BOOT → green RGB on that zone. Chip temperature streams every 10 s. AWS archives it, tracks state, alarms on heat, commands the RGB blue from the cloud, and trains a model the core runs locally (red RGB).

No Terraform. No provision wrappers. Visible AWS CLI
AWS Command Line Interface v2 — every cloud and deployment step in this walkthrough is a visible aws command, not a wrapper script.
and JSON under artifacts/.

RoleHardwareSoftware
Core
Greengrass core device — the Linux host running Nucleus (this lab: Intel NUC6CAY). Client devices discover and connect to it.

NUC6CAY
Intel NUC6CAY — compact x86 PC used as the Greengrass core in this lab (spare unit on hand; any quiet Ubuntu 24.04 x86 host works).
, Ubuntu 24.04

Nucleus, Moquette, bridge, GgEdgeLoop, ZoneAnomaly

Client
Greengrass client device — an IoT Thing (here the ESP32-S3) that discovers a core and uses local MQTT. It does not run Nucleus.
ESP32-S3 DevKitC-1 (up to 3)Firmware — button, chip temp, RGB
ESP32-S3 zonesBOOT · temp · RGB
→
NUC · Greengrass V2
MoquetteMQTT BridgeGgEdgeLoopZoneAnomalyLogManager
→
IoT Coretopics
→
S3telemetry lake
DynamoDBzone state
CloudWatchmetric · alarm · logs
Control · blue RGB
Alarm
→
SNS
→
Lambda
→
IoT Core
→
GgEdgeLoopblue RGB
ML · red RGB
S3 lake
→
SageMaker
→
S3 artifacts
→
ZoneAnomalyred RGB
Zones stay on the LAN. The bridge is the only path into IoT Core. Rules fan out telemetry; alarm and SageMaker close the loop back to the zones.

Read Concepts and Why Greengrass? once, then run the numbered pages in order.

  1. Tooling — AWS CLI, jq, ESP-IDF
  2. Prerequisites — account, BOM, naming
  3. Concepts · Why Greengrass?

Local sense → actuate. The cloud may mirror topics; nothing consumes them yet.

#PageYou leave with
1IdentitiesThings, certs, policies, token-exchange role
2Prepare the coreUbuntu on the NUC, walkthrough.env
3Install NucleusHealthy core device
4Local MQTT stackMoquette, Auth, Bridge, IPDetector
5Associate zonesDiscovery returns the core host:8883
6Loop component

GgEdgeLoop RUNNING on the NUC

7Flash zonesBoards on Moquette; telemetry every 10 s
8Prove the LAN loopBOOT → green RGB on that zone only

Same topics. Now AWS consumes them, and the cloud can drive the zones. Full topic-by-topic wiring: Architecture.

#PageProof on the bench
9Deploy from the cloudComponent from S3; logs in CloudWatch
10Archive telemetryJSON objects under telemetry/ in S3
11Zone stateLatest temp + who drove the RGB in DynamoDB
12Raise an alarmThumb on the chip → email
13Cloud commandsAlarm turns that zone’s RGB blue
14Edge inferenceCore turns RGB red before the cloud alarm
15TeardownEvery resource gone

RGB tells you which layer acted: green = button loop, blue = cloud command, red = edge model.