2017-08-31 5 views
0

Je développe une application simple qui a besoin d'envoyer et de recevoir des données d'azur. Tout d'abord, j'ai travaillé avec un appareil simulé (et une application de console). J'ai configuré mon portail azur pour travailler avec ces données et tout fonctionne bien.Enregistrer fraspberry pi azure via C#

Dans le même temps, j'ai vérifié mon capteur avec des tests unitaires et cela fonctionne bien aussi. Maintenant, je veux envoyer des données de mes capteurs à l'azur (avec Universal App). J'ai essayé de travailler avec ce lien: https://blogs.windows.com/buildingapps/2016/03/03/connect-your-windows-app-to-azure-iot-hub-with-visual-studio/#BgxLrRq1bXolCitM.97

Je choisis l'appareil avec lequel j'ai travaillé dans l'appareil simulé et j'ai une erreur de "hôte inconnu" pour le client. Ai-je besoin d'enregistrer mon Raspberry Pi comme un appareil avant? Comment envoyer une simple chaîne à partir d'une application universelle connue (par exemple: https://developer.microsoft.com/en-us/windows/iot/samples/helloblinky) à azure?

Je travaille avec Windows 10 IOT, C#

Merci!

Mise à jour: J'ai essayé de faire tout ce que vous avez suggéré sans succès. Code relavant:

public static async Task SendDeviceToCloudMessageAsync() 
    { 
     CreateClient(); 

     var currentTemperature = 20 /*getCurrentTemperature()*/; 
     var currentHumidity = 20/*getCurrentHumidity()*/; 

     var telemetryDataPoint = new 
     { 
      deviceId = DeviceId, 
      plantID = 7, 
      temperature = currentTemperature, 
      humidity = currentHumidity, 
      userId = 1 
     }; 
     var messageString = JsonConvert.SerializeObject(telemetryDataPoint); 
     var message = new Message(Encoding.ASCII.GetBytes(messageString)); 
     message.Properties.Add("temperatureAlert", (currentTemperature > 30) ? "true" : "false"); 

     Debug.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString); 

     await deviceClient.SendEventAsync(message); 
    } 

Je ne sais pas comment valider le "sharedAccessKey" sur connectionString var

Erreur (sur attendre deviceClient.SendEventAsync (message) ligne): Exception lancée: ' System.Exception 'dans System.Private.CoreLib.ni.dll Aucun hôte de ce type n'est connu. (Exception de HRESULT: 0x80072AF9)

+0

Oui, vous devez d'abord enregistrer l'appareil, en utilisant le portail azure ou [par code] (https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-csharp-csharp -getstarted # create-a-device-identity) –

+0

Oui, j'ai travaillé avec ceci quand j'ai créé l'appareil pour mon application d'appareil simulé. Puis-je en créer un nouveau pour l'application universelle? comment puis-je créer un nouvel appareil avec ce code? C'est une application de console et je ne peux pas l'exécuter sur le pi de framboise. Merci! –

+0

Une erreur de "hôte inconnu" signifie que votre nom d'hôte du concentrateur iure azure est inconnu. Si vous suivez [ce lien] (https://blogs.windows.com/buildingapps/2016/03/03/connect-your-windows-app-to-azure-iot-hub-with-visual-studio/#BgxLrRq1bXolCitM .97) il générera automatiquement un fichier AzureIoTHub.cs, dans ce fichier il y a deviceConnectionString var, assurez-vous qu'il s'agit d'une chaîne de connexion correcte liée à votre hub iure azure. –

Répondre

0

Vous devrez faire deux choses ici.

Tout d'abord, connectez votre appareil. Détails ici -

Ensuite, connectez votre application. - https://developer.microsoft.com/en-us/windows/iot/docs/ConnectAppToCloud

Si vous rencontrez des problèmes lorsque vous faites les deux ci-dessus, alors, vous serez en mesure de poser des questions plus spécifiques.

+0

voir mise à jour s'il vous plaît –