Нужно руководство для лучшего подхода на Raspberry Pi
Я хочу включать / выключать реле удаленно, используя RasPberry Pi модель B с запущенным Windows IOT Core, что RasPberry Pi должен соединиться с Azure IOT Hub, и первоначально я могу включить / выключить реле, используя интерфейс через браузер через Интернет,
Лучший подход (C#, node.js в Windows iot core), ссылка на соответствующую статью будет оценена.
1 ответ
Для использования Azure IoT Hub вы можете использовать прямой метод.
- Сторона устройства:
Для Windows IoT Core вы можете начать с приложения UWP.
Ниже приведен простой пример реализации прямого метода на устройстве:
using Microsoft.Azure.Devices.Client;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
using Windows.UI.Xaml.Controls;
namespace App1
{
public sealed partial class MainPage : Page
{
private string connectionStr = "HostName=[YOUR HUB NAME].azure-devices.net;DeviceId=[YOUR DEVICE ID];SharedAccessKey=[SHARED ACCESS KEY]";
private DeviceClient deviceClient;
public MainPage()
{
this.InitializeComponent();
AddDirectMethod();
}
private async void AddDirectMethod()
{
deviceClient = DeviceClient.CreateFromConnectionString(connectionStr, TransportType.Mqtt);
await deviceClient.SetMethodHandlerAsync("TurnOn", new MethodCallback(TurnOnRelay), null);
await deviceClient.SetMethodHandlerAsync("TurnOff", new MethodCallback(TurnOffRelay), null);
}
private Task<MethodResponse> TurnOffRelay(MethodRequest methodRequest, object userContext)
{
Debug.WriteLine("Direct method name:" + methodRequest.Name);
// Put Relay toggle code here.
// ...
string result = "{\"Relay Status\":\"The Relay is OFF.\"}";
return Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(result), 200));
}
private Task<MethodResponse> TurnOnRelay(MethodRequest methodRequest, object userContext)
{
Debug.WriteLine("Direct method name:" + methodRequest.Name);
// Put Relay toggle code here.
// ...
string result = "{\"Relay Status\":\"The Relay is ON.\"}";
return Task.FromResult(new MethodResponse(Encoding.UTF8.GetBytes(result), 200));
}
}
}
Вам необходимо установить пакет NuGet microsoft.azure.devices.client в ваше приложение UWP. Вот подробное руководство по консольному приложению.NET, на которое вы можете ссылаться.
- Облачная сторона:
Вы можете вызвать прямой метод из портала Azure следующим образом: