我想通过Web界面控制我的覆盆子pi的GPIO引脚。通常的解决方案是使用apache运行Linux并通过Web界面启动一些python脚本。
但我想用运行Windows 10 iot的c#编写的解决方案来做到这一点。 我发现了一个小网络服务器(http://www.codeproject.com/Articles/1505/Create-your-own-Web-Server-using-C),但我不知道如何使用GPIO引脚的当前状态填充网站或如何处理按钮点击以切换GPIO引脚
有谁知道它可以解决什么样的问题?
PS:我想通过中继板控制一些LED灯条和其他灯。
答案 0 :(得分:3)
Windows 10 IoT Core和Raspberry Pi的工作方式是,您可以在中间连接两个部分。像一座桥。 Azure(微软的云平台)非常适合这种情况。
在Azure中,您有一项名为“存储队列”的服务,它本质上是一个FIFO(先进先出)。因此,您从连接到Azure的网站上放置了一些内容,然后您的Raspberry Pi从队列中读取。如果队列中有东西; Raspberry Pi可以做一些事情(比如通过设置电压通过GPIO端口闪烁LED)。这基本上可以触发任何电力,而不仅仅是LED。
首先从Visual Studio通过 File =>创建一个简单的ASP.NET MVC应用程序。新项目=>网络强>
然后进入Home文件夹中的 index.cshtml (当您启动网页时,它是前端和主要着陆页)。
使用按钮制作一个简单的表格:
<form method="POST" action="/Home/ToggleLight">
<button>Toggle</button>
</form>
然后右键单击解决方案中的“引用”,选择“管理NuGet包”。
搜索“Azure存储”并按“WindowsAzure.Storage”上的安装。
登录Azure(portal.azure.com)并点击本指南,了解如何设置存储帐户并通过Storage Explorer创建队列。 https://github.com/msdevno/LED-to-Azure-Starter-Pack
进入“Controllers”文件夹中的 HomeController.cs 并创建一个CloudQueue函数,如下所示:
private static CloudQueue InitializeQueue()
{
var connectionstring = "YOUR OWN CONNECTION STRING GOES HERE==";
var cloudStorageAccount = CloudStorageAccount.Parse(connectionstring);
var queueClient = cloudStorageAccount.CreateCloudQueueClient();
var queue = queueClient.GetQueueReference("rpi2queue"); //Name of queue
try
{
queue.CreateIfNotExistsAsync();
}
catch (Exception ex)
{
Console.WriteLine("it didn't work! Here is the error: " + ex.Message);
}
return queue;
}
另外,不要忘记在HomeController.cs文件中添加以下using语句。
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Queue;
在HomeController.cs文件中创建如下的ToggleLight方法:
[HttpPost]
public ActionResult ToggleLight()
{
var queue = InitializeQueue();
var message = new CloudQueueMessage("On,1000");
queue.AddMessage(message);
return RedirectToAction("Index");
}
您的网站现已完成,可以通过按钮点击在Azure上的队列中添加消息。
您现在需要做的是为Raspberry Pi 2 IoT核心设备创建UWP应用。 &#34; QueueReader_RPI2 &#34; -folder包含一个功能齐全的UWP应用程序,其中包含有关如何通过从刚刚创建的Azure队列中读取来触发GPIO端口的代码。 / p>
https://github.com/msdevno/LED-to-Azure-Starter-Pack/tree/master/Source/LED2Azure
这就是你创建一个连接到Azure的网站的方式,它触发Raspberry Pi使LED亮起。
编辑:您还可以看一下GitHub-repo的视频(挪威语,但是如果你挣扎的话,你会抓住这个漂移,只需按照代码进行操作):https://channel9.msdn.com/Series/MSDEVNO/LED-to-Azure-Starter-Pack 如果您想了解Raspberry Pi 2的连接方式,您可以查看另一个视频,该视频介绍了您需要的部分及其连接方式(也是挪威语):https://channel9.msdn.com/Series/MSDEVNO/IoT-og-Raspberry-Pi-2-Kickstart-Guide
请记住通过将有用的帖子标记为答案来关闭您的主题,然后如果您有新问题则启动新主题。请不要在同一个帖子中提出几个问题。