A project showcasing a containerized chat application, which communicates and causes actions on a raspberry pi
- functions/ - Azure Functions for MCP endpoints (GetTelemetry and SendAction)
- infra/ - Infrastructure as Code (Bicep) for Azure resources
- raspberry-pi/ - Python applications for receiving telemetry and action messages on Raspberry Pi
Web Application (Azure App Service)
↓
Azure Functions (MCP Endpoints)
↓
Azure Service Bus Topics (Telemetry & Action)
↓
Raspberry Pi Services
├─ Telemetry Receiver → Sensor Reading
└─ Action Receiver → Action Execution
HTTP endpoints that receive requests and forward them to Service Bus topics:
GetTelemetry
- Sends telemetry requests to the Telemetry topicSendAction
- Sends action requests to the Action topic
See functions/README.md for details.
Two Python services that run on the Raspberry Pi:
-
Telemetry Receiver - Receives messages from the Service Bus Telemetry topic and processes them based on the SensorKey field (Temperature, Light, CPU).
-
Action Receiver - Receives messages from the Service Bus Action topic and processes them based on the ActionType field (Camera, etc.).
See raspberry-pi/README.md for installation and usage.
Azure resources deployed using Bicep templates, including:
- Container Registry
- App Service
- Function App
- Service Bus (with topics and subscriptions)
- OpenAI Service
- AI Foundry Hub
See infra/README.md for deployment instructions.