2017-08-31 96 views
0

我正在開發一個簡單的應用程序,需要發送和接收來自天藍色的一些數據。首先,我使用了一個模擬設備(和控制檯應用程序)。我配置了我的天藍色門戶以處理這些數據,並且一切正常。註冊樹莓派到天藍色通過c#

與此同時,我用單元測試檢查了我的傳感器,它也能正常工作。 現在,我想從我的傳感器發送一些數據到天青(使用通用應用程序)。我嘗試使用此鏈接: https://blogs.windows.com/buildingapps/2016/03/03/connect-your-windows-app-to-azure-iot-hub-with-visual-studio/#BgxLrRq1bXolCitM.97

我選擇了在模擬設備中使用的設備,並且客戶端連接出現「未知主機」錯誤。 我需要註冊我的樹莓派作爲一種設備嗎?我如何從已知的通用應用程序(例如:https://developer.microsoft.com/en-us/windows/iot/samples/helloblinky)發送一個簡單的字符串爲azure?

我正在使用Windows 10物聯網,c#

謝謝!

更新: 我試圖做所有你的建議沒有成功。 初步認識代碼:

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); 
    } 

我不知道如何驗證 「sharedAccessKey」 上(在等待deviceClient.SendEventAsync(消息)線)的ConnectionString VAR

錯誤: 拋出異常:「 System.Private.CoreLib.ni.dll中的System.Exception' 沒有這樣的主機是已知的。 (異常來自HRESULT:0x80072AF9)

+0

是的,則需要先註冊的裝置中,使用天青門戶或[按代碼(https://docs.microsoft.com/en-us/azure/iot-hub/iot-hub-csharp-csharp -getstarted#create-a-device-identity) –

+0

是的,我在爲我的模擬設備應用程序創建設備時使用了此工具。我需要爲通用應用程序創建一個新的嗎?如何使用此代碼創建新設備?這是一個控制檯應用程序,我不能在覆盆子pi上運行它。謝謝! –

+0

「未知主機」的錯誤表示您的azure iot hub主機名稱未知。如果你關注[此鏈接](https://blogs.windows.com/buildingapps/2016/03/03/connect-your-windows-app-to-azure-iot-hub-with-visual-studio/#BgxLrRq1bXolCitM .97)它會自動生成一個AzureIoTHub.cs文件,在這個文件中有deviceConnectionString var,請確保這是一個正確的連接字符串,與您的天藍色iot集線器相關。 –

回答