Sensor Telemetrie 2.0.1 – Geavanceerde Temperatuurbewaking met Azure IoT Hub
Sensor Telemetrie 2.0.1 levert real-time temperatuurdata van een MCP9808-sensor naar Microsoft Azure IoT Hub. Het systeem verwerkt telemetrie met Azure Stream Analytics, slaat resultaten op in Azure SQL, en visualiseert historie in een Windows Universal mobiele app. Bijgewerkt 17 mei 2017.
Verhaal
UPDATE: Sensor Telemetrie is herschreven en hernoemd naar 2.0.1.
Inleiding
Overzicht
Dit project demonstreert hoe je een hoog-precieze MCP9808-temperatuursensor op een Raspberry Pi uitleest, telemetrie naar Azure IoT Hub stuurt, de data verwerkt met Stream Analytics, en metingen opslaat in Azure SQL. Een UWP mobiele app toont de sensorhistorie en stelt remote besturing via SignalR in.
De Applicatie
Twee UWP-apps delen ~99% van hun code: een draait op de Raspberry Pi (IoT-kant) en de ander op een PC (client-kant). De IoT-app stuurt sensordata naar IoT Hub en SignalR, terwijl de client-app zich abonneert op SignalR voor real-time updates en commando's terug naar het apparaat kan sturen.
Technologieën
De codebase volgt MVVM met Prism (Prism.Unity voor IoC) en Prism.Event voor een losgekoppeld event-systeem. SignalR stuurt real-time communicatie over app-instanties.
Architectuur
De kern MCP9808-bibliotheek is een herbruikbaar UWP-component. In de client-app zijn Views gekoppeld aan ViewModels; drie repositories behandelen instellingen, debug-logs, en sensordata. De Mcp9808TemperatureRepository publiceert een temperatuur-gewijzigd-event alleen wanneer de meting verandert. Achtergrondservices regelen telemetrie, timers, alert-pin monitoring, LED-besturing, drukknop-afhandeling, notificatie-relais, en debug-logging.
Telemetrie Service
Luistert naar temperatuurveranderingen en stuurt berichten door naar Azure Service Bus Event Hub.
Timer Service
Publiceert een 500 ms tick; gebruikt voor UI-tijddisplay en sensor-polling (1 s intervallen).
Alert Pin Monitoring Service
Detecteert GPIO-veranderingen op de MCP9808 alert-pin en publiceert events.
LED Service
Bestureert LEDs op basis van temperatuuralarmen.
Push Button Monitoring Service
Behandelt handmatige alert-reset via een GPIO drukknop.
Notification Relay Service
Map interne events naar SignalR-berichten, wat communicatie tussen apps mogelijk maakt.
Debug Console Service
Verzamelt en exposeert debug-events voor de UI.
Applicatie-initialisatie
De app lanceert StartPage, die services bootstrap voordat naar de hoofdview genavigeerd wordt.
Aan de slag
Schakelingseisen
- Groot solderloos breadboard (Vilros T-vormige cobbler optioneel)
- MCP9808 breakout (Adafruit)
- 4 LEDs, 220 Ω weerstanden, 10 k Ω pull-ups, momentane drukknop
Assemblage
- Sluit LEDs aan op GPIO 18 (blauw), 23 (groen), 12 (rood), 16 (geel) met 220 Ω naar 3,3 V.
- MCP9808: VDD→3,3 V, GND→GND, SCL→GPIO 5, SDA→GPIO 3, ALERT→GPIO 6, pull-up 10 k Ω naar 3,3 V.
- Drukknop: één kant naar GPIO 5, andere kant naar GND, pull-up 10 k Ω naar 3,3 V.
Foto's van het afgeronde breadboard zijn beschikbaar in de galerij hieronder.
Microsoft Azure Vereisten
Maak een gratis Azure-account (USD 200 tegoed) aan op azure.com. Log in op portal.azure.com.
Azure IoT Hub Instellen
- Nieuw → Internet of Things → IoT Hub
- Unieke naam, abonnement, resourcegroep (nieuw aanmaken), locatie (deze regio)
- Prijslaag: F1 Gratis (één gratis laag per account)
- Wacht op implementatie, bekijk dan hub-overzicht.
Een Apparaat Maken
- Download Azure IoT SDK voor C# van GitHub en open DeviceExplorer in Visual Studio.
- Plak IoT Hub verbindingsstring (van hub > Shared access policies > iothubowner).
- Maak een apparaat (bijv. TemperatureDevice1) met auto-gegenereerde keys.
Azure SQL Database Instellen
- SQL Databases → Toevoegen → Naam: SensorTelemetrie.
- Bestaande resourcegroep gebruiken; nieuwe server aanmaken met unieke naam, admin gebruikersnaam/wachtwoord, Basic tier, dezelfde regio.
- Firewall configureren om je IP toe te staan.
Database-tabel Aanmaken
- Open SQL Server Object Explorer in Visual Studio, verbind met de Azure SQL-server.
- Voer het meegeleverde CREATE TABLE-script uit om
SensorReadingsaan te maken.
App Service Plan & Mobile App Aanmaken
- App Service plans → Nieuw, naam, bestaande resourcegroep, locatie, Basic tier B1.
- Nieuw → Web+Mobile → Mobile App, naam, abonnement, bestaande resourcegroep, gekozen App Service plan.
Azure Stream Analytics Instellen
- Nieuw → Data + Analytics → Stream Analytics Job.
- Configureer invoer als de IoT Hub, uitvoer als de Azure SQL-tabel.
- Gebruik query: SELECT [TimestampUtc], Source, Temperature, IsCritical, IsAboveUpperThreshold, IsBelowLowerThreshold INTO [YourOutputAlias] FROM [YourInputAlias];
- Start de job.
Software Configureren
Download de broncode van de repository-link en open de solution in Visual Studio.
De Mobile App Publiceren
- Rechtsklik Web-project → Publiceren → Microsoft Azure App Service → selecteer je App Service.
- Kopieer de Azure SQL verbindingsstring (ADO.NET) en plak in
MS_TableConnectionStringin het project, gebruikersnaam/wachtwoord bijwerken. - Publiceren; de website lanceert automatisch.
IoT Hub Inloggegevens Invoeren
- In
App.xamlvan het UWP-project, vervang{YOUR CONNECTION STRING HERE}met de device connection string uit Device Explorer. - Vervang
{YOUR DEVICE ID HERE}met het device ID dat je aanmaakte.
Mobile App URL Invoeren
- In
UnityConfiguration.cs, plak de App Service URL (gekopieerd uit Azure portal) in{YOUR MOBILE SERVICES URL HERE}.
Voor gedetailleerde instructies, zie de volledige Sensor Telemetrie 2.0.1 documentatie.
Productieproces
- TMP006 Infrarood temperatuursensor met Raspberry Pi: Python bibliotheek & installatiegids
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Een Goedkope Raspberry Pi Grondvochtigheidssensor Bouwen voor Slimme Irrigatie
- De DS18B20 Temperatuursensor Testen op Raspberry Pi
- Een Raspberry Pi thuistemperatuurmonitor bouwen met MCP9808, InfluxDB & Grafana
- Sensor Telemetrie 2.0.1 – Geavanceerde Temperatuurbewaking met Azure IoT Hub
- Emotiesensor & EEG: Goedkope Hardware voor Real-time Emotiedetectie
- UnifiedWater v1 – Complete Arduino Waterkwaliteit Sensor Kit
- De zuurstofsensor (O2) begrijpen: functie, plaatsing en defectherkenning
- Sensor Kalibratie Uitgelegd: Definitie, Methoden en Sleuteltoepassingen
- Hartslagsensor: Hoe Het Werkt & Praktische Toepassingen