using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.Azure.Devices.Client; using Newtonsoft.Json; namespace SimulatedDevice { class Program { static DeviceClient deviceClient; static string iotHubUri = "IMBS-IOT.azure-devices.net"; static string deviceKey = "dPOKg6XSZAFqyCVATbktXqlwJffXCx/d199S68AIoew="; private static async void SendDeviceToCloudMessagesAsync() { double minTemperature = 20; double minHumidity = 60; int messageId = 1; Random rand = new Random(); while (true) { double currentTemperature = minTemperature + rand.NextDouble() * 15; double currentHumidity = minHumidity + rand.NextDouble() * 20; var telemetryDataPoint = new { messageId = messageId++, deviceId = "myFirstDevice", temperature = currentTemperature, humidity = currentHumidity }; var messageString = JsonConvert.SerializeObject(telemetryDataPoint); var message = new Message(Encoding.ASCII.GetBytes(messageString)); message.Properties.Add("temperatureAlert", (currentTemperature > 30) ? "true" : "false"); await deviceClient.SendEventAsync(message); Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString); await Task.Delay(1000); } } static void Main(string[] args) { Console.WriteLine("Simulated device\n"); deviceClient = DeviceClient.Create(iotHubUri, new DeviceAuthenticationWithRegistrySymmetricKey("myFirstDevice", deviceKey), TransportType.Mqtt); SendDeviceToCloudMessagesAsync(); Console.ReadLine(); } } }